diff --git a/Changelog.yaml b/Changelog.yaml index b3b025ef29..068afbb42d 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -4,6 +4,293 @@ # for important features/bug fixes. # Also, each release can have new and improved recipes. +- version: 0.7.32 + date: 2010-12-03 + + new features: + - title: "All new linux binary build. With updated libraries and replacing cx_Freeze with my own C python launcher code." + + - title: "Edit metadata dialog: Add Next and Previous buttons and show cover size in tooltip" + tickets: [7706, 7711] + + - title: "A new custom column type: Enumeration. This column can take one of a user defined set of values." + + - title: "PML Output: Add option to reduce image sizes/bit depth to allow PML Output to be used with DropBook" + + - title: "TXT Output: Add option to generate Markdown output. Turn
tags into spaces." + + - title: "Add a count function to the template language. Make author_sort searchable." + + - title: "Various consistency and usability enhancements to the search box." + tickets: [7726] + description: > + "Always select first book in result set of a search. Similar books searches added to search history. Search history order is no longer randomized. When focussing the search box with a keyboard shortcut, select all text. If you press enter in the search box, the search is executed and the book list os automatically focussed." + + - title: "Driver for samsung fascinate and PocketBook 902" + + - title: "FB2 Output: Add option to create FB2 sections based on internal file structure of input file (useful for EPUB files that have been split on chapter boundaries). Also add options to mark h1/h2/h3 tags as section titles in the FB2 file." + tickets: [7738] + + - title: "Metadata jacket: Add publisher information to jacket." + + - title: "Catalog generation: Allow use of custom columns as well as tags to indicate read books. Note that your previously saved read books setting will be lost." + + - title: "Bulk metadata edit dialog: Add an Apply button to allow you to perform multiple operations in sequence" + + - title: "Allow drag and drop of books onto user categories. If you drag a book from a particular column (say authors) and drop it onto a user category, the column value will be added to the user category. So for authors, the authros will be added to the user category." + + - title: "Check Library can now check and repair the has_cover cache" + + - title: "Allow GUI plugins to be distributed in ZIP files. See http://www.mobileread.com/forums/showthread.php?t=108774" + + - title: "Allow searching by the number of tags/authors/formats/etc. See User Manual for details." + + - title: "Tiny speed up when loading large libraries and make various metadata editing tasks a little faster by reducing the number of times the Tag Browser is refreshed" + + bug fixes: + - title: "E-book viewer: Fix broken backwards searching" + + - title: "Fix custom ratings column values being displayed incorrectly in book details area" + tickets: [7740] + + - title: "Fix book details dialog not using internal viewer to view ebooks" + tickets: [7424] + + - title: "MOBI Output: When the input document does not explicitly specify a size for images, set the size to be the natural size of the image. This works around Amazon's *truly wonderful* MOBI renderer's tendency to expand images that do not have a width and height specified." + + - title: "Conversion pipeline: Fix bug that caused height/width specified in %/em of screen size to be incorrectly calculated by a factor of 72./DPI" + + - title: "Conversion pipeline: Respect max-width and max-height when calculating the effective size of an element" + + - title: "Conversion pipeline: Do not override CSS for images with the value of the img width/height attributes, unless no CSS is specified for the image" + + - title: "E-book viewer: Resize automatically to fit on smaller screens" + + - title: "Use the same MIME database on all platforms that calibre runs on, works around python 2.7's crazy insistence on reading MIME data from the registry" + + - title: "Kobo driver: Allow html, txt and rtf documents to be deleted" + + - title: "Always overwrite title/author metadata when downloading metadata for books added by ISBN" + + - title: "Nook Color profile: Reduce screen height to 900px" + + - title: "Fix regression that broke RTF conversion on some linux systems" + + - title: "Fix bug that could break searching after copying and deleting a book from the current library" + tickets: [7459] + + improved recipes: + - NZZ + - Frankfurter Rundschau + - JiJi Press + - Revista Muy Intersante + + new recipes: + - title: "Global Times" + author: "malfi" + + - title: "The Philosopher's Magazine" + author: "Darko Miletic" + + - title: "Poughkeepsie Journal" + author: "weebl" + + - title: "Business Spectator and ABC Australia" + author: "Dean Cording" + + - title: "La Rijoa and NacionRed" + author: "Arturo Martinez Nieves" + + - title: "Animal Politico" + author: "leamsi" + + +- version: 0.7.31 + date: 2010-11-27 + + bug fixes: + - title: "Fix various regressions in the calibre windows build caused by the switch to python 2.7. If you are on windows and upgraded to 0.7.30, it is highly recommended that you upgrade to 0.7.31. If you are not on windows, you can ignore 0.7.31" + tickets: [7685, 7694, 7691] + + +- version: 0.7.30 + date: 2010-11-26 + + new features: + - title: "Support for Acer Lumiread and PocketBook Pro 602" + + - title: "When importing by ISBN also allow the specification of a file to be imported." + tickets: [7400] + + - title: "E-mail sending: Email sends are now regular jobs that can be accessed from the jobs list. Also when sending using gmail/hotmail send at most one email every five minutes to avoid trigerring their spam controls. Failed sends are now retried one more time, automatically." + + - title: "Content server: When a category contains only one item, go directly to the book list instead of forcing the user to click on that one item" + + - title: "E-mail sending: Allow unencrypted connections to SMTP relay" + + - title: "Improve startup times for large libraries by caching the has_cover check" + + - title: "Update windows binary build to use python 2.7" + + - title: "Metadata and cover download plugins from Nicebooks (disabled by default)" + + + bug fixes: + - title: "MOBI Input: Fix bug in cleanup regex that broke parsing of escaped XML declarations." + tickets: [7585] + + - title: "Content server: Fix bug when user has custom categories/columns with non ascii names" + tickets: [7590] + + - title: "RTF Output: Handle non breaking spaces correctly" + tickets: [7668] + + - title: "Conversion pipeline: When rasterizing SVG images workaround incorrect handinlg of percentage height specifications in QSvgRenderer." + tickets: [7598] + + - title: "News download: Update version of feedparser used to parse RSS feeds." + tickets: [7674] + + - title: "Tag Browser: Allow user to restore hidden categories by a right click even is all categories have been hidden" + + - title: "TXT/RTF Output: Handle XML processing instructions embedded in content correctly." + tickets: [7644] + + - title: "MOBI Input: Workarounds for lack of nesting rules between block and inline tags" + tickets: [7618] + + - title: "E-book viewer: Load all hyphenation patterns to support multi-lingual books" + + - title: "E-book viewer: Fix incorrect lang names being used in hyphenation" + + - title: "Check to see that the result file from a conversion is not empty before adding it, protects against the case where the conversion process crashes and the GUI adds a zero byte file to the book record" + + - title: "E-book viewer: More sophisticated algorithm to resize images to fit viewer window. Should preserve aspect ratio in more cases" + + - title: "Remove unneccessary calls to set_path when creating book records. Speeds up record creation by about 30% on my system" + + - title: "Speedup for bibtex catalog generation." + + - title: "Kobo driver: Fix missing table in deleting books process for Kobo WiFi and Kobo-O 1.8 Beta" + + - title: "RTF Input: Preserve scene breaks in the form of empty paragraphs. Preprocessing: Improvements to chapter detection" + + - title: "Fix custom recipe not sorted by title" + tickets: [7486] + + - title: "Kobo driver: Fix bug in managing the Im_Reading category on windows" + + improved recipes: + - "El Pais - Uruguay" + - Argentinian La Nacion + - comics.com + - Mingpao + - Revista Muy Intersante + - Telepolis + - New York Times + + new recipes: + - title: "Bangkok Biz News and Matichon" + author: "Anat Ruangrassamee" + + - title: "The Workingham Times and Deutsche Welle" + author: "Darko Miletic" + + - title: "Biz Portal" + author: "marbs" + + - title: "Various Japanese news sources" + author: "Hiroshi Miura" + + - title: "Arcamax" + author: "Starson17" + + - title: "Various Spanish news sources" + author: "Gustavo Azambuja" + + - title: "TSN" + author: Nexus + + - title: "Zeit Online Premium" + author: Steffen Siebert + + +- version: 0.7.29 + date: 2010-11-19 + + new features: + - title: "OSX binary build is now based on Qt 4.7. Also, the build is now Intel only and requires at least OS X 10.5.2. If you are on a PowerPC machine or an older OS X version, do not upgrade" + + - title: "Content server: Allow direct navigation to a set of books in the book list." + tickets: [7453] + + - title: "OS X: When deleting books, put the files into the recycle bin instead of deleting them permanently" + + - title: "Add button to easy configure Hotmail as email relay. Also improve usability of easy config buttons" + + - title: "Kobo driver: Support Currently_Reading category" + + - title: "Catalog generation: Thumbnail caching, wishlist, improved description layout." + tickets: [7376] + + - title: "Support for the Cybook Orizon" + + bug fixes: + - title: "Fix restore to defaults in preferences incorrectly setting PDF unwrap factor to 0.0" + + - title: "PDF Input: Fix unwrapping of accented characters" + + - title: "Do not display dialogs asking for confirmation or showing conversion errors when calibre is minimized to system tray" + tickets: [7549] + + - title: "calibre server: Fix regression that broke digest authentication when the calibre interface language was set to non English" + + - title: "EPUB Output: Do not raise an error for invalid embedded fonts in the input document." + tickets: [7567] + + - title: "RTF Input: Improved conversion of tables, with support for border styles on table cells" + + - title: "E-book viewer: Fix regression that broke hyphenation. Also add more language patterns for hyphenation" + + - title: "SONY driver: Fix cover thumbnails being uploaded to wrong directory on windows" + + - title: "Fix UnicodeDecodeError when displaying a failed metadata fetch message" + tickets: [7560] + + - title: "Bulk metadata edit: Speed up remove all tags operation" + + - title: "MOBI Output: Specify image sizes in pixels instead of em to accomodate Amazon's @#$%#@! MOBI renderer" + + - title: "Fix bug preventing customizing of builtin recipes if they are not ascii encoded" + + - title: "SONY XML cache: Handle case where XML db contains reference to a file that does not exist gracefully" + + improved recipes: + - Al Jazeera + - The Moscow Times + - GLobe and Mail + - Washington Post + + new recipes: + - title: "Hannoversche Allgemeine Zeitung" + author: "Artemis" + + - title: "globes.co.il" + author: "marbs" + + - title: "THN and RDS" + author: "Nexus" + + - title: "pclab.pl" + author: "ravcio" + + - title: "Now Toronto" + author: "Starson17" + + - title: "Press releases of the German government and EU Commission" + author: "malfi" + + - version: 0.7.28 date: 2010-11-12 diff --git a/resources/catalog/stylesheet.css b/resources/catalog/stylesheet.css index f57aafdd44..057c6c9f42 100644 --- a/resources/catalog/stylesheet.css +++ b/resources/catalog/stylesheet.css @@ -12,8 +12,8 @@ p.title { p.author { margin-top:0em; margin-bottom:0em; - text-align: left; - text-indent: 1em; + text-align: center; + text-indent: 0em; font-size:large; } @@ -27,17 +27,28 @@ p.author_index { } p.tags { - margin-top:0em; + margin-top:0.5em; margin-bottom:0em; text-align: left; - text-indent: 1em; - font-size:small; + text-indent: 0.0in; } -p.description { - text-align:left; - font-style:normal; - margin-top: 0em; +p.formats { + font-size:90%; + margin-top:0em; + margin-bottom:0.5em; + text-align: left; + text-indent: 0.0in; + } + +div.description > p:first-child { + margin: 0 0 0 0; + text-indent: 0em; + } + +div.description { + margin: 0 0 0 0; + text-indent: 1em; } p.date_index { @@ -121,5 +132,5 @@ td.rating { text-align: center; } td.thumbnail img { - -webkit-box-shadow: 6px 6px 6px #888; + -webkit-box-shadow: 4px 4px 12px #999; } \ No newline at end of file diff --git a/resources/content_server/browse/browse.css b/resources/content_server/browse/browse.css index 1243795e55..75832e47f9 100644 --- a/resources/content_server/browse/browse.css +++ b/resources/content_server/browse/browse.css @@ -355,6 +355,25 @@ h2.library_name { color: red; } +#booklist > #pagelist { display: none; } + +#goto_page_dialog ul { + list-style-type: none; + font-size: medium; +} + +#goto_page_dialog li { + margin-bottom: 1.5ex; +} + +#goto_page_dialog a { + text-decoration: none; + color: blue; +} + +#goto_page_dialog a:hover { + color: red; +} #booklist .left .ui-button-text { font-size: medium; diff --git a/resources/content_server/browse/browse.html b/resources/content_server/browse/browse.html index 6d4c79c4c9..de78e432d7 100644 --- a/resources/content_server/browse/browse.html +++ b/resources/content_server/browse/browse.html @@ -96,5 +96,6 @@
+
diff --git a/resources/content_server/browse/browse.js b/resources/content_server/browse/browse.js index e0585a9afd..2d9bc01082 100644 --- a/resources/content_server/browse/browse.js +++ b/resources/content_server/browse/browse.js @@ -202,6 +202,23 @@ function previous_page() { else last_page(); } +function gp_internal(id) { + var gp = $('#goto_page_dialog'); + gp.dialog('close'); + var elem = $("#booklist #" + id); + load_page(elem); +} + +function goto_page() { + var gp = $('#goto_page_dialog'); + var pl = $('#booklist > #pagelist'); + gp.html(pl.html()); + gp.dialog('option', 'title', pl.attr('title')); + gp.dialog('option', 'height', $(window).height() - 100); + gp.dialog('open'); + +} + function load_page(elem) { if (elem.is(":visible")) return; var ld = elem.find('.load_data'); @@ -251,6 +268,12 @@ function booklist(hide_sort) { modal: true, show: 'slide' }); + $("#goto_page_dialog").dialog({ + autoOpen: false, + modal: true, + show: 'slide' + }); + first_page(); } diff --git a/resources/content_server/read/monocle.js b/resources/content_server/read/monocle.js index c0642743f7..8d58ba8a06 100644 --- a/resources/content_server/read/monocle.js +++ b/resources/content_server/read/monocle.js @@ -38,6 +38,7 @@ Monocle.Browser.on = { iPad: navigator.userAgent.indexOf("iPad") != -1, BlackBerry: navigator.userAgent.indexOf("BlackBerry") != -1, Android: navigator.userAgent.indexOf('Android') != -1, + MacOSX: navigator.userAgent.indexOf('Mac OS X') != -1, Kindle3: navigator.userAgent.match(/Kindle\/3/) } @@ -162,12 +163,23 @@ Monocle.Browser.has.transform3d = Monocle.Browser.CSSProps.isSupported([ 'OPerspective', 'msPerspective' ]) && Monocle.Browser.CSSProps.supportsMediaQueryProperty('transform-3d'); +Monocle.Browser.has.embedded = (top != self); + Monocle.Browser.has.iframeTouchBug = Monocle.Browser.iOSVersionBelow("4.2"); + Monocle.Browser.has.selectThruBug = Monocle.Browser.iOSVersionBelow("4.2"); + Monocle.Browser.has.mustScrollSheaf = Monocle.Browser.is.MobileSafari; Monocle.Browser.has.iframeDoubleWidthBug = Monocle.Browser.has.mustScrollSheaf; + Monocle.Browser.has.floatColumnBug = Monocle.Browser.is.WebKit; +Monocle.Browser.has.relativeIframeWidthBug = Monocle.Browser.on.Android; + + +Monocle.Browser.has.jumpFlickerBug = + Monocle.Browser.on.MacOSX && Monocle.Browser.is.WebKit; + if (typeof window.console == "undefined") { window.console = { @@ -1091,11 +1103,29 @@ Monocle.Reader = function (node, bookData, options, onLoadCallback) { cmpt.dom.setStyles(Monocle.Styles.component); Monocle.Styles.applyRules(cmpt.contentDocument.body, Monocle.Styles.body); } + lockFrameWidths(); dom.find('overlay').dom.setStyles(Monocle.Styles.overlay); dispatchEvent('monocle:styles'); } + function lockingFrameWidths() { + if (!Monocle.Browser.has.relativeIframeWidthBug) { return; } + for (var i = 0, cmpt; cmpt = dom.find('component', i); ++i) { + cmpt.style.display = "none"; + } + } + + + function lockFrameWidths() { + if (!Monocle.Browser.has.relativeIframeWidthBug) { return; } + for (var i = 0, cmpt; cmpt = dom.find('component', i); ++i) { + cmpt.style.width = cmpt.parentNode.offsetWidth+"px"; + cmpt.style.display = "block"; + } + } + + function setBook(bk, place, callback) { p.book = bk; var pageCount = 0; @@ -1121,12 +1151,14 @@ Monocle.Reader = function (node, bookData, options, onLoadCallback) { if (!p.initialized) { console.warn('Attempt to resize book before initialization.'); } + lockingFrameWidths(); if (!dispatchEvent("monocle:resizing", {}, true)) { return; } clearTimeout(p.resizeTimer); p.resizeTimer = setTimeout( function () { + lockFrameWidths(); p.flipper.moveTo({ page: pageNumber() }); dispatchEvent("monocle:resize"); }, @@ -1765,12 +1797,7 @@ Monocle.Book = function (dataSource) { function componentIdMatching(str) { - for (var i = 0; i < p.componentIds.length; ++i) { - if (str.indexOf(p.componentIds[i]) > -1) { - return p.componentIds[i]; - } - } - return null; + return p.componentIds.indexOf(str) >= 0 ? str : null; } @@ -2018,6 +2045,12 @@ Monocle.Component = function (book, id, index, chapters, source) { function loadFrameFromURL(url, frame, callback) { + if (!url.match(/^\//)) { + var link = document.createElement('a'); + link.setAttribute('href', url); + url = link.href; + delete(link); + } frame.onload = function () { frame.onload = null; Monocle.defer(callback); @@ -2460,7 +2493,7 @@ Monocle.Flippers.Legacy = function (reader) { function moveTo(locus, callback) { var fn = frameToLocus; if (typeof callback == "function") { - fn = function () { frameToLocus(); callback(); } + fn = function (locus) { frameToLocus(locus); callback(locus); } } p.reader.getBook().setOrLoadPageAt(page(), locus, fn); } @@ -2794,7 +2827,9 @@ Monocle.Dimensions.Columns = function (pageDiv) { function scrollerWidth() { var bdy = p.page.m.activeFrame.contentDocument.body; if (Monocle.Browser.has.iframeDoubleWidthBug) { - if (Monocle.Browser.iOSVersion < "4.1") { + if (Monocle.Browser.on.Android) { + return bdy.scrollWidth * 1.5; // I actually have no idea why 1.5. + } else if (Monocle.Browser.iOSVersion < "4.1") { var hbw = bdy.scrollWidth / 2; var sew = scrollerElement().scrollWidth; return Math.max(sew, hbw); @@ -2969,6 +3004,7 @@ Monocle.Flippers.Slider = function (reader) { function setPage(pageDiv, locus, callback) { + ensureWaitControl(); p.reader.getBook().setOrLoadPageAt( pageDiv, locus, @@ -3048,6 +3084,7 @@ Monocle.Flippers.Slider = function (reader) { checkPoint(boxPointX); p.turnData.releasing = true; + showWaitControl(lowerPage()); if (dir == k.FORWARDS) { if ( @@ -3088,14 +3125,18 @@ Monocle.Flippers.Slider = function (reader) { function onGoingBackward(x) { - var lp = lowerPage(); + var lp = lowerPage(), up = upperPage(); + showWaitControl(up); jumpOut(lp, // move lower page off-screen function () { flipPages(); // flip lower to upper setPage( // set upper page to previous lp, getPlace(lowerPage()).getLocus({ direction: k.BACKWARDS }), - function () { lifted(x); } + function () { + lifted(x); + hideWaitControl(up); + } ); } ); @@ -3103,8 +3144,10 @@ Monocle.Flippers.Slider = function (reader) { function afterGoingForward() { - var up = upperPage(); + var up = upperPage(), lp = lowerPage(); if (p.interactive) { + showWaitControl(up); + showWaitControl(lp); setPage( // set upper (off screen) to current up, getPlace().getLocus({ direction: k.FORWARDS }), @@ -3113,6 +3156,7 @@ Monocle.Flippers.Slider = function (reader) { } ); } else { + showWaitControl(lp); flipPages(); jumpIn(up, function () { prepareNextPage(announceTurn); }); } @@ -3171,6 +3215,8 @@ Monocle.Flippers.Slider = function (reader) { function announceTurn() { + hideWaitControl(upperPage()); + hideWaitControl(lowerPage()); p.reader.dispatchEvent('monocle:turn'); resetTurnData(); } @@ -3319,12 +3365,14 @@ Monocle.Flippers.Slider = function (reader) { function jumpIn(pageDiv, callback) { - setX(pageDiv, 0, { duration: 1 }, callback); + var dur = Monocle.Browser.has.jumpFlickerBug ? 1 : 0; + setX(pageDiv, 0, { duration: dur }, callback); } function jumpOut(pageDiv, callback) { - setX(pageDiv, 0 - pageDiv.offsetWidth, { duration: 1 }, callback); + var dur = Monocle.Browser.has.jumpFlickerBug ? 1 : 0; + setX(pageDiv, 0 - pageDiv.offsetWidth, { duration: dur }, callback); } @@ -3357,6 +3405,28 @@ Monocle.Flippers.Slider = function (reader) { } + function ensureWaitControl() { + if (p.waitControl) { return; } + p.waitControl = { + createControlElements: function (holder) { + return holder.dom.make('div', 'flippers_slider_wait'); + } + } + p.reader.addControl(p.waitControl, 'page'); + } + + + function showWaitControl(page) { + var ctrl = p.reader.dom.find('flippers_slider_wait', page.m.pageIndex); + ctrl.style.opacity = 0.5; + } + + + function hideWaitControl(page) { + var ctrl = p.reader.dom.find('flippers_slider_wait', page.m.pageIndex); + ctrl.style.opacity = 0; + } + API.pageCount = p.pageCount; API.addPage = addPage; API.getPlace = getPlace; diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py index 692349283f..1a371e5610 100644 --- a/resources/default_tweaks.py +++ b/resources/default_tweaks.py @@ -217,3 +217,15 @@ generate_cover_foot_font = None # open_viewer, do_nothing, edit_cell. Default: open_viewer. # Example: doubleclick_on_library_view = 'do_nothing' doubleclick_on_library_view = 'open_viewer' + + +# Language to use when sorting. Setting this tweak will force sorting to use the +# collating order for the specified language. This might be useful if you run +# calibre in English but want sorting to work in the language where you live. +# Set the tweak to the desired ISO 639-1 language code, in lower case. +# You can find the list of supported locales at +# http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/nls/rbagsicusortsequencetables.htm +# Default: locale_for_sorting = '' -- use the language calibre displays in +# Example: locale_for_sorting = 'fr' -- sort using French rules. +# Example: locale_for_sorting = 'nb' -- sort using Norwegian rules. +locale_for_sorting = '' diff --git a/resources/images/news/cnetjapan.png b/resources/images/news/cnetjapan.png new file mode 100644 index 0000000000..9a0dcc8f7f Binary files /dev/null and b/resources/images/news/cnetjapan.png differ diff --git a/resources/images/news/cnetjapan_digital.png b/resources/images/news/cnetjapan_digital.png new file mode 100644 index 0000000000..9a0dcc8f7f Binary files /dev/null and b/resources/images/news/cnetjapan_digital.png differ diff --git a/resources/images/news/cnetjapan_release.png b/resources/images/news/cnetjapan_release.png new file mode 100644 index 0000000000..9a0dcc8f7f Binary files /dev/null and b/resources/images/news/cnetjapan_release.png differ diff --git a/resources/images/news/deutsche_welle_bs.png b/resources/images/news/deutsche_welle_bs.png new file mode 100644 index 0000000000..cb3ad5a77f Binary files /dev/null and b/resources/images/news/deutsche_welle_bs.png differ diff --git a/resources/images/news/deutsche_welle_en.png b/resources/images/news/deutsche_welle_en.png new file mode 100644 index 0000000000..cb3ad5a77f Binary files /dev/null and b/resources/images/news/deutsche_welle_en.png differ diff --git a/resources/images/news/deutsche_welle_es.png b/resources/images/news/deutsche_welle_es.png new file mode 100644 index 0000000000..cb3ad5a77f Binary files /dev/null and b/resources/images/news/deutsche_welle_es.png differ diff --git a/resources/images/news/deutsche_welle_hr.png b/resources/images/news/deutsche_welle_hr.png new file mode 100644 index 0000000000..cb3ad5a77f Binary files /dev/null and b/resources/images/news/deutsche_welle_hr.png differ diff --git a/resources/images/news/deutsche_welle_pt.png b/resources/images/news/deutsche_welle_pt.png new file mode 100644 index 0000000000..cb3ad5a77f Binary files /dev/null and b/resources/images/news/deutsche_welle_pt.png differ diff --git a/resources/images/news/deutsche_welle_sr.png b/resources/images/news/deutsche_welle_sr.png new file mode 100644 index 0000000000..cb3ad5a77f Binary files /dev/null and b/resources/images/news/deutsche_welle_sr.png differ diff --git a/resources/images/news/endgadget_ja.png b/resources/images/news/endgadget_ja.png new file mode 100644 index 0000000000..94e8f1219c Binary files /dev/null and b/resources/images/news/endgadget_ja.png differ diff --git a/resources/images/news/jijinews.png b/resources/images/news/jijinews.png new file mode 100644 index 0000000000..b87865fc34 Binary files /dev/null and b/resources/images/news/jijinews.png differ diff --git a/resources/images/news/mainichi.png b/resources/images/news/mainichi.png new file mode 100644 index 0000000000..9f8e8f319f Binary files /dev/null and b/resources/images/news/mainichi.png differ diff --git a/resources/images/news/mainichi_it_news.png b/resources/images/news/mainichi_it_news.png new file mode 100644 index 0000000000..9f8e8f319f Binary files /dev/null and b/resources/images/news/mainichi_it_news.png differ diff --git a/resources/images/news/moscow_times.png b/resources/images/news/moscow_times.png new file mode 100644 index 0000000000..34c3117974 Binary files /dev/null and b/resources/images/news/moscow_times.png differ diff --git a/resources/images/news/msnsankei.png b/resources/images/news/msnsankei.png new file mode 100644 index 0000000000..7e92af7b20 Binary files /dev/null and b/resources/images/news/msnsankei.png differ diff --git a/resources/images/news/nikkei_free.png b/resources/images/news/nikkei_free.png new file mode 100644 index 0000000000..308f4b3085 Binary files /dev/null and b/resources/images/news/nikkei_free.png differ diff --git a/resources/images/news/nikkei_sub.png b/resources/images/news/nikkei_sub.png new file mode 100644 index 0000000000..308f4b3085 Binary files /dev/null and b/resources/images/news/nikkei_sub.png differ diff --git a/resources/images/news/nikkei_sub_economy.png b/resources/images/news/nikkei_sub_economy.png new file mode 100644 index 0000000000..308f4b3085 Binary files /dev/null and b/resources/images/news/nikkei_sub_economy.png differ diff --git a/resources/images/news/nikkei_sub_industry.png b/resources/images/news/nikkei_sub_industry.png new file mode 100644 index 0000000000..308f4b3085 Binary files /dev/null and b/resources/images/news/nikkei_sub_industry.png differ diff --git a/resources/images/news/nikkei_sub_life.png b/resources/images/news/nikkei_sub_life.png new file mode 100644 index 0000000000..308f4b3085 Binary files /dev/null and b/resources/images/news/nikkei_sub_life.png differ diff --git a/resources/images/news/nikkei_sub_main.png b/resources/images/news/nikkei_sub_main.png new file mode 100644 index 0000000000..308f4b3085 Binary files /dev/null and b/resources/images/news/nikkei_sub_main.png differ diff --git a/resources/images/news/nikkei_sub_sports.png b/resources/images/news/nikkei_sub_sports.png new file mode 100644 index 0000000000..308f4b3085 Binary files /dev/null and b/resources/images/news/nikkei_sub_sports.png differ diff --git a/resources/images/news/novaya_gazeta.png b/resources/images/news/novaya_gazeta.png new file mode 100644 index 0000000000..41886a64b9 Binary files /dev/null and b/resources/images/news/novaya_gazeta.png differ diff --git a/resources/images/news/reuters.png b/resources/images/news/reuters.png new file mode 100644 index 0000000000..f13abce7b6 Binary files /dev/null and b/resources/images/news/reuters.png differ diff --git a/resources/images/news/reuters_ja.png b/resources/images/news/reuters_ja.png new file mode 100644 index 0000000000..f13abce7b6 Binary files /dev/null and b/resources/images/news/reuters_ja.png differ diff --git a/resources/images/news/the_workingham_times.png b/resources/images/news/the_workingham_times.png new file mode 100644 index 0000000000..c22c910c9c Binary files /dev/null and b/resources/images/news/the_workingham_times.png differ diff --git a/resources/images/news/tpm_uk.png b/resources/images/news/tpm_uk.png new file mode 100644 index 0000000000..d8c586a296 Binary files /dev/null and b/resources/images/news/tpm_uk.png differ diff --git a/resources/images/news/vedomosti.png b/resources/images/news/vedomosti.png new file mode 100644 index 0000000000..3187308f4e Binary files /dev/null and b/resources/images/news/vedomosti.png differ diff --git a/resources/images/news/yomiuri.png b/resources/images/news/yomiuri.png new file mode 100644 index 0000000000..4a197f888f Binary files /dev/null and b/resources/images/news/yomiuri.png differ diff --git a/resources/jacket/stylesheet.css b/resources/jacket/stylesheet.css index 5f4f012d01..c45f8fe977 100644 --- a/resources/jacket/stylesheet.css +++ b/resources/jacket/stylesheet.css @@ -36,22 +36,37 @@ /* ** Title */ -.cbj_title { +table.cbj_header td.cbj_title { font-size: x-large; + font-style: italic; + text-align: center; +} + +/* +** Series +*/ +table.cbj_header td.cbj_series { + font-size: medium; text-align: center; } /* ** Author */ -.cbj_author { +table.cbj_header td.cbj_author { font-size: medium; text-align: center; - margin-bottom: 1ex; } /* -** Table containing Series, Publication Year, Rating and Tags +** Publisher/published +*/ +table.cbj_header td.cbj_pubdata { + text-align: center; +} + +/* +** Table containing Rating and Tags */ table.cbj_header { width: 100%; @@ -62,9 +77,8 @@ table.cbj_header { */ table.cbj_header td.cbj_label { font-family: sans-serif; - font-weight: bold; text-align: right; - width: 40%; + width: 33%; } /* @@ -73,9 +87,23 @@ table.cbj_header td.cbj_label { table.cbj_header td.cbj_content { font-family: sans-serif; text-align: left; - width:60%; + width:67%; } +/* +** Metadata divider +*/ +hr.metadata_divider { + width:90%; + margin-left:5%; + border-top: solid white 0px; + border-right: solid white 0px; + border-bottom: solid black 1px; + border-left: solid white 0px; + } + + + /* ** To skip a banner item (Series|Published|Rating|Tags), ** edit the appropriate CSS rule below. diff --git a/resources/jacket/template.xhtml b/resources/jacket/template.xhtml index 8447b1d6b3..056ac0aad3 100644 --- a/resources/jacket/template.xhtml +++ b/resources/jacket/template.xhtml @@ -6,17 +6,24 @@
-
{title}
-
{author}
- - - + + + + + - - - + + + + + + + + + + diff --git a/resources/mime.types b/resources/mime.types new file mode 100644 index 0000000000..ab98b3bf4a --- /dev/null +++ b/resources/mime.types @@ -0,0 +1,1381 @@ +## Mimetypes from my linux system + +application/activemessage +application/andrew-inset ez +application/applefile +application/applixware aw +application/atom+xml atom +application/atomcat+xml atomcat +application/atomicmail +application/atomsvc+xml atomsvc +application/auth-policy+xml +application/batch-smtp +application/beep+xml +application/cals-1840 +application/ccxml+xml ccxml +application/cea-2018+xml +application/cellml+xml +application/cnrp+xml +application/commonground +application/conference-info+xml +application/cpl+xml +application/csta+xml +application/cstadata+xml +application/cu-seeme cu +application/cybercash +application/davmount+xml davmount +application/dca-rft +application/dec-dx +application/dialog-info+xml +application/dicom +application/dns +application/dsptype tsp +application/dvcs +application/ecmascript ecma +application/edi-consent +application/edi-x12 +application/edifact +application/emma+xml emma +application/epp+xml +application/epub+zip epub +application/eshop +application/example +application/fastinfoset +application/fastsoap +application/fits +application/font-tdpfr pfr +application/futuresplash spl +application/h224 +application/hta hta +application/http +application/hyperstudio stk +application/ibe-key-request+xml +application/ibe-pkg-reply+xml +application/ibe-pp-data +application/iges +application/im-iscomposing+xml +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/iotp +application/ipp +application/isup +application/java-archive jar +application/java-serialized-object ser +application/java-vm class +application/javascript js +application/json json +application/kpml-request+xml +application/kpml-response+xml +application/lost+xml lostxml +application/mac-binhex40 hqx +application/mac-compactpro cpt +application/macwriteii +application/marc mrc +application/mathematica ma mb nb +application/mathml+xml mathml +application/mbms-associated-procedure-description+xml +application/mbms-deregister+xml +application/mbms-envelope+xml +application/mbms-msk+xml +application/mbms-msk-response+xml +application/mbms-protection-description+xml +application/mbms-reception-report+xml +application/mbms-register+xml +application/mbms-register-response+xml +application/mbms-user-service-description+xml +application/mbox mbox +application/media_control+xml +application/mediaservercontrol+xml mscml +application/mikey +application/moss-keys +application/moss-signature +application/mosskey-data +application/mosskey-request +application/mp4 mp4s +application/mpeg4-generic +application/mpeg4-iod +application/mpeg4-iod-xmt +application/msaccess mdb +application/msword doc dot +application/mxf mxf +application/nasdata +application/news-checkgroups +application/news-groupinfo +application/news-transmission +application/nss +application/ocsp-request +application/ocsp-response +application/octet-stream bin bpk deploy dist distz dmg dms dump elc iso lha lrf lzh pkg so +application/oda oda +application/oebps-package+xml opf +application/ogg ogg ogx +application/onenote onepkg onetmp onetoc onetoc2 +application/parityfec +application/patch-ops-error+xml xer +application/pdf pdf +application/pgp-encrypted pgp +application/pgp-keys key +application/pgp-signature asc pgp sig +application/pics-rules prf +application/pidf+xml +application/pidf-diff+xml +application/pkcs10 p10 +application/pkcs7-mime p7c p7m +application/pkcs7-signature p7s +application/pkix-cert cer +application/pkix-crl crl +application/pkix-pkipath pkipath +application/pkixcmp pki +application/pls+xml pls +application/poc-settings+xml +application/postscript ai eps ps +application/prs.alvestrand.titrax-sheet +application/prs.cww cww +application/prs.nprend +application/prs.plucker +application/qsig +application/rar rar +application/rdf+xml rdf +application/reginfo+xml rif +application/relax-ng-compact-syntax rnc +application/remote-printing +application/resource-lists+xml rl +application/resource-lists-diff+xml rld +application/riscos +application/rlmi+xml +application/rls-services+xml rs +application/rsd+xml rsd +application/rss+xml rss +application/rtf rtf +application/rtx +application/samlassertion+xml +application/samlmetadata+xml +application/sbml+xml sbml +application/scvp-cv-request scq +application/scvp-cv-response scs +application/scvp-vp-request spq +application/scvp-vp-response spp +application/sdp sdp +application/set-payment +application/set-payment-initiation setpay +application/set-registration +application/set-registration-initiation setreg +application/sgml +application/sgml-open-catalog +application/shf+xml shf +application/sieve +application/simple-filter+xml +application/simple-message-summary +application/simplesymbolcontainer +application/slate +application/smil smi smil +application/smil+xml smi smil +application/soap+fastinfoset +application/soap+xml +application/sparql-query rq +application/sparql-results+xml srx +application/spirits-event+xml +application/srgs gram +application/srgs+xml grxml +application/ssml+xml ssml +application/timestamp-query +application/timestamp-reply +application/tve-trigger +application/ulpfec +application/vemmi +application/vividence.scriptfile +application/vnd.3gpp.bsf+xml +application/vnd.3gpp.pic-bw-large plb +application/vnd.3gpp.pic-bw-small psb +application/vnd.3gpp.pic-bw-var pvb +application/vnd.3gpp.sms +application/vnd.3gpp2.bcmcsinfo+xml +application/vnd.3gpp2.sms +application/vnd.3gpp2.tcap tcap +application/vnd.3m.post-it-notes pwn +application/vnd.accpac.simply.aso aso +application/vnd.accpac.simply.imp imp +application/vnd.acucobol acu +application/vnd.acucorp acutc atc +application/vnd.adobe.air-application-installer-package+zip air +application/vnd.adobe.xdp+xml xdp +application/vnd.adobe.xfdf xfdf +application/vnd.aether.imp +application/vnd.airzip.filesecure.azf azf +application/vnd.airzip.filesecure.azs azs +application/vnd.amazon.ebook azw +application/vnd.americandynamics.acc acc +application/vnd.amiga.ami ami +application/vnd.android.package-archive apk +application/vnd.anser-web-certificate-issue-initiation cii +application/vnd.anser-web-funds-transfer-initiation fti +application/vnd.antix.game-component atx +application/vnd.apple.installer+xml mpkg +application/vnd.arastra.swi swi +application/vnd.audiograph aep +application/vnd.autopackage +application/vnd.avistar+xml +application/vnd.blueice.multipass mpm +application/vnd.bluetooth.ep.oob +application/vnd.bmi bmi +application/vnd.businessobjects rep +application/vnd.cab-jscript +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.cendio.thinlinc.clientconf +application/vnd.chemdraw+xml cdxml +application/vnd.chipnuts.karaoke-mmd mmd +application/vnd.cinderella cdy +application/vnd.cirpack.isdn-ext +application/vnd.claymore cla +application/vnd.clonk.c4group c4d c4f c4g c4p c4u +application/vnd.commerce-battelle +application/vnd.commonspace csp +application/vnd.contact.cmsg cdbcmsg +application/vnd.cosmocaller cmc +application/vnd.crick.clicker clkx +application/vnd.crick.clicker.keyboard clkk +application/vnd.crick.clicker.palette clkp +application/vnd.crick.clicker.template clkt +application/vnd.crick.clicker.wordbank clkw +application/vnd.criticaltools.wbs+xml wbs +application/vnd.ctc-posml pml +application/vnd.ctct.ws+xml +application/vnd.cups-pdf +application/vnd.cups-postscript +application/vnd.cups-ppd ppd +application/vnd.cups-raster +application/vnd.cups-raw +application/vnd.curl.car car +application/vnd.curl.pcurl pcurl +application/vnd.cybank +application/vnd.data-vision.rdz rdz +application/vnd.denovo.fcselayout-link fe_launch +application/vnd.dir-bi.plate-dl-nosuffix +application/vnd.dna dna +application/vnd.dolby.mlp mlp +application/vnd.dolby.mobile.1 +application/vnd.dolby.mobile.2 +application/vnd.dpgraph dpg +application/vnd.dreamfactory dfac +application/vnd.dvb.esgcontainer +application/vnd.dvb.ipdcdftnotifaccess +application/vnd.dvb.ipdcesgaccess +application/vnd.dvb.ipdcroaming +application/vnd.dvb.iptv.alfec-base +application/vnd.dvb.iptv.alfec-enhancement +application/vnd.dvb.notif-aggregate-root+xml +application/vnd.dvb.notif-container+xml +application/vnd.dvb.notif-generic+xml +application/vnd.dvb.notif-ia-msglist+xml +application/vnd.dvb.notif-ia-registration-request+xml +application/vnd.dvb.notif-ia-registration-response+xml +application/vnd.dvb.notif-init+xml +application/vnd.dxr +application/vnd.dynageo geo +application/vnd.ecdis-update +application/vnd.ecowin.chart mag +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.emclient.accessrequest+xml +application/vnd.enliven nml +application/vnd.epson.esf esf +application/vnd.epson.msf msf +application/vnd.epson.quickanime qam +application/vnd.epson.salt slt +application/vnd.epson.ssf ssf +application/vnd.ericsson.quickcall +application/vnd.eszigno3+xml es3 et3 +application/vnd.etsi.aoc+xml +application/vnd.etsi.cug+xml +application/vnd.etsi.iptvcommand+xml +application/vnd.etsi.iptvdiscovery+xml +application/vnd.etsi.iptvprofile+xml +application/vnd.etsi.iptvsad-bc+xml +application/vnd.etsi.iptvsad-cod+xml +application/vnd.etsi.iptvsad-npvr+xml +application/vnd.etsi.iptvueprofile+xml +application/vnd.etsi.mcid+xml +application/vnd.etsi.sci+xml +application/vnd.etsi.simservs+xml +application/vnd.eudora.data +application/vnd.ezpix-album ez2 +application/vnd.ezpix-package ez3 +application/vnd.f-secure.mobile +application/vnd.fdf fdf +application/vnd.fdsn.mseed mseed +application/vnd.fdsn.seed dataless seed +application/vnd.ffsns +application/vnd.fints +application/vnd.flographit gph +application/vnd.fluxtime.clip ftc +application/vnd.font-fontforge-sfd +application/vnd.framemaker book fm frame maker +application/vnd.frogans.fnc fnc +application/vnd.frogans.ltf ltf +application/vnd.fsc.weblaunch fsc +application/vnd.fujitsu.oasys oas +application/vnd.fujitsu.oasys2 oa2 +application/vnd.fujitsu.oasys3 oa3 +application/vnd.fujitsu.oasysgp fg5 +application/vnd.fujitsu.oasysprs bh2 +application/vnd.fujixerox.art-ex +application/vnd.fujixerox.art4 +application/vnd.fujixerox.ddd ddd +application/vnd.fujixerox.docuworks xdw +application/vnd.fujixerox.docuworks.binder xbd +application/vnd.fujixerox.hbpl +application/vnd.fut-misnet +application/vnd.fuzzysheet fzs +application/vnd.genomatix.tuxedo txd +application/vnd.geogebra.file ggb +application/vnd.geogebra.tool ggt +application/vnd.geometry-explorer gex gre +application/vnd.gmx gmx +application/vnd.google-earth.kml+xml kml +application/vnd.google-earth.kmz kmz +application/vnd.grafeq gqf gqs +application/vnd.gridmp +application/vnd.groove-account gac +application/vnd.groove-help ghf +application/vnd.groove-identity-message gim +application/vnd.groove-injector grv +application/vnd.groove-tool-message gtm +application/vnd.groove-tool-template tpl +application/vnd.groove-vcard vcg +application/vnd.handheld-entertainment+xml zmm +application/vnd.hbci hbci +application/vnd.hcl-bireports +application/vnd.hhe.lesson-player les +application/vnd.hp-hpgl hpgl +application/vnd.hp-hpid hpid +application/vnd.hp-hps hps +application/vnd.hp-jlyt jlt +application/vnd.hp-pcl pcl +application/vnd.hp-pclxl pclxl +application/vnd.httphone +application/vnd.hydrostatix.sof-data sfd-hdstx +application/vnd.hzn-3d-crossword x3d +application/vnd.ibm.afplinedata +application/vnd.ibm.electronic-media +application/vnd.ibm.minipay mpy +application/vnd.ibm.modcap afp list3820 listafp +application/vnd.ibm.rights-management irm +application/vnd.ibm.secure-container sc +application/vnd.iccprofile icc icm +application/vnd.igloader igl +application/vnd.immervision-ivp ivp +application/vnd.immervision-ivu ivu +application/vnd.informedcontrol.rms+xml +application/vnd.informix-visionary +application/vnd.intercon.formnet xpw xpx +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp +application/vnd.intu.qbo qbo +application/vnd.intu.qfx qfx +application/vnd.iptc.g2.conceptitem+xml +application/vnd.iptc.g2.knowledgeitem+xml +application/vnd.iptc.g2.newsitem+xml +application/vnd.iptc.g2.packageitem+xml +application/vnd.ipunplugged.rcprofile rcprofile +application/vnd.irepository.package+xml irp +application/vnd.is-xpr xpr +application/vnd.jam jam +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup +application/vnd.jcp.javame.midlet-rms rms +application/vnd.jisp jisp +application/vnd.joost.joda-archive joda +application/vnd.kahootz ktr ktz +application/vnd.kde.karbon karbon +application/vnd.kde.kchart chrt +application/vnd.kde.kformula kfo +application/vnd.kde.kivio flw +application/vnd.kde.kontour kon +application/vnd.kde.kpresenter kpr kpt +application/vnd.kde.kspread ksp +application/vnd.kde.kword kwd kwt +application/vnd.kenameaapp htke +application/vnd.kidspiration kia +application/vnd.kinar kne knp +application/vnd.koan skd skm skp skt +application/vnd.kodak-descriptor sse +application/vnd.liberty-request+xml +application/vnd.llamagraphics.life-balance.desktop lbd +application/vnd.llamagraphics.life-balance.exchange+xml lbe +application/vnd.lotus-1-2-3 123 +application/vnd.lotus-approach apr +application/vnd.lotus-freelance pre +application/vnd.lotus-notes nsf +application/vnd.lotus-organizer org +application/vnd.lotus-screencam scm +application/vnd.lotus-wordpro lwp +application/vnd.macports.portpkg portpkg +application/vnd.marlin.drm.actiontoken+xml +application/vnd.marlin.drm.conftoken+xml +application/vnd.marlin.drm.license+xml +application/vnd.marlin.drm.mdcf +application/vnd.mcd mcd +application/vnd.medcalcdata mc1 +application/vnd.mediastation.cdkey cdkey +application/vnd.meridian-slingshot +application/vnd.mfer mwf +application/vnd.mfmp mfm +application/vnd.micrografx.flo flo +application/vnd.micrografx.igx igx +application/vnd.mif mif +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.mobius.daf daf +application/vnd.mobius.dis dis +application/vnd.mobius.mbk mbk +application/vnd.mobius.mqy mqy +application/vnd.mobius.msl msl +application/vnd.mobius.plc plc +application/vnd.mobius.txf txf +application/vnd.mophun.application mpn +application/vnd.mophun.certificate mpc +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.motorola.iprm +application/vnd.mozilla.xul+xml xul +application/vnd.ms-artgalry cil +application/vnd.ms-asf +application/vnd.ms-cab-compressed cab +application/vnd.ms-excel xla xlb xlc xlm xls xlt xlw +application/vnd.ms-excel.addin.macroenabled.12 xlam +application/vnd.ms-excel.sheet.binary.macroenabled.12 xlsb +application/vnd.ms-excel.sheet.macroenabled.12 xlsm +application/vnd.ms-excel.template.macroenabled.12 xltm +application/vnd.ms-fontobject eot +application/vnd.ms-htmlhelp chm +application/vnd.ms-ims ims +application/vnd.ms-lrm lrm +application/vnd.ms-pki.seccat cat +application/vnd.ms-pki.stl stl +application/vnd.ms-playready.initiator+xml +application/vnd.ms-powerpoint pot pps ppt +application/vnd.ms-powerpoint.addin.macroenabled.12 ppam +application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm +application/vnd.ms-powerpoint.slide.macroenabled.12 sldm +application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm +application/vnd.ms-powerpoint.template.macroenabled.12 potm +application/vnd.ms-project mpp mpt +application/vnd.ms-tnef +application/vnd.ms-wmdrm.lic-chlg-req +application/vnd.ms-wmdrm.lic-resp +application/vnd.ms-wmdrm.meter-chlg-req +application/vnd.ms-wmdrm.meter-resp +application/vnd.ms-word.document.macroenabled.12 docm +application/vnd.ms-word.template.macroenabled.12 dotm +application/vnd.ms-works wcm wdb wks wps +application/vnd.ms-wpl wpl +application/vnd.ms-xpsdocument xps +application/vnd.mseq mseq +application/vnd.msign +application/vnd.multiad.creator +application/vnd.multiad.creator.cif +application/vnd.music-niff +application/vnd.musician mus +application/vnd.muvee.style msty +application/vnd.ncd.control +application/vnd.ncd.reference +application/vnd.nervana +application/vnd.netfpx +application/vnd.neurolanguage.nlu nlu +application/vnd.noblenet-directory nnd +application/vnd.noblenet-sealer nns +application/vnd.noblenet-web nnw +application/vnd.nokia.catalogs +application/vnd.nokia.conml+wbxml +application/vnd.nokia.conml+xml +application/vnd.nokia.iptv.config+xml +application/vnd.nokia.isds-radio-presets +application/vnd.nokia.landmark+wbxml +application/vnd.nokia.landmark+xml +application/vnd.nokia.landmarkcollection+xml +application/vnd.nokia.n-gage.ac+xml +application/vnd.nokia.n-gage.data ngdat +application/vnd.nokia.n-gage.symbian.install n-gage +application/vnd.nokia.ncd +application/vnd.nokia.pcd+wbxml +application/vnd.nokia.pcd+xml +application/vnd.nokia.radio-preset rpst +application/vnd.nokia.radio-presets rpss +application/vnd.novadigm.edm edm +application/vnd.novadigm.edx edx +application/vnd.novadigm.ext ext +application/vnd.oasis.opendocument.chart odc +application/vnd.oasis.opendocument.chart-template otc +application/vnd.oasis.opendocument.database odb +application/vnd.oasis.opendocument.formula odf +application/vnd.oasis.opendocument.formula-template odft +application/vnd.oasis.opendocument.graphics odg +application/vnd.oasis.opendocument.graphics-template otg +application/vnd.oasis.opendocument.image odi +application/vnd.oasis.opendocument.image-template oti +application/vnd.oasis.opendocument.presentation odp +application/vnd.oasis.opendocument.presentation-template otp +application/vnd.oasis.opendocument.spreadsheet ods +application/vnd.oasis.opendocument.spreadsheet-template ots +application/vnd.oasis.opendocument.text odt +application/vnd.oasis.opendocument.text-master odm otm +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +application/vnd.obn +application/vnd.olpc-sugar xo +application/vnd.oma-scws-config +application/vnd.oma-scws-http-request +application/vnd.oma-scws-http-response +application/vnd.oma.bcast.associated-procedure-parameter+xml +application/vnd.oma.bcast.drm-trigger+xml +application/vnd.oma.bcast.imd+xml +application/vnd.oma.bcast.ltkm +application/vnd.oma.bcast.notification+xml +application/vnd.oma.bcast.provisioningtrigger +application/vnd.oma.bcast.sgboot +application/vnd.oma.bcast.sgdd+xml +application/vnd.oma.bcast.sgdu +application/vnd.oma.bcast.simple-symbol-container +application/vnd.oma.bcast.smartcard-trigger+xml +application/vnd.oma.bcast.sprov+xml +application/vnd.oma.bcast.stkm +application/vnd.oma.dcd +application/vnd.oma.dcdc +application/vnd.oma.dd2+xml dd2 +application/vnd.oma.drm.risd+xml +application/vnd.oma.group-usage-list+xml +application/vnd.oma.poc.detailed-progress-report+xml +application/vnd.oma.poc.final-report+xml +application/vnd.oma.poc.groups+xml +application/vnd.oma.poc.invocation-descriptor+xml +application/vnd.oma.poc.optimized-progress-report+xml +application/vnd.oma.xcap-directory+xml +application/vnd.omads-email+xml +application/vnd.omads-file+xml +application/vnd.omads-folder+xml +application/vnd.omaloc-supl-init +application/vnd.openofficeorg.extension oxt +application/vnd.openxmlformats-officedocument.presentationml.presentation pptx +application/vnd.openxmlformats-officedocument.presentationml.slide sldx +application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx +application/vnd.openxmlformats-officedocument.presentationml.template potx +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx +application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx +application/vnd.openxmlformats-officedocument.wordprocessingml.document docx +application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx +application/vnd.osa.netdeploy +application/vnd.osgi.bundle +application/vnd.osgi.dp dp +application/vnd.otps.ct-kip+xml +application/vnd.palm oprc pdb pqa +application/vnd.paos.xml +application/vnd.pg.format str +application/vnd.pg.osasli ei6 +application/vnd.piaccess.application-licence +application/vnd.picsel efif +application/vnd.poc.group-advertisement+xml +application/vnd.pocketlearn plf +application/vnd.powerbuilder6 pbd +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.preminet +application/vnd.previewsystems.box box +application/vnd.proteus.magazine mgz +application/vnd.publishare-delta-tree qps +application/vnd.pvi.ptid1 ptid +application/vnd.pwg-multiplexed +application/vnd.pwg-xhtml-print+xml +application/vnd.qualcomm.brew-app-res +application/vnd.quark.quarkxpress qwd qwt qxb qxd qxl qxt +application/vnd.rapid +application/vnd.recordare.musicxml mxl +application/vnd.recordare.musicxml+xml musicxml +application/vnd.renlearn.rlprint +application/vnd.rim.cod cod +application/vnd.rn-realmedia rm +application/vnd.route66.link66+xml link66 +application/vnd.ruckus.download +application/vnd.s3sms +application/vnd.sbm.cid +application/vnd.sbm.mid2 +application/vnd.scribus +application/vnd.sealed.3df +application/vnd.sealed.csf +application/vnd.sealed.doc +application/vnd.sealed.eml +application/vnd.sealed.mht +application/vnd.sealed.net +application/vnd.sealed.ppt +application/vnd.sealed.tiff +application/vnd.sealed.xls +application/vnd.sealedmedia.softseal.html +application/vnd.sealedmedia.softseal.pdf +application/vnd.seemail see +application/vnd.sema sema +application/vnd.semd semd +application/vnd.semf semf +application/vnd.shana.informed.formdata ifm +application/vnd.shana.informed.formtemplate itp +application/vnd.shana.informed.interchange iif +application/vnd.shana.informed.package ipk +application/vnd.simtech-mindmapper twd twds +application/vnd.smaf mmf +application/vnd.smart.teacher teacher +application/vnd.software602.filler.form+xml +application/vnd.software602.filler.form-xml-zip +application/vnd.solent.sdkm+xml sdkd sdkm +application/vnd.spotfire.dxp dxp +application/vnd.spotfire.sfs sfs +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf +application/vnd.stardivision.calc sdc +application/vnd.stardivision.draw sda +application/vnd.stardivision.impress sdd sdp +application/vnd.stardivision.math sdf smf +application/vnd.stardivision.writer sdw vor +application/vnd.stardivision.writer-global sgl +application/vnd.street-stream +application/vnd.sun.wadl+xml +application/vnd.sun.xml.calc sxc +application/vnd.sun.xml.calc.template stc +application/vnd.sun.xml.draw sxd +application/vnd.sun.xml.draw.template std +application/vnd.sun.xml.impress sxi +application/vnd.sun.xml.impress.template sti +application/vnd.sun.xml.math sxm +application/vnd.sun.xml.writer sxw +application/vnd.sun.xml.writer.global sxg +application/vnd.sun.xml.writer.template stw +application/vnd.sus-calendar sus susp +application/vnd.svd svd +application/vnd.swiftview-ics +application/vnd.symbian.install sis sisx +application/vnd.syncml+xml xsm +application/vnd.syncml.dm+wbxml bdm +application/vnd.syncml.dm+xml xdm +application/vnd.syncml.dm.notification +application/vnd.syncml.ds.notification +application/vnd.tao.intent-module-archive tao +application/vnd.tmobile-livetv tmo +application/vnd.trid.tpt tpt +application/vnd.triscape.mxs mxs +application/vnd.trueapp tra +application/vnd.truedoc +application/vnd.ufdl ufd ufdl +application/vnd.uiq.theme utz +application/vnd.umajin umj +application/vnd.unity unityweb +application/vnd.uoml+xml uoml +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal +application/vnd.vcx vcx +application/vnd.vd-study +application/vnd.vectorworks +application/vnd.vidsoft.vidconference +application/vnd.visio vsd vss vst vsw +application/vnd.visionary vis +application/vnd.vividence.scriptfile +application/vnd.vsf vsf +application/vnd.wap.sic +application/vnd.wap.slc +application/vnd.wap.wbxml wbxml +application/vnd.wap.wmlc wmlc +application/vnd.wap.wmlscriptc wmlsc +application/vnd.webturbo wtb +application/vnd.wfa.wsc +application/vnd.wmc +application/vnd.wmf.bootstrap +application/vnd.wordperfect wpd +application/vnd.wqd wqd +application/vnd.wrq-hp3000-labelled +application/vnd.wt.stf stf +application/vnd.wv.csp+wbxml +application/vnd.wv.csp+xml +application/vnd.wv.ssp+xml +application/vnd.xara xar +application/vnd.xfdl xfdl +application/vnd.xfdl.webform +application/vnd.xmi+xml +application/vnd.xmpie.cpkg +application/vnd.xmpie.dpkg +application/vnd.xmpie.plan +application/vnd.xmpie.ppkg +application/vnd.xmpie.xlim +application/vnd.yamaha.hv-dic hvd +application/vnd.yamaha.hv-script hvs +application/vnd.yamaha.hv-voice hvp +application/vnd.yamaha.openscoreformat osf +application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg +application/vnd.yamaha.smaf-audio saf +application/vnd.yamaha.smaf-phrase spf +application/vnd.yellowriver-custom-menu cmp +application/vnd.zul zir zirz +application/vnd.zzazz.deck+xml zaz +application/voicexml+xml vxml +application/watcherinfo+xml +application/whoispp-query +application/whoispp-response +application/winhlp hlp +application/wita +application/wordperfect wpd +application/wordperfect5.1 wp5 +application/wsdl+xml wsdl +application/wspolicy+xml wspolicy +application/x-123 wk +application/x-abiword abw +application/x-ace-compressed ace +application/x-apple-diskimage dmg +application/x-authorware-bin aab u32 vox x32 +application/x-authorware-map aam +application/x-authorware-seg aas +application/x-bcpio bcpio +application/x-bittorrent torrent +application/x-bzip bz +application/x-bzip2 boz bz2 +application/x-cdf cdf +application/x-cdlink vcd +application/x-chat chat +application/x-chess-pgn pgn +application/x-compress +application/x-cpio cpio +application/x-csh csh +application/x-debian-package deb udeb +application/x-director cct cst cxt dcr dir dxr fgd swa w3d +application/x-dms dms +application/x-doom wad +application/x-dtbncx+xml ncx +application/x-dtbook+xml dtb +application/x-dtbresource+xml res +application/x-dvi dvi +application/x-flac flac +application/x-font gsf pcf pcf.Z pfa pfb +application/x-font-bdf bdf +application/x-font-dos +application/x-font-framemaker +application/x-font-ghostscript gsf +application/x-font-libgrx +application/x-font-linux-psf psf +application/x-font-otf otf +application/x-font-pcf pcf +application/x-font-snf snf +application/x-font-speedo +application/x-font-sunos-news +application/x-font-ttf ttc ttf +application/x-font-type1 afm pfa pfb pfm +application/x-font-vfont +application/x-freemind mm +application/x-futuresplash spl +application/x-gnumeric gnumeric +application/x-go-sgf sgf +application/x-graphing-calculator gcf +application/x-gtar gtar taz tgz +application/x-gzip +application/x-hdf hdf +application/x-ica ica +application/x-internet-signup ins isp +application/x-iphone iii +application/x-iso9660-image iso +application/x-java-jnlp-file jnlp +application/x-javascript js +application/x-jmol jmz +application/x-kchart chrt +application/x-killustrator kil +application/x-koan skd skm skp skt +application/x-kpresenter kpr kpt +application/x-kspread ksp +application/x-kword kwd kwt +application/x-latex latex +application/x-lha lha +application/x-lzh lzh +application/x-lzx lzx +application/x-maker book fb fbdoc fm frame frm maker +application/x-mif mif +application/x-mobipocket-ebook mobi prc +application/x-ms-application application +application/x-ms-wmd wmd +application/x-ms-wmz wmz +application/x-ms-xbap xbap +application/x-msaccess mdb +application/x-msbinder obd +application/x-mscardfile crd +application/x-msclip clp +application/x-msdos-program bat com dll exe +application/x-msdownload bat com dll exe msi +application/x-msi msi +application/x-msmediaview m13 m14 mvb +application/x-msmetafile wmf +application/x-msmoney mny +application/x-mspublisher pub +application/x-msschedule scd +application/x-msterminal trm +application/x-mswrite wri +application/x-netcdf cdf nc +application/x-ns-proxy-autoconfig pac +application/x-nwc nwc +application/x-object o +application/x-oz-application oza +application/x-pkcs12 p12 pfx +application/x-pkcs7-certificates p7b spc +application/x-pkcs7-certreqresp p7r +application/x-pkcs7-crl crl +application/x-python-code pyc pyo +application/x-quicktimeplayer qtl +application/x-rar-compressed rar +application/x-redhat-package-manager rpm +application/x-sh sh +application/x-shar shar +application/x-shockwave-flash swf swfl +application/x-silverlight-app xap +application/x-stuffit sit sitx +application/x-stuffitx sitx +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-tar tar +application/x-tcl tcl +application/x-tex tex +application/x-tex-gf gf +application/x-tex-pk pk +application/x-tex-tfm tfm +application/x-texinfo texi texinfo +application/x-trash % bak old sik ~ +application/x-troff roff t tr +application/x-troff-man man +application/x-troff-me me +application/x-troff-ms ms +application/x-ustar ustar +application/x-wais-source src +application/x-wingz wz +application/x-x509-ca-cert crt der +application/x-xcf xcf +application/x-xfig fig +application/x-xpinstall xpi +application/x400-bp +application/xcap-att+xml +application/xcap-caps+xml +application/xcap-el+xml +application/xcap-error+xml +application/xcap-ns+xml +application/xcon-conference-info+xml +application/xcon-conference-info-diff+xml +application/xenc+xml xenc +application/xhtml+xml xht xhtml +application/xhtml-voice+xml +application/xml xml xsl +application/xml-dtd dtd +application/xml-external-parsed-entity +application/xmpp+xml +application/xop+xml xop +application/xslt+xml xslt +application/xspf+xml xspf +application/xv+xml mxml xhvml xvm xvml +application/zip zip +audio/32kadpcm +audio/3gpp +audio/3gpp2 +audio/ac3 +audio/adpcm adp +audio/amr +audio/amr-wb +audio/amr-wb+ +audio/asc +audio/basic au snd +audio/bv16 +audio/bv32 +audio/clearmode +audio/cn +audio/dat12 +audio/dls +audio/dsr-es201108 +audio/dsr-es202050 +audio/dsr-es202211 +audio/dsr-es202212 +audio/dvi4 +audio/eac3 +audio/evrc +audio/evrc-qcp +audio/evrc0 +audio/evrc1 +audio/evrcb +audio/evrcb0 +audio/evrcb1 +audio/evrcwb +audio/evrcwb0 +audio/evrcwb1 +audio/example +audio/g719 +audio/g722 +audio/g7221 +audio/g723 +audio/g726-16 +audio/g726-24 +audio/g726-32 +audio/g726-40 +audio/g728 +audio/g729 +audio/g7291 +audio/g729d +audio/g729e +audio/gsm +audio/gsm-efr +audio/ilbc +audio/l16 +audio/l20 +audio/l24 +audio/l8 +audio/lpc +audio/midi kar mid midi rmi +audio/mobile-xmf +audio/mp4 mp4a +audio/mp4a-latm +audio/mpa +audio/mpa-robust +audio/mpeg m2a m3a m4a mp2 mp2a mp3 mpega mpga +audio/mpeg4-generic +audio/mpegurl m3u +audio/ogg oga ogg spx +audio/parityfec +audio/pcma +audio/pcma-wb +audio/pcmu +audio/pcmu-wb +audio/prs.sid sid +audio/qcelp +audio/red +audio/rtp-enc-aescm128 +audio/rtp-midi +audio/rtx +audio/smv +audio/smv-qcp +audio/smv0 +audio/sp-midi +audio/t140c +audio/t38 +audio/telephone-event +audio/tone +audio/ulpfec +audio/vdvi +audio/vmr-wb +audio/vnd.3gpp.iufp +audio/vnd.4sb +audio/vnd.audiokoz +audio/vnd.celp +audio/vnd.cisco.nse +audio/vnd.cmles.radio-events +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 +audio/vnd.digital-winds eol +audio/vnd.dlna.adts +audio/vnd.dolby.heaac.1 +audio/vnd.dolby.heaac.2 +audio/vnd.dolby.mlp +audio/vnd.dolby.mps +audio/vnd.dolby.pl2 +audio/vnd.dolby.pl2x +audio/vnd.dolby.pl2z +audio/vnd.dts dts +audio/vnd.dts.hd dtshd +audio/vnd.everad.plj +audio/vnd.hns.audio +audio/vnd.lucent.voice lvp +audio/vnd.ms-playready.media.pya pya +audio/vnd.nokia.mobile-xmf +audio/vnd.nortel.vbk +audio/vnd.nuera.ecelp4800 ecelp4800 +audio/vnd.nuera.ecelp7470 ecelp7470 +audio/vnd.nuera.ecelp9600 ecelp9600 +audio/vnd.octel.sbc +audio/vnd.qcelp +audio/vnd.rhetorex.32kadpcm +audio/vnd.sealedmedia.softseal.mpeg +audio/vnd.vmx.cvsd +audio/vorbis +audio/vorbis-config +audio/x-aac aac +audio/x-aiff aif aifc aiff +audio/x-gsm gsm +audio/x-mpegurl m3u +audio/x-ms-wax wax +audio/x-ms-wma wma +audio/x-pn-realaudio ra ram rm +audio/x-pn-realaudio-plugin rmp +audio/x-realaudio ra +audio/x-scpls pls +audio/x-sd2 sd2 +audio/x-wav wav +chemical/x-alchemy alc +chemical/x-cache cac cache +chemical/x-cache-csf csf +chemical/x-cactvs-binary cascii cbin ctab +chemical/x-cdx cdx +chemical/x-cerius cer +chemical/x-chem3d c3d +chemical/x-chemdraw chm +chemical/x-cif cif +chemical/x-cmdf cmdf +chemical/x-cml cml +chemical/x-compass cpa +chemical/x-crossfire bsd +chemical/x-csml csm csml +chemical/x-ctx ctx +chemical/x-cxf cef cxf +chemical/x-embl-dl-nucleotide emb embl +chemical/x-galactic-spc spc +chemical/x-gamess-input gam gamin inp +chemical/x-gaussian-checkpoint fch fchk +chemical/x-gaussian-cube cub +chemical/x-gaussian-input gau gjc gjf +chemical/x-gaussian-log gal +chemical/x-gcg8-sequence gcg +chemical/x-genbank gen +chemical/x-hin hin +chemical/x-isostar ist istr +chemical/x-jcamp-dx dx jdx +chemical/x-kinemage kin +chemical/x-macmolecule mcm +chemical/x-macromodel-input mmd mmod +chemical/x-mdl-molfile mol +chemical/x-mdl-rdfile rd +chemical/x-mdl-rxnfile rxn +chemical/x-mdl-sdfile sd sdf +chemical/x-mdl-tgf tgf +chemical/x-mmcif mcif +chemical/x-mol2 mol2 +chemical/x-molconn-Z b +chemical/x-mopac-graph gpt +chemical/x-mopac-input dat mop mopcrt mpc zmt +chemical/x-mopac-out moo +chemical/x-mopac-vib mvb +chemical/x-ncbi-asn1 asn +chemical/x-ncbi-asn1-ascii ent prt +chemical/x-ncbi-asn1-binary aso val +chemical/x-ncbi-asn1-spec asn +chemical/x-pdb ent pdb +chemical/x-rosdal ros +chemical/x-swissprot sw +chemical/x-vamas-iso14976 vms +chemical/x-vmd vmd +chemical/x-xtel xtel +chemical/x-xyz xyz +image/bmp bmp +image/cgm cgm +image/example +image/fits +image/g3fax g3 +image/gif gif +image/ief ief +image/jp2 +image/jpeg jpe jpeg jpg +image/jpm +image/jpx +image/naplps +image/pcx pcx +image/png png +image/prs.btif btif +image/prs.pti +image/svg+xml svg svgz +image/t38 +image/tiff tif tiff +image/tiff-fx +image/vnd.adobe.photoshop psd +image/vnd.cns.inf2 +image/vnd.djvu djv djvu +image/vnd.dwg dwg +image/vnd.dxf dxf +image/vnd.fastbidsheet fbs +image/vnd.fpx fpx +image/vnd.fst fst +image/vnd.fujixerox.edmics-mmr mmr +image/vnd.fujixerox.edmics-rlc rlc +image/vnd.globalgraphics.pgb +image/vnd.microsoft.icon +image/vnd.mix +image/vnd.ms-modi mdi +image/vnd.net-fpx npx +image/vnd.radiance +image/vnd.sealed.png +image/vnd.sealedmedia.softseal.gif +image/vnd.sealedmedia.softseal.jpg +image/vnd.svf +image/vnd.wap.wbmp wbmp +image/vnd.xiff xif +image/x-cmu-raster ras +image/x-cmx cmx +image/x-coreldraw cdr +image/x-coreldrawpattern pat +image/x-coreldrawtemplate cdt +image/x-corelphotopaint cpt +image/x-freehand fh fh4 fh5 fh7 fhc +image/x-icon ico +image/x-jg art +image/x-jng jng +image/x-ms-bmp bmp +image/x-pcx pcx +image/x-photoshop psd +image/x-pict pct pic +image/x-portable-anymap pnm +image/x-portable-bitmap pbm +image/x-portable-graymap pgm +image/x-portable-pixmap ppm +image/x-rgb rgb +image/x-xbitmap xbm +image/x-xpixmap xpm +image/x-xwindowdump xwd +message/cpim +message/delivery-status +message/disposition-notification +message/example +message/external-body +message/global +message/global-delivery-status +message/global-disposition-notification +message/global-headers +message/http +message/imdn+xml +message/news +message/partial +message/rfc822 eml mime +message/s-http +message/sip +message/sipfrag +message/tracking-status +message/vnd.si.simp +model/example +model/iges iges igs +model/mesh mesh msh silo +model/vnd.dwf dwf +model/vnd.flatland.3dml +model/vnd.gdl gdl +model/vnd.gs-gdl +model/vnd.gs.gdl +model/vnd.gtw gtw +model/vnd.moml+xml +model/vnd.mts mts +model/vnd.parasolid.transmit.binary +model/vnd.parasolid.transmit.text +model/vnd.vtu vtu +model/vrml vrml wrl +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/example +multipart/form-data +multipart/header-set +multipart/mixed +multipart/parallel +multipart/related +multipart/report +multipart/signed +multipart/voice-message +text/calendar ics icz ifb +text/comma-separated-values csv +text/css css +text/csv csv +text/directory +text/dns +text/ecmascript +text/enriched +text/example +text/h323 323 +text/html htm html shtml +text/iuls uls +text/javascript +text/mathml mml +text/parityfec +text/plain asc conf def diff in list log pot text txt +text/prs.fallenstein.rst +text/prs.lines.tag dsc +text/red +text/rfc822-headers +text/richtext rtx +text/rtf rtf +text/rtp-enc-aescm128 +text/rtx +text/scriptlet sct wsc +text/sgml sgm sgml +text/t140 +text/tab-separated-values tsv +text/texmacs tm ts +text/troff man me ms roff t tr +text/ulpfec +text/uri-list uri uris urls +text/vnd.abc +text/vnd.curl curl +text/vnd.curl.dcurl dcurl +text/vnd.curl.mcurl mcurl +text/vnd.curl.scurl scurl +text/vnd.dmclientscript +text/vnd.esmertec.theme-descriptor +text/vnd.fly fly +text/vnd.fmi.flexstor flx +text/vnd.graphviz gv +text/vnd.in3d.3dml 3dml +text/vnd.in3d.spot spot +text/vnd.iptc.newsml +text/vnd.iptc.nitf +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage +text/vnd.net2phone.commcenter.command +text/vnd.si.uricatalogue +text/vnd.sun.j2me.app-descriptor jad +text/vnd.trolltech.linguist +text/vnd.wap.si +text/vnd.wap.sl +text/vnd.wap.wml wml +text/vnd.wap.wmlscript wmls +text/x-asm asm s +text/x-bibtex bib +text/x-c c cc cpp cxx dic h hh +text/x-c++hdr h++ hh hpp hxx +text/x-c++src c++ cc cpp cxx +text/x-chdr h +text/x-csh csh +text/x-csrc c +text/x-fortran f f77 f90 for +text/x-haskell hs +text/x-java java +text/x-java-source java +text/x-literate-haskell lhs +text/x-moc moc +text/x-pascal p pas +text/x-pcs-gcd gcd +text/x-perl pl pm +text/x-psp psp +text/x-python py +text/x-setext etx +text/x-sh sh +text/x-tcl tcl tk +text/x-tex cls ltx sty tex +text/x-uuencode uu +text/x-vcalendar vcs +text/x-vcard vcf +text/xml +text/xml-external-parsed-entity +video/3gpp 3gp +video/3gpp-tt +video/3gpp2 3g2 +video/bmpeg +video/bt656 +video/celb +video/dl dl +video/dv dif dv +video/example +video/fli fli +video/gl gl +video/h261 h261 +video/h263 h263 +video/h263-1998 +video/h263-2000 +video/h264 h264 +video/jpeg jpgv +video/jpeg2000 +video/jpm jpgm jpm +video/mj2 mj2 mjp2 +video/mp1s +video/mp2p +video/mp2t +video/mp4 mp4 mp4v mpg4 +video/mp4v-es +video/mpeg m1v m2v mpe mpeg mpg +video/mpeg4-generic +video/mpv +video/nv +video/ogg ogv +video/parityfec +video/pointer +video/quicktime mov qt +video/raw +video/rtp-enc-aescm128 +video/rtx +video/smpte292m +video/ulpfec +video/vc1 +video/vnd.cctv +video/vnd.dlna.mpeg-tts +video/vnd.fvt fvt +video/vnd.hns.video +video/vnd.iptvforum.1dparityfec-1010 +video/vnd.iptvforum.1dparityfec-2005 +video/vnd.iptvforum.2dparityfec-1010 +video/vnd.iptvforum.2dparityfec-2005 +video/vnd.iptvforum.ttsavc +video/vnd.iptvforum.ttsmpeg2 +video/vnd.motorola.video +video/vnd.motorola.videop +video/vnd.mpegurl m4u mxu +video/vnd.ms-playready.media.pyv pyv +video/vnd.nokia.interleaved-multimedia +video/vnd.nokia.videovoip +video/vnd.objectvideo +video/vnd.sealed.mpeg1 +video/vnd.sealed.mpeg4 +video/vnd.sealed.swf +video/vnd.sealedmedia.softseal.mov +video/vnd.vivo viv +video/x-f4v f4v +video/x-fli fli +video/x-flv flv +video/x-la-asf lsf lsx +video/x-m4v m4v +video/x-mng mng +video/x-ms-asf asf asx +video/x-ms-wm wm +video/x-ms-wmv wmv +video/x-ms-wmx wmx +video/x-ms-wvx wvx +video/x-msvideo avi +video/x-sgi-movie movie +x-conference/x-cooltalk ice +x-world/x-vrml vrm vrml wrl + + + +## calibre specific mime types + +text/fb2+xml fb2 +text/x-sony-bbeb+xml lrs +application/x-sony-bbeb lrf lrx +application/adobe-page-template+xml xpgt +application/x-font-opentype otf +application/x-font-truetype ttf +application/x-mobipocket-ebook mobi prc azw +application/x-cbz cbz +application/x-cbr cbr +application/x-cb7 cb7 +application/x-koboreader-ebook kobo +image/wmf wmf diff --git a/resources/recipes/180.recipe b/resources/recipes/180.recipe new file mode 100644 index 0000000000..5158bb99e0 --- /dev/null +++ b/resources/recipes/180.recipe @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +180.com.uy +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Noticias(BasicNewsRecipe): + title = '180.com.uy' + __author__ = 'Gustavo Azambuja' + description = 'Noticias de Uruguay' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 5 + encoding = 'utf-8' + remove_javascript = True + no_stylesheets = True + + oldest_article = 2 + max_articles_per_feed = 100 + keep_only_tags = [dict(name='div', attrs={'class':'tef-md tef-md-seccion-sociedad'})] + remove_tags = [ + dict(name=['object','link']) + ] + + remove_attributes = ['width','height', 'style', 'font', 'color'] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + p {font-family:Arial,Helvetica,sans-serif;} + ''' + feeds = [ + (u'Titulares', u'http://www.180.com.uy/feed.php') + ] + + def get_cover_url(self): + return 'http://www.180.com.uy/tplef/img/logo.gif' + + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup + diff --git a/resources/recipes/abc_au.recipe b/resources/recipes/abc_au.recipe new file mode 100644 index 0000000000..1330f8e4b5 --- /dev/null +++ b/resources/recipes/abc_au.recipe @@ -0,0 +1,54 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Dean Cording' +''' +abc.net.au/news +''' +import re +from calibre.web.feeds.recipes import BasicNewsRecipe + +class ABCNews(BasicNewsRecipe): + title = 'ABC News' + __author__ = 'Dean Cording' + description = 'News from Australia' + masthead_url = 'http://www.abc.net.au/news/assets/v5/images/common/logo-news.png' + cover_url = 'http://www.abc.net.au/news/assets/v5/images/common/logo-news.png' + + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = False + #delay = 1 + use_embedded_content = False + encoding = 'utf8' + publisher = 'ABC News' + category = 'News, Australia, World' + language = 'en_AU' + publication_type = 'newsportal' + preprocess_regexps = [(re.compile(r'', re.DOTALL), lambda m: '')] + conversion_options = { + 'comments' : description + ,'tags' : category + ,'language' : language + ,'publisher' : publisher + ,'linearize_tables': False + } + + keep_only_tags = dict(id='article') + + remove_tags = [dict(attrs={'class':['related', 'tags']}), + dict(id='statepromo') + ] + + remove_attributes = ['width','height'] + + feeds = [ + ('Top Stories', 'http://www.abc.net.au/news/syndicate/topstoriesrss.xml'), + ('Canberra', 'http://www.abc.net.au/news/indexes/idx-act/rss.xml'), + ('Sydney', 'http://www.abc.net.au/news/indexes/sydney/rss.xml'), + ('Melbourne', 'http://www.abc.net.au/news/indexes/melbourne/rss.xml'), + ('Brisbane', 'http://www.abc.net.au/news/indexes/brisbane/rss.xml'), + ('Perth', 'http://www.abc.net.au/news/indexes/perth/rss.xml'), + ('Australia', 'http://www.abc.net.au/news/indexes/idx-australia/rss.xml'), + ('World', 'http://www.abc.net.au/news/indexes/world/rss.xml'), + ('Business', 'http://www.abc.net.au/news/indexes/business/rss.xml'), + ('Science and Technology', 'http://www.abc.net.au/news/tag/science-and-technology/rss.xml'), + ] diff --git a/resources/recipes/al_jazeera.recipe b/resources/recipes/al_jazeera.recipe index fd5f07973d..133a793191 100644 --- a/resources/recipes/al_jazeera.recipe +++ b/resources/recipes/al_jazeera.recipe @@ -1,10 +1,8 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' +__copyright__ = '2009-2010, Darko Miletic ' ''' -aljazeera.net +english.aljazeera.net ''' from calibre.web.feeds.news import BasicNewsRecipe @@ -12,41 +10,59 @@ class AlJazeera(BasicNewsRecipe): title = 'Al Jazeera in English' __author__ = 'Darko Miletic' description = 'News from Middle East' - language = 'en' - + language = 'en' publisher = 'Al Jazeera' category = 'news, politics, middle east' - simultaneous_downloads = 1 - delay = 4 - oldest_article = 1 + delay = 1 + oldest_article = 2 max_articles_per_feed = 100 no_stylesheets = True encoding = 'iso-8859-1' - remove_javascript = True use_embedded_content = False + extra_css = """ + body{font-family: Arial,sans-serif} + #ctl00_cphBody_dvSummary{font-weight: bold} + #dvArticleDate{font-size: small; color: #999999} + """ + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } - html2lrf_options = [ - '--comment', description - , '--category', category - , '--publisher', publisher - , '--ignore-tables' - ] - - html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\nlinearize_table=True' - - keep_only_tags = [dict(name='div', attrs={'id':'ctl00_divContent'})] + keep_only_tags = [ + dict(attrs={'id':['DetailedTitle','ctl00_cphBody_dvSummary','dvArticleDate']}) + ,dict(name='td',attrs={'class':'DetailedSummary'}) + ] remove_tags = [ - dict(name=['object','link']) + dict(name=['object','link','table','meta','base','iframe','embed']) ,dict(name='td', attrs={'class':['MostActiveDescHeader','MostActiveDescBody']}) ] feeds = [(u'AL JAZEERA ENGLISH (AJE)', u'http://english.aljazeera.net/Services/Rss/?PostingId=2007731105943979989' )] + def get_article_url(self, article): + artlurl = article.get('link', None) + return artlurl.replace('http://english.aljazeera.net//','http://english.aljazeera.net/') + def preprocess_html(self, soup): for item in soup.findAll(style=True): del item['style'] for item in soup.findAll(face=True): del item['face'] + td = soup.find('td',attrs={'class':'DetailedSummary'}) + if td: + td.name = 'div' + spn = soup.find('span',attrs={'id':'DetailedTitle'}) + if spn: + spn.name='h1' + for itm in soup.findAll('span', attrs={'id':['dvArticleDate','ctl00_cphBody_lblDate']}): + itm.name = 'div' + for alink in soup.findAll('a'): + if alink.string is not None: + tstr = alink.string + alink.replaceWith(tstr) return soup diff --git a/resources/recipes/animal_politico.recipe b/resources/recipes/animal_politico.recipe new file mode 100644 index 0000000000..f48587ea94 --- /dev/null +++ b/resources/recipes/animal_politico.recipe @@ -0,0 +1,111 @@ +#!/usr/bin/python +# encoding: utf-8 + +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1290663986(BasicNewsRecipe): + title = u'Animal Pol\u00EDtico' + publisher = u'Animal Pol\u00EDtico' + category = u'News, Mexico' + description = u'Noticias Pol\u00EDticas' + __author__ = 'leamsi' + masthead_url = 'http://www.animalpolitico.com/wp-content/themes/animal_mu/images/logo.png' + oldest_article = 1 + max_articles_per_feed = 100 + language = 'es' + + #feeds = [(u'Animal Politico', u'http://www.animalpolitico.com/feed/')] + + remove_tags_before = dict(name='div', id='main') + remove_tags = [dict(name='div', attrs={'class':'fb-like-button'})] + keep_only_tags = [dict(name='h1', attrs={'class':'entry-title'}), + dict(name='div', attrs={'class':'entry-content'})] + remove_javascript = True + INDEX = 'http://www.animalpolitico.com/' + + def generic_parse(self, soup): + articles = [] + for entry in soup.findAll(lambda tag: tag.name == 'li' and tag.has_key('class') and tag['class'].find('hentry') != -1): #soup.findAll('li', 'hentry'): + article_url = entry.a['href'] + '?print=yes' + article_title= entry.find('h3', 'entry-title') + article_title= self.tag_to_string(article_title) + article_date = entry.find('span', 'the-time') + article_date = self.tag_to_string(article_date) + article_desc = self.tag_to_string(entry.find('p')) + + #print 'Article:',article_title, article_date,article_url + #print entry['class'] + + articles.append({'title' : article_title, + 'date' : article_date, + 'description' : article_desc, + 'url' : article_url}) + # Avoid including the multimedia stuff. + if entry['class'].find('last') != -1: + break + + return articles + + def plumaje_parse(self, soup): + articles = [] + blogs_soup = soup.find(lambda tag: tag.name == 'ul' and tag.has_key('class') and tag['class'].find('bloglist-fecha') != -1) + for entry in blogs_soup.findAll('li'): + article_title = entry.p + article_url = article_title.a['href'] + '?print=yes' + article_date = article_title.nextSibling + article_title = self.tag_to_string(article_title) + article_date = self.tag_to_string(article_date).replace(u'Last Updated: ', '') + article_desc = self.tag_to_string(entry.find('h4')) + + #print 'Article:',article_title, article_date,article_url + articles.append({'title' : article_title, + 'date' : article_date, + 'description' : article_desc, + 'url' : article_url}) + + return articles + + def boca_parse(self, soup): + articles = [] + for entry in soup.findAll(lambda tag: tag.name == 'div' and tag.has_key('class') and tag['class'].find('hentry') != -1): #soup.findAll('li', 'hentry'): + article_title= entry.find('h2', 'entry-title') + article_url = article_title.a['href'] + '?print=yes' + article_title= self.tag_to_string(article_title) + article_date = entry.find('span', 'entry-date') + article_date = self.tag_to_string(article_date) + article_desc = self.tag_to_string(entry.find('div', 'entry-content')) + + #print 'Article:',article_title, article_date,article_url + #print entry['class'] + + articles.append({'title' : article_title, + 'date' : article_date, + 'description' : article_desc, + 'url' : article_url}) + # Avoid including the multimedia stuff. + if entry['class'].find('last') != -1: + break + + return articles + + + + + def parse_index(self): + gobierno_soup = self.index_to_soup(self.INDEX+'gobierno/') + congreso_soup = self.index_to_soup(self.INDEX+'congreso/') + seguridad_soup = self.index_to_soup(self.INDEX+'seguridad/') + comunidad_soup = self.index_to_soup(self.INDEX+'comunidad/') + plumaje_soup = self.index_to_soup(self.INDEX+'plumaje/') + la_boca_del_lobo_soup = self.index_to_soup(self.INDEX+'category/la-boca-del-lobo/') + + gobierno_articles = self.generic_parse(gobierno_soup) + congreso_articles = self.generic_parse(congreso_soup) + seguridad_articles = self.generic_parse(seguridad_soup) + comunidad_articles = self.generic_parse(comunidad_soup) + plumaje_articles = self.plumaje_parse(plumaje_soup) + la_boca_del_lobo_articles = self.boca_parse(la_boca_del_lobo_soup) + + + return [ (u'Gobierno', gobierno_articles), (u'Congreso', congreso_articles), (u'Seguridad', seguridad_articles), + (u'Comunidad', comunidad_articles), (u'Plumaje', plumaje_articles), (u'La Boca del Lobo', la_boca_del_lobo_articles), ] diff --git a/resources/recipes/arcamax.recipe b/resources/recipes/arcamax.recipe new file mode 100644 index 0000000000..39fa199cc3 --- /dev/null +++ b/resources/recipes/arcamax.recipe @@ -0,0 +1,110 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = 'Copyright 2010 Starson17' +''' +www.arcamax.com +''' +from calibre.web.feeds.news import BasicNewsRecipe + +class Arcamax(BasicNewsRecipe): + title = 'Arcamax' + __author__ = 'Starson17' + __version__ = '1.03' + __date__ = '25 November 2010' + description = u'Family Friendly Comics - Customize for more days/comics: Defaults to 7 days, 25 comics - 20 general, 5 editorial.' + category = 'news, comics' + language = 'en' + use_embedded_content= False + no_stylesheets = True + remove_javascript = True + cover_url = 'http://www.arcamax.com/images/pub/amuse/leftcol/zits.jpg' + + ####### USER PREFERENCES - SET COMICS AND NUMBER OF COMICS TO RETRIEVE ######## + num_comics_to_get = 7 + # CHOOSE COMIC STRIPS BELOW - REMOVE COMMENT '# ' FROM IN FRONT OF DESIRED STRIPS + + conversion_options = {'linearize_tables' : True + , 'comment' : description + , 'tags' : category + , 'language' : language + } + + keep_only_tags = [dict(name='div', attrs={'class':['toon']}), + ] + + def parse_index(self): + feeds = [] + for title, url in [ + ######## COMICS - GENERAL ######## + #(u"9 Chickweed Lane", u"http://www.arcamax.com/ninechickweedlane"), + #(u"Agnes", u"http://www.arcamax.com/agnes"), + #(u"Andy Capp", u"http://www.arcamax.com/andycapp"), + (u"BC", u"http://www.arcamax.com/bc"), + #(u"Baby Blues", u"http://www.arcamax.com/babyblues"), + #(u"Beetle Bailey", u"http://www.arcamax.com/beetlebailey"), + (u"Blondie", u"http://www.arcamax.com/blondie"), + #u"Boondocks", u"http://www.arcamax.com/boondocks"), + #(u"Cathy", u"http://www.arcamax.com/cathy"), + #(u"Daddys Home", u"http://www.arcamax.com/daddyshome"), + (u"Dilbert", u"http://www.arcamax.com/dilbert"), + #(u"Dinette Set", u"http://www.arcamax.com/thedinetteset"), + (u"Dog Eat Doug", u"http://www.arcamax.com/dogeatdoug"), + (u"Doonesbury", u"http://www.arcamax.com/doonesbury"), + #(u"Dustin", u"http://www.arcamax.com/dustin"), + (u"Family Circus", u"http://www.arcamax.com/familycircus"), + (u"Garfield", u"http://www.arcamax.com/garfield"), + #(u"Get Fuzzy", u"http://www.arcamax.com/getfuzzy"), + #(u"Girls and Sports", u"http://www.arcamax.com/girlsandsports"), + #(u"Hagar the Horrible", u"http://www.arcamax.com/hagarthehorrible"), + #(u"Heathcliff", u"http://www.arcamax.com/heathcliff"), + #(u"Jerry King Cartoons", u"http://www.arcamax.com/humorcartoon"), + #(u"Luann", u"http://www.arcamax.com/luann"), + #(u"Momma", u"http://www.arcamax.com/momma"), + #(u"Mother Goose and Grimm", u"http://www.arcamax.com/mothergooseandgrimm"), + (u"Mutts", u"http://www.arcamax.com/mutts"), + #(u"Non Sequitur", u"http://www.arcamax.com/nonsequitur"), + #(u"Pearls Before Swine", u"http://www.arcamax.com/pearlsbeforeswine"), + #(u"Pickles", u"http://www.arcamax.com/pickles"), + #(u"Red and Rover", u"http://www.arcamax.com/redandrover"), + #(u"Rubes", u"http://www.arcamax.com/rubes"), + #(u"Rugrats", u"http://www.arcamax.com/rugrats"), + (u"Speed Bump", u"http://www.arcamax.com/speedbump"), + (u"Wizard of Id", u"http://www.arcamax.com/wizardofid"), + (u"Dilbert", u"http://www.arcamax.com/dilbert"), + (u"Zits", u"http://www.arcamax.com/zits"), + ]: + articles = self.make_links(url) + if articles: + feeds.append((title, articles)) + return feeds + + def make_links(self, url): + title = 'Temp' + current_articles = [] + pages = range(1, self.num_comics_to_get+1) + for page in pages: + page_soup = self.index_to_soup(url) + if page_soup: + title = page_soup.find(name='div', attrs={'class':'toon'}).p.img['alt'] + page_url = url + prev_page_url = 'http://www.arcamax.com' + page_soup.find('a', attrs={'class':'next'}, text='Previous').parent['href'] + current_articles.append({'title': title, 'url': page_url, 'description':'', 'date':''}) + url = prev_page_url + current_articles.reverse() + return current_articles + + def preprocess_html(self, soup): + main_comic = soup.find('p',attrs={'class':'m0'}) + if main_comic.a['target'] == '_blank': + main_comic.a.img['id'] = 'main_comic' + return soup + + extra_css = ''' + h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} + h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} + img#main_comic {max-width:100%; min-width:100%;} + p{font-family:Arial,Helvetica,sans-serif;font-size:small;} + body{font-family:Helvetica,Arial,sans-serif;font-size:small;} + ''' + diff --git a/resources/recipes/avto-magazin.recipe b/resources/recipes/avto-magazin.recipe index 6464588acc..adaf74546e 100644 --- a/resources/recipes/avto-magazin.recipe +++ b/resources/recipes/avto-magazin.recipe @@ -13,6 +13,7 @@ class Dnevnik(BasicNewsRecipe): labguage = 'sl' no_stylesheets = True use_embedded_content = False + language = 'sl' conversion_options = {'linearize_tables' : True} diff --git a/resources/recipes/bangkok_biz.recipe b/resources/recipes/bangkok_biz.recipe new file mode 100644 index 0000000000..b2a2ee42f9 --- /dev/null +++ b/resources/recipes/bangkok_biz.recipe @@ -0,0 +1,25 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1290689337(BasicNewsRecipe): + __author__ = 'Anat R.' + language = 'th' + title = u'Bangkok Biz News' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + remove_javascript = True + use_embedded_content = False + feeds = [(u'Headlines', + u'http://www.bangkokbiznews.com/home/services/rss/home.xml'), + (u'Politics', u'http://www.bangkokbiznews.com/home/services/rss/politics.xml'), + (u'Business', u'http://www.bangkokbiznews.com/home/services/rss/business.xml'), + (u'Finance', u' http://www.bangkokbiznews.com/home/services/rss/finance.xml'), + (u'Technology', u' http://www.bangkokbiznews.com/home/services/rss/it.xml')] + remove_tags_before = dict(name='div', attrs={'class':'box-Detailcontent'}) + remove_tags_after = dict(name='p', attrs={'class':'allTags'}) + remove_tags = [] + remove_tags.append(dict(name = 'div', attrs = {'id': 'content-tools'})) + remove_tags.append(dict(name = 'p', attrs = {'class':'allTags'})) + remove_tags.append(dict(name = 'div', attrs = {'id':'morePic'})) + remove_tags.append(dict(name = 'ul', attrs = {'class':'tabs-nav'})) + diff --git a/resources/recipes/bitacora.recipe b/resources/recipes/bitacora.recipe new file mode 100644 index 0000000000..a36eb52988 --- /dev/null +++ b/resources/recipes/bitacora.recipe @@ -0,0 +1,58 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +bitacora.com.uy +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class General(BasicNewsRecipe): + title = 'bitacora.com.uy' + __author__ = 'Gustavo Azambuja' + description = 'Noticias de Uruguay' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 5 + encoding = 'iso-8859-1' + remove_javascript = True + no_stylesheets = True + + oldest_article = 2 + max_articles_per_feed = 100 + keep_only_tags = [dict(id=['txt'])] + remove_tags = [ + dict(name='div', attrs={'class':'tablafoot'}), + dict(name=['object','h4']), + dict(name=['object','link']) + ] + + remove_attributes = ['width','height', 'style', 'font', 'color'] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + p {font-family:Arial,Helvetica,sans-serif;} + ''' + feeds = [ + (u'Titulares', u'http://www.bitacora.com.uy/anxml.cgi?15') + ] + + def get_cover_url(self): + cover_url = None + index = 'http://www.bitacora.com.uy' + soup = self.index_to_soup(index) + link_item = soup.find('img',attrs={'class':'imgtapa'}) + if link_item: + cover_url = "http://www.bitacora.com.uy/"+link_item['src'] + return cover_url + + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup + diff --git a/resources/recipes/biz_portal.recipe b/resources/recipes/biz_portal.recipe new file mode 100644 index 0000000000..a810a452bc --- /dev/null +++ b/resources/recipes/biz_portal.recipe @@ -0,0 +1,40 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1283848012(BasicNewsRecipe): + description = 'This is a recipe of BizPortal.co.il.' + cover_url = 'http://www.bizportal.co.il/shukhahon/images/bizportal.jpg' + title = u'BizPortal' + language = 'he' + __author__ = 'marbs' + extra_css='img {max-width:100%;} body{direction: rtl;},title{direction: rtl; } ,article_description{direction: rtl; }, a.article{direction: rtl; } ,calibre_feed_description{direction: rtl; }' + simultaneous_downloads = 5 + remove_javascript = True + timefmt = '[%a, %d %b, %Y]' + remove_empty_feeds = True + oldest_article = 1 + max_articles_per_feed = 100 + remove_attributes = ['width'] + simultaneous_downloads = 5 + # keep_only_tags =dict(name='div', attrs={'id':'articleContainer'}) + remove_tags = [dict(name='img', attrs={'scr':['images/bizlogo_nl.gif']})] + max_articles_per_feed = 100 + #preprocess_regexps = [ + # (re.compile(r'

 

', re.DOTALL|re.IGNORECASE), lambda match: '') +# ] + + + feeds = [(u'חדשות שוק ההון', u'http://www.bizportal.co.il/shukhahon/messRssUTF2.xml'), + (u'חדשות וול סטריט בעברית', u'http://www.bizportal.co.il/shukhahon/images/bizportal.jpg'), + (u'שיווק ופרסו×', u'http://www.bizportal.co.il/shukhahon/messRssUTF145.xml'), + (u'משפט', u'http://www.bizportal.co.il/shukhahon/messRssUTF3.xml'), + (u'ניתוח טכני', u'http://www.bizportal.co.il/shukhahon/messRssUTF5.xml'), + (u'דיני עבודה ושכר', u'http://www.bizportal.co.il/shukhahon/messRssUTF6.xml'), + (u'מיסוי', u'http://www.bizportal.co.il/shukhahon/messRssUTF7.xml'), + (u'ט×בו', u'http://www.bizportal.co.il/shukhahon/messRssUTF8.xml'), + (u'נדל"ן', u'http://www.bizportal.co.il/shukhahon/messRssUTF160.xml'), + ] + + def print_version(self, url): + split1 = url.split("=") + print_url = 'http://www.bizportal.co.il/web/webnew/shukhahon/biznews02print.shtml?mid=' + split1[1] + return print_url diff --git a/resources/recipes/brand_eins.recipe b/resources/recipes/brand_eins.recipe index be5b98ffe6..3d62079716 100644 --- a/resources/recipes/brand_eins.recipe +++ b/resources/recipes/brand_eins.recipe @@ -1,18 +1,22 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- +# -*- coding: utf-8 mode: python -*- + +# Find the newest version of this recipe here: +# https://github.com/consti/BrandEins-Recipe/raw/master/brandeins.recipe __license__ = 'GPL v3' -__copyright__ = '2010, Constantin Hofstetter ' -__version__ = '0.95' +__copyright__ = '2010, Constantin Hofstetter , Steffen Siebert ' +__version__ = '0.96' ''' http://brandeins.de - Wirtschaftsmagazin ''' import re import string from calibre.web.feeds.recipes import BasicNewsRecipe + class BrandEins(BasicNewsRecipe): - title = u'Brand Eins' + title = u'brand eins' __author__ = 'Constantin Hofstetter' description = u'Wirtschaftsmagazin' publisher ='brandeins.de' @@ -22,11 +26,14 @@ class BrandEins(BasicNewsRecipe): no_stylesheets = True encoding = 'utf-8' language = 'de' + publication_type = 'magazine' + needs_subscription = 'optional' # 2 is the last full magazine (default) # 1 is the newest (but not full) # 3 is one before 2 etc. - which_ausgabe = 2 + # This value can be set via the username field. + default_issue = 2 keep_only_tags = [dict(name='div', attrs={'id':'theContent'}), dict(name='div', attrs={'id':'sidebar'}), dict(name='div', attrs={'class':'intro'}), dict(name='p', attrs={'class':'bodytext'}), dict(name='div', attrs={'class':'single_image'})] @@ -61,17 +68,31 @@ class BrandEins(BasicNewsRecipe): return soup + def get_cover(self, soup): + cover_url = None + cover_item = soup.find('div', attrs = {'class': 'cover_image'}) + if cover_item: + cover_url = 'http://www.brandeins.de/' + cover_item.img['src'] + return cover_url + def parse_index(self): feeds = [] archive = "http://www.brandeins.de/archiv.html" + issue = self.default_issue + if self.username: + try: + issue = int(self.username) + except: + pass + soup = self.index_to_soup(archive) latest_jahrgang = soup.findAll('div', attrs={'class': re.compile(r'\bjahrgang-latest\b') })[0].findAll('ul')[0] - pre_latest_issue = latest_jahrgang.findAll('a')[len(latest_jahrgang.findAll('a'))-self.which_ausgabe] + pre_latest_issue = latest_jahrgang.findAll('a')[len(latest_jahrgang.findAll('a'))-issue] url = pre_latest_issue.get('href', False) - # Get the title for the magazin - build it out of the title of the cover - take the issue and year; - self.title = "Brand Eins "+ re.search(r"(?P\d\d\/\d\d\d\d+)", pre_latest_issue.find('img').get('title', False)).group('date') + # Get month and year of the magazine issue - build it out of the title of the cover + self.timefmt = " " + re.search(r"(?P\d\d\/\d\d\d\d)", pre_latest_issue.find('img').get('title', False)).group('date') url = 'http://brandeins.de/'+url # url = "http://www.brandeins.de/archiv/magazin/tierisch.html" @@ -83,6 +104,7 @@ class BrandEins(BasicNewsRecipe): def brand_eins_parse_latest_issue(self, url): soup = self.index_to_soup(url) + self.cover_url = self.get_cover(soup) article_lists = [soup.find('div', attrs={'class':'subColumnLeft articleList'}), soup.find('div', attrs={'class':'subColumnRight articleList'})] titles_and_articles = [] @@ -123,3 +145,4 @@ class BrandEins(BasicNewsRecipe): current_articles.append({'title': title, 'url': url, 'description': description, 'date':''}) titles_and_articles.append([chapter_title, current_articles]) return titles_and_articles + diff --git a/resources/recipes/business_spectator.recipe b/resources/recipes/business_spectator.recipe new file mode 100644 index 0000000000..ef58424c6c --- /dev/null +++ b/resources/recipes/business_spectator.recipe @@ -0,0 +1,48 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Dean Cording' +''' +abc.net.au/news +''' +import re +from calibre.web.feeds.recipes import BasicNewsRecipe + +class BusinessSpectator(BasicNewsRecipe): + title = 'Business Spectator' + __author__ = 'Dean Cording' + description = 'Australian Business News & commentary delivered the way you want it.' + masthead_url = 'http://www.businessspectator.com.au/bs.nsf/logo-business-spectator.gif' + cover_url = masthead_url + + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + #delay = 1 + use_embedded_content = False + encoding = 'utf8' + publisher = 'Business Spectator' + category = 'News, Australia, Business' + language = 'en_AU' + publication_type = 'newsportal' + preprocess_regexps = [(re.compile(r'', re.DOTALL), lambda m: '')] + conversion_options = { + 'comments' : description + ,'tags' : category + ,'language' : language + ,'publisher' : publisher + ,'linearize_tables': False + } + + keep_only_tags = [dict(id='storyHeader'), dict(id='body-html')] + + remove_tags = [dict(attrs={'class':'hql'})] + + remove_attributes = ['width','height','style'] + + feeds = [ + ('Top Stories', 'http://www.businessspectator.com.au/top-stories.rss'), + ('Alan Kohler', 'http://www.businessspectator.com.au/bs.nsf/RSS?readform&type=spectators&cat=Alan%20Kohler'), + ('Robert Gottliebsen', 'http://www.businessspectator.com.au/bs.nsf/RSS?readform&type=spectators&cat=Robert%20Gottliebsen'), + ('Stephen Bartholomeusz', 'http://www.businessspectator.com.au/bs.nsf/RSS?readform&type=spectators&cat=Stephen%20Bartholomeusz'), + ('Daily Dossier', 'http://www.businessspectator.com.au/bs.nsf/RSS?readform&type=kgb&cat=dossier'), + ('Australia', 'http://www.businessspectator.com.au/bs.nsf/RSS?readform&type=region&cat=australia'), + ] diff --git a/resources/recipes/cbc_canada.recipe b/resources/recipes/cbc_canada.recipe index 26ea6abd29..ea4f1758a0 100644 --- a/resources/recipes/cbc_canada.recipe +++ b/resources/recipes/cbc_canada.recipe @@ -11,7 +11,6 @@ class AdvancedUserRecipe1275798572(BasicNewsRecipe): remove_javascript = True use_embedded_content = False no_stylesheets = True - language = 'en' masthead_url = 'http://www.cbc.ca/includes/gfx/cbcnews_logo_09.gif' cover_url = 'http://img692.imageshack.us/img692/2814/cbc.png' keep_only_tags = [dict(name='div', attrs={'id':['storyhead','storybody']})] diff --git a/resources/recipes/cnetjapan.recipe b/resources/recipes/cnetjapan.recipe new file mode 100644 index 0000000000..1058b90401 --- /dev/null +++ b/resources/recipes/cnetjapan.recipe @@ -0,0 +1,51 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class CNetJapan(BasicNewsRecipe): + title = u'CNET Japan' + oldest_article = 3 + max_articles_per_feed = 30 + __author__ = 'Hiroshi Miura' + + feeds = [(u'CNet News', u'http://feed.japan.cnet.com/rss/index.rdf'), + (u'CNet Blog', u'http://feed.japan.cnet.com/rss/blog/index.rdf') + ] + language = 'ja' + encoding = 'Shift_JIS' + remove_javascript = True + + preprocess_regexps = [ + (re.compile(ur'.*', re.DOTALL|re.IGNORECASE|re.UNICODE), + lambda match: ''), + (re.compile(r'.*', re.DOTALL|re.IGNORECASE), + lambda match: ''), + (re.compile(ur'.*', re.UNICODE), + lambda match: ''), + ] + + remove_tags_before = dict(id="contents_l") + remove_tags = [ + {'class':"social_bkm_share"}, + {'class':"social_bkm_print"}, + {'class':"block20 clearfix"}, + dict(name="div",attrs={'id':'bookreview'}), + {'class':"tag_left_ttl"}, + {'class':"tag_right"} + ] + remove_tags_after = {'class':"block20"} + + def parse_feeds(self): + + feeds = BasicNewsRecipe.parse_feeds(self) + + for curfeed in feeds: + delList = [] + for a,curarticle in enumerate(curfeed.articles): + if re.search(r'pheedo.jp', curarticle.url): + delList.append(curarticle) + if len(delList)>0: + for d in delList: + index = curfeed.articles.index(d) + curfeed.articles[index:index+1] = [] + + return feeds diff --git a/resources/recipes/cnetjapan_digital.recipe b/resources/recipes/cnetjapan_digital.recipe new file mode 100644 index 0000000000..9028126af2 --- /dev/null +++ b/resources/recipes/cnetjapan_digital.recipe @@ -0,0 +1,49 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class CNetJapanDigital(BasicNewsRecipe): + title = u'CNET Japan Digital' + oldest_article = 3 + max_articles_per_feed = 30 + __author__ = 'Hiroshi Miura' + + feeds = [(u'CNet digital',u'http://feed.japan.cnet.com/rss/digital/index.rdf') ] + language = 'ja' + encoding = 'Shift_JIS' + remove_javascript = True + + preprocess_regexps = [ + (re.compile(ur'.*', re.DOTALL|re.IGNORECASE|re.UNICODE), + lambda match: ''), + (re.compile(r'.*', re.DOTALL|re.IGNORECASE), + lambda match: ''), + (re.compile(ur'.*', re.UNICODE), + lambda match: ''), + ] + + remove_tags_before = dict(id="contents_l") + remove_tags = [ + {'class':"social_bkm_share"}, + {'class':"social_bkm_print"}, + {'class':"block20 clearfix"}, + dict(name="div",attrs={'id':'bookreview'}), + {'class':"tag_left_ttl"}, + {'class':"tag_right"} + ] + remove_tags_after = {'class':"block20"} + + def parse_feeds(self): + + feeds = BasicNewsRecipe.parse_feeds(self) + + for curfeed in feeds: + delList = [] + for a,curarticle in enumerate(curfeed.articles): + if re.search(r'pheedo.jp', curarticle.url): + delList.append(curarticle) + if len(delList)>0: + for d in delList: + index = curfeed.articles.index(d) + curfeed.articles[index:index+1] = [] + + return feeds diff --git a/resources/recipes/cnetjapan_release.recipe b/resources/recipes/cnetjapan_release.recipe new file mode 100644 index 0000000000..e8d13ec99f --- /dev/null +++ b/resources/recipes/cnetjapan_release.recipe @@ -0,0 +1,48 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class CNetJapanRelease(BasicNewsRecipe): + title = u'CNET Japan release' + oldest_article = 3 + max_articles_per_feed = 30 + __author__ = 'Hiroshi Miura' + + feeds = [(u'CNet Release', u'http://feed.japan.cnet.com/rss/release/index.rdf') ] + language = 'ja' + encoding = 'Shift_JIS' + remove_javascript = True + + preprocess_regexps = [ + (re.compile(ur'.*', re.DOTALL|re.IGNORECASE|re.UNICODE), + lambda match: ''), + (re.compile(r'.*', re.DOTALL|re.IGNORECASE), + lambda match: ''), + (re.compile(ur'.*', re.UNICODE), + lambda match: ''), + ] + + remove_tags_before = dict(id="contents_l") + remove_tags = [ + {'class':"social_bkm_share"}, + {'class':"social_bkm_print"}, + {'class':"block20 clearfix"}, + dict(name="div",attrs={'id':'bookreview'}), + {'class':"tag_left_ttl"} + ] + remove_tags_after = {'class':"block20"} + + def parse_feeds(self): + + feeds = BasicNewsRecipe.parse_feeds(self) + + for curfeed in feeds: + delList = [] + for a,curarticle in enumerate(curfeed.articles): + if re.search(r'pheedo.jp', curarticle.url): + delList.append(curarticle) + if len(delList)>0: + for d in delList: + index = curfeed.articles.index(d) + curfeed.articles[index:index+1] = [] + + return feeds diff --git a/resources/recipes/comics_com.recipe b/resources/recipes/comics_com.recipe index 9d4e1da4e3..a552470ff3 100644 --- a/resources/recipes/comics_com.recipe +++ b/resources/recipes/comics_com.recipe @@ -347,6 +347,7 @@ class Comics(BasicNewsRecipe): title = strip_tag['title'] print 'title: ', title current_articles.append({'title': title, 'url': page_url, 'description':'', 'date':''}) + current_articles.reverse() return current_articles extra_css = ''' diff --git a/resources/recipes/cosmopolitan.recipe b/resources/recipes/cosmopolitan.recipe new file mode 100644 index 0000000000..d7d3db7e0c --- /dev/null +++ b/resources/recipes/cosmopolitan.recipe @@ -0,0 +1,69 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +Muy Interesante +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class General(BasicNewsRecipe): + title = 'Cosmopolitan' + __author__ = 'Gustavo Azambuja' + description = 'Revista Cosmopolitan, Edicion Espanola' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 1 + encoding = 'utf8' + remove_javascript = True + no_stylesheets = True + conversion_options = {'linearize_tables': True} + + oldest_article = 180 + max_articles_per_feed = 100 + keep_only_tags = [ + dict(id=['contenido']), + dict(name='td', attrs={'class':['contentheading', 'txt_articulo']}) + ] + remove_tags = [ + dict(name='div', attrs={'class':['breadcrumb', 'bloque1', 'article', 'bajo_title', 'tags_articles', 'otrosenlaces_title', 'otrosenlaces_parent', 'compartir']}), + dict(name='div', attrs={'id':'comment'}), + dict(name='table', attrs={'class':'pagenav'}), + dict(name=['object','link']) + ] + remove_attributes = ['width','height', 'style', 'font', 'color'] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + img {float:left; clear:both; margin:10px} + p {font-family:Arial,Helvetica,sans-serif;} + ''' + feeds = [ + (u'Articulos', u'http://feeds.feedburner.com/cosmohispano/FSSt') + ] + + def preprocess_html(self, soup): + attribs = [ 'style','font','valign' + ,'colspan','width','height' + ,'rowspan','summary','align' + ,'cellspacing','cellpadding' + ,'frames','rules','border' + ] + for item in soup.body.findAll(name=['table','td','tr','th','caption','thead','tfoot','tbody','colgroup','col']): + item.name = 'div' + for attrib in attribs: + if item.has_key(attrib): + del item[attrib] + return soup + + def get_cover_url(self): + index = 'http://www.cosmohispano.com/revista' + soup = self.index_to_soup(index) + link_item = soup.find('img',attrs={'class':'img_portada'}) + if link_item: + cover_url = "http://www.cosmohispano.com"+link_item['src'] + return cover_url diff --git a/resources/recipes/deutsche_welle_bs.recipe b/resources/recipes/deutsche_welle_bs.recipe new file mode 100644 index 0000000000..cc58b1c969 --- /dev/null +++ b/resources/recipes/deutsche_welle_bs.recipe @@ -0,0 +1,76 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +dw-world.de +''' + +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class DeutscheWelle_bs(BasicNewsRecipe): + title = 'Deutsche Welle' + __author__ = 'Darko Miletic' + description = 'Vijesti iz Njemacke i svijeta' + publisher = 'Deutsche Welle' + category = 'news, politics, Germany' + oldest_article = 1 + max_articles_per_feed = 100 + use_embedded_content = False + no_stylesheets = True + language = 'bs' + publication_type = 'newsportal' + remove_empty_feeds = True + masthead_url = 'http://www.dw-world.de/skins/std/channel1/pics/dw_logo1024.gif' + extra_css = """ + @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} + body{font-family: Arial,sans1,sans-serif} + img{margin-top: 0.5em; margin-bottom: 0.2em; display: block} + .caption{font-size: x-small; display: block; margin-bottom: 0.4em} + """ + preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] + + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + remove_tags = [ + dict(name=['iframe','embed','object','form','base','meta','link']) + ,dict(attrs={'class':'actionFooter'}) + ] + keep_only_tags=[dict(attrs={'class':'ArticleDetail detail'})] + remove_attributes = ['height','width','onclick','border','lang'] + + feeds = [ + (u'Politika' , u'http://rss.dw-world.de/rdf/rss-bos-pol') + ,(u'Evropa' , u'http://rss.dw-world.de/rdf/rss-bos-eu' ) + ,(u'Kiosk' , u'http://rss.dw-world.de/rdf/rss-bos-eu' ) + ,(u'Ekonomija i Nuka' , u'http://rss.dw-world.de/rdf/rss-bos-eco') + ,(u'Kultura' , u'http://rss.dw-world.de/rdf/rss-bos-cul') + ,(u'Sport' , u'http://rss.dw-world.de/rdf/rss-bos-sp' ) + ] + + def print_version(self, url): + artl = url.rpartition('/')[2] + return 'http://www.dw-world.de/popups/popup_printcontent/' + artl + + def preprocess_html(self, soup): + for item in soup.findAll('a'): + limg = item.find('img') + if item.string is not None: + str = item.string + item.replaceWith(str) + else: + if limg: + item.name = 'div' + del item['href'] + if item.has_key('target'): + del item['target'] + else: + str = self.tag_to_string(item) + item.replaceWith(str) + return soup + diff --git a/resources/recipes/deutsche_welle_en.recipe b/resources/recipes/deutsche_welle_en.recipe new file mode 100644 index 0000000000..fb41bdeead --- /dev/null +++ b/resources/recipes/deutsche_welle_en.recipe @@ -0,0 +1,66 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +dw-world.de +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class DeutscheWelle_en(BasicNewsRecipe): + title = 'Deutsche Welle' + __author__ = 'Darko Miletic' + description = 'News from Germany and World' + publisher = 'Deutsche Welle' + category = 'news, politics, Germany' + oldest_article = 1 + max_articles_per_feed = 100 + use_embedded_content = False + no_stylesheets = True + language = 'en' + publication_type = 'newsportal' + remove_empty_feeds = True + masthead_url = 'http://www.dw-world.de/skins/std/channel1/pics/dw_logo1024.gif' + extra_css = """ + body{font-family: Arial,sans-serif} + img{margin-top: 0.5em; margin-bottom: 0.2em; display: block} + .caption{font-size: x-small; display: block; margin-bottom: 0.4em} + """ + + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + remove_tags = [ + dict(name=['iframe','embed','object','form','base','meta','link']) + ,dict(attrs={'class':'actionFooter'}) + ] + keep_only_tags=[dict(attrs={'class':'ArticleDetail detail'})] + remove_attributes = ['height','width','onclick','border','lang'] + + feeds = [(u'All news', u'http://rss.dw-world.de/rdf/rss-en-all')] + + def print_version(self, url): + artl = url.rpartition('/')[2] + return 'http://www.dw-world.de/popups/popup_printcontent/' + artl + + def preprocess_html(self, soup): + for item in soup.findAll('a'): + limg = item.find('img') + if item.string is not None: + str = item.string + item.replaceWith(str) + else: + if limg: + item.name = 'div' + del item['href'] + if item.has_key('target'): + del item['target'] + else: + str = self.tag_to_string(item) + item.replaceWith(str) + return soup + diff --git a/resources/recipes/deutsche_welle_es.recipe b/resources/recipes/deutsche_welle_es.recipe new file mode 100644 index 0000000000..ab80b2f11f --- /dev/null +++ b/resources/recipes/deutsche_welle_es.recipe @@ -0,0 +1,66 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +dw-world.de +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class DeutscheWelle_es(BasicNewsRecipe): + title = 'Deutsche Welle' + __author__ = 'Darko Miletic' + description = 'Noticias desde Alemania y mundo' + publisher = 'Deutsche Welle' + category = 'news, politics, Germany' + oldest_article = 1 + max_articles_per_feed = 100 + use_embedded_content = False + no_stylesheets = True + language = 'es' + publication_type = 'newsportal' + remove_empty_feeds = True + masthead_url = 'http://www.dw-world.de/skins/std/channel1/pics/dw_logo1024.gif' + extra_css = """ + body{font-family: Arial,sans-serif} + img{margin-top: 0.5em; margin-bottom: 0.2em; display: block} + .caption{font-size: x-small; display: block; margin-bottom: 0.4em} + """ + + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + remove_tags = [ + dict(name=['iframe','embed','object','form','base','meta','link']) + ,dict(attrs={'class':'actionFooter'}) + ] + keep_only_tags=[dict(attrs={'class':'ArticleDetail detail'})] + remove_attributes = ['height','width','onclick','border','lang'] + + feeds = [(u'Noticias', u'http://rss.dw-world.de/rdf/rss-sp-all')] + + def print_version(self, url): + artl = url.rpartition('/')[2] + return 'http://www.dw-world.de/popups/popup_printcontent/' + artl + + def preprocess_html(self, soup): + for item in soup.findAll('a'): + limg = item.find('img') + if item.string is not None: + str = item.string + item.replaceWith(str) + else: + if limg: + item.name = 'div' + del item['href'] + if item.has_key('target'): + del item['target'] + else: + str = self.tag_to_string(item) + item.replaceWith(str) + return soup + diff --git a/resources/recipes/deutsche_welle_hr.recipe b/resources/recipes/deutsche_welle_hr.recipe new file mode 100644 index 0000000000..1ef1ff0011 --- /dev/null +++ b/resources/recipes/deutsche_welle_hr.recipe @@ -0,0 +1,74 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +dw-world.de +''' + +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class DeutscheWelle_hr(BasicNewsRecipe): + title = 'Deutsche Welle' + __author__ = 'Darko Miletic' + description = 'Vesti iz Njemacke i svijeta' + publisher = 'Deutsche Welle' + category = 'news, politics, Germany' + oldest_article = 1 + max_articles_per_feed = 100 + use_embedded_content = False + no_stylesheets = True + language = 'hr' + publication_type = 'newsportal' + remove_empty_feeds = True + masthead_url = 'http://www.dw-world.de/skins/std/channel1/pics/dw_logo1024.gif' + extra_css = """ + @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} + body{font-family: Arial,sans1,sans-serif} + img{margin-top: 0.5em; margin-bottom: 0.2em; display: block} + .caption{font-size: x-small; display: block; margin-bottom: 0.4em} + """ + preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] + + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + remove_tags = [ + dict(name=['iframe','embed','object','form','base','meta','link']) + ,dict(attrs={'class':'actionFooter'}) + ] + keep_only_tags=[dict(attrs={'class':'ArticleDetail detail'})] + remove_attributes = ['height','width','onclick','border','lang'] + + feeds = [ + (u'Svijet' , u'http://rss.dw-world.de/rdf/rss-cro-svijet') + ,(u'Europa' , u'http://rss.dw-world.de/rdf/rss-cro-eu' ) + ,(u'Njemacka' , u'http://rss.dw-world.de/rdf/rss-cro-ger' ) + ,(u'Vijesti' , u'http://rss.dw-world.de/rdf/rss-cro-all' ) + ] + + def print_version(self, url): + artl = url.rpartition('/')[2] + return 'http://www.dw-world.de/popups/popup_printcontent/' + artl + + def preprocess_html(self, soup): + for item in soup.findAll('a'): + limg = item.find('img') + if item.string is not None: + str = item.string + item.replaceWith(str) + else: + if limg: + item.name = 'div' + del item['href'] + if item.has_key('target'): + del item['target'] + else: + str = self.tag_to_string(item) + item.replaceWith(str) + return soup + diff --git a/resources/recipes/deutsche_welle_pt.recipe b/resources/recipes/deutsche_welle_pt.recipe new file mode 100644 index 0000000000..1d13603ebd --- /dev/null +++ b/resources/recipes/deutsche_welle_pt.recipe @@ -0,0 +1,66 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +dw-world.de +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class DeutscheWelle_pt(BasicNewsRecipe): + title = 'Deutsche Welle' + __author__ = 'Darko Miletic' + description = 'Noticias desde Alemania y mundo' + publisher = 'Deutsche Welle' + category = 'news, politics, Germany' + oldest_article = 1 + max_articles_per_feed = 100 + use_embedded_content = False + no_stylesheets = True + language = 'pt' + publication_type = 'newsportal' + remove_empty_feeds = True + masthead_url = 'http://www.dw-world.de/skins/std/channel1/pics/dw_logo1024.gif' + extra_css = """ + body{font-family: Arial,sans-serif} + img{margin-top: 0.5em; margin-bottom: 0.2em; display: block} + .caption{font-size: x-small; display: block; margin-bottom: 0.4em} + """ + + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + remove_tags = [ + dict(name=['iframe','embed','object','form','base','meta','link']) + ,dict(attrs={'class':'actionFooter'}) + ] + keep_only_tags=[dict(attrs={'class':'ArticleDetail detail'})] + remove_attributes = ['height','width','onclick','border','lang'] + + feeds = [(u'Noticias', u'http://rss.dw-world.de/rdf/rss-br-all')] + + def print_version(self, url): + artl = url.rpartition('/')[2] + return 'http://www.dw-world.de/popups/popup_printcontent/' + artl + + def preprocess_html(self, soup): + for item in soup.findAll('a'): + limg = item.find('img') + if item.string is not None: + str = item.string + item.replaceWith(str) + else: + if limg: + item.name = 'div' + del item['href'] + if item.has_key('target'): + del item['target'] + else: + str = self.tag_to_string(item) + item.replaceWith(str) + return soup + diff --git a/resources/recipes/deutsche_welle_sr.recipe b/resources/recipes/deutsche_welle_sr.recipe new file mode 100644 index 0000000000..a61e186936 --- /dev/null +++ b/resources/recipes/deutsche_welle_sr.recipe @@ -0,0 +1,79 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +dw-world.de +''' + +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class DeutscheWelle_sr(BasicNewsRecipe): + title = 'Deutsche Welle' + __author__ = 'Darko Miletic' + description = 'Vesti iz Nemacke i sveta' + publisher = 'Deutsche Welle' + category = 'news, politics, Germany' + oldest_article = 1 + max_articles_per_feed = 100 + use_embedded_content = False + no_stylesheets = True + language = 'sr' + publication_type = 'newsportal' + remove_empty_feeds = True + masthead_url = 'http://www.dw-world.de/skins/std/channel1/pics/dw_logo1024.gif' + extra_css = """ + @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} + body{font-family: Arial,sans1,sans-serif} + img{margin-top: 0.5em; margin-bottom: 0.2em; display: block} + .caption{font-size: x-small; display: block; margin-bottom: 0.4em} + """ + preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] + + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher': publisher + , 'language' : language + } + + remove_tags = [ + dict(name=['iframe','embed','object','form','base','meta','link']) + ,dict(attrs={'class':'actionFooter'}) + ] + keep_only_tags=[dict(attrs={'class':'ArticleDetail detail'})] + remove_attributes = ['height','width','onclick','border','lang'] + + feeds = [ + (u'Politika' , u'http://rss.dw-world.de/rdf/rss-ser-pol' ) + ,(u'Srbija' , u'http://rss.dw-world.de/rdf/rss-ser-pol-ser' ) + ,(u'Region' , u'http://rss.dw-world.de/rdf/rss-ser-pol-region' ) + ,(u'Evropa' , u'http://rss.dw-world.de/rdf/rss-ser-pol-eu' ) + ,(u'Nemacka' , u'http://rss.dw-world.de/rdf/rss-ser-pol-ger' ) + ,(u'Svet' , u'http://rss.dw-world.de/rdf/rss-ser-pol-ger' ) + ,(u'Pregled stampe', u'http://rss.dw-world.de/rdf/rss-ser-pol-ger') + ,(u'Nauka Tehnika Medicina', u'http://rss.dw-world.de/rdf/rss-ser-science') + ,(u'Kultura' , u'feed:http://rss.dw-world.de/rdf/rss-ser-cul' ) + ] + + def print_version(self, url): + artl = url.rpartition('/')[2] + return 'http://www.dw-world.de/popups/popup_printcontent/' + artl + + def preprocess_html(self, soup): + for item in soup.findAll('a'): + limg = item.find('img') + if item.string is not None: + str = item.string + item.replaceWith(str) + else: + if limg: + item.name = 'div' + del item['href'] + if item.has_key('target'): + del item['target'] + else: + str = self.tag_to_string(item) + item.replaceWith(str) + return soup + diff --git a/resources/recipes/el_pais_uy.recipe b/resources/recipes/el_pais_uy.recipe new file mode 100644 index 0000000000..1e9c400162 --- /dev/null +++ b/resources/recipes/el_pais_uy.recipe @@ -0,0 +1,80 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +http://www.elpais.com.uy/ +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class General(BasicNewsRecipe): + title = 'El Pais - Uruguay' + __author__ = 'Gustavo Azambuja' + description = 'Noticias de Uruguay y el resto del mundo' + publisher = 'EL PAIS S.A.' + category = 'news, politics, Uruguay' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 2 + encoding = 'iso-8859-1' + masthead_url = 'http://www.elpais.com.uy/Images/09/cabezal/logo_PDEP.png' + publication_type = 'newspaper' + remove_javascript = True + no_stylesheets = True + + oldest_article = 2 + max_articles_per_feed = 200 + keep_only_tags = [ + dict(name='h1'), + dict(name='div', attrs={'id':'Contenido'}) + ] + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + remove_tags = [ + dict(name='div', attrs={'class':['date_text', 'comments', 'form_section', 'share_it']}), + dict(name='div', attrs={'id':['relatedPosts', 'spacer', 'banner_izquierda', 'right_container']}), + dict(name='p', attrs={'class':'FacebookLikeButton'}), + dict(name=['object','form']), + dict(name=['object','table']) ] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + p {font-family:Arial,Helvetica,sans-serif;} + body{font-family: Verdana,Arial,Helvetica,sans-serif } + img{margin-bottom: 0.4em; display:block;} + ''' + feeds = [ + (u'Ultimo Momento', u'http://www.elpais.com.uy/formatos/rss/index.asp?seccion=umomento'), + (u'Editorial', u'http://www.elpais.com.uy/formatos/rss/index.asp?seccion=editorial'), + (u'Nacional', u'http://www.elpais.com.uy/formatos/rss/index.asp?seccion=nacional'), + (u'Internacional', u'http://www.elpais.com.uy/formatos/rss/index.asp?seccion=internacional'), + (u'Espectaculos', u'http://www.elpais.com.uy/formatos/rss/index.asp?seccion=espectaculos'), + (u'Deportes', u'http://www.elpais.com.uy/formatos/rss/index.asp?seccion=deportes'), + (u'Ciudades', u'http://www.elpais.com.uy/formatos/rss/index.asp?seccion=ciudades'), + (u'Economia', u'http://www.elpais.com.uy/formatos/rss/index.asp?seccion=economia') + ] + + def get_cover_url(self): + cover_url = None + index = 'http://www.elpais.com.uy' + soup = self.index_to_soup(index) + link_item = soup.find('div',attrs={'class':'boxmedio box257'}) + print link_item + if link_item: + cover_url = 'http://www.elpais.com.uy'+link_item.img['src'] + return cover_url + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup + diff --git a/resources/recipes/endgadget_ja.recipe b/resources/recipes/endgadget_ja.recipe new file mode 100644 index 0000000000..891e6720a5 --- /dev/null +++ b/resources/recipes/endgadget_ja.recipe @@ -0,0 +1,20 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +japan.engadget.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class EndgadgetJapan(BasicNewsRecipe): + title = u'Endgadget\u65e5\u672c\u7248' + language = 'ja' + __author__ = 'Hiroshi Miura' + cover_url = 'http://skins18.wincustomize.com/1/49/149320/29/7578/preview-29-7578.jpg' + masthead_url = 'http://www.blogsmithmedia.com/japanese.engadget.com/media/eng-jp-logo-t.png' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + language = 'ja' + encoding = 'utf-8' + feeds = [(u'engadget', u'http://japanese.engadget.com/rss.xml')] diff --git a/resources/recipes/esenja.recipe b/resources/recipes/esenja.recipe new file mode 100644 index 0000000000..b8b94ad66e --- /dev/null +++ b/resources/recipes/esenja.recipe @@ -0,0 +1,87 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2010, matek09, matek09@gmail.com' + +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class Esensja(BasicNewsRecipe): + + title = u'Esensja' + __author__ = 'matek09' + description = 'Monthly magazine' + encoding = 'utf-8' + no_stylesheets = True + language = 'pl' + remove_javascript = True + HREF = '0' + + #keep_only_tags =[] + #keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'article'}) + remove_tags_before = dict(dict(name = 'div', attrs = {'class' : 't-title'})) + remove_tags_after = dict(dict(name = 'img', attrs = {'src' : '../../../2000/01/img/tab_bot.gif'})) + + remove_tags =[] + remove_tags.append(dict(name = 'img', attrs = {'src' : '../../../2000/01/img/tab_top.gif'})) + remove_tags.append(dict(name = 'img', attrs = {'src' : '../../../2000/01/img/tab_bot.gif'})) + remove_tags.append(dict(name = 'div', attrs = {'class' : 't-title2 nextpage'})) + + extra_css = ''' + .t-title {font-size: x-large; font-weight: bold; text-align: left} + .t-author {font-size: x-small; text-align: left} + .t-title2 {font-size: x-small; font-style: italic; text-align: left} + .text {font-size: small; text-align: left} + .annot-ref {font-style: italic; text-align: left} + ''' + + preprocess_regexps = [(re.compile(r'alt="[^"]*"'), + lambda match: '')] + + def parse_index(self): + soup = self.index_to_soup('http://www.esensja.pl/magazyn/') + a = soup.find('a', attrs={'href' : re.compile('.*/index.html')}) + year = a['href'].split('/')[0] + month = a['href'].split('/')[1] + self.HREF = 'http://www.esensja.pl/magazyn/' + year + '/' + month + '/iso/' + soup = self.index_to_soup(self.HREF + '01.html') + self.cover_url = 'http://www.esensja.pl/magazyn/' + year + '/' + month + '/img/ilustr/cover_b.jpg' + feeds = [] + intro = soup.find('div', attrs={'class' : 'n-title'}) + introduction = {'title' : self.tag_to_string(intro.a), + 'url' : self.HREF + intro.a['href'], + 'date' : '', + 'description' : ''} + chapter = 'Wprowadzenie' + subchapter = '' + articles = [] + articles.append(introduction) + for tag in intro.findAllNext(attrs={'class': ['chapter', 'subchapter', 'n-title']}): + if tag.name in 'td': + if len(articles) > 0: + section = chapter + if len(subchapter) > 0: + section += ' - ' + subchapter + feeds.append((section, articles)) + articles = [] + if tag['class'] == 'chapter': + chapter = self.tag_to_string(tag).capitalize() + subchapter = '' + else: + subchapter = self.tag_to_string(tag) + subchapter = self.tag_to_string(tag) + continue + articles.append({'title' : self.tag_to_string(tag.a), 'url' : self.HREF + tag.a['href'], 'date' : '', 'description' : ''}) + + a = self.index_to_soup(self.HREF + tag.a['href']) + i = 1 + while True: + div = a.find('div', attrs={'class' : 't-title2 nextpage'}) + if div is not None: + a = self.index_to_soup(self.HREF + div.a['href']) + articles.append({'title' : self.tag_to_string(tag.a) + ' c. d. ' + str(i), 'url' : self.HREF + div.a['href'], 'date' : '', 'description' : ''}) + i = i + 1 + else: + break + + return feeds diff --git a/resources/recipes/fr_online.recipe b/resources/recipes/fr_online.recipe index e4a817d0d6..b3448c17dc 100644 --- a/resources/recipes/fr_online.recipe +++ b/resources/recipes/fr_online.recipe @@ -1,67 +1,61 @@ -__license__ = 'GPL v3' -__copyright__ = '2009, Justus Bisser ' +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2010, Christian Schmitt' + ''' fr-online.de ''' -import re -from calibre.web.feeds.news import BasicNewsRecipe +from calibre.web.feeds.recipes import BasicNewsRecipe -class Spiegel_ger(BasicNewsRecipe): - title = 'Frankfurter Rundschau' - __author__ = 'Justus Bisser' - description = "Dies ist die Online-Ausgabe der Frankfurter Rundschau. Um die abgerufenen individuell einzustellen bearbeiten sie die Liste im erweiterten Modus. Die Feeds findet man auf http://www.fr-online.de/verlagsservice/fr_newsreader/?em_cnt=574255" - publisher = 'Druck- und Verlagshaus Frankfurt am Main GmbH' - category = 'FR Online, Frankfurter Rundschau, Nachrichten, News,Dienste, RSS, RSS, Feedreader, Newsfeed, iGoogle, Netvibes, Widget' - oldest_article = 7 - max_articles_per_feed = 100 - language = 'de' - lang = 'de-DE' - no_stylesheets = True - use_embedded_content = False - #encoding = 'cp1252' +class FROnlineRecipe(BasicNewsRecipe): + title = 'Frankfurter Rundschau' + __author__ = 'maccs' + description = 'Nachrichten aus D und aller Welt' + encoding = 'utf-8' + masthead_url = 'http://www.fr-online.de/image/view/-/1474018/data/823552/-/logo.png' + publisher = 'Druck- und Verlagshaus Frankfurt am Main GmbH' + category = 'news, germany, world' + language = 'de' + publication_type = 'newspaper' + use_embedded_content = False + remove_javascript = True + no_stylesheets = True + oldest_article = 1 # Increase this number if you're interested in older articles + max_articles_per_feed = 50 # Seems a reasonable number to me + extra_css = ''' + body { font-family: "arial", "verdana", "geneva", sans-serif; font-size: 12px; margin: 0px; background-color: #ffffff;} + .imgSubline{background-color: #f4f4f4; font-size: 0.8em;} + .p--heading-1 {font-weight: bold;} + .calibre_navbar {font-size: 0.8em; font-family: "arial", "verdana", "geneva", sans-serif;} + ''' + remove_tags = [dict(name='div', attrs={'id':'Logo'})] + cover_url = 'http://www.fr-online.de/image/view/-/1474018/data/823552/-/logo.png' + cover_margins = (100, 150, '#ffffff') - conversion_options = { - 'comment' : description - , 'tags' : category - , 'publisher' : publisher - , 'language' : lang - } - recursions = 0 - max_articles_per_feed = 100 - #keep_only_tags = [dict(name='div', attrs={'class':'text'})] - #tags_remove = [dict(name='div', attrs={'style':'text-align: left; margin: 4px 0px 0px 4px; width: 200px; float: right;'})] - remove_attributes = ['style'] - feeds = [] - #remove_tags_before = [dict(name='div', attrs={'style':'padding-left: 0px;'})] - #remove_tags_after = [dict(name='div', attrs={'class':'box_head_text'})] + feeds = [] + feeds.append(('Startseite', u'http://www.fr-online.de/home/-/1472778/1472778/-/view/asFeed/-/index.xml')) + feeds.append(('Politik', u'http://www.fr-online.de/politik/-/1472596/1472596/-/view/asFeed/-/index.xml')) + feeds.append(('Meinung', u'http://www.fr-online.de/politik/meinung/-/1472602/1472602/-/view/asFeed/-/index.xml')) + feeds.append(('Wirtschaft', u'http://www.fr-online.de/wirtschaft/-/1472780/1472780/-/view/asFeed/-/index.xml')) + feeds.append(('Sport', u'http://www.fr-online.de/sport/-/1472784/1472784/-/view/asFeed/-/index.xml')) + feeds.append(('Eintracht Frankfurt', u'http://www.fr-online.de/sport/eintracht-frankfurt/-/1473446/1473446/-/view/asFeed/-/index.xml')) + feeds.append(('Kultur und Medien', u'http://www.fr-online.de/kultur/-/1472786/1472786/-/view/asFeed/-/index.xml')) + feeds.append(('Panorama', u'http://www.fr-online.de/panorama/-/1472782/1472782/-/view/asFeed/-/index.xml')) + feeds.append(('Frankfurt', u'http://www.fr-online.de/frankfurt/-/1472798/1472798/-/view/asFeed/-/index.xml')) + feeds.append(('Rhein-Main', u'http://www.fr-online.de/rhein-main/-/1472796/1472796/-/view/asFeed/-/index.xml')) + feeds.append(('Hanau', u'http://www.fr-online.de/rhein-main/hanau/-/1472866/1472866/-/view/asFeed/-/index.xml')) + feeds.append(('Darmstadt', u'http://www.fr-online.de/rhein-main/darmstadt/-/1472858/1472858/-/view/asFeed/-/index.xml')) + feeds.append(('Wiesbaden', u'http://www.fr-online.de/rhein-main/wiesbaden/-/1472860/1472860/-/view/asFeed/-/index.xml')) + feeds.append(('Offenbach', u'http://www.fr-online.de/rhein-main/offenbach/-/1472856/1472856/-/view/asFeed/-/index.xml')) + feeds.append(('Bad Homburg', u'http://www.fr-online.de/rhein-main/bad-homburg/-/1472864/1472864/-/view/asFeed/-/index.xml')) + feeds.append(('Digital', u'http://www.fr-online.de/digital/-/1472406/1472406/-/view/asFeed/-/index.xml')) + feeds.append(('Wissenschaft', u'http://www.fr-online.de/wissenschaft/-/1472788/1472788/-/view/asFeed/-/index.xml')) - # enable for all news - allNews = 0 - if allNews: - feeds = [(u'Frankfurter Rundschau', u'http://www.fr-online.de/rss/sport/index.xml')] - else: - #select the feeds you like - feeds = [(u'Nachrichten', u'http://www.fr-online.de/rss/politik/index.xml')] - feeds.append((u'Kommentare und Analysen', u'http://www.fr-online.de/rss/meinung/index.xml')) - feeds.append((u'Dokumentationen', u'http://www.fr-online.de/rss/dokumentation/index.xml')) - feeds.append((u'Deutschlandtrend', u'http://www.fr-online.de/rss/deutschlandtrend/index.xml')) - feeds.append((u'Wirtschaft', u'http://www.fr-online.de/rss/wirtschaft/index.xml')) - feeds.append((u'Sport', u'http://www.fr-online.de/rss/sport/index.xml')) - feeds.append((u'Feuilleton', u'http://www.fr-online.de/rss/feuilleton/index.xml')) - feeds.append((u'Panorama', u'http://www.fr-online.de/rss/panorama/index.xml')) - feeds.append((u'Rhein Main und Hessen', u'http://www.fr-online.de/rss/hessen/index.xml')) - feeds.append((u'Fitness und Gesundheit', u'http://www.fr-online.de/rss/fit/index.xml')) - feeds.append((u'Multimedia', u'http://www.fr-online.de/rss/multimedia/index.xml')) - feeds.append((u'Wissen und Bildung', u'http://www.fr-online.de/rss/wissen/index.xml')) - def get_article_url(self, article): - url = article.link - regex = re.compile("0C[0-9]{6,8}0A?") + def print_version(self, url): + return url.replace('index.html', 'view/printVersion/-/index.html') - liste = regex.findall(url) - string = liste.pop(0) - string = string[2:len(string)-1] - return "http://www.fr-online.de/_em_cms/_globals/print.php?em_cnt=" + string diff --git a/resources/recipes/freeway.recipe b/resources/recipes/freeway.recipe new file mode 100644 index 0000000000..cb6d41ebb2 --- /dev/null +++ b/resources/recipes/freeway.recipe @@ -0,0 +1,100 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +http://freeway.com.uy +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class General(BasicNewsRecipe): + title = 'freeway.com.uy' + __author__ = 'Gustavo Azambuja' + description = 'Revista Freeway, Montevideo, Uruguay' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 1 + encoding = 'utf8' + remove_javascript = True + no_stylesheets = True + conversion_options = {'linearize_tables': True} + + oldest_article = 180 + max_articles_per_feed = 100 + keep_only_tags = [ + dict(id=['contenido']), + dict(name='a', attrs={'class':'titulo_art_ppal'}), + dict(name='img', attrs={'class':'recuadro'}), + dict(name='td', attrs={'class':'txt_art_ppal'}) + ] + remove_tags = [ + dict(name=['object','link']) + ] + remove_attributes = ['width','height', 'style', 'font', 'color'] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + img {float:left; clear:both; margin:10px} + p {font-family:Arial,Helvetica,sans-serif;} + ''' + + def parse_index(self): + feeds = [] + for title, url in [('Articulos', 'http://freeway.com.uy/revista/')]: + articles = self.art_parse_section(url) + if articles: + feeds.append((title, articles)) + return feeds + + def art_parse_section(self, url): + soup = self.index_to_soup(url) + div = soup.find(attrs={'id': 'tbl_1'}) + + current_articles = [] + for tag in div.findAllNext(attrs = {'class': 'ancho_articulos'}): + if tag.get('class') == 'link-list-heading': + break + for td in tag.findAll('td'): + a = td.find('a', attrs= {'class': 'titulo_articulos'}) + if a is None: + continue + title = self.tag_to_string(a) + url = a.get('href', False) + if not url or not title: + continue + if url.startswith('/'): + url = 'http://freeway.com.uy'+url + p = td.find('p', attrs= {'class': 'txt_articulos'}) + description = self.tag_to_string(p) + self.log('\t\tFound article:', title) + self.log('\t\t\t', url) + self.log('\t\t\t', description) + current_articles.append({'title': title, 'url': url, 'description':description, 'date':''}) + + return current_articles + + def preprocess_html(self, soup): + attribs = [ 'style','font','valign' + ,'colspan','width','height' + ,'rowspan','summary','align' + ,'cellspacing','cellpadding' + ,'frames','rules','border' + ] + for item in soup.body.findAll(name=['table','td','tr','th','caption','thead','tfoot','tbody','colgroup','col']): + item.name = 'div' + for attrib in attribs: + if item.has_key(attrib): + del item[attrib] + return soup + + def get_cover_url(self): + #index = 'http://www.cosmohispano.com/revista' + #soup = self.index_to_soup(index) + #link_item = soup.find('img',attrs={'class':'img_portada'}) + #if link_item: + # cover_url = "http://www.cosmohispano.com"+link_item['src'] + return 'http://freeway.com.uy/_upload/_n_foto_grande/noticia_1792_tapanoviembre2010.jpg' diff --git a/resources/recipes/globaltimes.recipe b/resources/recipes/globaltimes.recipe new file mode 100644 index 0000000000..0d281a01fd --- /dev/null +++ b/resources/recipes/globaltimes.recipe @@ -0,0 +1,46 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class globaltimes(BasicNewsRecipe): + title = u'Global Times' + __author__ = 'malfi' + language = 'zh' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + cover_url = 'http://enhimg2.huanqiu.com/images/logo.png' + language = 'en' + keep_only_tags = [] + keep_only_tags.append(dict(name = 'div', attrs = {'id': 'content'})) + remove_tags = [] + remove_tags.append(dict(name = 'div', attrs = {'class': 'location'})) + remove_tags.append(dict(name = 'div', attrs = {'class': 'contentpage'})) + remove_tags.append(dict(name = 'li', attrs = {'id': 'pl'})) + + extra_css = ''' + h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} + h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} + p{font-family:Arial,Helvetica,sans-serif;font-size:small;} + body{font-family:Helvetica,Arial,sans-serif;font-size:small;} + ''' + def parse_index(self): + catnames = {} + catnames["http://china.globaltimes.cn/chinanews/"] = "China Politics" + catnames["http://china.globaltimes.cn/diplomacy/"] = "China Diplomacy" + catnames["http://military.globaltimes.cn/china/"] = "China Military" + catnames["http://business.globaltimes.cn/china-economy/"] = "China Economy" + catnames["http://world.globaltimes.cn/asia-pacific/"] = "Asia Pacific" + feeds = [] + + for cat in catnames.keys(): + articles = [] + soup = self.index_to_soup(cat) + for a in soup.findAll('a',attrs={'href' : re.compile(cat+"201[0-9]-[0-1][0-9]/[0-9][0-9][0-9][0-9][0-9][0-9].html")}): + url = a['href'].strip() + myarticle=({'title':self.tag_to_string(a), 'url':url, 'description':'', 'date':''}) + self.log("found %s" % url) + articles.append(myarticle) + self.log("Adding URL %s\n" %url) + if articles: + feeds.append((catnames[cat], articles)) + return feeds diff --git a/resources/recipes/globes_co_il.recipe b/resources/recipes/globes_co_il.recipe new file mode 100644 index 0000000000..fdbf79f80d --- /dev/null +++ b/resources/recipes/globes_co_il.recipe @@ -0,0 +1,47 @@ +from calibre.web.feeds.news import BasicNewsRecipe +from calibre.ebooks.BeautifulSoup import re + +class AdvancedUserRecipe1283848012(BasicNewsRecipe): + description = 'This is Globes.co.il.' + cover_url = 'http://www.the7eye.org.il/SiteCollectionImages/BAKTANA/arye_avnery_010709_377.jpg' + title = u'Globes' + language = 'he' + __author__ = 'marbs' + extra_css='img {max-width:100%;} body{direction: rtl;max-width:100%;}title{direction: rtl; } article_description{direction: rtl; }, a.article{direction: rtl;max-width:100%;} calibre_feed_description{direction: rtl; }' + simultaneous_downloads = 5 + remove_javascript = True + timefmt = '[%a, %d %b, %Y]' + oldest_article = 1 + max_articles_per_feed = 100 + remove_attributes = ['width','style'] + + + feeds = [(u'שוק ההון', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=585'), + (u'נדל"ן', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=607'), + (u'וול סטריט ושווקי העול×', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=1225'), + (u'ניתוח טכני', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=1294'), + (u'×”×™×™ טק', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=594'), + (u'נתח שוק וצרכנות', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=821'), + (u'דין וחשבון', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=829'), + (u'רכב', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=3220'), + (u'דעות', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=845'), + (u'קניון המניות - טור שבועי', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=3175'), + (u'סביבה', u'http://www.globes.co.il/webservice/rss/rssfeeder.asmx/FeederNode?iID=3221')] + + def print_version(self, url): + split1 = url.split("=") + print_url = 'http://www.globes.co.il/serve/globes/printwindow.asp?did=' + split1[1] + return print_url + + + def preprocess_html(self, soup): + soup.find('tr',attrs={'bgcolor':'black'}).findPrevious('tr').extract() + soup.find('tr',attrs={'bgcolor':'black'}).extract() + return soup + + def fixChars(self,string): + # Replace lsquo (\x91) + fixed = re.sub("â– ","â– ",string) + return fixed + + diff --git a/resources/recipes/hannoversche_zeitung.recipe b/resources/recipes/hannoversche_zeitung.recipe new file mode 100644 index 0000000000..8c0da596e5 --- /dev/null +++ b/resources/recipes/hannoversche_zeitung.recipe @@ -0,0 +1,38 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1287519083(BasicNewsRecipe): + title = u'Hannoversche Allgemeine Zeitung' + oldest_article = 1 + __author__ = 'Artemis' + max_articles_per_feed = 30 + language = 'de' + no_stylesheets = True + + feeds = [ + #(u'Schlagzeilen', u'http://www.haz.de/rss/feed/haz_schlagzeilen'), + (u'Politik', u'http://www.haz.de/rss/feed/haz_politik'), + (u'Wirtschaft', u'http://www.haz.de/rss/feed/haz_wirtschaft'), + (u'Panorama', u'http://www.haz.de/rss/feed/haz_panorama'), + (u'Wissen', u'http://www.haz.de/rss/feed/haz_wissen'), + (u'Kultur', u'http://www.haz.de/rss/feed/haz_kultur'), + (u'Sp\xe4tvorstellung', u'http://www.haz.de/rss/feed/haz_spaetvorstellung'), + (u'Hannover & Region', u'http://www.haz.de/rss/feed/haz_hannoverregion'), + (u'Netzgefl\xfcster', u'http://www.haz.de/rss/feed/haz_netzgefluester'), + (u'Meinung', u'http://www.haz.de/rss/feed/haz_meinung'), + (u'ZiSH', u'http://www.haz.de/rss/feed/haz_zish'), + (u'Medien', u'http://www.haz.de/rss/feed/haz_medien'), + #(u'Sport', u'http://www.haz.de/rss/feed/haz_sport'), + #(u'Hannover 96', u'http://www.haz.de/rss/feed/haz_hannover96') + ] + + remove_tags_before =dict(id='modul_artikel') + remove_tags_after =dict(id='articlecontent') + + remove_tags = dict(id='articlesidebar') + + remove_tags = [ + dict(name='div', attrs={'class':['articlecomment', + 'articlebookmark', 'teaser_anzeige', 'teaser_umfrage', + 'navigation', 'subnavigation']}) + ] + diff --git a/resources/recipes/histmag.recipe b/resources/recipes/histmag.recipe new file mode 100644 index 0000000000..38956e7995 --- /dev/null +++ b/resources/recipes/histmag.recipe @@ -0,0 +1,59 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2010, matek09, matek09@gmail.com' + +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class Histmag(BasicNewsRecipe): + + title = u'Histmag' + __author__ = 'matek09' + description = u"Artykuly historyczne i publicystyczne" + encoding = 'utf-8' + no_stylesheets = True + language = 'pl' + remove_javascript = True + #max_articles_per_feed = 1 + remove_tags_before = dict(dict(name = 'div', attrs = {'id' : 'article'})) + remove_tags_after = dict(dict(name = 'h2', attrs = {'class' : 'komentarze'})) + #keep_only_tags =[] + #keep_only_tags.append(dict(name = 'h2')) + #keep_only_tags.append(dict(name = 'p')) + + remove_tags =[] + remove_tags.append(dict(name = 'p', attrs = {'class' : 'podpis'})) + remove_tags.append(dict(name = 'h2', attrs = {'class' : 'komentarze'})) + remove_tags.append(dict(name = 'img', attrs = {'src' : 'style/buttons/wesprzyjnas-1.jpg'})) + + preprocess_regexps = [(re.compile(r''), lambda match: '

'), + (re.compile(r''), lambda match: '

')] + extra_css = ''' + .left {font-size: x-small} + .right {font-size: x-small} + ''' + + def find_articles(self, soup): + articles = [] + for div in soup.findAll('div', attrs={'class' : 'text'}): + articles.append({ + 'title' : self.tag_to_string(div.h3.a), + 'url' : 'http://www.histmag.org/' + div.h3.a['href'], + 'date' : self.tag_to_string(div.next('p')).split('|')[0], + 'description' : self.tag_to_string(div.next('p', podpis=False)), + }) + return articles + + def parse_index(self): + soup = self.index_to_soup('http://histmag.org/?arc=4&dx=0') + feeds = [] + feeds.append((u"Artykuly historyczne", self.find_articles(soup))) + soup = self.index_to_soup('http://histmag.org/?arc=5&dx=0') + feeds.append((u"Artykuly publicystyczne", self.find_articles(soup))) + soup = self.index_to_soup('http://histmag.org/?arc=1&dx=0') + feeds.append((u"Wydarzenia", self.find_articles(soup))) + + return feeds + + diff --git a/resources/recipes/irish_times.recipe b/resources/recipes/irish_times.recipe index 14f31cf45f..0ac130ed7a 100644 --- a/resources/recipes/irish_times.recipe +++ b/resources/recipes/irish_times.recipe @@ -13,7 +13,6 @@ class IrishTimes(BasicNewsRecipe): language = 'en_IE' timefmt = ' (%A, %B %d, %Y)' - oldest_article = 3 no_stylesheets = True simultaneous_downloads= 1 @@ -35,12 +34,11 @@ class IrishTimes(BasicNewsRecipe): def print_version(self, url): if url.count('rss.feedsportal.com'): - u = 'http://www.irishtimes.com' + \ - (((url[69:].replace('0C','/')).replace('0A','0'))).replace('0Bhtml/story01..htm','_pf.html') + u = 'http://www.irishtimes.com' + \ + (((url[69:].replace('0C','/')).replace('0A','0'))).replace('0Bhtml/story01.htm','_pf.html') else: u = url.replace('.html','_pf.html') return u - def get_article_url(self, article): return article.link diff --git a/resources/recipes/jijinews.recipe b/resources/recipes/jijinews.recipe new file mode 100644 index 0000000000..4f768ce7ee --- /dev/null +++ b/resources/recipes/jijinews.recipe @@ -0,0 +1,31 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.jiji.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class JijiDotCom(BasicNewsRecipe): + title = u'\u6642\u4e8b\u901a\u4fe1' + __author__ = 'Hiroshi Miura' + description = 'World News from Jiji Press' + publisher = 'Jiji Press Ltd.' + category = 'news' + oldest_article = 6 + max_articles_per_feed = 100 + encoding = 'euc_jisx0213' + language = 'ja' + masthead_url = 'http://jen.jiji.com/images/logo_jijipress.gif' + top_url = 'http://www.jiji.com/' + + feeds = [(u'\u30cb\u30e5\u30fc\u30b9', u'http://www.jiji.com/rss/ranking.rdf')] + remove_tags_after = dict(id="ad_google") + + def get_cover_url(self): + cover_url = 'http://www.jiji.com/img/top_header_logo2.gif' + soup = self.index_to_soup(self.top_url) + cover_item = soup.find('div', attrs={'class':'top-pad-photos'}) + if cover_item: + cover_url = self.top_url + cover_item.img['src'] + return cover_url diff --git a/resources/recipes/la_diaria.recipe b/resources/recipes/la_diaria.recipe new file mode 100644 index 0000000000..d89eb465dd --- /dev/null +++ b/resources/recipes/la_diaria.recipe @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +ladiaria.com.uy +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class General(BasicNewsRecipe): + title = 'La Diaria' + __author__ = 'Gustavo Azambuja' + description = 'Noticias de Uruguay' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 5 + encoding = 'utf8' + remove_javascript = True + no_stylesheets = True + + oldest_article = 2 + max_articles_per_feed = 100 + keep_only_tags = [dict(id=['article'])] + remove_tags = [ + dict(name='div', attrs={'class':['byline', 'hr', 'titlebar', 'volver-arriba-right']}), + dict(name='div', attrs={'id':'discussion'}), + dict(name=['object','link']) + ] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + p {font-family:Arial,Helvetica,sans-serif;} + ''' + feeds = [ + (u'Articulos', u'http://ladiaria.com/feeds/articulos') + ] + + def get_cover_url(self): + return 'http://ladiaria.com/edicion/imagenportada/' + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup diff --git a/resources/recipes/la_razon_bo.recipe b/resources/recipes/la_razon_bo.recipe index b7cd59d043..18a00d6763 100644 --- a/resources/recipes/la_razon_bo.recipe +++ b/resources/recipes/la_razon_bo.recipe @@ -8,7 +8,7 @@ from calibre import strftime from calibre.web.feeds.news import BasicNewsRecipe class LaRazon_Bol(BasicNewsRecipe): - title = 'La Razón - Bolivia' + title = u'La Razón - Bolivia' __author__ = 'Darko Miletic' description = 'El diario nacional de Bolivia' publisher = 'Praxsis S.R.L.' diff --git a/resources/recipes/la_rioja.recipe b/resources/recipes/la_rioja.recipe new file mode 100644 index 0000000000..eea3dd2687 --- /dev/null +++ b/resources/recipes/la_rioja.recipe @@ -0,0 +1,54 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.larioja.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class LaRioja(BasicNewsRecipe): + title = 'La Rioja' + __author__ = 'Arturo Martinez Nieves' + description = 'Noticias de La Rioja y el resto del mundo' + publisher = 'La Rioja' + category = 'news, politics, Spain' + oldest_article = 2 + max_articles_per_feed = 200 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'es' + remove_empty_feeds = True + masthead_url = 'http://www.larioja.com/includes/manuales/larioja/include-lariojapapeldigital-zonac-fondocabecera01.jpg' + extra_css = ' body{font-family: Arial,Helvetica,sans-serif } img{margin-bottom: 0.4em} .photo-caption{font-size: x-small} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + keep_only_tags = [ + dict(attrs={'id':'title'}) + ,dict(attrs={'class':['overhead','headline','subhead','date','text','noticia_cont','desarrollo']}) + ] + remove_tags = [dict(name='ul')] + remove_attributes = ['width','height'] + + + feeds = [ + (u'Ultimas Noticias' , u'http://www.larioja.com/rss/feeds/ultima.xml' ) + ,(u'Portada' , u'http://www.larioja.com/rss/feeds/portada.xml' ) + ,(u'Mundo' , u'http://www.larioja.com/rss/feeds/mundo.xml' ) + ,(u'Espana' , u'http://www.larioja.com/rss/feeds/espana.xml' ) + ,(u'Region' , u'http://www.larioja.com/rss/feeds/region.xml' ) + ,(u'Comarcas' , u'http://www.larioja.com/rss/feeds/comarcas.xml') + ,(u'Deportes' , u'http://www.larioja.com/rss/feeds/deportes.xml' ) + ,(u'Economia' , u'http://www.larioja.com/rss/feeds/economia.xml' ) + ,(u'Cultura' , u'http://www.larioja.com/rss/feeds/cultura.xml' ) + ,(u'Opinion' , u'http://www.larioja.com/rss/feeds/opinion.xml' ) + ,(u'Sociedad' , u'http://www.larioja.com/rss/feeds/sociedad.xml' ) + + ] + diff --git a/resources/recipes/lanacion.recipe b/resources/recipes/lanacion.recipe index 068f6b3555..19f6c1c897 100644 --- a/resources/recipes/lanacion.recipe +++ b/resources/recipes/lanacion.recipe @@ -20,11 +20,14 @@ class Lanacion(BasicNewsRecipe): publication_type = 'newspaper' remove_empty_feeds = True masthead_url = 'http://www.lanacion.com.ar/imgs/layout/logos/ln341x47.gif' - extra_css = """ h1{font-family: Georgia,serif} + extra_css = """ h1{font-family: Georgia,serif} + h2{color: #626262} body{font-family: Arial,sans-serif} - img{margin-top: 0.5em; margin-bottom: 0.2em} + img{margin-top: 0.5em; margin-bottom: 0.2em; display: block} + .notaFecha{color: #808080} .notaEpigrafe{font-size: x-small} - .topNota h1{font-family: Arial,sans-serif} """ + .topNota h1{font-family: Arial,sans-serif} + """ conversion_options = { @@ -38,12 +41,12 @@ class Lanacion(BasicNewsRecipe): remove_tags = [ dict(name='div' , attrs={'class':'notaComentario floatFix noprint' }) ,dict(name='ul' , attrs={'class':['cajaHerramientas cajaTop noprint','herramientas noprint']}) - ,dict(name='div' , attrs={'class':'cajaHerramientas noprint' }) - ,dict(attrs={'class':['titulosMultimedia','derecha','techo color','encuesta','izquierda compartir','floatFix']}) - ,dict(name=['iframe','embed','object','form','base','hr']) + ,dict(name='div' , attrs={'class':['cajaHerramientas noprint','cajaHerramientas floatFix'] }) + ,dict(attrs={'class':['titulosMultimedia','derecha','techo color','encuesta','izquierda compartir','floatFix','videoCentro']}) + ,dict(name=['iframe','embed','object','form','base','hr','meta','link','input']) ] remove_tags_after = dict(attrs={'class':['tags','nota-destacado']}) - remove_attributes = ['height','width','visible'] + remove_attributes = ['height','width','visible','onclick','data-count','name'] feeds = [ (u'Ultimas noticias' , u'http://www.lanacion.com.ar/herramientas/rss/index.asp?origen=2' ) diff --git a/resources/recipes/mainichi.recipe b/resources/recipes/mainichi.recipe new file mode 100644 index 0000000000..baa7f409ec --- /dev/null +++ b/resources/recipes/mainichi.recipe @@ -0,0 +1,40 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.mainichi.jp +''' + +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class MainichiDailyNews(BasicNewsRecipe): + title = u'\u6bce\u65e5\u65b0\u805e' + __author__ = 'Hiroshi Miura' + oldest_article = 2 + max_articles_per_feed = 20 + description = 'Japanese traditional newspaper Mainichi Daily News' + publisher = 'Mainichi Daily News' + category = 'news, japan' + language = 'ja' + + feeds = [(u'daily news', u'http://mainichi.jp/rss/etc/flash.rss')] + + remove_tags_before = {'class':"NewsTitle"} + remove_tags = [{'class':"RelatedArticle"}] + remove_tags_after = {'class':"Credit"} + + def parse_feeds(self): + + feeds = BasicNewsRecipe.parse_feeds(self) + + for curfeed in feeds: + delList = [] + for a,curarticle in enumerate(curfeed.articles): + if re.search(r'pheedo.jp', curarticle.url): + delList.append(curarticle) + if len(delList)>0: + for d in delList: + index = curfeed.articles.index(d) + curfeed.articles[index:index+1] = [] + + return feeds diff --git a/resources/recipes/mainichi_it_news.recipe b/resources/recipes/mainichi_it_news.recipe new file mode 100644 index 0000000000..4c285a2c01 --- /dev/null +++ b/resources/recipes/mainichi_it_news.recipe @@ -0,0 +1,32 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class MainichiDailyITNews(BasicNewsRecipe): + title = u'\u6bce\u65e5\u65b0\u805e(IT&\u5bb6\u96fb)' + __author__ = 'Hiroshi Miura' + oldest_article = 2 + max_articles_per_feed = 100 + description = 'Japanese traditional newspaper Mainichi Daily News - IT and electronics' + publisher = 'Mainichi Daily News' + category = 'news, Japan, IT, Electronics' + language = 'ja' + + feeds = [(u'IT News', u'http://mainichi.pheedo.jp/f/mainichijp_electronics')] + + remove_tags_before = {'class':"NewsTitle"} + remove_tags = [{'class':"RelatedArticle"}] + + def parse_feeds(self): + + feeds = BasicNewsRecipe.parse_feeds(self) + + for curfeed in feeds: + delList = [] + for a,curarticle in enumerate(curfeed.articles): + if re.search(r'pheedo.jp', curarticle.url): + delList.append(curarticle) + if len(delList)>0: + for d in delList: + index = curfeed.articles.index(d) + curfeed.articles[index:index+1] = [] + + return feeds remove_tags_after = {'class':"Credit"} diff --git a/resources/recipes/matichon.recipe b/resources/recipes/matichon.recipe new file mode 100644 index 0000000000..4860bf7620 --- /dev/null +++ b/resources/recipes/matichon.recipe @@ -0,0 +1,22 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1290412756(BasicNewsRecipe): + __author__ = 'Anat R.' + title = u'Matichon' + oldest_article = 7 + language = 'th' + max_articles_per_feed = 100 + no_stylesheets = True + remove_javascript = True + use_embedded_content = False + feeds = [(u'News', u'http://www.matichon.co.th/rss/news_article.xml'), + (u'Columns', u'http://www.matichon.co.th/rss/news_columns.xml'), + (u'Politics', u'http://www.matichon.co.th/rss/news_politic.xml'), + (u'Business', u'http://www.matichon.co.th/rss/news_business.xml'), + (u'World', u'http://www.matichon.co.th/rss/news_world.xml'), + (u'Sports', u'http://www.matichon.co.th/rss/news_sport.xml'), + (u'Entertainment', u'http://www.matichon.co.th/rss/news_entertainment.xml')] + keep_only_tags = [] + keep_only_tags.append(dict(name = 'h3', attrs = {'class' : 'read-h'})) + keep_only_tags.append(dict(name = 'p', attrs = {'class' : 'read-time'})) + keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'news-content'})) diff --git a/resources/recipes/ming_pao.recipe b/resources/recipes/ming_pao.recipe index 162a3c774e..385dbdbdb7 100644 --- a/resources/recipes/ming_pao.recipe +++ b/resources/recipes/ming_pao.recipe @@ -3,13 +3,28 @@ __copyright__ = '2010, Eddie Lau' ''' modified from Singtao Toronto calibre recipe by rty Change Log: +2010/11/22: add English section, remove eco-news section which is not updated daily, correct + ordering of articles +2010/11/12: add news image and eco-news section +2010/11/08: add parsing of finance section +2010/11/06: temporary work-around for Kindle device having no capability to display unicode + in section/article list. 2010/10/31: skip repeated articles in section pages ''' -import datetime +import os, datetime, re from calibre.web.feeds.recipes import BasicNewsRecipe +from contextlib import nested -class AdvancedUserRecipe1278063072(BasicNewsRecipe): + +from calibre import __appname__, strftime +from calibre.ebooks.BeautifulSoup import BeautifulSoup +from calibre.ebooks.metadata.opf2 import OPFCreator +from calibre.ebooks.metadata.toc import TOC +from calibre.ebooks.metadata import MetaInformation +from calibre.utils.date import now as nowf + +class MPHKRecipe(BasicNewsRecipe): title = 'Ming Pao - Hong Kong' oldest_article = 1 max_articles_per_feed = 100 @@ -24,27 +39,131 @@ class AdvancedUserRecipe1278063072(BasicNewsRecipe): encoding = 'Big5-HKSCS' recursions = 0 conversion_options = {'linearize_tables':True} + extra_css = 'img {display: block; margin-left: auto; margin-right: auto; margin-top: 10px; margin-bottom: 10px;}' + #extra_css = 'img {float:right; margin:4px;}' masthead_url = 'http://news.mingpao.com/image/portals_top_logo_news.gif' keep_only_tags = [dict(name='h1'), + #dict(name='font', attrs={'style':['font-size:14pt; line-height:160%;']}), # for entertainment page + dict(attrs={'class':['photo']}), + dict(attrs={'id':['newscontent']}), dict(attrs={'id':['newscontent01','newscontent02']})] + remove_tags = [dict(name='style'), + dict(attrs={'id':['newscontent135']})] # for the finance page + remove_attributes = ['width'] + preprocess_regexps = [ + (re.compile(r'
', re.DOTALL|re.IGNORECASE), + lambda match: '

'), + (re.compile(r'

', re.DOTALL|re.IGNORECASE), + lambda match: ''), + ] + + def image_url_processor(cls, baseurl, url): + # trick: break the url at the first occurance of digit, add an additional + # '_' at the front + # not working, may need to move this to preprocess_html() method + #minIdx = 10000 + #i0 = url.find('0') + #if i0 >= 0 and i0 < minIdx: + # minIdx = i0 + #i1 = url.find('1') + #if i1 >= 0 and i1 < minIdx: + # minIdx = i1 + #i2 = url.find('2') + #if i2 >= 0 and i2 < minIdx: + # minIdx = i2 + #i3 = url.find('3') + #if i3 >= 0 and i0 < minIdx: + # minIdx = i3 + #i4 = url.find('4') + #if i4 >= 0 and i4 < minIdx: + # minIdx = i4 + #i5 = url.find('5') + #if i5 >= 0 and i5 < minIdx: + # minIdx = i5 + #i6 = url.find('6') + #if i6 >= 0 and i6 < minIdx: + # minIdx = i6 + #i7 = url.find('7') + #if i7 >= 0 and i7 < minIdx: + # minIdx = i7 + #i8 = url.find('8') + #if i8 >= 0 and i8 < minIdx: + # minIdx = i8 + #i9 = url.find('9') + #if i9 >= 0 and i9 < minIdx: + # minIdx = i9 + #return url[0:minIdx] + '_' + url[minIdx+1:] + return url def get_fetchdate(self): dt_utc = datetime.datetime.utcnow() - # convert UTC to local hk time - at around HKT 5.30am, all news are available - dt_local = dt_utc - datetime.timedelta(-2.5/24) + # convert UTC to local hk time - at around HKT 6.00am, all news are available + dt_local = dt_utc - datetime.timedelta(-2.0/24) return dt_local.strftime("%Y%m%d") def parse_index(self): - feeds = [] - dateStr = self.get_fetchdate() - for title, url in [(u'\u8981\u805e Headline', 'http://news.mingpao.com/' + dateStr + '/gaindex.htm'), (u'\u6559\u80b2 Education', 'http://news.mingpao.com/' + dateStr + '/gfindex.htm'), (u'\u6e2f\u805e Local', 'http://news.mingpao.com/' + dateStr + '/gbindex.htm'), (u'\u793e\u8a55\u2027\u7b46\u9663 Editorial', 'http://news.mingpao.com/' + dateStr + '/mrindex.htm'), (u'\u8ad6\u58c7 Forum', 'http://news.mingpao.com/' + dateStr + '/faindex.htm'), (u'\u4e2d\u570b China', 'http://news.mingpao.com/' + dateStr + '/caindex.htm'), (u'\u570b\u969b World', 'http://news.mingpao.com/' + dateStr + '/taindex.htm'), ('Tech News', 'http://news.mingpao.com/' + dateStr + '/naindex.htm'), (u'\u9ad4\u80b2 Sport', 'http://news.mingpao.com/' + dateStr + '/spindex.htm'), (u'\u526f\u520a Supplement', 'http://news.mingpao.com/' + dateStr + '/jaindex.htm'),]: - articles = self.parse_section(url) - if articles: - feeds.append((title, articles)) + feeds = [] + dateStr = self.get_fetchdate() + for title, url in [(u'\u8981\u805e Headline', 'http://news.mingpao.com/' + dateStr + '/gaindex.htm'), + (u'\u6559\u80b2 Education', 'http://news.mingpao.com/' + dateStr + '/gfindex.htm'), + (u'\u6e2f\u805e Local', 'http://news.mingpao.com/' + dateStr + '/gbindex.htm'), + (u'\u793e\u8a55\u2027\u7b46\u9663 Editorial', 'http://news.mingpao.com/' + dateStr + '/mrindex.htm'), + (u'\u8ad6\u58c7 Forum', 'http://news.mingpao.com/' + dateStr + '/faindex.htm'), + (u'\u4e2d\u570b China', 'http://news.mingpao.com/' + dateStr + '/caindex.htm'), + (u'\u570b\u969b World', 'http://news.mingpao.com/' + dateStr + '/taindex.htm'), + ('Tech News', 'http://news.mingpao.com/' + dateStr + '/naindex.htm'), + (u'\u9ad4\u80b2 Sport', 'http://news.mingpao.com/' + dateStr + '/spindex.htm'), + (u'\u526f\u520a Supplement', 'http://news.mingpao.com/' + dateStr + '/jaindex.htm'), + (u'\u82f1\u6587 English', 'http://news.mingpao.com/' + dateStr + '/emindex.htm')]: + articles = self.parse_section(url) + if articles: + feeds.append((title, articles)) + # special - finance + fin_articles = self.parse_fin_section('http://www.mpfinance.com/htm/Finance/' + dateStr + '/News/ea,eb,ecindex.htm') + if fin_articles: + feeds.append((u'\u7d93\u6fdf Finance', fin_articles)) + # special - eco-friendly + # eco_articles = self.parse_eco_section('http://tssl.mingpao.com/htm/marketing/eco/cfm/Eco1.cfm') + # if eco_articles: + # feeds.append((u'\u74b0\u4fdd Eco News', eco_articles)) + # special - entertainment + #ent_articles = self.parse_ent_section('http://ol.mingpao.com/cfm/star1.cfm') + #if ent_articles: + # feeds.append(('Entertainment', ent_articles)) return feeds def parse_section(self, url): + dateStr = self.get_fetchdate() + soup = self.index_to_soup(url) + divs = soup.findAll(attrs={'class': ['bullet','bullet_grey']}) + current_articles = [] + included_urls = [] + divs.reverse() + for i in divs: + a = i.find('a', href = True) + title = self.tag_to_string(a) + url = a.get('href', False) + url = 'http://news.mingpao.com/' + dateStr + '/' +url + if url not in included_urls and url.rfind('Redirect') == -1: + current_articles.append({'title': title, 'url': url, 'description':'', 'date':''}) + included_urls.append(url) + current_articles.reverse() + return current_articles + + def parse_fin_section(self, url): dateStr = self.get_fetchdate() + soup = self.index_to_soup(url) + a = soup.findAll('a', href= True) + current_articles = [] + for i in a: + url = i.get('href', False) + if not url.rfind(dateStr) == -1 and url.rfind('index') == -1: + title = self.tag_to_string(i) + url = 'http://www.mpfinance.com/cfm/' +url + current_articles.append({'title': title, 'url': url, 'description':''}) + return current_articles + + def parse_eco_section(self, url): soup = self.index_to_soup(url) divs = soup.findAll(attrs={'class': ['bullet']}) current_articles = [] @@ -53,9 +172,162 @@ class AdvancedUserRecipe1278063072(BasicNewsRecipe): a = i.find('a', href = True) title = self.tag_to_string(a) url = a.get('href', False) - url = 'http://news.mingpao.com/' + dateStr + '/' +url - if url not in included_urls: + url = 'http://tssl.mingpao.com/htm/marketing/eco/cfm/' +url + if url not in included_urls and url.rfind('Redirect') == -1: current_articles.append({'title': title, 'url': url, 'description':''}) included_urls.append(url) return current_articles + #def parse_ent_section(self, url): + # dateStr = self.get_fetchdate() + # soup = self.index_to_soup(url) + # a = soup.findAll('a', href=True) + # current_articles = [] + # included_urls = [] + # for i in a: + # title = self.tag_to_string(i) + # url = 'http://ol.mingpao.com/cfm/' + i.get('href', False) + # if url not in included_urls and not url.rfind('.txt') == -1 and not url.rfind(dateStr) == -1 and not title == '': + # current_articles.append({'title': title, 'url': url, 'description': ''}) + # return current_articles + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + for item in soup.findAll(style=True): + del item['width'] + for item in soup.findAll(stype=True): + del item['absmiddle'] + return soup + + def create_opf(self, feeds, dir=None): + #super(MPHKRecipe,self).create_opf(feeds, dir) + if dir is None: + dir = self.output_dir + title = self.short_title() + if self.output_profile.periodical_date_in_title: + title += strftime(self.timefmt) + mi = MetaInformation(title, [__appname__]) + mi.publisher = __appname__ + mi.author_sort = __appname__ + mi.publication_type = self.publication_type+':'+self.short_title() + mi.timestamp = nowf() + mi.comments = self.description + if not isinstance(mi.comments, unicode): + mi.comments = mi.comments.decode('utf-8', 'replace') + mi.pubdate = nowf() + opf_path = os.path.join(dir, 'index.opf') + ncx_path = os.path.join(dir, 'index.ncx') + opf = OPFCreator(dir, mi) + # Add mastheadImage entry to section + mp = getattr(self, 'masthead_path', None) + if mp is not None and os.access(mp, os.R_OK): + from calibre.ebooks.metadata.opf2 import Guide + ref = Guide.Reference(os.path.basename(self.masthead_path), os.getcwdu()) + ref.type = 'masthead' + ref.title = 'Masthead Image' + opf.guide.append(ref) + + manifest = [os.path.join(dir, 'feed_%d'%i) for i in range(len(feeds))] + manifest.append(os.path.join(dir, 'index.html')) + manifest.append(os.path.join(dir, 'index.ncx')) + + # Get cover + cpath = getattr(self, 'cover_path', None) + if cpath is None: + pf = open(os.path.join(dir, 'cover.jpg'), 'wb') + if self.default_cover(pf): + cpath = pf.name + if cpath is not None and os.access(cpath, os.R_OK): + opf.cover = cpath + manifest.append(cpath) + + # Get masthead + mpath = getattr(self, 'masthead_path', None) + if mpath is not None and os.access(mpath, os.R_OK): + manifest.append(mpath) + + opf.create_manifest_from_files_in(manifest) + for mani in opf.manifest: + if mani.path.endswith('.ncx'): + mani.id = 'ncx' + if mani.path.endswith('mastheadImage.jpg'): + mani.id = 'masthead-image' + entries = ['index.html'] + toc = TOC(base_path=dir) + self.play_order_counter = 0 + self.play_order_map = {} + + def feed_index(num, parent): + f = feeds[num] + for j, a in enumerate(f): + if getattr(a, 'downloaded', False): + adir = 'feed_%d/article_%d/'%(num, j) + auth = a.author + if not auth: + auth = None + desc = a.text_summary + if not desc: + desc = None + else: + desc = self.description_limiter(desc) + entries.append('%sindex.html'%adir) + po = self.play_order_map.get(entries[-1], None) + if po is None: + self.play_order_counter += 1 + po = self.play_order_counter + parent.add_item('%sindex.html'%adir, None, a.title if a.title else _('Untitled Article'), + play_order=po, author=auth, description=desc) + last = os.path.join(self.output_dir, ('%sindex.html'%adir).replace('/', os.sep)) + for sp in a.sub_pages: + prefix = os.path.commonprefix([opf_path, sp]) + relp = sp[len(prefix):] + entries.append(relp.replace(os.sep, '/')) + last = sp + + if os.path.exists(last): + with open(last, 'rb') as fi: + src = fi.read().decode('utf-8') + soup = BeautifulSoup(src) + body = soup.find('body') + if body is not None: + prefix = '/'.join('..'for i in range(2*len(re.findall(r'link\d+', last)))) + templ = self.navbar.generate(True, num, j, len(f), + not self.has_single_feed, + a.orig_url, __appname__, prefix=prefix, + center=self.center_navbar) + elem = BeautifulSoup(templ.render(doctype='xhtml').decode('utf-8')).find('div') + body.insert(len(body.contents), elem) + with open(last, 'wb') as fi: + fi.write(unicode(soup).encode('utf-8')) + if len(feeds) == 0: + raise Exception('All feeds are empty, aborting.') + + if len(feeds) > 1: + for i, f in enumerate(feeds): + entries.append('feed_%d/index.html'%i) + po = self.play_order_map.get(entries[-1], None) + if po is None: + self.play_order_counter += 1 + po = self.play_order_counter + auth = getattr(f, 'author', None) + if not auth: + auth = None + desc = getattr(f, 'description', None) + if not desc: + desc = None + feed_index(i, toc.add_item('feed_%d/index.html'%i, None, + f.title, play_order=po, description=desc, author=auth)) + + else: + entries.append('feed_%d/index.html'%0) + feed_index(0, toc) + + for i, p in enumerate(entries): + entries[i] = os.path.join(dir, p.replace('/', os.sep)) + opf.create_spine(entries) + opf.set_toc(toc) + + with nested(open(opf_path, 'wb'), open(ncx_path, 'wb')) as (opf_file, ncx_file): + opf.render(opf_file, ncx_file) + diff --git a/resources/recipes/montevideo_com.recipe b/resources/recipes/montevideo_com.recipe new file mode 100644 index 0000000000..cabd4181d6 --- /dev/null +++ b/resources/recipes/montevideo_com.recipe @@ -0,0 +1,56 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +http://www.montevideo.com.uy +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Noticias(BasicNewsRecipe): + title = 'Montevideo COMM' + __author__ = 'Gustavo Azambuja' + description = 'Noticias de Uruguay' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 5 + encoding = 'utf-8' + remove_javascript = True + no_stylesheets = True + + oldest_article = 2 + max_articles_per_feed = 100 + keep_only_tags = [dict(id=['txt'])] + remove_tags = [ + dict(name=['object','link']) + ] + + remove_attributes = ['width','height', 'style', 'font', 'color'] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + p {font-family:Arial,Helvetica,sans-serif;} + ''' + feeds = [ + (u'Destacados', u'http://www.montevideo.com.uy/anxml.aspx?58'), + (u'Noticias', u'http://www.montevideo.com.uy/anxml.aspx?59'), + (u'Tecnologia', u'http://www.montevideo.com.uy/anxml.aspx?133'), + (u'Tiempo Libre', u'http://www.montevideo.com.uy/anxml.aspx?60'), + # (u'Deportes', u'http://www.montevideo.com.uy/anxml.aspx?968'), + # (u'Pantallazo', u'http://www.montevideo.com.uy/anxml.aspx?1022'), + (u'Gastronomia', u'http://www.montevideo.com.uy/anxml.aspx?1023') + ] + + def get_cover_url(self): + return 'http://sphotos.ak.fbcdn.net/hphotos-ak-snc1/hs276.snc1/10319_147339559330_147337559330_2625816_6636564_n.jpg' + + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup + diff --git a/resources/recipes/moscow_times.recipe b/resources/recipes/moscow_times.recipe index 3105aba58e..9d178e8c53 100644 --- a/resources/recipes/moscow_times.recipe +++ b/resources/recipes/moscow_times.recipe @@ -1,31 +1,33 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2008, Darko Miletic ' +__copyright__ = '2008-2010, Darko Miletic ' ''' -moscowtimes.ru +www.themoscowtimes.com ''' from calibre.web.feeds.news import BasicNewsRecipe class Moscowtimes(BasicNewsRecipe): - title = u'The Moscow Times' + title = 'The Moscow Times' __author__ = 'Darko Miletic and Sujata Raman' - description = 'News from Russia' - language = 'en' - lang = 'en' - oldest_article = 7 + description = 'The Moscow Times is a daily English-language newspaper featuring objective, reliable news on business, politics, sports and culture in Moscow, in Russia and the former Soviet Union (CIS).' + category = 'Russia, Moscow, Russian news, Moscow news, Russian newspaper, daily news, independent news, reliable news, USSR, Soviet Union, CIS, Russian politics, Russian business, Russian culture, Russian opinion, St Petersburg, Saint Petersburg' + publisher = 'The Moscow Times' + language = 'en' + oldest_article = 2 max_articles_per_feed = 100 no_stylesheets = True use_embedded_content = False - #encoding = 'utf-8' - encoding = 'cp1252' - remove_javascript = True + remove_empty_feeds = True + encoding = 'cp1251' + masthead_url = 'http://www.themoscowtimes.com/bitrix/templates/tmt/img/logo.gif' + publication_type = 'newspaper' conversion_options = { - 'comment' : description - , 'language' : lang - } + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } extra_css = ''' h1{ color:#0066B3; font-family: Georgia,serif ; font-size: large} @@ -35,39 +37,37 @@ class Moscowtimes(BasicNewsRecipe): .text{font-family:Arial,Tahoma,Verdana,Helvetica,sans-serif ; font-size:75%; } ''' feeds = [ - (u'The Moscow Times Top Stories' , u'http://www.themoscowtimes.com/rss/top'), - (u'The Moscow Times Current Issue' , u'http://www.themoscowtimes.com/rss/issue'), - (u'The Moscow Times News' , u'http://www.themoscowtimes.com/rss/news'), - (u'The Moscow Times Business' , u'http://www.themoscowtimes.com/rss/business'), - (u'The Moscow Times Art and Ideas' , u'http://www.themoscowtimes.com/rss/art'), - (u'The Moscow Times Opinion' , u'http://www.themoscowtimes.com/rss/opinion') + (u'Top Stories' , u'http://www.themoscowtimes.com/rss/top' ) + ,(u'Current Issue' , u'http://www.themoscowtimes.com/rss/issue' ) + ,(u'News' , u'http://www.themoscowtimes.com/rss/news' ) + ,(u'Business' , u'http://www.themoscowtimes.com/rss/business') + ,(u'Art and Ideas' , u'http://www.themoscowtimes.com/rss/art' ) + ,(u'Opinion' , u'http://www.themoscowtimes.com/rss/opinion' ) ] - keep_only_tags = [ - dict(name='div', attrs={'class':['newstextblock']}) - ] - + keep_only_tags = [dict(name='div', attrs={'id':'content'})] remove_tags = [ - dict(name='div', attrs={'class':['photo_nav']}) - ] - + dict(name='div', attrs={'class':['photo_nav','phototext']}) + ,dict(name=['iframe','meta','base','link','embed','object']) + ] + def preprocess_html(self, soup): - soup.html['xml:lang'] = self.lang - soup.html['lang'] = self.lang - mtag = '' - soup.head.insert(0,mtag) - - return self.adeify_images(soup) + for lnk in soup.findAll('a'): + if lnk.string is not None: + ind = self.tag_to_string(lnk) + lnk.replaceWith(ind) + return soup + def print_version(self, url): + return url.replace('.themoscowtimes.com/','.themoscowtimes.com/print/') def get_cover_url(self): - + cover_url = None href = 'http://www.themoscowtimes.com/pdf/' - - soup = self.index_to_soup(href) + soup = self.index_to_soup(href) div = soup.find('div',attrs={'class':'left'}) - a = div.find('a') - print a - if a : - cover_url = a.img['src'] + if div: + a = div.find('a') + if a : + cover_url = 'http://www.themoscowtimes.com' + a.img['src'] return cover_url diff --git a/resources/recipes/msnsankei.recipe b/resources/recipes/msnsankei.recipe new file mode 100644 index 0000000000..ae195559d5 --- /dev/null +++ b/resources/recipes/msnsankei.recipe @@ -0,0 +1,27 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +sankei.jp.msn.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class MSNSankeiNewsProduct(BasicNewsRecipe): + title = u'MSN\u7523\u7d4c\u30cb\u30e5\u30fc\u30b9(\u65b0\u5546\u54c1)' + __author__ = 'Hiroshi Miura' + description = 'Products release from Japan' + oldest_article = 7 + max_articles_per_feed = 100 + encoding = 'Shift_JIS' + language = 'ja' + cover_url = 'http://sankei.jp.msn.com/images/common/sankeShinbunLogo.jpg' + masthead_url = 'http://sankei.jp.msn.com/images/common/sankeiNewsLogo.gif' + + feeds = [(u'\u65b0\u5546\u54c1', u'http://sankei.jp.msn.com/rss/news/release.xml')] + + remove_tags_before = dict(id="__r_article_title__") + remove_tags_after = dict(id="ajax_release_news") + remove_tags = [{'class':"parent chromeCustom6G"}, + dict(id="RelatedImg") + ] diff --git a/resources/recipes/nacionred.recipe b/resources/recipes/nacionred.recipe new file mode 100644 index 0000000000..4108deab88 --- /dev/null +++ b/resources/recipes/nacionred.recipe @@ -0,0 +1,11 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1291022049(BasicNewsRecipe): + title = u'NacionRed.com' + oldest_article = 7 + max_articles_per_feed = 100 + language = 'es' + __author__ = 'Arturo Martinez Nieves' + + feeds = [(u'NacionRed.com', u'http://feeds.weblogssl.com/nacionred?format=xml')] + diff --git a/resources/recipes/new_yorker.recipe b/resources/recipes/new_yorker.recipe index 605b34e79b..0c95aa358d 100644 --- a/resources/recipes/new_yorker.recipe +++ b/resources/recipes/new_yorker.recipe @@ -22,8 +22,19 @@ class NewYorker(BasicNewsRecipe): masthead_url = 'http://www.newyorker.com/css/i/hed/logo.gif' extra_css = """ body {font-family: "Times New Roman",Times,serif} - .articleauthor{color: #9F9F9F; font-family: Arial, sans-serif; font-size: small; text-transform: uppercase} - .rubric{color: #CD0021; font-family: Arial, sans-serif; font-size: small; text-transform: uppercase} + .articleauthor{color: #9F9F9F; + font-family: Arial, sans-serif; + font-size: small; + text-transform: uppercase} + .rubric,.dd,h6#credit{color: #CD0021; + font-family: Arial, sans-serif; + font-size: small; + text-transform: uppercase} + .descender:first-letter{display: inline; font-size: xx-large; font-weight: bold} + .dd,h6#credit{color: gray} + .c{display: block} + .caption,h2#articleintro{font-style: italic} + .caption{font-size: small} """ conversion_options = { @@ -32,15 +43,15 @@ class NewYorker(BasicNewsRecipe): , 'publisher' : publisher , 'language' : language } - + keep_only_tags = [ dict(name='div', attrs={'class':'headers'}) ,dict(name='div', attrs={'id':['articleheads','items-container','articleRail','articletext','photocredits']}) ] remove_tags = [ dict(name=['meta','iframe','base','link','embed','object']) - ,dict(attrs={'class':['utils','articleRailLinks','icons'] }) - ,dict(attrs={'id':['show-header','show-footer'] }) + ,dict(attrs={'class':['utils','socialUtils','articleRailLinks','icons'] }) + ,dict(attrs={'id':['show-header','show-footer'] }) ] remove_attributes = ['lang'] feeds = [(u'The New Yorker', u'http://feeds.newyorker.com/services/rss/feeds/everything.xml')] @@ -58,4 +69,14 @@ class NewYorker(BasicNewsRecipe): if cover_item: cover_url = 'http://www.newyorker.com' + cover_item['src'].strip() return cover_url - \ No newline at end of file + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + auth = soup.find(attrs={'id':'articleauthor'}) + if auth: + alink = auth.find('a') + if alink and alink.string is not None: + txt = alink.string + alink.replaceWith(txt) + return soup diff --git a/resources/recipes/newsweek_polska.recipe b/resources/recipes/newsweek_polska.recipe index 31dd8ccddd..4227a88026 100644 --- a/resources/recipes/newsweek_polska.recipe +++ b/resources/recipes/newsweek_polska.recipe @@ -1,19 +1,22 @@ #!/usr/bin/env python __license__ = 'GPL v3' -__copyright__ = '2010, Mateusz Kielar, matek09@gmail.com' +__copyright__ = '2010, matek09, matek09@gmail.com' from calibre.web.feeds.news import BasicNewsRecipe class Newsweek(BasicNewsRecipe): - EDITION = 0 + FIND_LAST_FULL_ISSUE = True + EDITION = '0' + EXCLUDE_LOCKED = True + LOCKED_ICO = 'http://www.newsweek.pl/bins/media/static/newsweek/img/ico_locked.gif' title = u'Newsweek Polska' - __author__ = 'Mateusz Kielar' + __author__ = 'matek09' description = 'Weekly magazine' encoding = 'utf-8' no_stylesheets = True - language = 'en' + language = 'pl' remove_javascript = True keep_only_tags =[] @@ -33,34 +36,54 @@ class Newsweek(BasicNewsRecipe): def print_version(self, url): return url.replace("http://www.newsweek.pl/artykuly/wydanie/" + str(self.EDITION), "http://www.newsweek.pl/artykuly") + '/print' + def is_locked(self, a): + if a.findNext('img')['src'] == 'http://www.newsweek.pl/bins/media/static/newsweek/img/ico_locked.gif': + return True + else: + return False + + def is_full(self, issue_soup): + if len(issue_soup.findAll('img', attrs={'src' : 'http://www.newsweek.pl/bins/media/static/newsweek/img/ico_locked.gif'})) > 1: + return False + else: + return True + def find_last_full_issue(self): - page = self.index_to_soup('http://www.newsweek.pl/Frames/IssueCover.aspx') - issue = 'http://www.newsweek.pl/Frames/' + page.find(lambda tag: tag.name == 'span' and not tag.attrs).a['href'] - page = self.index_to_soup(issue) - issue = 'http://www.newsweek.pl/Frames/' + page.find(lambda tag: tag.name == 'span' and not tag.attrs).a['href'] - page = self.index_to_soup(issue) - self.EDITION = page.find('a', attrs={'target' : '_parent'})['href'].replace('/wydania/','') + frame_url = 'http://www.newsweek.pl/Frames/IssueCover.aspx' + while True: + frame_soup = self.index_to_soup(frame_url) + self.EDITION = frame_soup.find('a', attrs={'target' : '_parent'})['href'].replace('/wydania/','') + issue_soup = self.index_to_soup('http://www.newsweek.pl/wydania/' + self.EDITION) + if self.is_full(issue_soup): + break + frame_url = 'http://www.newsweek.pl/Frames/' + frame_soup.find(lambda tag: tag.name == 'span' and not tag.attrs).a['href'] + + def parse_index(self): - self.find_last_full_issue() - soup = self.index_to_soup('http://www.newsweek.pl/wydania/' + str(self.EDITION)) + if self.FIND_LAST_FULL_ISSUE: + self.find_last_full_issue() + soup = self.index_to_soup('http://www.newsweek.pl/wydania/' + self.EDITION) img = soup.find('img', id="ctl00_C1_PaperIsssueView_IssueImage", src=True) self.cover_url = img['src'] feeds = [] parent = soup.find(id='content-left-big') for txt in parent.findAll(attrs={'class':'txt_normal_red strong'}): - section = self.tag_to_string(txt).capitalize() articles = list(self.find_articles(txt)) - feeds.append((section, articles)) + if len(articles) > 0: + section = self.tag_to_string(txt).capitalize() + feeds.append((section, articles)) return feeds def find_articles(self, txt): for a in txt.findAllNext( attrs={'class':['strong','hr']}): if a.name in "div": break + if (not self.FIND_LAST_FULL_ISSUE) & self.EXCLUDE_LOCKED & self.is_locked(a): + continue yield { 'title' : self.tag_to_string(a), - 'url' : 'http://www.newsweek.pl'+a['href'], + 'url' : 'http://www.newsweek.pl' + a['href'], 'date' : '', 'description' : '' } diff --git a/resources/recipes/nikkei_free.recipe b/resources/recipes/nikkei_free.recipe new file mode 100644 index 0000000000..adc596104b --- /dev/null +++ b/resources/recipes/nikkei_free.recipe @@ -0,0 +1,58 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.nikkei.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class NikkeiNet(BasicNewsRecipe): + title = u'\u65e5\u7d4c\u65b0\u805e\u96fb\u5b50\u7248(Free, MAX)' + __author__ = 'Hiroshi Miura' + description = 'News and current market affairs from Japan, no subscription and getting max feed.' + cover_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + masthead_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + oldest_article = 2 + max_articles_per_feed = 20 + language = 'ja' + + feeds = [ (u'\u65e5\u7d4c\u4f01\u696d', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=sangyo'), + (u'\u65e5\u7d4c\u88fd\u54c1', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=newpro'), + (u'internet', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=internet'), + (u'\u653f\u6cbb', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=seiji'), + (u'\u8ca1\u52d9', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=zaimu'), + (u'\u7d4c\u6e08', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=keizai'), + (u'\u56fd\u969b', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kaigai'), + (u'\u79d1\u5b66', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kagaku'), + (u'\u30de\u30fc\u30b1\u30c3\u30c8', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=market'), + (u'\u304f\u3089\u3057', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kurashi'), + (u'\u30b9\u30dd\u30fc\u30c4', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=sports'), + (u'\u793e\u4f1a', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=shakai'), + (u'\u30a8\u30b3', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=eco'), + (u'\u5065\u5eb7', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kenkou'), + (u'\u96c7\u7528', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=koyou'), + (u'\u6559\u80b2', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kyouiku'), + (u'\u304a\u304f\u3084\u307f', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=okuyami'), + (u'\u4eba\u4e8b', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=zinzi'), + (u'\u7279\u96c6', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=special'), + (u'\u5730\u57df\u30cb\u30e5\u30fc\u30b9', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=local'), + (u'\u7d71\u8a08\u30fb\u767d\u66f8', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=report'), + (u'\u30e9\u30f3\u30ad\u30f3\u30b0', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=ranking'), + (u'\u4f1a\u898b', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=interview'), + (u'\u793e\u8aac\u30fb\u6625\u79cb', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=shasetsu'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30d7\u30ed\u91ce\u7403', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=baseball'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u5927\u30ea\u30fc\u30b0', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=mlb'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30b5\u30c3\u30ab\u30fc', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=soccer'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30b4\u30eb\u30d5', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=golf'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u76f8\u64b2', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=sumou'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u7af6\u99ac', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=keiba'), + (u'\u8abf\u67fb\u30fb\u30a2\u30f3\u30b1\u30fc\u30c8', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=research') + ] + + remove_tags_before = dict(id="CONTENTS") + remove_tags = [ + dict(name="form"), + {'class':"cmn-hide"}, + ] + remove_tags_after = {'class':"cmn-pr_list"} + diff --git a/resources/recipes/nikkei_sub.recipe b/resources/recipes/nikkei_sub.recipe new file mode 100644 index 0000000000..18f324009a --- /dev/null +++ b/resources/recipes/nikkei_sub.recipe @@ -0,0 +1,125 @@ +import re +from calibre.web.feeds.recipes import BasicNewsRecipe +import mechanize +from calibre.ptempfile import PersistentTemporaryFile + + +class NikkeiNet_subscription(BasicNewsRecipe): + title = u'\u65e5\u7d4c\u65b0\u805e\u96fb\u5b50\u7248(MAX)' + __author__ = 'Hiroshi Miura' + description = 'News and current market affairs from Japan, gather MAX articles' + needs_subscription = True + oldest_article = 2 + max_articles_per_feed = 10 + language = 'ja' + remove_javascript = False + temp_files = [] + + remove_tags_before = {'class':"cmn-section cmn-indent"} + remove_tags = [ + {'class':"JSID_basePageMove JSID_baseAsyncSubmit cmn-form_area JSID_optForm_utoken"}, + {'class':"cmn-article_keyword cmn-clearfix"}, + {'class':"cmn-print_headline cmn-clearfix"}, + ] + remove_tags_after = {'class':"cmn-pr_list"} + + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + + cj = mechanize.LWPCookieJar() + br.set_cookiejar(cj) + + #br.set_debug_http(True) + #br.set_debug_redirects(True) + #br.set_debug_responses(True) + + if self.username is not None and self.password is not None: + #print "----------------------------get login form--------------------------------------------" + # open login form + br.open('https://id.nikkei.com/lounge/nl/base/LA0010.seam') + response = br.response() + #print "----------------------------get login form---------------------------------------------" + #print "----------------------------set login form---------------------------------------------" + # remove disabled input which brings error on mechanize + response.set_data(response.get_data().replace("", " -->")) + br.set_response(response) + br.select_form(name='LA0010Form01') + br['LA0010Form01:LA0010Email'] = self.username + br['LA0010Form01:LA0010Password'] = self.password + br.form.find_control(id='LA0010Form01:LA0010AutoLoginOn',type="checkbox").get(nr=0).selected = True + br.submit() + br.response() + #print "----------------------------send login form---------------------------------------------" + #print "----------------------------open news main page-----------------------------------------" + # open news site + br.open('http://www.nikkei.com/') + br.response() + #print "----------------------------www.nikkei.com BODY --------------------------------------" + #print response2.get_data() + #print "-------------------------^^-got auto redirect form----^^--------------------------------" + # forced redirect in default + br.select_form(nr=0) + br.submit() + response3 = br.response() + # return some cookie which should be set by Javascript + #print response3.geturl() + raw = response3.get_data() + #print "---------------------------response to form --------------------------------------------" + # grab cookie from JS and set it + redirectflag = re.search(r"var checkValue = '(\d+)';", raw, re.M).group(1) + br.select_form(nr=0) + + self.temp_files.append(PersistentTemporaryFile('_fa.html')) + self.temp_files[-1].write("#LWP-Cookies-2.0\n") + + self.temp_files[-1].write("Set-Cookie3: Cookie-dummy=Cookie-value; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].write("Set-Cookie3: redirectFlag="+redirectflag+"; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].close() + cj.load(self.temp_files[-1].name) + + br.submit() + + #br.set_debug_http(False) + #br.set_debug_redirects(False) + #br.set_debug_responses(False) + return br + + + + feeds = [ (u'\u65e5\u7d4c\u4f01\u696d', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=sangyo'), + (u'\u65e5\u7d4c\u88fd\u54c1', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=newpro'), + (u'internet', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=internet'), + (u'\u653f\u6cbb', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=seiji'), + (u'\u8ca1\u52d9', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=zaimu'), + (u'\u7d4c\u6e08', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=keizai'), + (u'\u56fd\u969b', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kaigai'), + (u'\u79d1\u5b66', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kagaku'), + (u'\u30de\u30fc\u30b1\u30c3\u30c8', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=market'), + (u'\u304f\u3089\u3057', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kurashi'), + (u'\u30b9\u30dd\u30fc\u30c4', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=sports'), + (u'\u793e\u4f1a', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=shakai'), + (u'\u30a8\u30b3', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=eco'), + (u'\u5065\u5eb7', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kenkou'), + (u'\u96c7\u7528', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=koyou'), + (u'\u6559\u80b2', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kyouiku'), + (u'\u304a\u304f\u3084\u307f', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=okuyami'), + (u'\u4eba\u4e8b', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=zinzi'), + (u'\u7279\u96c6', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=special'), + (u'\u5730\u57df\u30cb\u30e5\u30fc\u30b9', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=local'), + (u'\u7d71\u8a08\u30fb\u767d\u66f8', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=report'), + (u'\u30e9\u30f3\u30ad\u30f3\u30b0', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=ranking'), + (u'\u4f1a\u898b', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=interview'), + (u'\u793e\u8aac\u30fb\u6625\u79cb', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=shasetsu'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30d7\u30ed\u91ce\u7403', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=baseball'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u5927\u30ea\u30fc\u30b0', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=mlb'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30b5\u30c3\u30ab\u30fc', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=soccer'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30b4\u30eb\u30d5', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=golf'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u76f8\u64b2', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=sumou'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u7af6\u99ac', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=keiba'), + (u'\u8abf\u67fb\u30fb\u30a2\u30f3\u30b1\u30fc\u30c8', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=research') + ] + + + diff --git a/resources/recipes/nikkei_sub_economy.recipe b/resources/recipes/nikkei_sub_economy.recipe new file mode 100644 index 0000000000..2dd8f1add8 --- /dev/null +++ b/resources/recipes/nikkei_sub_economy.recipe @@ -0,0 +1,107 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.nikkei.com +''' + +import re +from calibre.web.feeds.recipes import BasicNewsRecipe +import mechanize +from calibre.ptempfile import PersistentTemporaryFile + +class NikkeiNet_sub_economy(BasicNewsRecipe): + title = u'\u65e5\u7d4c\u65b0\u805e\u96fb\u5b50\u7248(\u7d4c\u6e08)' + __author__ = 'Hiroshi Miura' + description = 'News and current market affairs from Japan' + cover_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + masthead_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + needs_subscription = True + oldest_article = 2 + max_articles_per_feed = 20 + language = 'ja' + remove_javascript = False + temp_files = [] + + remove_tags_before = {'class':"cmn-section cmn-indent"} + remove_tags = [ + {'class':"JSID_basePageMove JSID_baseAsyncSubmit cmn-form_area JSID_optForm_utoken"}, + {'class':"cmn-article_keyword cmn-clearfix"}, + {'class':"cmn-print_headline cmn-clearfix"}, + ] + remove_tags_after = {'class':"cmn-pr_list"} + + feeds = [ (u'\u653f\u6cbb', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=seiji'), + (u'\u8ca1\u52d9', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=zaimu'), + (u'\u7d4c\u6e08', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=keizai'), + (u'\u30de\u30fc\u30b1\u30c3\u30c8', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=market'), + (u'\u96c7\u7528', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=koyou'), + (u'\u6559\u80b2', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kyouiku'), + (u'\u304a\u304f\u3084\u307f', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=okuyami'), + (u'\u4eba\u4e8b', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=zinzi'), + ] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + + cj = mechanize.LWPCookieJar() + br.set_cookiejar(cj) + + #br.set_debug_http(True) + #br.set_debug_redirects(True) + #br.set_debug_responses(True) + + if self.username is not None and self.password is not None: + #print "----------------------------get login form--------------------------------------------" + # open login form + br.open('https://id.nikkei.com/lounge/nl/base/LA0010.seam') + response = br.response() + #print "----------------------------get login form---------------------------------------------" + #print "----------------------------set login form---------------------------------------------" + # remove disabled input which brings error on mechanize + response.set_data(response.get_data().replace("", " -->")) + br.set_response(response) + br.select_form(name='LA0010Form01') + br['LA0010Form01:LA0010Email'] = self.username + br['LA0010Form01:LA0010Password'] = self.password + br.form.find_control(id='LA0010Form01:LA0010AutoLoginOn',type="checkbox").get(nr=0).selected = True + br.submit() + br.response() + #print "----------------------------send login form---------------------------------------------" + #print "----------------------------open news main page-----------------------------------------" + # open news site + br.open('http://www.nikkei.com/') + br.response() + #print "----------------------------www.nikkei.com BODY --------------------------------------" + #print response2.get_data() + #print "-------------------------^^-got auto redirect form----^^--------------------------------" + # forced redirect in default + br.select_form(nr=0) + br.submit() + response3 = br.response() + # return some cookie which should be set by Javascript + #print response3.geturl() + raw = response3.get_data() + #print "---------------------------response to form --------------------------------------------" + # grab cookie from JS and set it + redirectflag = re.search(r"var checkValue = '(\d+)';", raw, re.M).group(1) + br.select_form(nr=0) + + self.temp_files.append(PersistentTemporaryFile('_fa.html')) + self.temp_files[-1].write("#LWP-Cookies-2.0\n") + + self.temp_files[-1].write("Set-Cookie3: Cookie-dummy=Cookie-value; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].write("Set-Cookie3: redirectFlag="+redirectflag+"; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].close() + cj.load(self.temp_files[-1].name) + + br.submit() + + #br.set_debug_http(False) + #br.set_debug_redirects(False) + #br.set_debug_responses(False) + return br + + + + diff --git a/resources/recipes/nikkei_sub_industry.recipe b/resources/recipes/nikkei_sub_industry.recipe new file mode 100644 index 0000000000..81e86767d0 --- /dev/null +++ b/resources/recipes/nikkei_sub_industry.recipe @@ -0,0 +1,107 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.nikkei.com +''' + +import re +from calibre.web.feeds.recipes import BasicNewsRecipe +import mechanize +from calibre.ptempfile import PersistentTemporaryFile + + +class NikkeiNet_sub_industory(BasicNewsRecipe): + title = u'\u65e5\u7d4c\u65b0\u805e\u96fb\u5b50\u7248(\u7523\u696d)' + __author__ = 'Hiroshi Miura' + description = 'News and current market affairs from Japan' + cover_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + masthead_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + needs_subscription = True + oldest_article = 2 + max_articles_per_feed = 20 + language = 'ja' + remove_javascript = False + temp_files = [] + + remove_tags_before = {'class':"cmn-section cmn-indent"} + remove_tags = [ + {'class':"JSID_basePageMove JSID_baseAsyncSubmit cmn-form_area JSID_optForm_utoken"}, + {'class':"cmn-article_keyword cmn-clearfix"}, + {'class':"cmn-print_headline cmn-clearfix"}, + ] + remove_tags_after = {'class':"cmn-pr_list"} + + feeds = [ (u'\u65e5\u7d4c\u4f01\u696d', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=sangyo'), + (u'\u65e5\u7d4c\u88fd\u54c1', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=newpro'), + (u'internet', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=internet'), + (u'\u56fd\u969b', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kaigai'), + (u'\u79d1\u5b66', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kagaku'), + + ] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + + cj = mechanize.LWPCookieJar() + br.set_cookiejar(cj) + + #br.set_debug_http(True) + #br.set_debug_redirects(True) + #br.set_debug_responses(True) + + if self.username is not None and self.password is not None: + #print "----------------------------get login form--------------------------------------------" + # open login form + br.open('https://id.nikkei.com/lounge/nl/base/LA0010.seam') + response = br.response() + #print "----------------------------get login form---------------------------------------------" + #print "----------------------------set login form---------------------------------------------" + # remove disabled input which brings error on mechanize + response.set_data(response.get_data().replace("", " -->")) + br.set_response(response) + br.select_form(name='LA0010Form01') + br['LA0010Form01:LA0010Email'] = self.username + br['LA0010Form01:LA0010Password'] = self.password + br.form.find_control(id='LA0010Form01:LA0010AutoLoginOn',type="checkbox").get(nr=0).selected = True + br.submit() + br.response() + #print "----------------------------send login form---------------------------------------------" + #print "----------------------------open news main page-----------------------------------------" + # open news site + br.open('http://www.nikkei.com/') + br.response() + #print "----------------------------www.nikkei.com BODY --------------------------------------" + #print response2.get_data() + #print "-------------------------^^-got auto redirect form----^^--------------------------------" + # forced redirect in default + br.select_form(nr=0) + br.submit() + response3 = br.response() + # return some cookie which should be set by Javascript + #print response3.geturl() + raw = response3.get_data() + #print "---------------------------response to form --------------------------------------------" + # grab cookie from JS and set it + redirectflag = re.search(r"var checkValue = '(\d+)';", raw, re.M).group(1) + br.select_form(nr=0) + + self.temp_files.append(PersistentTemporaryFile('_fa.html')) + self.temp_files[-1].write("#LWP-Cookies-2.0\n") + + self.temp_files[-1].write("Set-Cookie3: Cookie-dummy=Cookie-value; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].write("Set-Cookie3: redirectFlag="+redirectflag+"; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].close() + cj.load(self.temp_files[-1].name) + + br.submit() + + #br.set_debug_http(False) + #br.set_debug_redirects(False) + #br.set_debug_responses(False) + return br + + + + diff --git a/resources/recipes/nikkei_sub_life.recipe b/resources/recipes/nikkei_sub_life.recipe new file mode 100644 index 0000000000..60e5b170ca --- /dev/null +++ b/resources/recipes/nikkei_sub_life.recipe @@ -0,0 +1,104 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.nikkei.com +''' + +import re +from calibre.web.feeds.recipes import BasicNewsRecipe +import mechanize +from calibre.ptempfile import PersistentTemporaryFile + + +class NikkeiNet_sub_life(BasicNewsRecipe): + title = u'\u65e5\u7d4c\u65b0\u805e\u96fb\u5b50\u7248(\u751f\u6d3b)' + __author__ = 'Hiroshi Miura' + description = 'News and current market affairs from Japan' + cover_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + masthead_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + needs_subscription = True + oldest_article = 2 + max_articles_per_feed = 20 + language = 'ja' + remove_javascript = False + temp_files = [] + + remove_tags_before = {'class':"cmn-section cmn-indent"} + remove_tags = [ + {'class':"JSID_basePageMove JSID_baseAsyncSubmit cmn-form_area JSID_optForm_utoken"}, + {'class':"cmn-article_keyword cmn-clearfix"}, + {'class':"cmn-print_headline cmn-clearfix"}, + ] + remove_tags_after = {'class':"cmn-pr_list"} + + feeds = [ (u'\u304f\u3089\u3057', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kurashi'), + (u'\u30a8\u30b3', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=eco'), + (u'\u5065\u5eb7', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=kenkou'), + (u'\u7279\u96c6', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=special') + ] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + + cj = mechanize.LWPCookieJar() + br.set_cookiejar(cj) + + #br.set_debug_http(True) + #br.set_debug_redirects(True) + #br.set_debug_responses(True) + + if self.username is not None and self.password is not None: + #print "----------------------------get login form--------------------------------------------" + # open login form + br.open('https://id.nikkei.com/lounge/nl/base/LA0010.seam') + response = br.response() + #print "----------------------------get login form---------------------------------------------" + #print "----------------------------set login form---------------------------------------------" + # remove disabled input which brings error on mechanize + response.set_data(response.get_data().replace("", " -->")) + br.set_response(response) + br.select_form(name='LA0010Form01') + br['LA0010Form01:LA0010Email'] = self.username + br['LA0010Form01:LA0010Password'] = self.password + br.form.find_control(id='LA0010Form01:LA0010AutoLoginOn',type="checkbox").get(nr=0).selected = True + br.submit() + br.response() + #print "----------------------------send login form---------------------------------------------" + #print "----------------------------open news main page-----------------------------------------" + # open news site + br.open('http://www.nikkei.com/') + br.response() + #print "----------------------------www.nikkei.com BODY --------------------------------------" + #print response2.get_data() + #print "-------------------------^^-got auto redirect form----^^--------------------------------" + # forced redirect in default + br.select_form(nr=0) + br.submit() + response3 = br.response() + # return some cookie which should be set by Javascript + #print response3.geturl() + raw = response3.get_data() + #print "---------------------------response to form --------------------------------------------" + # grab cookie from JS and set it + redirectflag = re.search(r"var checkValue = '(\d+)';", raw, re.M).group(1) + br.select_form(nr=0) + + self.temp_files.append(PersistentTemporaryFile('_fa.html')) + self.temp_files[-1].write("#LWP-Cookies-2.0\n") + + self.temp_files[-1].write("Set-Cookie3: Cookie-dummy=Cookie-value; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].write("Set-Cookie3: redirectFlag="+redirectflag+"; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].close() + cj.load(self.temp_files[-1].name) + + br.submit() + + #br.set_debug_http(False) + #br.set_debug_redirects(False) + #br.set_debug_responses(False) + return br + + + + diff --git a/resources/recipes/nikkei_sub_main.recipe b/resources/recipes/nikkei_sub_main.recipe new file mode 100644 index 0000000000..485d2f32c0 --- /dev/null +++ b/resources/recipes/nikkei_sub_main.recipe @@ -0,0 +1,103 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.nikkei.com +''' + +import re +from calibre.web.feeds.recipes import BasicNewsRecipe +import mechanize +from calibre.ptempfile import PersistentTemporaryFile + + +class NikkeiNet_sub_main(BasicNewsRecipe): + title = u'\u65e5\u7d4c\u65b0\u805e\u96fb\u5b50\u7248(\u7dcf\u5408)' + __author__ = 'Hiroshi Miura' + description = 'News and current market affairs from Japan' + cover_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + masthead_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + needs_subscription = True + oldest_article = 2 + max_articles_per_feed = 20 + language = 'ja' + remove_javascript = False + temp_files = [] + + remove_tags_before = {'class':"cmn-section cmn-indent"} + remove_tags = [ + {'class':"JSID_basePageMove JSID_baseAsyncSubmit cmn-form_area JSID_optForm_utoken"}, + {'class':"cmn-article_keyword cmn-clearfix"}, + {'class':"cmn-print_headline cmn-clearfix"}, + {'class':"cmn-article_list"}, + {'class':"cmn-dashedline"}, + {'class':"cmn-hide"}, + ] + remove_tags_after = {'class':"cmn-pr_list"} + + feeds = [ (u'NIKKEI', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=main')] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + + cj = mechanize.LWPCookieJar() + br.set_cookiejar(cj) + + #br.set_debug_http(True) + #br.set_debug_redirects(True) + #br.set_debug_responses(True) + + if self.username is not None and self.password is not None: + #print "----------------------------get login form--------------------------------------------" + # open login form + br.open('https://id.nikkei.com/lounge/nl/base/LA0010.seam') + response = br.response() + #print "----------------------------get login form---------------------------------------------" + #print "----------------------------set login form---------------------------------------------" + # remove disabled input which brings error on mechanize + response.set_data(response.get_data().replace("", " -->")) + br.set_response(response) + br.select_form(name='LA0010Form01') + br['LA0010Form01:LA0010Email'] = self.username + br['LA0010Form01:LA0010Password'] = self.password + br.form.find_control(id='LA0010Form01:LA0010AutoLoginOn',type="checkbox").get(nr=0).selected = True + br.submit() + br.response() + #print "----------------------------send login form---------------------------------------------" + #print "----------------------------open news main page-----------------------------------------" + # open news site + br.open('http://www.nikkei.com/') + br.response() + #print "----------------------------www.nikkei.com BODY --------------------------------------" + #print response2.get_data() + #print "-------------------------^^-got auto redirect form----^^--------------------------------" + # forced redirect in default + br.select_form(nr=0) + br.submit() + response3 = br.response() + # return some cookie which should be set by Javascript + #print response3.geturl() + raw = response3.get_data() + #print "---------------------------response to form --------------------------------------------" + # grab cookie from JS and set it + redirectflag = re.search(r"var checkValue = '(\d+)';", raw, re.M).group(1) + br.select_form(nr=0) + + self.temp_files.append(PersistentTemporaryFile('_fa.html')) + self.temp_files[-1].write("#LWP-Cookies-2.0\n") + + self.temp_files[-1].write("Set-Cookie3: Cookie-dummy=Cookie-value; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].write("Set-Cookie3: redirectFlag="+redirectflag+"; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].close() + cj.load(self.temp_files[-1].name) + + br.submit() + + #br.set_debug_http(False) + #br.set_debug_redirects(False) + #br.set_debug_responses(False) + return br + + + + diff --git a/resources/recipes/nikkei_sub_shakai.recipe b/resources/recipes/nikkei_sub_shakai.recipe new file mode 100644 index 0000000000..ed86493265 --- /dev/null +++ b/resources/recipes/nikkei_sub_shakai.recipe @@ -0,0 +1,102 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.nikkei.com +''' + +import re +from calibre.web.feeds.recipes import BasicNewsRecipe +import mechanize +from calibre.ptempfile import PersistentTemporaryFile + + +class NikkeiNet_sub_life(BasicNewsRecipe): + title = u'\u65e5\u7d4c\u65b0\u805e\u96fb\u5b50\u7248(\u751f\u6d3b)' + __author__ = 'Hiroshi Miura' + description = 'News and current market affairs from Japan' + cover_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + masthead_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + needs_subscription = True + oldest_article = 2 + max_articles_per_feed = 20 + language = 'ja' + remove_javascript = False + temp_files = [] + + remove_tags_before = {'class':"cmn-section cmn-indent"} + remove_tags = [ + {'class':"JSID_basePageMove JSID_baseAsyncSubmit cmn-form_area JSID_optForm_utoken"}, + {'class':"cmn-article_keyword cmn-clearfix"}, + {'class':"cmn-print_headline cmn-clearfix"}, + ] + remove_tags_after = {'class':"cmn-pr_list"} + + feeds = [ + (u'\u793e\u4f1a', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=shakai') + ] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + + cj = mechanize.LWPCookieJar() + br.set_cookiejar(cj) + + #br.set_debug_http(True) + #br.set_debug_redirects(True) + #br.set_debug_responses(True) + + if self.username is not None and self.password is not None: + #print "----------------------------get login form--------------------------------------------" + # open login form + br.open('https://id.nikkei.com/lounge/nl/base/LA0010.seam') + response = br.response() + #print "----------------------------get login form---------------------------------------------" + #print "----------------------------set login form---------------------------------------------" + # remove disabled input which brings error on mechanize + response.set_data(response.get_data().replace("", " -->")) + br.set_response(response) + br.select_form(name='LA0010Form01') + br['LA0010Form01:LA0010Email'] = self.username + br['LA0010Form01:LA0010Password'] = self.password + br.form.find_control(id='LA0010Form01:LA0010AutoLoginOn',type="checkbox").get(nr=0).selected = True + br.submit() + br.response() + #print "----------------------------send login form---------------------------------------------" + #print "----------------------------open news main page-----------------------------------------" + # open news site + br.open('http://www.nikkei.com/') + br.response() + #print "----------------------------www.nikkei.com BODY --------------------------------------" + #print response2.get_data() + #print "-------------------------^^-got auto redirect form----^^--------------------------------" + # forced redirect in default + br.select_form(nr=0) + br.submit() + response3 = br.response() + # return some cookie which should be set by Javascript + #print response3.geturl() + raw = response3.get_data() + #print "---------------------------response to form --------------------------------------------" + # grab cookie from JS and set it + redirectflag = re.search(r"var checkValue = '(\d+)';", raw, re.M).group(1) + br.select_form(nr=0) + + self.temp_files.append(PersistentTemporaryFile('_fa.html')) + self.temp_files[-1].write("#LWP-Cookies-2.0\n") + + self.temp_files[-1].write("Set-Cookie3: Cookie-dummy=Cookie-value; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].write("Set-Cookie3: redirectFlag="+redirectflag+"; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].close() + cj.load(self.temp_files[-1].name) + + br.submit() + + #br.set_debug_http(False) + #br.set_debug_redirects(False) + #br.set_debug_responses(False) + return br + + + + diff --git a/resources/recipes/nikkei_sub_sports.recipe b/resources/recipes/nikkei_sub_sports.recipe new file mode 100644 index 0000000000..644b0aa252 --- /dev/null +++ b/resources/recipes/nikkei_sub_sports.recipe @@ -0,0 +1,108 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.nikkei.com +''' + +import re +from calibre.web.feeds.recipes import BasicNewsRecipe +import mechanize +from calibre.ptempfile import PersistentTemporaryFile + + +class NikkeiNet_sub_sports(BasicNewsRecipe): + title = u'\u65e5\u7d4c\u65b0\u805e\u96fb\u5b50\u7248(\u30b9\u30dd\u30fc\u30c4)' + __author__ = 'Hiroshi Miura' + description = 'News and current market affairs from Japan' + cover_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + masthead_url = 'http://parts.nikkei.com/parts/ds/images/common/logo_r1.svg' + needs_subscription = True + oldest_article = 2 + max_articles_per_feed = 20 + language = 'ja' + remove_javascript = False + temp_files = [] + + remove_tags_before = {'class':"cmn-section cmn-indent"} + remove_tags = [ + {'class':"JSID_basePageMove JSID_baseAsyncSubmit cmn-form_area JSID_optForm_utoken"}, + {'class':"cmn-article_keyword cmn-clearfix"}, + {'class':"cmn-print_headline cmn-clearfix"}, + ] + remove_tags_after = {'class':"cmn-pr_list"} + + feeds = [ + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30d7\u30ed\u91ce\u7403', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=baseball'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u5927\u30ea\u30fc\u30b0', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=mlb'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30b5\u30c3\u30ab\u30fc', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=soccer'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u30b4\u30eb\u30d5', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=golf'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u76f8\u64b2', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=sumou'), + (u'\u30b9\u30dd\u30fc\u30c4\uff1a\u7af6\u99ac', u'http://www.zou3.net/php/rss/nikkei2rss.php?head=keiba') + ] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + + cj = mechanize.LWPCookieJar() + br.set_cookiejar(cj) + + #br.set_debug_http(True) + #br.set_debug_redirects(True) + #br.set_debug_responses(True) + + if self.username is not None and self.password is not None: + #print "----------------------------get login form--------------------------------------------" + # open login form + br.open('https://id.nikkei.com/lounge/nl/base/LA0010.seam') + response = br.response() + #print "----------------------------get login form---------------------------------------------" + #print "----------------------------set login form---------------------------------------------" + # remove disabled input which brings error on mechanize + response.set_data(response.get_data().replace("", " -->")) + br.set_response(response) + br.select_form(name='LA0010Form01') + br['LA0010Form01:LA0010Email'] = self.username + br['LA0010Form01:LA0010Password'] = self.password + br.form.find_control(id='LA0010Form01:LA0010AutoLoginOn',type="checkbox").get(nr=0).selected = True + br.submit() + br.response() + #print "----------------------------send login form---------------------------------------------" + #print "----------------------------open news main page-----------------------------------------" + # open news site + br.open('http://www.nikkei.com/') + br.response() + #print "----------------------------www.nikkei.com BODY --------------------------------------" + #print response2.get_data() + #print "-------------------------^^-got auto redirect form----^^--------------------------------" + # forced redirect in default + br.select_form(nr=0) + br.submit() + response3 = br.response() + # return some cookie which should be set by Javascript + #print response3.geturl() + raw = response3.get_data() + #print "---------------------------response to form --------------------------------------------" + # grab cookie from JS and set it + redirectflag = re.search(r"var checkValue = '(\d+)';", raw, re.M).group(1) + br.select_form(nr=0) + + self.temp_files.append(PersistentTemporaryFile('_fa.html')) + self.temp_files[-1].write("#LWP-Cookies-2.0\n") + + self.temp_files[-1].write("Set-Cookie3: Cookie-dummy=Cookie-value; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].write("Set-Cookie3: redirectFlag="+redirectflag+"; domain=\".nikkei.com\"; path=\"/\"; path_spec; secure; expires=\"2029-12-21 05:07:59Z\"; version=0\n") + self.temp_files[-1].close() + cj.load(self.temp_files[-1].name) + + br.submit() + + #br.set_debug_http(False) + #br.set_debug_redirects(False) + #br.set_debug_responses(False) + return br + + + + diff --git a/resources/recipes/nin.recipe b/resources/recipes/nin.recipe index 70fd998a09..66dd58330e 100644 --- a/resources/recipes/nin.recipe +++ b/resources/recipes/nin.recipe @@ -8,12 +8,15 @@ www.nin.co.rs import re from calibre import strftime from calibre.web.feeds.news import BasicNewsRecipe +from contextlib import closing +from calibre.ebooks.BeautifulSoup import BeautifulSoup +from calibre import entity_to_unicode class Nin(BasicNewsRecipe): title = 'NIN online' __author__ = 'Darko Miletic' description = 'Nedeljne Informativne Novine' - publisher = 'NIN d.o.o.' + publisher = 'NIN d.o.o. - Ringier d.o.o.' category = 'news, politics, Serbia' no_stylesheets = True delay = 1 @@ -26,18 +29,29 @@ class Nin(BasicNewsRecipe): use_embedded_content = False language = 'sr' publication_type = 'magazine' - extra_css = ' @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} body{font-family: Verdana, Lucida, sans1, sans-serif} .article_description{font-family: Verdana, Lucida, sans1, sans-serif} .artTitle{font-size: x-large; font-weight: bold; color: #900} .izjava{font-size: x-large; font-weight: bold} .columnhead{font-size: small; font-weight: bold;} img{margin-top:0.5em; margin-bottom: 0.7em} b{margin-top: 1em} ' + extra_css = """ + @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} + body{font-family: Verdana, Lucida, sans1, sans-serif} + .article_description{font-family: Verdana, Lucida, sans1, sans-serif} + .artTitle{font-size: x-large; font-weight: bold; color: #900} + .izjava{font-size: x-large; font-weight: bold} + .columnhead{font-size: small; font-weight: bold;} + img{margin-top:0.5em; margin-bottom: 0.7em; display: block} + b{margin-top: 1em} + """ conversion_options = { - 'comment' : description - , 'tags' : category - , 'publisher' : publisher - , 'language' : language - , 'linearize_tables' : True + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language } - preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] - remove_attributes = ['height','width'] + preprocess_regexps = [ + (re.compile(r'.*?', re.DOTALL|re.IGNORECASE),lambda match: '') + ,(re.compile(r'.*?', re.DOTALL|re.IGNORECASE),lambda match: '') + ,(re.compile(u'\u0110'), lambda match: u'\u00D0') + ] def get_browser(self): br = BasicNewsRecipe.get_browser() @@ -50,7 +64,10 @@ class Nin(BasicNewsRecipe): return br keep_only_tags =[dict(name='td', attrs={'width':'520'})] + remove_tags_before =dict(name='span', attrs={'class':'izjava'}) remove_tags_after =dict(name='html') + remove_tags = [dict(name=['object','link','iframe','meta','base'])] + remove_attributes=['border','background','height','width','align','valign'] def get_cover_url(self): cover_url = None @@ -63,7 +80,7 @@ class Nin(BasicNewsRecipe): def parse_index(self): articles = [] count = 0 - soup = self.index_to_soup(self.PREFIX) + soup = self.index_to_soup(self.INDEX) for item in soup.findAll('a',attrs={'class':'lmeninavFont'}): count = count +1 if self.test and count > 2: @@ -90,3 +107,45 @@ class Nin(BasicNewsRecipe): articles.append((section,inarts)) return articles + def index_to_soup(self, url_or_raw, raw=False): + if re.match(r'\w+://', url_or_raw): + open_func = getattr(self.browser, 'open_novisit', self.browser.open) + with closing(open_func(url_or_raw)) as f: + _raw = f.read() + if not _raw: + raise RuntimeError('Could not fetch index from %s'%url_or_raw) + else: + _raw = url_or_raw + if raw: + return _raw + if not isinstance(_raw, unicode) and self.encoding: + if callable(self.encoding): + _raw = self.encoding(_raw) + else: + _raw = _raw.decode(self.encoding, 'replace') + massage = list(BeautifulSoup.MARKUP_MASSAGE) + enc = 'cp1252' if callable(self.encoding) or self.encoding is None else self.encoding + massage.append((re.compile(r'&(\S+?);'), lambda match: + entity_to_unicode(match, encoding=enc))) + massage.append((re.compile(r'[\x00-\x08]+'), lambda match: + '')) + return BeautifulSoup(_raw, markupMassage=massage) + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + for item in soup.findAll('div'): + if len(item.contents) == 0: + item.extract() + for item in soup.findAll(['td','tr']): + item.name='div' + for item in soup.findAll('img'): + if not item.has_key('alt'): + item['alt'] = 'image' + for tbl in soup.findAll('table'): + img = tbl.find('img') + if img: + img.extract() + tbl.replaceWith(img) + return soup + diff --git a/resources/recipes/now_toronto.recipe b/resources/recipes/now_toronto.recipe index 41741dbccb..52a4619266 100644 --- a/resources/recipes/now_toronto.recipe +++ b/resources/recipes/now_toronto.recipe @@ -13,6 +13,7 @@ class NowToronto(BasicNewsRecipe): title = u'Now Toronto' description = u'Now Toronto' __author__ = 'Starson17' + language = 'en_CA' conversion_options = { 'no_default_epub_cover' : True } diff --git a/resources/recipes/nytimes.recipe b/resources/recipes/nytimes.recipe index 16ddea9f8c..eaa428e731 100644 --- a/resources/recipes/nytimes.recipe +++ b/resources/recipes/nytimes.recipe @@ -7,14 +7,22 @@ nytimes.com ''' import re, string, time from calibre import entity_to_unicode, strftime +from datetime import timedelta, date from calibre.web.feeds.recipes import BasicNewsRecipe from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, BeautifulStoneSoup + class NYTimes(BasicNewsRecipe): - # set headlinesOnly to True for the headlines-only version + # set headlinesOnly to True for the headlines-only version. If True, webEdition is ignored. headlinesOnly = True + # set webEdition to True for the Web edition of the newspaper. Set oldest_article to the + # number of days old an article can be for inclusion. If oldest_article = 0 all articles + # will be included. Note: oldest_article is ignored if webEdition = False + webEdition = False + oldest_article = 7 + # includeSections: List of sections to include. If empty, all sections found will be included. # Otherwise, only the sections named will be included. For example, # @@ -39,20 +47,76 @@ class NYTimes(BasicNewsRecipe): # from an article (if one exists). If one_picture_per_article = True, the image # will be moved to a location between the headline and the byline. # If one_picture_per_article = False, all images from the article will be included - # and shown in their original location. - one_picture_per_article = True + one_picture_per_article = False # The maximum number of articles that will be downloaded max_articles_per_feed = 100 + # Whether to omit duplicates of articles (typically arsing when articles are indexed in + # more than one section). If True, only the first occurance will be downloaded. + filterDuplicates = True + + # Sections to collect for the Web edition. + # Delete any you don't want, or use includeSections or excludeSections + web_sections = [(u'World',u'world'), + (u'U.S.',u'national'), + (u'Politics',u'politics'), + (u'New York',u'nyregion'), + (u'Business','business'), + (u'Technology',u'technology'), + (u'Sports',u'sports'), + (u'Science',u'science'), + (u'Health',u'health'), + (u'Opinion',u'opinion'), + (u'Arts',u'arts'), + (u'Books',u'books'), + (u'Movies',u'movies'), + (u'Music',u'arts/music'), + (u'Television',u'arts/television'), + (u'Style',u'style'), + (u'Dining & Wine',u'dining'), + (u'Fashion & Style',u'fashion'), + (u'Home & Garden',u'garden'), + (u'Travel',u'travel'), + ('Education',u'education'), + ('Multimedia',u'multimedia'), + (u'Obituaries',u'obituaries'), + (u'Sunday Magazine',u'magazine'), + (u'Week in Review',u'weekinreview')] + if headlinesOnly: title='New York Times Headlines' description = 'Headlines from the New York Times' + needs_subscription = False + elif webEdition: + title='New York Times (Web)' + description = 'New York Times on the Web' + needs_subscription = True else: title='New York Times' description = 'Today\'s New York Times' + needs_subscription = True + + + month_list = ['january','february','march','april','may','june','july','august','september','october','november','december'] + + def decode_us_date(self,datestr): + udate = datestr.strip().lower().split() + try: + m = self.month_list.index(udate[0])+1 + except: + return date.today() + d = int(udate[1]) + y = int(udate[2]) + try: + d = date(y,m,d) + except: + d = date.today + return d + + earliest_date = date.today() - timedelta(days=oldest_article) __author__ = 'GRiker/Kovid Goyal/Nick Redding' language = 'en' @@ -136,6 +200,12 @@ class NYTimes(BasicNewsRecipe): .image {text-align: center;} .source {text-align: left; }''' + + articles = {} + key = None + ans = [] + url_list = [] + def filter_ans(self, ans) : total_article_count = 0 idx = 0 @@ -164,6 +234,29 @@ class NYTimes(BasicNewsRecipe): self.log( "Queued %d articles" % total_article_count ) return ans + def exclude_url(self,url): + if not url.startswith("http"): + return True + if not url.endswith(".html"): + return True + if 'nytimes.com' not in url: + return True + if 'podcast' in url: + return True + if '/video/' in url: + return True + if '/slideshow/' in url: + return True + if '/magazine/index' in url: + return True + if '/interactive/' in url: + return True + if '/reference/' in url: + return True + if '/premium/' in url: + return True + return False + def fixChars(self,string): # Replace lsquo (\x91) fixed = re.sub("\x91","‘",string) @@ -189,9 +282,9 @@ class NYTimes(BasicNewsRecipe): br = BasicNewsRecipe.get_browser() if self.username is not None and self.password is not None: br.open('http://www.nytimes.com/auth/login') - br.select_form(name='login') - br['USERID'] = self.username - br['PASSWORD'] = self.password + br.form = br.forms().next() + br['userid'] = self.username + br['password'] = self.password raw = br.submit().read() if 'Please try again' in raw: raise Exception('Your username and password are incorrect') @@ -249,7 +342,6 @@ class NYTimes(BasicNewsRecipe): return BeautifulSoup(_raw, markupMassage=massage) # Entry point - print "index_to_soup()" soup = get_the_soup( self.encoding, url_or_raw ) contentType = soup.find(True,attrs={'http-equiv':'Content-Type'}) docEncoding = str(contentType)[str(contentType).find('charset=') + len('charset='):str(contentType).rfind('"')] @@ -273,83 +365,110 @@ class NYTimes(BasicNewsRecipe): else: return description - def parse_todays_index(self): + def feed_title(self,div): + return ''.join(div.findAll(text=True, recursive=True)).strip() - def feed_title(div): - return ''.join(div.findAll(text=True, recursive=True)).strip() - - articles = {} - key = None - ans = [] - url_list = [] - - def handle_article(div): - a = div.find('a', href=True) - if not a: + def handle_article(self,div): + thumbnail = div.find('div','thumbnail') + if thumbnail: + thumbnail.extract() + a = div.find('a', href=True) + if not a: + return + url = re.sub(r'\?.*', '', a['href']) + if self.exclude_url(url): + return + url += '?pagewanted=all' + if self.filterDuplicates: + if url in self.url_list: return - url = re.sub(r'\?.*', '', a['href']) - if not url.startswith("http"): - return - if not url.endswith(".html"): - return - if 'podcast' in url: - return - if '/video/' in url: - return - url += '?pagewanted=all' - if url in url_list: - return - url_list.append(url) - title = self.tag_to_string(a, use_alt=True).strip() - description = '' - pubdate = strftime('%a, %d %b') - summary = div.find(True, attrs={'class':'summary'}) - if summary: - description = self.tag_to_string(summary, use_alt=False) - author = '' + self.url_list.append(url) + title = self.tag_to_string(a, use_alt=True).strip() + description = '' + pubdate = strftime('%a, %d %b') + summary = div.find(True, attrs={'class':'summary'}) + if summary: + description = self.tag_to_string(summary, use_alt=False) + author = '' + authorAttribution = div.find(True, attrs={'class':'byline'}) + if authorAttribution: + author = self.tag_to_string(authorAttribution, use_alt=False) + else: authorAttribution = div.find(True, attrs={'class':'byline'}) if authorAttribution: author = self.tag_to_string(authorAttribution, use_alt=False) - else: - authorAttribution = div.find(True, attrs={'class':'byline'}) - if authorAttribution: - author = self.tag_to_string(authorAttribution, use_alt=False) - feed = key if key is not None else 'Uncategorized' - if not articles.has_key(feed): - ans.append(feed) - articles[feed] = [] - articles[feed].append( - dict(title=title, url=url, date=pubdate, - description=description, author=author, - content='')) + feed = self.key if self.key is not None else 'Uncategorized' + if not self.articles.has_key(feed): + self.ans.append(feed) + self.articles[feed] = [] + self.articles[feed].append( + dict(title=title, url=url, date=pubdate, + description=description, author=author, + content='')) + def parse_web_edition(self): + + for (sec_title,index_url) in self.web_sections: + if self.includeSections != []: + if sec_title not in self.includeSections: + print "SECTION NOT INCLUDED: ",sec_title + continue + if sec_title in self.excludeSections: + print "SECTION EXCLUDED: ",sec_title + continue + print 'Index URL: '+'http://www.nytimes.com/pages/'+index_url+'/index.html' + soup = self.index_to_soup('http://www.nytimes.com/pages/'+index_url+'/index.html') + self.key = sec_title + # Find each article + for div in soup.findAll(True, + attrs={'class':['section-headline', 'story', 'story headline','sectionHeader','headlinesOnly multiline flush']}): + if div['class'] in ['story', 'story headline'] : + self.handle_article(div) + elif div['class'] == 'headlinesOnly multiline flush': + for lidiv in div.findAll('li'): + self.handle_article(lidiv) + + self.ans = [(k, self.articles[k]) for k in self.ans if self.articles.has_key(k)] + return self.filter_ans(self.ans) + + + def parse_todays_index(self): + soup = self.index_to_soup('http://www.nytimes.com/pages/todayspaper/index.html') - + skipping = False # Find each article for div in soup.findAll(True, attrs={'class':['section-headline', 'story', 'story headline','sectionHeader','headlinesOnly multiline flush']}): if div['class'] in ['section-headline','sectionHeader']: - key = string.capwords(feed_title(div)) - key = key.replace('Op-ed','Op-Ed') - key = key.replace('U.s.','U.S.') + self.key = string.capwords(self.feed_title(div)) + self.key = self.key.replace('Op-ed','Op-Ed') + self.key = self.key.replace('U.s.','U.S.') + self.key = self.key.replace('N.y.','N.Y.') + skipping = False + if self.includeSections != []: + if self.key not in self.includeSections: + print "SECTION NOT INCLUDED: ",self.key + skipping = True + if self.key in self.excludeSections: + print "SECTION EXCLUDED: ",self.key + skipping = True + elif div['class'] in ['story', 'story headline'] : - handle_article(div) + if not skipping: + self.handle_article(div) elif div['class'] == 'headlinesOnly multiline flush': for lidiv in div.findAll('li'): - handle_article(lidiv) + if not skipping: + self.handle_article(lidiv) - ans = [(key, articles[key]) for key in ans if articles.has_key(key)] - return self.filter_ans(ans) + self.ans = [(k, self.articles[k]) for k in self.ans if self.articles.has_key(k)] + return self.filter_ans(self.ans) def parse_headline_index(self): - articles = {} - ans = [] - url_list = [] - soup = self.index_to_soup('http://www.nytimes.com/pages/todaysheadlines/') # Fetch the content table @@ -363,15 +482,24 @@ class NYTimes(BasicNewsRecipe): for td_col in content_table.findAll('td', {'id' : re.compile('Column')}): for div_sec in td_col.findAll('div',recursive=False): for h6_sec_name in div_sec.findAll('h6',{'style' : re.compile('text-transform: *uppercase')}): + section_name = self.tag_to_string(h6_sec_name,use_alt=False) section_name = re.sub(r'^ *$','',section_name) + if section_name == '': continue + if self.includeSections != []: + if section_name not in self.includeSections: + print "SECTION NOT INCLUDED: ",section_name + continue + if section_name in self.excludeSections: + print "SECTION EXCLUDED: ",section_name + continue + section_name=string.capwords(section_name) - if section_name == 'U.s.': - section_name = 'U.S.' - elif section_name == 'Op-ed': - section_name = 'Op-Ed' + section_name = section_name.replace('Op-ed','Op-Ed') + section_name = section_name.replace('U.s.','U.S.') + section_name = section_name.replace('N.y.','N.Y.') pubdate = strftime('%a, %d %b') search_div = div_sec @@ -392,37 +520,32 @@ class NYTimes(BasicNewsRecipe): if not a: continue url = re.sub(r'\?.*', '', a['href']) - if not url.startswith("http"): - continue - if not url.endswith(".html"): - continue - if 'podcast' in url: - continue - if 'video' in url: + if self.exclude_url(url): continue url += '?pagewanted=all' - if url in url_list: - continue - url_list.append(url) - self.log("URL %s" % url) + if self.filterDuplicates: + if url in self.url_list: + continue + self.url_list.append(url) title = self.tag_to_string(a, use_alt=True).strip() desc = h3_item.find('p') if desc is not None: description = self.tag_to_string(desc,use_alt=False) else: description = '' - if not articles.has_key(section_name): - ans.append(section_name) - articles[section_name] = [] - articles[section_name].append(dict(title=title, url=url, date=pubdate, description=description, author=author, content='')) + if not self.articles.has_key(section_name): + self.ans.append(section_name) + self.articles[section_name] = [] + self.articles[section_name].append(dict(title=title, url=url, date=pubdate, description=description, author=author, content='')) - - ans = [(key, articles[key]) for key in ans if articles.has_key(key)] - return self.filter_ans(ans) + self.ans = [(k, self.articles[k]) for k in self.ans if self.articles.has_key(k)] + return self.filter_ans(self.ans) def parse_index(self): if self.headlinesOnly: return self.parse_headline_index() + elif self.webEdition: + return self.parse_web_edition() else: return self.parse_todays_index() @@ -438,6 +561,21 @@ class NYTimes(BasicNewsRecipe): def preprocess_html(self, soup): + if self.webEdition & (self.oldest_article>0): + date_tag = soup.find(True,attrs={'class': ['dateline','date']}) + if date_tag: + date_str = self.tag_to_string(date_tag,use_alt=False) + date_str = date_str.replace('Published:','') + date_items = date_str.split(',') + try: + datestring = date_items[0]+' '+date_items[1] + article_date = self.decode_us_date(datestring) + except: + article_date = date.today() + if article_date < self.earliest_date: + self.log("Skipping article dated %s" % date_str) + return None + kicker_tag = soup.find(attrs={'class':'kicker'}) if kicker_tag: # remove Op_Ed author head shots tagline = self.tag_to_string(kicker_tag) @@ -462,7 +600,6 @@ class NYTimes(BasicNewsRecipe): for inlineImg in inlineImgs[1:]: inlineImg.extract() # Move firstImg before article body - #article_body = soup.find(True, {'id':'articleBody'}) cgFirst = soup.find(True, {'class':re.compile('columnGroup *first')}) if cgFirst: # Strip all sibling NavigableStrings: noise @@ -548,4 +685,3 @@ class NYTimes(BasicNewsRecipe): divTag.replaceWith(tag) return soup - diff --git a/resources/recipes/nytimes_sub.recipe b/resources/recipes/nytimes_sub.recipe index ed1ba75f0f..e56fd9cdec 100644 --- a/resources/recipes/nytimes_sub.recipe +++ b/resources/recipes/nytimes_sub.recipe @@ -7,14 +7,22 @@ nytimes.com ''' import re, string, time from calibre import entity_to_unicode, strftime +from datetime import timedelta, date from calibre.web.feeds.recipes import BasicNewsRecipe from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, BeautifulStoneSoup + class NYTimes(BasicNewsRecipe): - # set headlinesOnly to True for the headlines-only version + # set headlinesOnly to True for the headlines-only version. If True, webEdition is ignored. headlinesOnly = False + # set webEdition to True for the Web edition of the newspaper. Set oldest_article to the + # number of days old an article can be for inclusion. If oldest_article = 0 all articles + # will be included. Note: oldest_article is ignored if webEdition = False + webEdition = False + oldest_article = 7 + # includeSections: List of sections to include. If empty, all sections found will be included. # Otherwise, only the sections named will be included. For example, # @@ -39,20 +47,76 @@ class NYTimes(BasicNewsRecipe): # from an article (if one exists). If one_picture_per_article = True, the image # will be moved to a location between the headline and the byline. # If one_picture_per_article = False, all images from the article will be included - # and shown in their original location. - one_picture_per_article = True + one_picture_per_article = False # The maximum number of articles that will be downloaded max_articles_per_feed = 100 + # Whether to omit duplicates of articles (typically arsing when articles are indexed in + # more than one section). If True, only the first occurance will be downloaded. + filterDuplicates = True + + # Sections to collect for the Web edition. + # Delete any you don't want, or use includeSections or excludeSections + web_sections = [(u'World',u'world'), + (u'U.S.',u'national'), + (u'Politics',u'politics'), + (u'New York',u'nyregion'), + (u'Business','business'), + (u'Technology',u'technology'), + (u'Sports',u'sports'), + (u'Science',u'science'), + (u'Health',u'health'), + (u'Opinion',u'opinion'), + (u'Arts',u'arts'), + (u'Books',u'books'), + (u'Movies',u'movies'), + (u'Music',u'arts/music'), + (u'Television',u'arts/television'), + (u'Style',u'style'), + (u'Dining & Wine',u'dining'), + (u'Fashion & Style',u'fashion'), + (u'Home & Garden',u'garden'), + (u'Travel',u'travel'), + ('Education',u'education'), + ('Multimedia',u'multimedia'), + (u'Obituaries',u'obituaries'), + (u'Sunday Magazine',u'magazine'), + (u'Week in Review',u'weekinreview')] + if headlinesOnly: title='New York Times Headlines' description = 'Headlines from the New York Times' + needs_subscription = False + elif webEdition: + title='New York Times (Web)' + description = 'New York Times on the Web' + needs_subscription = True else: title='New York Times' description = 'Today\'s New York Times' + needs_subscription = True + + + month_list = ['january','february','march','april','may','june','july','august','september','october','november','december'] + + def decode_us_date(self,datestr): + udate = datestr.strip().lower().split() + try: + m = self.month_list.index(udate[0])+1 + except: + return date.today() + d = int(udate[1]) + y = int(udate[2]) + try: + d = date(y,m,d) + except: + d = date.today + return d + + earliest_date = date.today() - timedelta(days=oldest_article) __author__ = 'GRiker/Kovid Goyal/Nick Redding' language = 'en' @@ -60,7 +124,6 @@ class NYTimes(BasicNewsRecipe): timefmt = '' - needs_subscription = True masthead_url = 'http://graphics8.nytimes.com/images/misc/nytlogo379x64.gif' cover_margins = (18,18,'grey99') @@ -137,6 +200,12 @@ class NYTimes(BasicNewsRecipe): .image {text-align: center;} .source {text-align: left; }''' + + articles = {} + key = None + ans = [] + url_list = [] + def filter_ans(self, ans) : total_article_count = 0 idx = 0 @@ -165,6 +234,29 @@ class NYTimes(BasicNewsRecipe): self.log( "Queued %d articles" % total_article_count ) return ans + def exclude_url(self,url): + if not url.startswith("http"): + return True + if not url.endswith(".html"): + return True + if 'nytimes.com' not in url: + return True + if 'podcast' in url: + return True + if '/video/' in url: + return True + if '/slideshow/' in url: + return True + if '/magazine/index' in url: + return True + if '/interactive/' in url: + return True + if '/reference/' in url: + return True + if '/premium/' in url: + return True + return False + def fixChars(self,string): # Replace lsquo (\x91) fixed = re.sub("\x91","‘",string) @@ -190,9 +282,9 @@ class NYTimes(BasicNewsRecipe): br = BasicNewsRecipe.get_browser() if self.username is not None and self.password is not None: br.open('http://www.nytimes.com/auth/login') - br.select_form(name='login') - br['USERID'] = self.username - br['PASSWORD'] = self.password + br.form = br.forms().next() + br['userid'] = self.username + br['password'] = self.password raw = br.submit().read() if 'Please try again' in raw: raise Exception('Your username and password are incorrect') @@ -250,7 +342,6 @@ class NYTimes(BasicNewsRecipe): return BeautifulSoup(_raw, markupMassage=massage) # Entry point - print "index_to_soup()" soup = get_the_soup( self.encoding, url_or_raw ) contentType = soup.find(True,attrs={'http-equiv':'Content-Type'}) docEncoding = str(contentType)[str(contentType).find('charset=') + len('charset='):str(contentType).rfind('"')] @@ -274,83 +365,110 @@ class NYTimes(BasicNewsRecipe): else: return description - def parse_todays_index(self): + def feed_title(self,div): + return ''.join(div.findAll(text=True, recursive=True)).strip() - def feed_title(div): - return ''.join(div.findAll(text=True, recursive=True)).strip() - - articles = {} - key = None - ans = [] - url_list = [] - - def handle_article(div): - a = div.find('a', href=True) - if not a: + def handle_article(self,div): + thumbnail = div.find('div','thumbnail') + if thumbnail: + thumbnail.extract() + a = div.find('a', href=True) + if not a: + return + url = re.sub(r'\?.*', '', a['href']) + if self.exclude_url(url): + return + url += '?pagewanted=all' + if self.filterDuplicates: + if url in self.url_list: return - url = re.sub(r'\?.*', '', a['href']) - if not url.startswith("http"): - return - if not url.endswith(".html"): - return - if 'podcast' in url: - return - if '/video/' in url: - return - url += '?pagewanted=all' - if url in url_list: - return - url_list.append(url) - title = self.tag_to_string(a, use_alt=True).strip() - description = '' - pubdate = strftime('%a, %d %b') - summary = div.find(True, attrs={'class':'summary'}) - if summary: - description = self.tag_to_string(summary, use_alt=False) - author = '' + self.url_list.append(url) + title = self.tag_to_string(a, use_alt=True).strip() + description = '' + pubdate = strftime('%a, %d %b') + summary = div.find(True, attrs={'class':'summary'}) + if summary: + description = self.tag_to_string(summary, use_alt=False) + author = '' + authorAttribution = div.find(True, attrs={'class':'byline'}) + if authorAttribution: + author = self.tag_to_string(authorAttribution, use_alt=False) + else: authorAttribution = div.find(True, attrs={'class':'byline'}) if authorAttribution: author = self.tag_to_string(authorAttribution, use_alt=False) - else: - authorAttribution = div.find(True, attrs={'class':'byline'}) - if authorAttribution: - author = self.tag_to_string(authorAttribution, use_alt=False) - feed = key if key is not None else 'Uncategorized' - if not articles.has_key(feed): - ans.append(feed) - articles[feed] = [] - articles[feed].append( - dict(title=title, url=url, date=pubdate, - description=description, author=author, - content='')) + feed = self.key if self.key is not None else 'Uncategorized' + if not self.articles.has_key(feed): + self.ans.append(feed) + self.articles[feed] = [] + self.articles[feed].append( + dict(title=title, url=url, date=pubdate, + description=description, author=author, + content='')) + def parse_web_edition(self): + + for (sec_title,index_url) in self.web_sections: + if self.includeSections != []: + if sec_title not in self.includeSections: + print "SECTION NOT INCLUDED: ",sec_title + continue + if sec_title in self.excludeSections: + print "SECTION EXCLUDED: ",sec_title + continue + print 'Index URL: '+'http://www.nytimes.com/pages/'+index_url+'/index.html' + soup = self.index_to_soup('http://www.nytimes.com/pages/'+index_url+'/index.html') + self.key = sec_title + # Find each article + for div in soup.findAll(True, + attrs={'class':['section-headline', 'story', 'story headline','sectionHeader','headlinesOnly multiline flush']}): + if div['class'] in ['story', 'story headline'] : + self.handle_article(div) + elif div['class'] == 'headlinesOnly multiline flush': + for lidiv in div.findAll('li'): + self.handle_article(lidiv) + + self.ans = [(k, self.articles[k]) for k in self.ans if self.articles.has_key(k)] + return self.filter_ans(self.ans) + + + def parse_todays_index(self): + soup = self.index_to_soup('http://www.nytimes.com/pages/todayspaper/index.html') - + skipping = False # Find each article for div in soup.findAll(True, attrs={'class':['section-headline', 'story', 'story headline','sectionHeader','headlinesOnly multiline flush']}): if div['class'] in ['section-headline','sectionHeader']: - key = string.capwords(feed_title(div)) - key = key.replace('Op-ed','Op-Ed') - key = key.replace('U.s.','U.S.') + self.key = string.capwords(self.feed_title(div)) + self.key = self.key.replace('Op-ed','Op-Ed') + self.key = self.key.replace('U.s.','U.S.') + self.key = self.key.replace('N.y.','N.Y.') + skipping = False + if self.includeSections != []: + if self.key not in self.includeSections: + print "SECTION NOT INCLUDED: ",self.key + skipping = True + if self.key in self.excludeSections: + print "SECTION EXCLUDED: ",self.key + skipping = True + elif div['class'] in ['story', 'story headline'] : - handle_article(div) + if not skipping: + self.handle_article(div) elif div['class'] == 'headlinesOnly multiline flush': for lidiv in div.findAll('li'): - handle_article(lidiv) + if not skipping: + self.handle_article(lidiv) - ans = [(key, articles[key]) for key in ans if articles.has_key(key)] - return self.filter_ans(ans) + self.ans = [(k, self.articles[k]) for k in self.ans if self.articles.has_key(k)] + return self.filter_ans(self.ans) def parse_headline_index(self): - articles = {} - ans = [] - url_list = [] - soup = self.index_to_soup('http://www.nytimes.com/pages/todaysheadlines/') # Fetch the content table @@ -364,15 +482,24 @@ class NYTimes(BasicNewsRecipe): for td_col in content_table.findAll('td', {'id' : re.compile('Column')}): for div_sec in td_col.findAll('div',recursive=False): for h6_sec_name in div_sec.findAll('h6',{'style' : re.compile('text-transform: *uppercase')}): + section_name = self.tag_to_string(h6_sec_name,use_alt=False) section_name = re.sub(r'^ *$','',section_name) + if section_name == '': continue + if self.includeSections != []: + if section_name not in self.includeSections: + print "SECTION NOT INCLUDED: ",section_name + continue + if section_name in self.excludeSections: + print "SECTION EXCLUDED: ",section_name + continue + section_name=string.capwords(section_name) - if section_name == 'U.s.': - section_name = 'U.S.' - elif section_name == 'Op-ed': - section_name = 'Op-Ed' + section_name = section_name.replace('Op-ed','Op-Ed') + section_name = section_name.replace('U.s.','U.S.') + section_name = section_name.replace('N.y.','N.Y.') pubdate = strftime('%a, %d %b') search_div = div_sec @@ -393,37 +520,32 @@ class NYTimes(BasicNewsRecipe): if not a: continue url = re.sub(r'\?.*', '', a['href']) - if not url.startswith("http"): - continue - if not url.endswith(".html"): - continue - if 'podcast' in url: - continue - if 'video' in url: + if self.exclude_url(url): continue url += '?pagewanted=all' - if url in url_list: - continue - url_list.append(url) - self.log("URL %s" % url) + if self.filterDuplicates: + if url in self.url_list: + continue + self.url_list.append(url) title = self.tag_to_string(a, use_alt=True).strip() desc = h3_item.find('p') if desc is not None: description = self.tag_to_string(desc,use_alt=False) else: description = '' - if not articles.has_key(section_name): - ans.append(section_name) - articles[section_name] = [] - articles[section_name].append(dict(title=title, url=url, date=pubdate, description=description, author=author, content='')) + if not self.articles.has_key(section_name): + self.ans.append(section_name) + self.articles[section_name] = [] + self.articles[section_name].append(dict(title=title, url=url, date=pubdate, description=description, author=author, content='')) - - ans = [(key, articles[key]) for key in ans if articles.has_key(key)] - return self.filter_ans(ans) + self.ans = [(k, self.articles[k]) for k in self.ans if self.articles.has_key(k)] + return self.filter_ans(self.ans) def parse_index(self): if self.headlinesOnly: return self.parse_headline_index() + elif self.webEdition: + return self.parse_web_edition() else: return self.parse_todays_index() @@ -439,6 +561,21 @@ class NYTimes(BasicNewsRecipe): def preprocess_html(self, soup): + if self.webEdition & (self.oldest_article>0): + date_tag = soup.find(True,attrs={'class': ['dateline','date']}) + if date_tag: + date_str = self.tag_to_string(date_tag,use_alt=False) + date_str = date_str.replace('Published:','') + date_items = date_str.split(',') + try: + datestring = date_items[0]+' '+date_items[1] + article_date = self.decode_us_date(datestring) + except: + article_date = date.today() + if article_date < self.earliest_date: + self.log("Skipping article dated %s" % date_str) + return None + kicker_tag = soup.find(attrs={'class':'kicker'}) if kicker_tag: # remove Op_Ed author head shots tagline = self.tag_to_string(kicker_tag) @@ -463,7 +600,6 @@ class NYTimes(BasicNewsRecipe): for inlineImg in inlineImgs[1:]: inlineImg.extract() # Move firstImg before article body - #article_body = soup.find(True, {'id':'articleBody'}) cgFirst = soup.find(True, {'class':re.compile('columnGroup *first')}) if cgFirst: # Strip all sibling NavigableStrings: noise diff --git a/resources/recipes/nzz_ger.recipe b/resources/recipes/nzz_ger.recipe index 66e22f50ef..09e011a1dc 100644 --- a/resources/recipes/nzz_ger.recipe +++ b/resources/recipes/nzz_ger.recipe @@ -1,6 +1,6 @@ __license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' +__copyright__ = '2009-2010, Darko Miletic ' ''' www.nzz.ch @@ -20,6 +20,19 @@ class Nzz(BasicNewsRecipe): encoding = 'utf-8' use_embedded_content = False language = 'de' + extra_css = """ + body{font-family: Georgia,"Times New Roman",Times,serif } + .artikel h3,.artikel h4,.bildLegende,.question,.autor{font-family: Arial,Verdana,Helvetica,sans-serif} + .bildLegende{font-size: small} + .autor{font-size: 0.9375em; color: #666666} + .quote{font-size: large !important; + font-style: italic; + font-weight: normal !important; + border-bottom: 1px dotted #BFBFBF; + border-top: 1px dotted #BFBFBF; + line-height: 1.25em} + .quelle{color: #666666; font-style: italic; white-space: nowrap} + """ conversion_options = { 'comments' : description @@ -28,12 +41,14 @@ class Nzz(BasicNewsRecipe): ,'publisher' : publisher } - keep_only_tags = [dict(name='div', attrs={'class':'article'})] - + keep_only_tags = [dict(name='div', attrs={'class':'zone'})] + remove_tags_before = dict(name='p', attrs={'class':'dachzeile'}) + remove_tags_after=dict(name='p', attrs={'class':'fussnote'}) + remove_attributes=['width','height','lang'] remove_tags = [ - dict(name=['object','link','base']) - ,dict(name='div',attrs={'class':['more','teaser','advXertXoriXals','legal']}) - ,dict(name='div',attrs={'id':['popup-src','readercomments','google-ad','advXertXoriXals']}) + dict(name=['object','link','base','meta','iframe']) + ,dict(attrs={'id':'content_rectangle_1'}) + ,dict(attrs={'class':['weiterfuehrendeLinks','fussnote','video']}) ] feeds = [ @@ -50,7 +65,7 @@ class Nzz(BasicNewsRecipe): ,(u'Reisen' , u'http://www.nzz.ch/magazin/reisen?rss=true') ] - def print_version(self, url): - return url + '?printview=true' - - + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return self.adeify_images(soup) diff --git a/resources/recipes/observa_digital.recipe b/resources/recipes/observa_digital.recipe new file mode 100644 index 0000000000..375d67236c --- /dev/null +++ b/resources/recipes/observa_digital.recipe @@ -0,0 +1,63 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +observa.com.uy +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Noticias(BasicNewsRecipe): + title = 'Observa Digital' + __author__ = '2010, Gustavo Azambuja ' + description = 'Noticias desde Uruguay' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 5 + encoding = 'utf8' + remove_javascript = True + no_stylesheets = True + + oldest_article = 2 + max_articles_per_feed = 100 + keep_only_tags = [dict(id=['contenido'])] + remove_tags = [ + dict(name='div', attrs={'id':'contenedorVinculadas'}), + dict(name='p', attrs={'id':'nota_firma'}), + dict(name=['object','link']) + ] + + remove_attributes = ['width','height', 'style', 'font', 'color'] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + p {font-family:Arial,Helvetica,sans-serif;} + ''' + feeds = [ + (u'Actualidad', u'http://www.observa.com.uy/RSS/actualidad.xml'), + (u'Deportes', u'http://www.observa.com.uy/RSS/deportes.xml'), + (u'Vida', u'http://www.observa.com.uy/RSS/vida.xml'), + (u'Ciencia y Tecnologia', u'http://www.observa.com.uy/RSS/ciencia.xml') + ] + + def get_cover_url(self): + cover_url = None + index = 'http://www.elobservador.com.uy/elobservador/nav_portada.asp?suplemento=dia' + soup = self.index_to_soup(index) + link_item = soup.find('img',attrs={'usemap':'#mapeo_imagenes'}) + if link_item: + cover_url = 'http://www.elobservador.com.uy'+link_item['src'].strip() + + print cover_url + + return cover_url + + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup diff --git a/resources/recipes/polityka.recipe b/resources/recipes/polityka.recipe index ab31e148aa..16ccae6085 100644 --- a/resources/recipes/polityka.recipe +++ b/resources/recipes/polityka.recipe @@ -1,18 +1,18 @@ #!/usr/bin/env python __license__ = 'GPL v3' -__copyright__ = '2010, Mateusz Kielar, matek09@gmail.com' +__copyright__ = '2010, matek09, matek09@gmail.com' from calibre.web.feeds.news import BasicNewsRecipe class Polityka(BasicNewsRecipe): title = u'Polityka' - __author__ = 'Mateusz Kielar' + __author__ = 'matek09' description = 'Weekly magazine. Last archive issue' encoding = 'utf-8' no_stylesheets = True - language = 'en' + language = 'pl' remove_javascript = True remove_tags_before = dict(dict(name = 'h2', attrs = {'class' : 'box_nag'})) @@ -48,7 +48,6 @@ class Polityka(BasicNewsRecipe): for div in box.findAll('div', attrs={'class': 'list_tresc'}): article_page = self.index_to_soup('http://archiwum.polityka.pl' + div.a['href'],) section = self.tag_to_string(article_page.find('h2', attrs = {'class' : 'box_nag'})).split('/')[0].lstrip().rstrip() - print section if not articles.has_key(section): articles[section] = [] articles[section].append( { diff --git a/resources/recipes/poughkeepsie_journal.recipe b/resources/recipes/poughkeepsie_journal.recipe new file mode 100644 index 0000000000..2fa5c1951b --- /dev/null +++ b/resources/recipes/poughkeepsie_journal.recipe @@ -0,0 +1,19 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1291143841(BasicNewsRecipe): + title = u'Poughkeepsipe Journal' + language = 'en' + __author__ = 'weebl' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + timefmt = ' [%a, %d %b, %Y]' + feeds = [(u'Local News', u'http://poughkeepsiejournal.com/apps/pbcs.dll/oversikt?Category=RSS01&mime=xml'), + (u'Local Business', u'http://poughkeepsiejournal.com/apps/pbcs.dll/oversikt?Category=RSS02&mime=xml'), + (u'Local Sports', u'http://poughkeepsiejournal.com/apps/pbcs.dll/oversikt?Category=RSS03&mime=xml'), + (u'Life', u'http://poughkeepsiejournal.com/apps/pbcs.dll/oversikt?Category=RSS04&mime=xml')] + remove_tags = [dict(name='img', attrs={'src':'/graphics/mastlogo.gif'})] + + def print_version(self, url): + return url.replace('http://www.poughkeepsiejournal.com', 'http://www.poughkeepsiejournal.com/print') + diff --git a/resources/recipes/rds.recipe b/resources/recipes/rds.recipe new file mode 100644 index 0000000000..b77e4804a1 --- /dev/null +++ b/resources/recipes/rds.recipe @@ -0,0 +1,18 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1290013720(BasicNewsRecipe): + title = u'RDS' + __author__ = 'Nexus' + language = 'en_CA' + description = 'Hockey News' + oldest_article = 7 + max_articles_per_feed = 25 + no_stylesheets = True + remove_tags = [dict(name='div', attrs={'id':'rdsWrap'}), + dict(name='table', attrs={'id':'aVoir'}), + dict(name='div', attrs={'id':'imageChronique'})] + keep_only_tags = [dict(name='div', attrs={'id':['enteteChronique']}), + dict(name='div', attrs={'id':['contenuChronique']})] + + + feeds = [(u'RDS', u'http://www.rds.ca/hockey/fildepresse_rds.xml')] diff --git a/resources/recipes/reuters_ja.recipe b/resources/recipes/reuters_ja.recipe new file mode 100644 index 0000000000..ffa084bc88 --- /dev/null +++ b/resources/recipes/reuters_ja.recipe @@ -0,0 +1,37 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class ReutersJa(BasicNewsRecipe): + + title = 'Reuters(Japan)' + description = 'Global news in Japanese' + __author__ = 'Hiroshi Miura' + use_embedded_content = False + language = 'ja' + max_articles_per_feed = 10 + remove_javascript = True + + feeds = [ ('Top Stories', 'http://feeds.reuters.com/reuters/JPTopNews?format=xml'), + ('World News', 'http://feeds.reuters.com/reuters/JPWorldNews?format=xml'), + ('Business News', 'http://feeds.reuters.com/reuters/JPBusinessNews?format=xml'), + ('Technology News', 'http://feeds.reuters.com/reuters/JPTechnologyNews?format=xml'), + ('Oddly Enough News', 'http://feeds.reuters.com/reuters/JPOddlyEnoughNews?format=xml') + ] + + remove_tags_before = {'class':"article primaryContent"} + remove_tags = [ dict(id="banner"), + dict(id="autilities"), + dict(id="textSizer"), + dict(id="shareFooter"), + dict(id="relatedNews"), + dict(id="editorsChoice"), + dict(id="ecArticles"), + {'class':"secondaryContent"}, + {'class':"module"}, + ] + remove_tags_after = {'class':"assetBuddy"} + + def print_version(self, url): + m = re.search('(.*idJPJAPAN-[0-9]+)', url) + return m.group(0)+'?sp=true' + diff --git a/resources/recipes/revista_bla.recipe b/resources/recipes/revista_bla.recipe new file mode 100644 index 0000000000..15c7e7fb3f --- /dev/null +++ b/resources/recipes/revista_bla.recipe @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__author__ = '2010, Gustavo Azambuja ' +''' +http://www.revistabla.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Noticias(BasicNewsRecipe): + title = 'Revista Bla' + __author__ = 'Gustavo Azambuja' + description = 'Moda | Uruguay' + language = 'es' + timefmt = '[%a, %d %b, %Y]' + use_embedded_content = False + recursion = 5 + encoding = 'utf8' + remove_javascript = True + no_stylesheets = True + + oldest_article = 20 + max_articles_per_feed = 100 + keep_only_tags = [dict(id=['body_container'])] + remove_tags = [ + dict(name='div', attrs={'class':['date_text', 'comments', 'form_section', 'share_it']}), + dict(name='div', attrs={'id':['relatedPosts', 'spacer', 'banner_izquierda', 'right_container']}), + dict(name='p', attrs={'class':'FacebookLikeButton'}), + dict(name=['object','link']) ] + + extra_css = ''' + h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} + h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} + h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} + p {font-family:Arial,Helvetica,sans-serif;} + ''' + feeds = [ + (u'Articulos', u'http://www.revistabla.com/feed/') + ] + + def get_cover_url(self): + cover_url = None + index = 'http://www.revistabla.com' + soup = self.index_to_soup(index) + link_item = soup.find('div',attrs={'class':'header_right'}) + if link_item: + cover_url = link_item.img['src'] + return cover_url + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup diff --git a/resources/recipes/revista_muy.recipe b/resources/recipes/revista_muy.recipe index e452a6f053..c4516f718d 100644 --- a/resources/recipes/revista_muy.recipe +++ b/resources/recipes/revista_muy.recipe @@ -13,6 +13,8 @@ class RevistaMuyInteresante(BasicNewsRecipe): no_stylesheets = True remove_javascript = True + conversion_options = {'linearize_tables': True} + extra_css = ' .txt_articulo{ font-family: sans-serif; font-size: medium; text-align: justify } .contentheading{font-family: serif; font-size: large; font-weight: bold; color: #000000; text-align: center}' @@ -39,11 +41,12 @@ class RevistaMuyInteresante(BasicNewsRecipe): keep_only_tags = [dict(name='div', attrs={'class':['article']}),dict(name='td', attrs={'class':['txt_articulo']})] remove_tags = [ - dict(name=['object','link','script','ul']) + dict(name=['object','link','script','ul','iframe','ins']) ,dict(name='div', attrs={'id':['comment']}) ,dict(name='td', attrs={'class':['buttonheading']}) - ,dict(name='div', attrs={'class':['tags_articles']}) + ,dict(name='div', attrs={'class':['tags_articles','bajo_title']}) ,dict(name='table', attrs={'class':['pagenav']}) + ,dict(name='form', attrs={'class':['voteform']}) ] remove_tags_after = dict(name='div', attrs={'class':'tags_articles'}) @@ -108,3 +111,12 @@ class RevistaMuyInteresante(BasicNewsRecipe): feeds.append((title, articles)) return feeds + def get_cover_url(self): + index = 'http://www.muyinteresante.es/revista' + soup = self.index_to_soup(index) + link_item = soup.find('img',attrs={'class':'img_portada'}) + if link_item: + cover_url = "http://www.muyinteresante.es"+link_item['src'] + return cover_url + + diff --git a/resources/recipes/rusiahoy.recipe b/resources/recipes/rusiahoy.recipe index 326c1695b0..8dfa55eece 100644 --- a/resources/recipes/rusiahoy.recipe +++ b/resources/recipes/rusiahoy.recipe @@ -19,7 +19,7 @@ class RusiaHoy(BasicNewsRecipe): use_embedded_content = False language = 'es' remove_empty_feeds = True - extra_css = """ + extra_css = """ body{font-family: Arial,sans-serif } .article_article_title{font-size: xx-large; font-weight: bold} .article_date{color: black; font-size: small} @@ -44,4 +44,4 @@ class RusiaHoy(BasicNewsRecipe): for item in soup.findAll(style=True): del item['style'] return soup - \ No newline at end of file + diff --git a/resources/recipes/spiegelde.recipe b/resources/recipes/spiegelde.recipe index 705ffd0f7a..4fed3818b0 100644 --- a/resources/recipes/spiegelde.recipe +++ b/resources/recipes/spiegelde.recipe @@ -6,6 +6,7 @@ __copyright__ = '2009, Darko Miletic ' spiegel.de ''' +from time import strftime from calibre.web.feeds.news import BasicNewsRecipe class Spiegel_ger(BasicNewsRecipe): @@ -44,3 +45,6 @@ class Spiegel_ger(BasicNewsRecipe): rmain, rsep, rrest = main.rpartition(',') purl = rmain + ',druck-' + rrest + ',' + rest return purl + + def get_cover_url(self): + return 'http://wissen.spiegel.de/wissen/titel/SP/' + strftime("%Y/%W/%j/titel.jpg") diff --git a/resources/recipes/st_louis_post_dispatch.recipe b/resources/recipes/st_louis_post_dispatch.recipe new file mode 100644 index 0000000000..3b7701cedc --- /dev/null +++ b/resources/recipes/st_louis_post_dispatch.recipe @@ -0,0 +1,70 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1282093204(BasicNewsRecipe): + title = u'St Louis Post-Dispatch' + __author__ = 'cisaak' + language = 'en' + + oldest_article = 1 + max_articles_per_feed = 15 + masthead_url = 'http://farm5.static.flickr.com/4118/4929686950_0e22e2c88a.jpg' + + feeds = [ + (u'News-Bill McClellan', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal%2fcolumns%2Fbill-mclellan&f=rss&t=article'), + (u'News-Columns', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal%2Fcolumns*&l=50&f=rss&t=article'), + (u'News-Crime & Courtshttp://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal%2Fcrime-and-courts&l=50&f=rss&t=article'), + (u'News-Deb Peterson', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal%2fcolumns%2Fdeb-peterson&f=rss&t=article'), + (u'News-Education', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal%2feducation&f=rss&t=article'), + (u'News-Government & Politics', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal%2fgovt-and-politics&f=rss&t=article'), + (u'News-Local', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal&f=rss&t=article'), + (u'News-Metro', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal%2fmetro&f=rss&t=article'), + (u'News-Metro East', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Flocal%2fillinois&f=rss&t=article'), + (u'News-Missouri Out State', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Fstate-and-regional%2FMissouri&l=50&f=rss&t=article'), + (u'Opinion-Colleen Carroll Campbell', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Fopinion%2fcolumns%2Fcolleen-carroll-campbell&f=rss&t=article'), + (u'Opinion-Editorial', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Fopinion%2feditorial&f=rss&t=article'), + (u'Opinion-Kevin Horrigan', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Fopinion%2fcolumns%2Fkevin-horrigan&f=rss&t=article'), + (u'Opinion-Mailbag', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=news%2Fopinion%2fmailbag&f=rss&t=article'), + (u'Business Columns-Savvy Consumer', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Fcolumns%2Fsavvy-consumer&l=100&f=rss&t=article'), + (u'Business Columns-Lager Heads', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Fcolumns%2Flager-heads&l=100&f=rss&t=article'), + (u'Business Columns-Job Watch', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Fcolumns%2Fjob-watch&l=100&f=rss&t=article'), + (u'Business Columns-Steve Geigerich', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Fcolumns%2Fsteve-giegerich&l=100&f=rss&t=article'), + (u'Business Columns-David Nicklaus', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Fcolumns%2Fdavid-nicklaus&l=100&f=rss&t=article'), + (u'Business Columns-Jim Gallagher', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Fcolumns%2Fjim-gallagher&l=100&f=rss&t=article'), + (u'Business Columns-Building Blocks', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Fcolumns%2Fbuilding-blocks&l=100&f=rss&t=article'), + (u'Business', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business*l&l=100&f=rss&t=article'), + (u'Business-Technology', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Ftechnology&l=50&f=rss&t=article'), + (u'Business-National', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=business%2Fnational-and-international&l=50&f=rss&t=article'), + (u'Travel', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=travel*&l=100&f=rss&t=article'), + (u'Sports', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports*&f=rss&t=article'), + (u'Sports-Baseball', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fbaseball%2Fprofessional&l=100&f=rss&t=article'), + (u'Sports-Bernie Miklasz', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fcolumns%2Fbernie-miklasz&l=50&f=rss&t=article'), + (u'Sports-Bryan Burwell', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fcolumns%2Fbryan-burwell&l=50&f=rss&t=article'), + (u'Sports-College', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fcollege*&l=100&f=rss&t=article'), + (u'Sports-Dan Caesar', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fcolumns%2Fdan-caesar&l=50&f=rss&t=article'), + (u'Sports-Football', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Ffootball%2Fprofessional&l=100&f=rss&t=article'), + (u'Sports-Hockey', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fhockey%2Fprofessional&l=100&f=rss&t=article'), + (u'Sports-Illini', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fcollege%2Fillini&l=100&f=rss&t=article'), + (u'Sports-Jeff Gordon', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fcolumns%2Fjeff-gordon&l=100&f=rss&t=article'), + (u'Life & Style', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=lifestyles&l=100&f=rss&t=article'), + (u'Life & Style-Debra Bass', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=lifestyles%2Ffashion-and-style%2Fdebra-bass&l=100&f=rss&t=article'), + (u'Life & Style-Food and Cooking', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=lifestyles%2Ffood-and-cooking&l=100&f=rss&t=article'), + (u'Life & Style-Health/Medicine/Fitness', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=lifestyles%2Fhealth-med-fit&l=100&f=rss&t=article'), + (u'Life & Style-Joe Holleman', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=lifestyles%2Fcolumns%2Fjoe-holleman&l=100&f=rss&t=article'), + (u'Life & Style-Steals-and-Deals', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=lifestyles%2Fcolumns%2Fsteals-and-deals&l=100&f=rss&t=article'), + (u'Life & Style-Tim Townsend', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=lifestyles%2Ffaith-and-values%2Ftim-townsend&l=100&f=rss&t=article'), + (u'Entertainment', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=entertainment&l=100&f=rss&t=article'), + (u'Entertainment-Arts & Theatre', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=entertainment%2Farts-and-theatre&l=100&f=rss&t=article'), + (u'Entertainment-Books & Literature', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=entertainment%2Fbooks-and-literature&l=100&f=rss&t=article'), + (u'Entertainment-Dining', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=sports%2Fhockey%2Fprofessional&l=100&f=rss&t=article'), + (u'Entertainment-Events Calendar', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=entertainment%2Fevents-calendar&l=100&f=rss&t=article'), + (u'Entertainment-Gail Pennington', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=entertainment%2Ftelevision%2Fgail-pennington&l=100&f=rss&t=article'), + (u'Entertainment-Hip Hops', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=entertainment%2Fdining%2Fbars-and-clubs-other%2Fhip-hops&l=100&f=rss&t=article'), + (u'Entertainment-House-O-Fun', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=entertainment%2Fhouse-o-fun&l=100&f=rss&t=article'), + (u'Entertainment-Kevin C. Johnson', u'http://www2.stltoday.com/search/?q=&d1=&d2=&s=start_time&sd=desc&c=entertainment%2Fmusic%2Fkevin-johnson&l=100&f=rss&t=article') + ] + remove_empty_feeds = True + remove_tags = [dict(name='div', attrs={'id':'blox-logo'}),dict(name='a')] + keep_only_tags = [dict(name='h1'), dict(name='p', attrs={'class':'byline'}), dict(name="div", attrs={'id':'blox-story-text'})] + extra_css = 'p {text-align: left;}' + + diff --git a/resources/recipes/telepolis.recipe b/resources/recipes/telepolis.recipe index 1009dca275..4ca57f8275 100644 --- a/resources/recipes/telepolis.recipe +++ b/resources/recipes/telepolis.recipe @@ -3,12 +3,12 @@ __license__ = 'GPL v3' __copyright__ = '2009, Gerhard Aigner ' -''' http://www.derstandard.at - Austrian Newspaper ''' + import re from calibre.web.feeds.news import BasicNewsRecipe class TelepolisNews(BasicNewsRecipe): - title = u'Telepolis (News)' + title = u'Telepolis (News+Artikel)' __author__ = 'Gerhard Aigner' publisher = 'Heise Zeitschriften Verlag GmbH & Co KG' description = 'News from telepolis' @@ -20,16 +20,16 @@ class TelepolisNews(BasicNewsRecipe): encoding = "utf-8" language = 'de_AT' - use_embedded_content = False + use_embedded_content =False remove_empty_feeds = True preprocess_regexps = [(re.compile(r']*>', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(r'', re.DOTALL|re.IGNORECASE), lambda match: ''),] - keep_only_tags = [dict(name = 'table',attrs={'class':'blogtable'})] - remove_tags = [dict(name='img'), dict(name='td',attrs={'class':'blogbottom'})] + keep_only_tags = [dict(name = 'td',attrs={'class':'bloghead'}),dict(name = 'td',attrs={'class':'blogfliess'})] + remove_tags = [dict(name='img'), dict(name='td',attrs={'class':'blogbottom'}), dict(name='td',attrs={'class':'forum'})] - feeds = [(u'News', u'http://www.heise.de/tp/news.rdf')] + feeds = [(u'News', u'http://www.heise.de/tp/news-atom.xml')] html2lrf_options = [ '--comment' , description @@ -41,7 +41,7 @@ class TelepolisNews(BasicNewsRecipe): def get_article_url(self, article): '''if the linked article is of kind artikel don't take it''' - if (article.link.count('artikel') > 0) : + if (article.link.count('artikel') > 1) : return None return article.link @@ -49,3 +49,5 @@ class TelepolisNews(BasicNewsRecipe): mtag = '' soup.head.insert(0,mtag) return soup + + diff --git a/resources/recipes/the_h.recipe b/resources/recipes/the_h.recipe new file mode 100644 index 0000000000..dbfad7e32a --- /dev/null +++ b/resources/recipes/the_h.recipe @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.h-online.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class TheHeiseOnline(BasicNewsRecipe): + title = u'The H' + __author__ = 'Hiroshi Miura' + oldest_article = 3 + description = 'In association with Heise Online' + publisher = 'Heise Media UK Ltd.' + category = 'news, technology, security' + max_articles_per_feed = 100 + language = 'en' + encoding = 'utf-8' + conversion_options = { + 'comment' : description + ,'tags' : category + ,'publisher': publisher + ,'language' : language + } + feeds = [ + (u'The H News Feed', u'http://www.h-online.com/news/atom.xml') + ] + + def print_version(self, url): + return url + '?view=print' + diff --git a/resources/recipes/the_workingham_times.recipe b/resources/recipes/the_workingham_times.recipe new file mode 100644 index 0000000000..8d18fb42a0 --- /dev/null +++ b/resources/recipes/the_workingham_times.recipe @@ -0,0 +1,59 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.getwokingham.co.uk +''' + +from calibre.web.feeds.recipes import BasicNewsRecipe + +class TheWokinghamTimes(BasicNewsRecipe): + title = 'The Wokingham Times' + __author__ = 'Darko Miletic' + description = 'News from UK' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + encoding = 'utf8' + publisher = 'The Wokingham Times - S&B media' + category = 'news, UK, world' + language = 'en_GB' + publication_type = 'newsportal' + extra_css = """ + body{ font-family: Arial,sans-serif } + img{display: block; margin-bottom: 0.4em} + """ + + conversion_options = { + 'comments' : description + ,'tags' : category + ,'language' : language + ,'publisher' : publisher + } + + keep_only_tags = [dict(name='div', attrs={'id':'article-body'})] + remove_tags = [ + dict(name='div' , attrs={'class':['ad']}) + ,dict(name=['meta','base','iframe','embed','object']) + ,dict(name='span' , attrs={'class':'caption small'}) + ] + remove_attributes = ['width','height','lang'] + + feeds = [ + ('Home' , 'http://www.getwokingham.co.uk/rss.xml' ) + ,('News' , 'http://www.getwokingham.co.uk/news/rss.xml' ) + ,('Entertainment', 'http://www.getwokingham.co.uk/entertainment/rss.xml') + ,('Lifestyle' , 'http://www.getwokingham.co.uk/lifestyle/rss.xml' ) + ] + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + for item in soup.findAll('a'): + if item.string is not None: + str = item.string + item.replaceWith(str) + else: + item.name = 'span' + del item['href'] + return soup diff --git a/resources/recipes/thn.recipe b/resources/recipes/thn.recipe new file mode 100644 index 0000000000..5e812fbbdf --- /dev/null +++ b/resources/recipes/thn.recipe @@ -0,0 +1,19 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1289990851(BasicNewsRecipe): + title = u'The Hockey News' + language = 'en_CA' + __author__ = 'Nexus' + oldest_article = 7 + max_articles_per_feed = 25 + no_stylesheets = True + remove_tags = [dict(name='div', attrs={'class':'article_info'}), + dict(name='div', attrs={'class':'photo_details'}), + dict(name='div', attrs={'class':'tool_menu'}), + dict(name='div', attrs={'id':'comments_container'}), + dict(name='div', attrs={'id':'wrapper'})] + keep_only_tags = [dict(name='h1', attrs={'class':['headline']}), + dict(name='div', attrs={'class':['box_container']})] + + feeds = [(u'THN', u'http://www.thehockeynews.com/rss/all_categories.xml')] + diff --git a/resources/recipes/tpm_uk.recipe b/resources/recipes/tpm_uk.recipe new file mode 100644 index 0000000000..aa042de951 --- /dev/null +++ b/resources/recipes/tpm_uk.recipe @@ -0,0 +1,72 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.philosophypress.co.uk +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class TPM_uk(BasicNewsRecipe): + title = "The Philosophers' Magazine" + __author__ = 'Darko Miletic' + description = 'Title says it all' + publisher = "The Philosophers' Magazine" + category = 'philosophy, news' + oldest_article = 25 + max_articles_per_feed = 200 + no_stylesheets = True + encoding = 'utf8' + use_embedded_content = False + language = 'en_GB' + remove_empty_feeds = True + publication_type = 'magazine' + masthead_url = 'http://www.philosophypress.co.uk/wp-content/themes/masterplan/tma/images/bg/sitelogo.png' + extra_css = """ + body{font-family: Helvetica,Arial,"Lucida Grande",Verdana,sans-serif } + img{margin-bottom: 0.4em; display:block} + """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_tags = [ + dict(name=['meta','link','base','iframe','embed','object','img']) + ,dict(attrs={'id':['respond','sharethis_0']}) + ,dict(attrs={'class':'wp-caption-text'}) + ] + keep_only_tags=[ + dict(attrs={'class':['post_cat','post_name','post_meta','post_text']}) + ,dict(attrs={'id':'comments'}) + ] + remove_attributes=['lang','width','height'] + + + feeds = [ + (u'Columns' , u'http://www.philosophypress.co.uk/?feed=rss2&cat=15' ) + ,(u'Essays' , u'http://www.philosophypress.co.uk/?feed=rss2&cat=19' ) + ,(u"21'st Century" , u'http://www.philosophypress.co.uk/?feed=rss2&cat=101') + ,(u'Interviews' , u'http://www.philosophypress.co.uk/?feed=rss2&cat=9' ) + ,(u'News' , u'http://www.philosophypress.co.uk/?feed=rss2&cat=28' ) + ,(u'Profiles' , u'http://www.philosophypress.co.uk/?feed=rss2&cat=59' ) + ,(u'Reviews' , u'http://www.philosophypress.co.uk/?feed=rss2&cat=12' ) + ] + + def get_cover_url(self): + soup = self.index_to_soup('http://www.philosophypress.co.uk/') + for image in soup.findAll('img',title=True): + if image['title'].startswith('Click to Subscribe'): + return image['src'] + return None + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + for alink in soup.findAll('a', rel=True): + if alink.string is not None: + tstr = alink.string + alink.replaceWith(tstr) + return soup diff --git a/resources/recipes/tsn.recipe b/resources/recipes/tsn.recipe new file mode 100644 index 0000000000..e822ebc633 --- /dev/null +++ b/resources/recipes/tsn.recipe @@ -0,0 +1,34 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1289990851(BasicNewsRecipe): + title = u'TSN' + oldest_article = 7 + max_articles_per_feed = 50 + language = 'en_CA' + __author__ = 'Nexus' + no_stylesheets = True + INDEX = 'http://tsn.ca/nhl/story/?id=nhl' + keep_only_tags = [dict(name='div', attrs={'id':['tsnColWrap']}), + dict(name='div', attrs={'id':['tsnStory']})] + remove_tags = [dict(name='div', attrs={'id':'tsnRelated'}), + dict(name='div', attrs={'class':'textSize'})] + + def parse_index(self): + feeds = [] + soup = self.index_to_soup(self.INDEX) + feed_parts = soup.findAll('div', attrs={'class': 'feature'}) + for feed_part in feed_parts: + articles = [] + if not feed_part.h2: + continue + feed_title = feed_part.h2.string + article_parts = feed_part.findAll('a') + for article_part in article_parts: + article_title = article_part.string + article_date = '' + article_url = 'http://tsn.ca/' + article_part['href'] + articles.append({'title': article_title, 'url': article_url, 'description':'', 'date':article_date}) + if articles: + feeds.append((feed_title, articles)) + return feeds + diff --git a/resources/recipes/wprost.recipe b/resources/recipes/wprost.recipe new file mode 100644 index 0000000000..b317571981 --- /dev/null +++ b/resources/recipes/wprost.recipe @@ -0,0 +1,91 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2010, matek09, matek09@gmail.com' + +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class Wprost(BasicNewsRecipe): + EDITION = 0 + FIND_LAST_FULL_ISSUE = True + EXCLUDE_LOCKED = True + ICO_BLOCKED = 'http://www.wprost.pl/G/icons/ico_blocked.gif' + + title = u'Wprost' + __author__ = 'matek09' + description = 'Weekly magazine' + encoding = 'ISO-8859-2' + no_stylesheets = True + language = 'pl' + remove_javascript = True + + remove_tags_before = dict(dict(name = 'div', attrs = {'id' : 'print-layer'})) + remove_tags_after = dict(dict(name = 'div', attrs = {'id' : 'print-layer'})) + + '''keep_only_tags =[] + keep_only_tags.append(dict(name = 'table', attrs = {'id' : 'title-table'})) + keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'div-header'})) + keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'div-content'})) + keep_only_tags.append(dict(name = 'div', attrs = {'class' : 'def element-autor'}))''' + + preprocess_regexps = [(re.compile(r'style="display: none;"'), lambda match: ''), + (re.compile(r'display: block;'), lambda match: '')] + + + remove_tags =[] + remove_tags.append(dict(name = 'div', attrs = {'class' : 'def element-date'})) + remove_tags.append(dict(name = 'div', attrs = {'class' : 'def silver'})) + remove_tags.append(dict(name = 'div', attrs = {'id' : 'content-main-column-right'})) + + + extra_css = ''' + .div-header {font-size: x-small; font-weight: bold} + ''' +#h2 {font-size: x-large; font-weight: bold} + def is_blocked(self, a): + if a.findNextSibling('img') is None: + return False + else: + return True + + + + def find_last_issue(self): + soup = self.index_to_soup('http://www.wprost.pl/archiwum/') + a = 0 + if self.FIND_LAST_FULL_ISSUE: + ico_blocked = soup.findAll('img', attrs={'src' : self.ICO_BLOCKED}) + a = ico_blocked[-1].findNext('a', attrs={'title' : re.compile('Zobacz spis tre.ci')}) + else: + a = soup.find('a', attrs={'title' : re.compile('Zobacz spis tre.ci')}) + self.EDITION = a['href'].replace('/tygodnik/?I=', '') + self.cover_url = a.img['src'] + + + + def parse_index(self): + self.find_last_issue() + soup = self.index_to_soup('http://www.wprost.pl/tygodnik/?I=' + self.EDITION) + feeds = [] + for main_block in soup.findAll(attrs={'class':'main-block-s3 s3-head head-red3'}): + articles = list(self.find_articles(main_block)) + if len(articles) > 0: + section = self.tag_to_string(main_block) + feeds.append((section, articles)) + return feeds + + def find_articles(self, main_block): + for a in main_block.findAllNext( attrs={'style':['','padding-top: 15px;']}): + if a.name in "td": + break + if self.EXCLUDE_LOCKED & self.is_blocked(a): + continue + yield { + 'title' : self.tag_to_string(a), + 'url' : 'http://www.wprost.pl' + a['href'], + 'date' : '', + 'description' : '' + } + + diff --git a/resources/recipes/yomiuri.recipe b/resources/recipes/yomiuri.recipe new file mode 100644 index 0000000000..fb17bb1210 --- /dev/null +++ b/resources/recipes/yomiuri.recipe @@ -0,0 +1,63 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.yomiuri.co.jp +''' + +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class YOLNews(BasicNewsRecipe): + title = u'Yomiuri Online (Latest)' + __author__ = 'Hiroshi Miura' + oldest_article = 1 + max_articles_per_feed = 50 + description = 'Japanese traditional newspaper Yomiuri Online News' + publisher = 'Yomiuri Online News' + category = 'news, japan' + language = 'ja' + encoding = 'Shift_JIS' + index = 'http://www.yomiuri.co.jp/latestnews/' + remove_javascript = True + masthead_title = u'YOMIURI ONLINE' + + keep_only_tags = [{'class':"article-def"}] + remove_tags = [{'class':"RelatedArticle"}, + {'class':"sbtns"} + ] + remove_tags_after = {'class':"date-def"} + + def parse_feeds(self): + feeds = BasicNewsRecipe.parse_feeds(self) + for curfeed in feeds: + delList = [] + for a,curarticle in enumerate(curfeed.articles): + if re.search(r'rssad.jp', curarticle.url): + delList.append(curarticle) + if len(delList)>0: + for d in delList: + index = curfeed.articles.index(d) + curfeed.articles[index:index+1] = [] + return feeds + + def parse_index(self): + feeds = [] + soup = self.index_to_soup(self.index) + topstories = soup.find('ul',attrs={'class':'list-def'}) + if topstories: + newsarticles = [] + for itt in topstories.findAll('li'): + itema = itt.find('a',href=True) + if itema: + itd1 = itema.findNextSibling(text = True) + itd2 = itd1.findNextSibling(text = True) + itd3 = itd2.findNextSibling(text = True) + newsarticles.append({ + 'title' :itema.string + ,'date' :''.join([itd1, itd2, itd3]) + ,'url' :'http://www.yomiuri.co.jp' + itema['href'] + ,'description':'' + }) + feeds.append(('latest', newsarticles)) + return feeds + diff --git a/resources/recipes/yomiuri_world.recipe b/resources/recipes/yomiuri_world.recipe new file mode 100644 index 0000000000..41ee4fd23d --- /dev/null +++ b/resources/recipes/yomiuri_world.recipe @@ -0,0 +1,61 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Hiroshi Miura ' +''' +www.yomiuri.co.jp +''' + +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class YOLNews(BasicNewsRecipe): + title = u'Yomiuri Online (World)' + __author__ = 'Hiroshi Miura' + oldest_article = 2 + max_articles_per_feed = 50 + description = 'Japanese traditional newspaper Yomiuri Online News/world news' + publisher = 'Yomiuri Online News' + category = 'news, japan' + language = 'ja' + encoding = 'Shift_JIS' + index = 'http://www.yomiuri.co.jp/world/' + remove_javascript = True + masthead_title = u"YOMIURI ONLINE" + + keep_only_tags = [{'class':"article-def"}] + remove_tags = [{'class':"RelatedArticle"}, + {'class':"sbtns"} + ] + remove_tags_after = {'class':"date-def"} + + def parse_feeds(self): + feeds = BasicNewsRecipe.parse_feeds(self) + for curfeed in feeds: + delList = [] + for a,curarticle in enumerate(curfeed.articles): + if re.search(r'rssad.jp', curarticle.url): + delList.append(curarticle) + if len(delList)>0: + for d in delList: + index = curfeed.articles.index(d) + curfeed.articles[index:index+1] = [] + return feeds + + def parse_index(self): + feeds = [] + soup = self.index_to_soup(self.index) + topstories = soup.find('ul',attrs={'class':'list-def'}) + if topstories: + newsarticles = [] + for itt in topstories.findAll('li'): + itema = itt.find('a',href=True) + if itema: + itd1 = itema.findNextSibling(text = True) + newsarticles.append({ + 'title' :itema.string + ,'date' :''.join([itd1]) + ,'url' :'http://www.yomiuri.co.jp' + itema['href'] + ,'description':'' + }) + feeds.append(('World', newsarticles)) + return feeds + diff --git a/resources/recipes/zeitde.recipe b/resources/recipes/zeitde.recipe index a9e730a95d..64345ea675 100644 --- a/resources/recipes/zeitde.recipe +++ b/resources/recipes/zeitde.recipe @@ -12,6 +12,7 @@ class ZeitDe(BasicNewsRecipe): title = 'Zeit Online' description = 'Zeit Online' language = 'de' + encoding = 'UTF-8' __author__ = 'Martin Pitt, Sujata Raman, Ingo Paschke and Marc Toensing' @@ -58,7 +59,7 @@ class ZeitDe(BasicNewsRecipe): def preprocess_html(self, soup): for tag in soup.findAll(name=['ul','li']): tag.name = 'div' - + soup.html['xml:lang'] = self.lang soup.html['lang'] = self.lang mtag = '' diff --git a/resources/recipes/zeitde_sub.recipe b/resources/recipes/zeitde_sub.recipe new file mode 100644 index 0000000000..5014837c5b --- /dev/null +++ b/resources/recipes/zeitde_sub.recipe @@ -0,0 +1,63 @@ +#!/usr/bin/env python +# -*- coding: utf-8 mode: python -*- + +__license__ = 'GPL v3' +__copyright__ = '2010, Steffen Siebert ' +__docformat__ = 'restructuredtext de' +__version__ = '1.1' + +""" +Die Zeit EPUB +""" + +import os, urllib2, zipfile, re +from calibre.web.feeds.news import BasicNewsRecipe +from calibre.ptempfile import PersistentTemporaryFile + +class ZeitEPUBAbo(BasicNewsRecipe): + + title = u'Zeit Online Premium' + description = u'Das EPUB Abo der Zeit (needs subscription)' + language = 'de' + lang = 'de-DE' + + __author__ = 'Steffen Siebert' + needs_subscription = True + + conversion_options = { + 'no_default_epub_cover' : True + } + + def build_index(self): + domain = "http://premium.zeit.de" + url = domain + "/abovorteile/cgi-bin/_er_member/p4z.fpl?ER_Do=getUserData&ER_NextTemplate=login_ok" + + browser = self.get_browser() + browser.add_password("http://premium.zeit.de", self.username, self.password) + + try: + browser.open(url) + except urllib2.HTTPError: + self.report_progress(0,_("Can't login to download issue")) + raise ValueError('Failed to login, check your username and password') + + response = browser.follow_link(text="DIE ZEIT als E-Paper") + response = browser.follow_link(url_regex=re.compile('^http://contentserver.hgv-online.de/nodrm/fulfillment\\?distributor=zeit-online&orderid=zeit_online.*')) + + tmp = PersistentTemporaryFile(suffix='.epub') + self.report_progress(0,_('downloading epub')) + tmp.write(response.read()) + tmp.close() + + zfile = zipfile.ZipFile(tmp.name, 'r') + self.report_progress(0,_('extracting epub')) + + zfile.extractall(self.output_dir) + + tmp.close() + index = os.path.join(self.output_dir, 'content.opf') + + self.report_progress(1,_('epub downloaded and extracted')) + + return index + diff --git a/resources/templates/rtf.xsl b/resources/templates/rtf.xsl index bf016efaaf..ea1fc71172 100644 --- a/resources/templates/rtf.xsl +++ b/resources/templates/rtf.xsl @@ -363,13 +363,16 @@ - + - + + + + diff --git a/resources/viewer/hyphenate/Hyphenator.js b/resources/viewer/hyphenate/Hyphenator.js index 4352487f36..657246d9c3 100644 --- a/resources/viewer/hyphenate/Hyphenator.js +++ b/resources/viewer/hyphenate/Hyphenator.js @@ -1,6 +1,5 @@ -/*! - * Hyphenator 2.3.0 - client side hyphenation for webbrowsers - * Copyright (C) 2009 Mathias Nater, Zürich (mathias at mnn dot ch) +/** @license Hyphenator X.Y.Z - client side hyphenation for webbrowsers + * Copyright (C) 2010 Mathias Nater, Zürich (mathias at mnn dot ch) * Project and Source hosted on http://code.google.com/p/hyphenator/ * * This JavaScript code is free software: you can redistribute @@ -19,24 +18,20 @@ */ /* - * Comments are jsdoctoolkit formatted. See jsdoctoolkit.org + * Comments are jsdoctoolkit formatted. See http://code.google.com/p/jsdoc-toolkit/ */ /* The following comment is for JSLint: */ /*global window, ActiveXObject, unescape */ -/*jslint browser: true, eqeqeq: true, immed: true, newcap: true, nomen: true, onevar: true, undef: true, white: true, indent: 4*/ +/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, regexp: true, sub: true, newcap: true, immed: true, evil: true, eqeqeq: false */ -/** - * @fileOverview - * A script that does hyphenation in (X)HTML files - * @author Mathias Nater, mathias@mnn.ch - * @version 2.3.0 - */ /** * @constructor * @description Provides all functionality to do hyphenation, except the patterns that are loaded * externally. + * @author Mathias Nater, mathias@mnn.ch + * @version X.Y.Z * @namespace Holds all methods and properties * @example * <script src = "Hyphenator.js" type = "text/javascript"></script> @@ -44,54 +39,96 @@  *   Hyphenator.run();  * </script> */ -var Hyphenator = (function () { - - - /** - * @name Hyphenator-languageHint - * @fieldOf Hyphenator - * @description - * A string to be displayed in a prompt if the language can't be guessed. - * If you add hyphenation patterns change this string. - * Internally, this string is used to define languages that are supported by Hyphenator. - * @see Hyphenator-supportedLang - * @type string - * @private - * @see Hyphenator-autoSetMainLanguage - */ - var languageHint = 'cs, da, bn, de, en, es, fi, fr, gu, hi, hu, it, kn, ml, nl, or, pa, pl, pt, ru, sv, ta, te, uk', +var Hyphenator = (function (window) { + var /** * @name Hyphenator-supportedLang - * @fieldOf Hyphenator * @description - * A generated key-value object that stores supported languages. - * The languages are retrieved from {@link Hyphenator-languageHint}. - * @type object + * A key-value object that stores supported languages. + * The key is the bcp47 code of the language and the value + * is the (abbreviated) filename of the pattern file. + * @type {Object.} * @private * @example * Check if language lang is supported: - * if (supportedLang[lang]) + * if (supportedLang.hasOwnProperty(lang)) */ - supportedLang = (function () { - var k, i = 0, a = languageHint.split(', '), r = {}; - while (!!(k = a[i++])) { - r[k] = true; - } - return r; - }()), + supportedLang = { + 'be': 'be.js', + 'cs': 'cs.js', + 'da': 'da.js', + 'bn': 'bn.js', + 'de': 'de.js', + 'el': 'el-monoton.js', + 'el-monoton': 'el-monoton.js', + 'el-polyton': 'el-polyton.js', + 'en': 'en-us.js', + 'en-gb': 'en-gb.js', + 'en-us': 'en-us.js', + 'es': 'es.js', + 'fi': 'fi.js', + 'fr': 'fr.js', + 'grc': 'grc.js', + 'gu': 'gu.js', + 'hi': 'hi.js', + 'hu': 'hu.js', + 'hy': 'hy.js', + 'it': 'it.js', + 'kn': 'kn.js', + 'la': 'la.js', + 'lt': 'lt.js', + 'lv': 'lv.js', + 'ml': 'ml.js', + 'no': 'no-nb.js', + 'no-nb': 'no-nb.js', + 'nl': 'nl.js', + 'or': 'or.js', + 'pa': 'pa.js', + 'pl': 'pl.js', + 'pt': 'pt.js', + 'ru': 'ru.js', + 'sl': 'sl.js', + 'sv': 'sv.js', + 'ta': 'ta.js', + 'te': 'te.js', + 'tr': 'tr.js', + 'uk': 'uk.js' + }, + /** + * @name Hyphenator-languageHint + * @description + * An automatically generated string to be displayed in a prompt if the language can't be guessed. + * The string is generated using the supportedLang-object. + * @see Hyphenator-supportedLang + * @type {string} + * @private + * @see Hyphenator-autoSetMainLanguage + */ + + languageHint = (function () { + var k, r = ''; + for (k in supportedLang) { + if (supportedLang.hasOwnProperty(k)) { + r += k + ', '; + } + } + r = r.substring(0, r.length - 2); + return r; + }()), + /** * @name Hyphenator-prompterStrings - * @fieldOf Hyphenator * @description * A key-value object holding the strings to be displayed if the language can't be guessed * If you add hyphenation patterns change this string. - * @type object + * @type {Object.} * @private * @see Hyphenator-autoSetMainLanguage */ prompterStrings = { + 'be': 'Мова гÑтага Ñайта не можа быць вызначаны аўтаматычна. Калі лаÑка пакажыце мову:', 'cs': 'Jazyk této internetové stránky nebyl automaticky rozpoznán. UrÄete prosím její jazyk:', 'da': 'Denne websides sprog kunne ikke bestemmes. Angiv venligst sprog:', 'de': 'Die Sprache dieser Webseite konnte nicht automatisch bestimmt werden. Bitte Sprache angeben:', @@ -100,24 +137,30 @@ var Hyphenator = (function () { 'fi': 'Sivun kielt%E4 ei tunnistettu automaattisesti. M%E4%E4rit%E4 sivun p%E4%E4kieli:', 'fr': 'La langue de ce site n%u2019a pas pu %EAtre d%E9termin%E9e automatiquement. Veuillez indiquer une langue, s.v.p.%A0:', 'hu': 'A weboldal nyelvét nem sikerült automatikusan megállapítani. Kérem adja meg a nyelvet:', + 'hy': 'Õ‰Õ°Õ¡Õ»Õ¸Õ²Õ¾Õ¥Ö Õ°Õ¡ÕµÕ¿Õ¶Õ¡Õ¢Õ¥Ö€Õ¥Õ¬ Õ¡ÕµÕ½ Õ¯Õ¡ÕµÖ„Õ« Õ¬Õ¥Õ¦Õ¸Ö‚Õ¶Ö‰ Ô½Õ¶Õ¤Ö€Õ¸Ö‚Õ´ Õ¥Õ¶Ö„ Õ¶Õ·Õ¥Ö„ Õ°Õ«Õ´Õ¶Õ¡Õ¯Õ¡Õ¶ Õ¬Õ¥Õ¦Õ¸Ö‚Õ¶Õ', 'it': 'Lingua del sito sconosciuta. Indicare una lingua, per favore:', + 'kn': 'ಜಾಲ ತಾಣದ ಭಾಷೆಯನà³à²¨à³ ನಿರà³à²§à²°à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—à³à²¤à³à²¤à²¿à²²à³à²². ದಯವಿಟà³à²Ÿà³ ಮà³à²–à³à²¯ ಭಾಷೆಯನà³à²¨à³ ಸೂಚಿಸಿ:', + 'lt': 'Nepavyko automatiÅ¡kai nustatyti Å¡ios svetainÄ—s kalbos. PraÅ¡ome įvesti kalbÄ…:', + 'lv': 'Å Ä«s lapas valodu nevarÄ“ja noteikt automÄtiski. LÅ«dzu norÄdiet pamata valodu:', 'ml': 'à´ˆ വെ%u0D2C%u0D4D%u200Cസൈറàµà´±à´¿à´¨àµà´±àµ† ഭാഷ à´•à´£àµà´Ÿàµà´ªà´¿à´Ÿà´¿à´¯àµà´•àµà´•à´¾%u0D28%u0D4D%u200D à´•à´´à´¿à´žàµà´žà´¿à´²àµà´². ഭാഷ à´à´¤à´¾à´£àµ†à´¨àµà´¨àµ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•:', 'nl': 'De taal van deze website kan niet automatisch worden bepaald. Geef de hoofdtaal op:', + 'no': 'Nettstedets sprÃ¥k kunne ikke finnes automatisk. Vennligst oppgi sprÃ¥k:', 'pt': 'A língua deste site não pôde ser determinada automaticamente. Por favor indique a língua principal:', 'ru': 'Язык Ñтого Ñайта не может быть определен автоматичеÑки. ПожалуйÑта укажите Ñзык:', + 'sl': 'Jezika te spletne strani ni bilo mogoÄe samodejno doloÄiti. Prosim navedite jezik:', 'sv': 'Spr%E5ket p%E5 den h%E4r webbplatsen kunde inte avg%F6ras automatiskt. V%E4nligen ange:', + 'tr': 'Bu web sitesinin dili otomatik olarak tespit edilememiÅŸtir. Lütfen dökümanın dilini seçiniz%A0:', 'uk': 'Мова цього веб-Ñайту не може бути визначена автоматично. Будь лаÑка, вкажіть головну мову:' }, /** * @name Hyphenator-basePath - * @fieldOf Hyphenator * @description - * A string storing the basepath from where Hyphenator.js was loaded. + * A string storing the basepath from where Hyphenator.js was loaded. * This is used to load the patternfiles. * The basepath is determined dynamically by searching all script-tags for Hyphenator.js * If the path cannot be determined http://hyphenator.googlecode.com/svn/trunk/ is used as fallback. - * @type string + * @type {string} * @private * @see Hyphenator-loadPatterns */ @@ -138,14 +181,13 @@ var Hyphenator = (function () { /** * @name Hyphenator-isLocal - * @fieldOf Hyphenator * @description * isLocal is true, if Hyphenator is loaded from the same domain, as the webpage, but false, if * it's loaded from an external source (i.e. directly from google.code) */ isLocal = (function () { var re = false; - if (basePath.indexOf(window.location.hostname) !== -1) { + if (window.location.href.indexOf(basePath) !== -1) { re = true; } return re; @@ -153,26 +195,50 @@ var Hyphenator = (function () { /** * @name Hyphenator-documentLoaded - * @fieldOf Hyphenator * @description * documentLoaded is true, when the DOM has been loaded. This is set by runOnContentLoaded */ documentLoaded = false, + documentCount = 0, + + /** + * @name Hyphenator-persistentConfig + * @description + * if persistentConfig is set to true (defaults to false), config options and the state of the + * toggleBox are stored in DOM-storage (according to the storage-setting). So they haven't to be + * set for each page. + */ + persistentConfig = false, + + /** + * @name Hyphenator-contextWindow + * @description + * contextWindow stores the window for the document to be hyphenated. + * If there are frames this will change. + * So use contextWindow instead of window! + */ + contextWindow = window, + + /** + * @name Hyphenator-doFrames + * @description + * switch to control if frames/iframes should be hyphenated, too + * defaults to false (frames are a bag of hurt!) + */ + doFrames = false, /** * @name Hyphenator-dontHyphenate - * @fieldOf Hyphenator * @description * A key-value object containing all html-tags whose content should not be hyphenated - * @type object + * @type {Object.} * @private * @see Hyphenator-hyphenateElement */ - dontHyphenate = {'script': true, 'code': true, 'pre': true, 'img': true, 'br': true, 'samp': true, 'kbd': true, 'var': true, 'abbr': true, 'acronym': true, 'sub': true, 'sup': true, 'button': true, 'option': true, 'label': true, 'textarea': true}, + dontHyphenate = {'script': true, 'code': true, 'pre': true, 'img': true, 'br': true, 'samp': true, 'kbd': true, 'var': true, 'abbr': true, 'acronym': true, 'sub': true, 'sup': true, 'button': true, 'option': true, 'label': true, 'textarea': true, 'input': true}, /** * @name Hyphenator-enableCache - * @fieldOf Hyphenator * @description * A variable to set if caching is enabled or not * @type boolean @@ -182,10 +248,45 @@ var Hyphenator = (function () { * @see hyphenateWord */ enableCache = true, + + /** + * @name Hyphenator-storageType + * @description + * A variable to define what html5-DOM-Storage-Method is used ('none', 'local' or 'session') + * @type {string} + * @default 'none' + * @private + * @see Hyphenator.config + */ + storageType = 'local', + + /** + * @name Hyphenator-storage + * @description + * An alias to the storage-Method defined in storageType. + * Set by Hyphenator.run() + * @type {Object|undefined} + * @default null + * @private + * @see Hyphenator.run + */ + storage, + + /** + * @name Hyphenator-enableReducedPatternSet + * @description + * A variable to set if storing the used patterns is set + * @type boolean + * @default false + * @private + * @see Hyphenator.config + * @see hyphenateWord + * @see Hyphenator.getRedPatternSet + */ + enableReducedPatternSet = false, /** * @name Hyphenator-enableRemoteLoading - * @fieldOf Hyphenator * @description * A variable to set if pattern files should be loaded remotely or not * @type boolean @@ -198,7 +299,6 @@ var Hyphenator = (function () { /** * @name Hyphenator-displayToggleBox - * @fieldOf Hyphenator * @description * A variable to set if the togglebox should be displayed or not * @type boolean @@ -211,10 +311,9 @@ var Hyphenator = (function () { /** * @name Hyphenator-hyphenateClass - * @fieldOf Hyphenator * @description * A string containing the css-class-name for the hyphenate class - * @type string + * @type {string} * @default 'hyphenate' * @private * @example @@ -225,10 +324,9 @@ var Hyphenator = (function () { /** * @name Hyphenator-dontHyphenateClass - * @fieldOf Hyphenator * @description * A string containing the css-class-name for elements that should not be hyphenated - * @type string + * @type {string} * @default 'donthyphenate' * @private * @example @@ -239,19 +337,30 @@ var Hyphenator = (function () { /** * @name Hyphenator-min - * @fieldOf Hyphenator * @description * A number wich indicates the minimal length of words to hyphenate. - * @type number + * @type {number} * @default 6 * @private * @see Hyphenator.config */ min = 6, + /** + * @name Hyphenator-orphanControl + * @description + * Control how the last words of a line are handled: + * level 1 (default): last word is hyphenated + * level 2: last word is not hyphenated + * level 3: last word is not hyphenated and last space is non breaking + * @type {number} + * @default 1 + * @private + */ + orphanControl = 1, + /** * @name Hyphenator-isBookmarklet - * @fieldOf Hyphenator * @description * Indicates if Hyphanetor runs as bookmarklet or not. * @type boolean @@ -272,48 +381,66 @@ var Hyphenator = (function () { } return re; }()), - + /** * @name Hyphenator-mainLanguage - * @fieldOf Hyphenator * @description - * The general language of the document - * @type number + * The general language of the document. In contrast to {@link Hyphenator-defaultLanguage}, + * mainLanguage is defined by the client (i.e. by the html or by a prompt). + * @type {string|null} * @private * @see Hyphenator-autoSetMainLanguage */ mainLanguage = null, + /** + * @name Hyphenator-defaultLanguage + * @description + * The language defined by the developper. This language setting is defined by a config option. + * It is overwritten by any html-lang-attribute and only taken in count, when no such attribute can + * be found (i.e. just before the prompt). + * @type {string|null} + * @private + * @see Hyphenator-autoSetMainLanguage + */ + defaultLanguage = '', + /** * @name Hyphenator-elements - * @fieldOf Hyphenator * @description * An array holding all elements that have to be hyphenated. This var is filled by * {@link Hyphenator-gatherDocumentInfos} - * @type array + * @type {Array} * @private */ elements = [], /** * @name Hyphenator-exceptions - * @fieldOf Hyphenator * @description * An object containing exceptions as comma separated strings for each language. * When the language-objects are loaded, their exceptions are processed, copied here and then deleted. * @see Hyphenator-prepareLanguagesObj - * @type object + * @type {Object} * @private */ exceptions = {}, - + + countObjProps = function (obj) { + var k, l = 0; + for (k in obj) { + if (obj.hasOwnProperty(k)) { + l++; + } + } + return l; + }, /** * @name Hyphenator-docLanguages - * @fieldOf Hyphenator * @description * An object holding all languages used in the document. This is filled by * {@link Hyphenator-gatherDocumentInfos} - * @type object + * @type {Object} * @private */ docLanguages = {}, @@ -321,7 +448,6 @@ var Hyphenator = (function () { /** * @name Hyphenator-state - * @fieldOf Hyphenator * @description * A number that inidcates the current state of the script * 0: not initialized @@ -329,104 +455,113 @@ var Hyphenator = (function () { * 2: ready * 3: hyphenation done * 4: hyphenation removed - * @type number + * @type {number} * @private */ state = 0, /** * @name Hyphenator-url - * @fieldOf Hyphenator * @description * A string containing a RegularExpression to match URL's - * @type string + * @type {string} * @private */ - url = '(\\w*:\/\/)?((\\w*:)?(\\w*)@)?((([\\d]{1,3}\\.){3}([\\d]{1,3}))|(([\\w]*\\.)+([\\w]{2,4})))(:\\d*)?(\/[\\w#!:\\.?\\+=&%@!\\-]*)*', - + url = '(\\w*:\/\/)?((\\w*:)?(\\w*)@)?((([\\d]{1,3}\\.){3}([\\d]{1,3}))|((www\\.|[a-zA-Z]\\.)?[a-zA-Z0-9\\-\\.]+\\.([a-z]{2,4})))(:\\d*)?(\/[\\w#!:\\.?\\+=&%@!\\-]*)*', + // protocoll usr pwd ip or host tld port path /** * @name Hyphenator-mail - * @fieldOf Hyphenator * @description * A string containing a RegularExpression to match mail-adresses - * @type string + * @type {string} * @private */ mail = '[\\w-\\.]+@[\\w\\.]+', /** * @name Hyphenator-urlRE - * @fieldOf Hyphenator * @description * A RegularExpressions-Object for url- and mail adress matching - * @type object + * @type {RegExp} * @private */ urlOrMailRE = new RegExp('(' + url + ')|(' + mail + ')', 'i'), /** * @name Hyphenator-zeroWidthSpace - * @fieldOf Hyphenator * @description * A string that holds a char. * Depending on the browser, this is the zero with space or an empty string. - * The zeroWidthSpace is inserted after a '-' in compound words, so even FF and IE - * will break after a '-' if necessary. - * zeroWidthSpace is also used to break URLs - * @type string + * zeroWidthSpace is used to break URLs + * @type {string} * @private */ zeroWidthSpace = (function () { var zws, ua = navigator.userAgent.toLowerCase(); - if (ua.indexOf('msie 6') === -1) { - zws = String.fromCharCode(8203); //Unicode zero width space - } else { + zws = String.fromCharCode(8203); //Unicode zero width space + if (ua.indexOf('msie 6') !== -1) { zws = ''; //IE6 doesn't support zws } + if (ua.indexOf('opera') !== -1 && ua.indexOf('version/10.00') !== -1) { + zws = ''; //opera 10 on XP doesn't support zws + } return zws; }()), + /** + * @name Hyphenator-createElem + * @description + * A function alias to document.createElementNS or document.createElement + * @type {function(string, Object)} + * @private + */ + createElem = function (tagname, context) { + context = context || contextWindow; + if (document.createElementNS) { + return context.document.createElementNS('http://www.w3.org/1999/xhtml', tagname); + } else if (document.createElement) { + return context.document.createElement(tagname); + } + }, + /** * @name Hyphenator-onHyphenationDone - * @fieldOf Hyphenator * @description * A method to be called, when the last element has been hyphenated or the hyphenation has been * removed from the last element. * @see Hyphenator.config - * @type function + * @type {function()} * @private */ onHyphenationDone = function () {}, /** * @name Hyphenator-onError - * @fieldOf Hyphenator * @description * A function that can be called upon an error. * @see Hyphenator.config - * @type function + * @type {function(Object)} * @private */ onError = function (e) { - alert("Hyphenator.js says:\n\nAn Error ocurred:\n" + e.message); + window.alert("Hyphenator.js says:\n\nAn Error ocurred:\n" + e.message); }, /** * @name Hyphenator-selectorFunction - * @fieldOf Hyphenator * @description * A function that has to return a HTMLNodeList of Elements to be hyphenated. * By default it uses the classname ('hyphenate') to select the elements. * @see Hyphenator.config - * @type function + * @type {function()} * @private */ selectorFunction = function () { var tmp, el = [], i, l; if (document.getElementsByClassName) { - el = document.getElementsByClassName(hyphenateClass); + el = contextWindow.document.getElementsByClassName(hyphenateClass); } else { - tmp = document.getElementsByTagName('*'); + tmp = contextWindow.document.getElementsByTagName('*'); l = tmp.length; for (i = 0; i < l; i++) { @@ -440,21 +575,19 @@ var Hyphenator = (function () { /** * @name Hyphenator-intermediateState - * @fieldOf Hyphenator * @description * The value of style.visibility of the text while it is hyphenated. * @see Hyphenator.config - * @type string + * @type {string} * @private */ intermediateState = 'hidden', /** * @name Hyphenator-hyphen - * @fieldOf Hyphenator * @description * A string containing the character for in-word-hyphenation - * @type string + * @type {string} * @default the soft hyphen * @private * @see Hyphenator.config @@ -463,20 +596,31 @@ var Hyphenator = (function () { /** * @name Hyphenator-urlhyphen - * @fieldOf Hyphenator * @description * A string containing the character for url/mail-hyphenation - * @type string + * @type {string} * @default the zero width space * @private * @see Hyphenator.config * @see Hyphenator-zeroWidthSpace */ urlhyphen = zeroWidthSpace, + + /** + * @name Hyphenator-safeCopy + * @description + * Defines wether work-around for copy issues is active or not + * Not supported by Opera (no onCopy handler) + * @type boolean + * @default true + * @private + * @see Hyphenator.config + * @see Hyphenator-registerOnCopy + */ + safeCopy = true, /** * @name Hyphenator-Expando - * @methodOf Hyphenator * @description * This custom object stores data for elements: storing data directly in elements * (DomElement.customData = foobar;) isn't a good idea. It would lead to conflicts @@ -494,15 +638,15 @@ var Hyphenator = (function () { uuid = 0; return { getDataForElem : function (elem) { - return container[elem[name]]; + return container[elem[name].id]; }, setDataForElem : function (elem, data) { var id; - if (elem[name] && elem[name] !== '') { - id = elem[name]; + if (elem[name] && elem[name].id !== '') { + id = elem[name].id; } else { id = uuid++; - elem[name] = id; + elem[name] = {'id': id}; //object needed, otherways it is reflected in HTML in IE } container[id] = data; }, @@ -510,7 +654,7 @@ var Hyphenator = (function () { var k; for (k in data) { if (data.hasOwnProperty(k)) { - container[elem[name]][k] = data[k]; + container[elem[name].id][k] = data[k]; } } }, @@ -521,138 +665,154 @@ var Hyphenator = (function () { }()), /* - * ContentLoaded.js + * runOnContentLoaded is based od jQuery.bindReady() + * see + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ * - * Author: Diego Perini (diego.perini at gmail.com) - * Summary: Cross-browser wrapper for DOMContentLoaded - * Updated: 17/05/2008 - * License: MIT - * Version: 1.1 + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License * - * URL: - * http://javascript.nwbox.com/ContentLoaded/ - * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE - * - * Notes: - * based on code by Dean Edwards and John Resig - * http://dean.edwards.name/weblog/2006/06/again/ + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 */ - // @w window reference - // @f function reference - //function ContentLoaded(w, f) { /** * @name Hyphenator-runOnContentLoaded - * @methodOf Hyphenator * @description - * A crossbrowser solution for the DOMContentLoaded-Event - * @author Diego Perini (diego.perini at gmail.com) - * http://javascript.nwbox.com/ContentLoaded/ - * @param object the window-object - * @param function-object the function to call onDOMContentLoaded + * A crossbrowser solution for the DOMContentLoaded-Event based on jQuery + * 9) || - (/gecko\//.test(u) && v >= 1.8) || - (/khtml\//.test(u) && v >= 4.0) || - (/webkit\//.test(u) && v >= 525.13)) { - - d.addEventListener(D, - function (e) { - d.removeEventListener(D, arguments.callee, false); - init(e); - }, false - ); - - // fallback to last resort for older browsers - } else { - - // from Simon Willison - /** - * @ignore - */ - w.onload = function (e) { - init(e || w.event); - if (typeof oldonload === 'function') { - oldonload(e || w.event); + + // and execute any waiting functions + init(window); + } + + function doOnLoad() { + var i, haveAccess, fl = window.frames.length; + if (doFrames && fl > 0) { + for (i = 0; i < fl; i++) { + haveAccess = undefined; + //try catch isn't enough for webkit + try { + //opera throws only on document.toString-access + haveAccess = window.frames[i].document.toString(); + } catch (e) { + haveAccess = undefined; + } + if (!!haveAccess) { + init(window.frames[i]); + } + } + contextWindow = window; + f(); + hyphRunForThis[window.location.href] = true; + } else { + init(window); + } + } + + // Cleanup functions for the document ready method + if (document.addEventListener) { + DOMContentLoaded = function () { + document.removeEventListener("DOMContentLoaded", DOMContentLoaded, false); + if (doFrames && window.frames.length > 0) { + //we are in a frameset, so do nothing but wait for onload to fire + return; + } else { + init(window); + } + }; + + } else if (document.attachEvent) { + DOMContentLoaded = function () { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if (document.readyState === "complete") { + document.detachEvent("onreadystatechange", DOMContentLoaded); + if (doFrames && window.frames.length > 0) { + //we are in a frameset, so do nothing but wait for onload to fire + return; + } else { + init(window); + } } }; - } + + // Mozilla, Opera and webkit nightlies currently support this event + if (document.addEventListener) { + // Use the handy event callback + document.addEventListener("DOMContentLoaded", DOMContentLoaded, false); + + // A fallback to window.onload, that will always work + window.addEventListener("load", doOnLoad, false); + + // If IE event model is used + } else if (document.attachEvent) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent("onreadystatechange", DOMContentLoaded); + + // A fallback to window.onload, that will always work + window.attachEvent("onload", doOnLoad); + + // If IE and not a frame + // continually check to see if the document is ready + toplevel = false; + try { + toplevel = window.frameElement === null; + } catch (e) {} + + if (document.documentElement.doScroll && toplevel) { + doScrollCheck(); + } + } + }, - /* end ContentLoaded.js */ + + /** * @name Hyphenator-getLang - * @methodOf Hyphenator * @description * Gets the language of an element. If no language is set, it may use the {@link Hyphenator-mainLanguage}. - * @param object The first parameter is an DOM-Element-Object - * @param boolean The second parameter is a boolean to tell if the function should return the {@link Hyphenator-mainLanguage} + * @param {Object} el The first parameter is an DOM-Element-Object + * @param {boolean} fallback The second parameter is a boolean to tell if the function should return the {@link Hyphenator-mainLanguage} * if there's no language found for the element. * @private */ getLang = function (el, fallback) { if (!!el.getAttribute('lang')) { - return el.getAttribute('lang').substring(0, 2).toLowerCase(); + return el.getAttribute('lang').toLowerCase(); } // The following doesn't work in IE due to a bug when getAttribute('xml:lang') in a table /*if (!!el.getAttribute('xml:lang')) { @@ -661,7 +821,7 @@ var Hyphenator = (function () { //instead, we have to do this (thanks to borgzor): try { if (!!el.getAttribute('xml:lang')) { - return el.getAttribute('xml:lang').substring(0, 2).toLowerCase(); + return el.getAttribute('xml:lang').toLowerCase(); } } catch (ex) {} if (el.tagName !== 'HTML') { @@ -675,7 +835,6 @@ var Hyphenator = (function () { /** * @name Hyphenator-autoSetMainLanguage - * @methodOf Hyphenator * @description * Retrieves the language of the document from the DOM. * The function looks in the following places: @@ -689,27 +848,37 @@ var Hyphenator = (function () { * If the retrieved language is in the object {@link Hyphenator-supportedLang} it is copied to {@link Hyphenator-mainLanguage} * @private */ - autoSetMainLanguage = function () { - var el = document.getElementsByTagName('html')[0], - m = document.getElementsByTagName('meta'), - i, text, lang, e, ul; - mainLanguage = getLang(el); + autoSetMainLanguage = function (w) { + w = w || contextWindow; + var el = w.document.getElementsByTagName('html')[0], + m = w.document.getElementsByTagName('meta'), + i, text, e, ul; + mainLanguage = getLang(el, false); if (!mainLanguage) { for (i = 0; i < m.length; i++) { // - if (!!m[i].getAttribute('http-equiv') && (m[i].getAttribute('http-equiv') === 'content-language')) { - mainLanguage = m[i].getAttribute('content').substring(0, 2).toLowerCase(); + if (!!m[i].getAttribute('http-equiv') && (m[i].getAttribute('http-equiv').toLowerCase() === 'content-language')) { + mainLanguage = m[i].getAttribute('content').toLowerCase(); } // - if (!!m[i].getAttribute('name') && (m[i].getAttribute('name') === 'DC.language')) { - mainLanguage = m[i].getAttribute('content').substring(0, 2).toLowerCase(); + if (!!m[i].getAttribute('name') && (m[i].getAttribute('name').toLowerCase() === 'dc.language')) { + mainLanguage = m[i].getAttribute('content').toLowerCase(); } // - if (!!m[i].getAttribute('name') && (m[i].getAttribute('name') === 'language')) { - mainLanguage = m[i].getAttribute('content').substring(0, 2).toLowerCase(); + if (!!m[i].getAttribute('name') && (m[i].getAttribute('name').toLowerCase() === 'language')) { + mainLanguage = m[i].getAttribute('content').toLowerCase(); } } } + //get lang for frame from enclosing document + if (!mainLanguage && doFrames && contextWindow != window.parent) { + autoSetMainLanguage(window.parent); + } + //fallback to defaultLang if set + if (!mainLanguage && defaultLanguage !== '') { + mainLanguage = defaultLanguage; + } + //ask user for lang if (!mainLanguage) { text = ''; ul = navigator.language ? navigator.language : navigator.userLanguage; @@ -720,11 +889,13 @@ var Hyphenator = (function () { text = prompterStrings.en; } text += ' (ISO 639-1)\n\n' + languageHint; - lang = window.prompt(unescape(text), ul).toLowerCase(); - if (supportedLang[lang]) { - mainLanguage = lang; + mainLanguage = window.prompt(unescape(text), ul).toLowerCase(); + } + if (!supportedLang.hasOwnProperty(mainLanguage)) { + if (supportedLang.hasOwnProperty(mainLanguage.split('-')[0])) { //try subtag + mainLanguage = mainLanguage.split('-')[0]; } else { - e = new Error('The language "' + lang + '" is not yet supported.'); + e = new Error('The language "' + mainLanguage + '" is not yet supported.'); throw e; } } @@ -732,7 +903,6 @@ var Hyphenator = (function () { /** * @name Hyphenator-gatherDocumentInfos - * @methodOf Hyphenator * @description * This method runs through the DOM and executes the process()-function on: * - every node returned by the {@link Hyphenator-selectorFunction}. @@ -743,7 +913,7 @@ var Hyphenator = (function () { */ gatherDocumentInfos = function () { var elToProcess, tmp, i = 0, - process = function (el, hide, lang) { + process = function (el, hide, lang) { var n, i = 0, hyphenatorSettings = {}; if (hide && intermediateState === 'hidden') { if (!!el.getAttribute('style')) { @@ -754,7 +924,7 @@ var Hyphenator = (function () { hyphenatorSettings.isHidden = true; el.style.visibility = 'hidden'; } - if (el.lang) { + if (el.lang && typeof(el.lang) === 'string') { hyphenatorSettings.language = el.lang.toLowerCase(); //copy attribute-lang to internal lang } else if (lang) { hyphenatorSettings.language = lang.toLowerCase(); @@ -765,9 +935,15 @@ var Hyphenator = (function () { if (supportedLang[lang]) { docLanguages[lang] = true; } else { - onError(new Error('Language ' + lang + ' is not yet supported.')); + if (supportedLang.hasOwnProperty(lang.split('-')[0])) { //try subtag + lang = lang.split('-')[0]; + hyphenatorSettings.language = lang; + } else if (!isBookmarklet) { + onError(new Error('Language ' + lang + ' is not yet supported.')); + } } - Expando.setDataForElem(el, hyphenatorSettings); + Expando.setDataForElem(el, hyphenatorSettings); + elements.push(el); while (!!(n = el.childNodes[i++])) { if (n.nodeType === 1 && !dontHyphenate[n.nodeName.toLowerCase()] && @@ -776,14 +952,14 @@ var Hyphenator = (function () { } } }; - if (Hyphenator.isBookmarklet()) { - elToProcess = document.getElementsByTagName('body')[0]; + if (isBookmarklet) { + elToProcess = contextWindow.document.getElementsByTagName('body')[0]; process(elToProcess, false, mainLanguage); } else { elToProcess = selectorFunction(); while (!!(tmp = elToProcess[i++])) { - process(tmp, true); + process(tmp, true, ''); } } if (!Hyphenator.languages.hasOwnProperty(mainLanguage)) { @@ -795,67 +971,28 @@ var Hyphenator = (function () { Expando.appendDataForElem(elements[elements.length - 1], {isLast : true}); } }, - - /* - registerOnCopy = function () { - document.getElementsByTagName('body')[0].oncopy = function (e) { - var text, h; - if (window.getSelection) { - text = window.getSelection().toString(); - } - else if (document.selection) { // should come last; Opera! - text = document.selection.createRange().text; - } - switch (hyphen) { - case '|': - h = '\\|'; - break; - case '+': - h = '\\+'; - break; - case '*': - h = '\\*'; - break; - case String.fromCharCode(173): - h = '\u00AD'; - break; - default: - h = hyphen; - } - text = text.replace(new RegExp(h, 'g'), ''); - text = text.replace(new RegExp(zeroWidthSpace, 'g'), ''); - alert(text); - if (!!e && !!e.clipboardData) { //Safari - e.preventDefault(); - e.clipboardData.setData('text/plain', text); - } else if (!!window.clipboardData) { // IE - window.preventDefault(); - window.clipboardData.setData('Text', text); - } - } - }, - */ - + /** * @name Hyphenator-convertPatterns - * @methodOf Hyphenator * @description * Converts the patterns from string '_a6' to object '_a':'_a6'. * The result is stored in the {@link Hyphenator-patterns}-object. * @private - * @param string the language whose patterns shall be converted + * @param {string} lang the language whose patterns shall be converted */ convertPatterns = function (lang) { - var plen, anfang, pats, pat, key, tmp = {}; + var plen, anfang, ende, pats, pat, key, tmp = {}; pats = Hyphenator.languages[lang].patterns; for (plen in pats) { if (pats.hasOwnProperty(plen)) { plen = parseInt(plen, 10); anfang = 0; - while (!!(pat = pats[plen].substr(anfang, plen))) { + ende = plen; + while (!!(pat = pats[plen].substring(anfang, ende))) { key = pat.replace(/\d/g, ''); tmp[key] = pat; - anfang += plen; + anfang = ende; + ende += plen; } } } @@ -865,12 +1002,11 @@ var Hyphenator = (function () { /** * @name Hyphenator-convertExceptionsToObject - * @methodOf Hyphenator * @description * Converts a list of comma seprated exceptions to an object: * 'Fortran,Hy-phen-a-tion' -> {'Fortran':'Fortran','Hyphenation':'Hy-phen-a-tion'} * @private - * @param string a comma separated string of exceptions (without spaces) + * @param {string} exc a comma separated string of exceptions (without spaces) */ convertExceptionsToObject = function (exc) { var w = exc.split(', '), @@ -887,20 +1023,19 @@ var Hyphenator = (function () { /** * @name Hyphenator-loadPatterns - * @methodOf Hyphenator * @description * Adds a <script>-Tag to the DOM to load an externeal .js-file containing patterns and settings for the given language. - * If the iven language is not in the {@link Hyphenator-supportedLang}-Object it returns. + * If the given language is not in the {@link Hyphenator-supportedLang}-Object it returns. * One may ask why we are not using AJAX to load the patterns. The XMLHttpRequest-Object * has a same-origin-policy. This makes the isBookmarklet-functionality impossible. - * @param string The language to load the patterns for + * @param {string} lang The language to load the patterns for * @private * @see Hyphenator-basePath */ loadPatterns = function (lang) { var url, xhr, head, script; if (supportedLang[lang] && !Hyphenator.languages[lang]) { - url = basePath + 'patterns/' + lang + '.js'; + url = basePath + 'patterns/' + supportedLang[lang]; } else { return; } @@ -928,9 +1063,9 @@ var Hyphenator = (function () { } } } - if (document.createElement) { - head = document.getElementsByTagName('head').item(0); - script = document.createElement('script'); + if (createElem) { + head = window.document.getElementsByTagName('head').item(0); + script = createElem('script', window); script.src = url; script.type = 'text/javascript'; head.appendChild(script); @@ -939,22 +1074,29 @@ var Hyphenator = (function () { /** * @name Hyphenator-prepareLanguagesObj - * @methodOf Hyphenator * @description * Adds a cache to each language and converts the exceptions-list to an object. + * If storage is active the object is stored there. * @private - * @param string the language ob the lang-obj + * @param {string} lang the language ob the lang-obj */ prepareLanguagesObj = function (lang) { var lo = Hyphenator.languages[lang], wrd; if (!lo.prepared) { if (enableCache) { lo.cache = {}; + //Export + lo['cache'] = lo.cache; } + if (enableReducedPatternSet) { + lo.redPatSet = {}; + } + //add exceptions from the pattern file to the local 'exceptions'-obj if (lo.hasOwnProperty('exceptions')) { Hyphenator.addExceptions(lang, lo.exceptions); delete lo.exceptions; } + //copy global exceptions to the language specific exceptions if (exceptions.hasOwnProperty('global')) { if (exceptions.hasOwnProperty(lang)) { exceptions[lang] += ', ' + exceptions.global; @@ -962,6 +1104,7 @@ var Hyphenator = (function () { exceptions[lang] = exceptions.global; } } + //move exceptions from the the local 'exceptions'-obj to the 'language'-object if (exceptions.hasOwnProperty(lang)) { lo.exceptions = convertExceptionsToObject(exceptions[lang]); delete exceptions[lang]; @@ -973,23 +1116,31 @@ var Hyphenator = (function () { lo.genRegExp = new RegExp('(' + url + ')|(' + mail + ')|(' + wrd + ')', 'gi'); lo.prepared = true; } + if (!!storage) { + try { + storage.setItem('Hyphenator_' + lang, window.JSON.stringify(lo)); + } catch (e) { + //onError(e); + } + } + }, /** * @name Hyphenator-prepare - * @methodOf Hyphenator * @description * This funtion prepares the Hyphenator-Object: If RemoteLoading is turned off, it assumes * that the patternfiles are loaded, all conversions are made and the callback is called. + * If storage is active the object is retrieved there. * If RemoteLoading is on (default), it loads the pattern files and waits until they are loaded, * by repeatedly checking Hyphenator.languages. If a patterfile is loaded the patterns are * converted to their object style and the lang-object extended. * Finally the callback is called. - * @param function-object callback to call, when all patterns are loaded + * @param {function()} callback to call, when all patterns are loaded * @private */ prepare = function (callback) { - var lang, docLangEmpty = true, interval; + var lang, interval, tmp1, tmp2; if (!enableRemoteLoading) { for (lang in Hyphenator.languages) { if (Hyphenator.languages.hasOwnProperty(lang)) { @@ -1004,32 +1155,58 @@ var Hyphenator = (function () { state = 1; for (lang in docLanguages) { if (docLanguages.hasOwnProperty(lang)) { - loadPatterns(lang); - docLangEmpty = false; + if (!!storage && storage.getItem('Hyphenator_' + lang)) { + Hyphenator.languages[lang] = window.JSON.parse(storage.getItem('Hyphenator_' + lang)); + if (exceptions.hasOwnProperty('global')) { + tmp1 = convertExceptionsToObject(exceptions.global); + for (tmp2 in tmp1) { + if (tmp1.hasOwnProperty(tmp2)) { + Hyphenator.languages[lang].exceptions[tmp2] = tmp1[tmp2]; + } + } + } + //Replace exceptions since they may have been changed: + if (exceptions.hasOwnProperty(lang)) { + tmp1 = convertExceptionsToObject(exceptions[lang]); + for (tmp2 in tmp1) { + if (tmp1.hasOwnProperty(tmp2)) { + Hyphenator.languages[lang].exceptions[tmp2] = tmp1[tmp2]; + } + } + delete exceptions[lang]; + } + //Replace genRegExp since it may have been changed: + tmp1 = '[\\w' + Hyphenator.languages[lang].specialChars + '@' + String.fromCharCode(173) + '-]{' + min + ',}'; + Hyphenator.languages[lang].genRegExp = new RegExp('(' + url + ')|(' + mail + ')|(' + tmp1 + ')', 'gi'); + + delete docLanguages[lang]; + continue; + } else { + loadPatterns(lang); + } } } - if (docLangEmpty) { + // if all patterns are loaded from storage: callback + if (countObjProps(docLanguages) === 0) { state = 2; callback(); return; } - // wait until they are loaded + // else async wait until patterns are loaded, then callback interval = window.setInterval(function () { - var finishedLoading = false, lang; + var finishedLoading = true, lang; for (lang in docLanguages) { if (docLanguages.hasOwnProperty(lang)) { - if (!Hyphenator.languages[lang]) { - finishedLoading = false; - break; - } else { - finishedLoading = true; + finishedLoading = false; + if (!!Hyphenator.languages[lang]) { delete docLanguages[lang]; //do conversion while other patterns are loading: - prepareLanguagesObj(lang); + prepareLanguagesObj(lang); } } } if (finishedLoading) { + //console.log('callig callback for ' + contextWindow.location.href); window.clearInterval(interval); state = 2; callback(); @@ -1039,29 +1216,25 @@ var Hyphenator = (function () { /** * @name Hyphenator-switchToggleBox - * @methodOf Hyphenator * @description * Creates or hides the toggleBox: a small button to turn off/on hyphenation on a page. - * @param boolean true when hyphenation is on, false when it's off + * @param {boolean} s true when hyphenation is on, false when it's off * @see Hyphenator.config * @private */ - toggleBox = function (s) { - var myBox, bdy, myIdAttribute, myTextNode, myClassAttribute; - if (!!(myBox = document.getElementById('HyphenatorToggleBox'))) { - if (s) { - myBox.firstChild.data = 'Hy-phe-na-ti-on'; - } else { - myBox.firstChild.data = 'Hyphenation'; - } + toggleBox = function () { + var myBox, bdy, myIdAttribute, myTextNode, myClassAttribute, + text = (Hyphenator.doHyphenation ? 'Hy-phen-a-tion' : 'Hyphenation'); + if (!!(myBox = contextWindow.document.getElementById('HyphenatorToggleBox'))) { + myBox.firstChild.data = text; } else { - bdy = document.getElementsByTagName('body')[0]; - myBox = document.createElement('div'); - myIdAttribute = document.createAttribute('id'); + bdy = contextWindow.document.getElementsByTagName('body')[0]; + myBox = createElem('div', contextWindow); + myIdAttribute = contextWindow.document.createAttribute('id'); myIdAttribute.nodeValue = 'HyphenatorToggleBox'; - myClassAttribute = document.createAttribute('class'); + myClassAttribute = contextWindow.document.createAttribute('class'); myClassAttribute.nodeValue = dontHyphenateClass; - myTextNode = document.createTextNode('Hy-phe-na-ti-on'); + myTextNode = contextWindow.document.createTextNode(text); myBox.appendChild(myTextNode); myBox.setAttributeNode(myIdAttribute); myBox.setAttributeNode(myClassAttribute); @@ -1084,21 +1257,20 @@ var Hyphenator = (function () { /** * @name Hyphenator-hyphenateWord - * @methodOf Hyphenator * @description * This function is the heart of Hyphenator.js. It returns a hyphenated word. * * If there's already a {@link Hyphenator-hypen} in the word, the word is returned as it is. * If the word is in the exceptions list or in the cache, it is retrieved from it. * If there's a '-' put a zeroWidthSpace after the '-' and hyphenate the parts. - * @param string The language of the word - * @param string The word + * @param {string} lang The language of the word + * @param {string} word The word * @returns string The hyphenated word * @public */ hyphenateWord = function (lang, word) { var lo = Hyphenator.languages[lang], - parts, i, l, w, wl, s, hypos, p, maxwins, win, pat = false, patk, patl, c, digits, z, numb3rs, n, inserted, hyphenatedword; + parts, i, l, w, wl, s, hypos, p, maxwins, win, pat = false, patk, c, t, n, numb3rs, inserted, hyphenatedword, val; if (word === '') { return ''; } @@ -1113,47 +1285,54 @@ var Hyphenator = (function () { return lo.exceptions[word].replace(/-/g, hyphen); } if (word.indexOf('-') !== -1) { - //word contains '-' -> put a zeroWidthSpace after it and hyphenate the parts separated with '-' + //word contains '-' -> hyphenate the parts separated with '-' parts = word.split('-'); for (i = 0, l = parts.length; i < l; i++) { parts[i] = hyphenateWord(lang, parts[i]); } - return parts.join('-' + zeroWidthSpace); + return parts.join('-'); } //finally the core hyphenation algorithm w = '_' + word + '_'; wl = w.length; s = w.split(''); - w = w.toLowerCase(); + if (word.indexOf("'") !== -1) { + w = w.toLowerCase().replace("'", "’"); //replace APOSTROPHE with RIGHT SINGLE QUOTATION MARK (since the latter is used in the patterns) + } else { + w = w.toLowerCase(); + } hypos = []; - numb3rs = {'0': true, '1': true, '2': true, '3': true, '4': true, '5': true, '6': true, '7': true, '8': true, '9': true}; //check for member is faster then isFinite() + numb3rs = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}; //check for member is faster then isFinite() n = wl - lo.shortestPattern; for (p = 0; p <= n; p++) { maxwins = Math.min((wl - p), lo.longestPattern); for (win = lo.shortestPattern; win <= maxwins; win++) { - if (lo.patterns.hasOwnProperty(patk = w.substr(p, win))) { + if (lo.patterns.hasOwnProperty(patk = w.substring(p, p + win))) { pat = lo.patterns[patk]; + if (enableReducedPatternSet && (typeof pat === 'string')) { + lo.redPatSet[patk] = pat; + } + if (typeof pat === 'string') { + //convert from string 'a5b' to array [1,5] (pos,value) + t = 0; + val = []; + for (i = 0; i < pat.length; i++) { + if (!!(c = numb3rs[pat.charAt(i)])) { + val.push(i - t, c); + t++; + } + } + pat = lo.patterns[patk] = val; + } } else { continue; } - digits = 1; - patl = pat.length; - for (i = 0; i < patl; i++) { - c = pat.charAt(i); - if (numb3rs[c]) { - if (i === 0) { - z = p - 1; - if (!hypos[z] || hypos[z] < c) { - hypos[z] = c; - } - } else { - z = p + i - digits; - if (!hypos[z] || hypos[z] < c) { - hypos[z] = c; - } - } - digits++; + for (i = 0; i < pat.length; i++) { + c = p - 1 + pat[i]; + if (!hypos[c] || hypos[c] < pat[i + 1]) { + hypos[c] = pat[i + 1]; } + i++; } } } @@ -1173,10 +1352,9 @@ var Hyphenator = (function () { /** * @name Hyphenator-hyphenateURL - * @methodOf Hyphenator * @description * Puts {@link Hyphenator-urlhyphen} after each no-alphanumeric char that my be in a URL. - * @param string URL to hyphenate + * @param {string} url to hyphenate * @returns string the hyphenated URL * @public */ @@ -1184,62 +1362,13 @@ var Hyphenator = (function () { return url.replace(/([:\/\.\?#&_,;!@]+)/gi, '$&' + urlhyphen); }, - /** - * @name Hyphenator-hyphenateElement - * @methodOf Hyphenator - * @description - * Takes the content of the given element and - if there's text - replaces the words - * by hyphenated words. If there's another element, the function is called recursively. - * When all words are hyphenated, the visibility of the element is set to 'visible'. - * @param object The element to hyphenate - * @param string The language used in this element - * @public - */ - hyphenateElement = function (el) { - var hyphenatorSettings = Expando.getDataForElem(el), - lang = hyphenatorSettings.language, hyphenate, n, i; - if (Hyphenator.languages.hasOwnProperty(lang)) { - hyphenate = function (word) { - if (urlOrMailRE.test(word)) { - return hyphenateURL(word); - } else { - return hyphenateWord(lang, word); - } - }; - i = 0; - while (!!(n = el.childNodes[i++])) { - if (n.nodeType === 3 && n.data.length >= min) { //type 3 = #text -> hyphenate! - n.data = n.data.replace(Hyphenator.languages[lang].genRegExp, hyphenate); - } - } - } - if (hyphenatorSettings.isHidden && intermediateState === 'hidden') { - el.style.visibility = 'visible'; - if (!hyphenatorSettings.hasOwnStyle) { - el.setAttribute('style', ''); // without this, removeAttribute doesn't work in Safari (thanks to molily) - el.removeAttribute('style'); - } else { - if (el.style.removeProperty) { - el.style.removeProperty('visibility'); - } else if (el.style.removeAttribute) { // IE - el.style.removeAttribute('visibility'); - } - } - } - if (hyphenatorSettings.isLast) { - state = 3; - onHyphenationDone(); - } - }, - /** * @name Hyphenator-removeHyphenationFromElement - * @methodOf Hyphenator * @description * Removes all hyphens from the element. If there are other elements, the function is * called recursively. * Removing hyphens is usefull if you like to copy text. Some browsers are buggy when the copy hyphenated texts. - * @param object The element where to remove hyphenation. + * @param {Object} el The element where to remove hyphenation. * @public */ removeHyphenationFromElement = function (el) { @@ -1266,15 +1395,176 @@ var Hyphenator = (function () { } } }, + + + /** + * @name Hyphenator-registerOnCopy + * @description + * Huge work-around for browser-inconsistency when it comes to + * copying of hyphenated text. + * The idea behind this code has been provided by http://github.com/aristus/sweet-justice + * sweet-justice is under BSD-License + * @private + */ + registerOnCopy = function (el) { + var body = el.ownerDocument.getElementsByTagName('body')[0], + shadow, + selection, + range, + rangeShadow, + restore, + oncopyHandler = function (e) { + e = e || window.event; + var target = e.target || e.srcElement, + currDoc = target.ownerDocument, + body = currDoc.getElementsByTagName('body')[0], + targetWindow = 'defaultView' in currDoc ? currDoc.defaultView : currDoc.parentWindow; + if (target.tagName && dontHyphenate[target.tagName.toLowerCase()]) { + //Safari needs this + return; + } + //create a hidden shadow element + shadow = currDoc.createElement('div'); + shadow.style.overflow = 'hidden'; + shadow.style.position = 'absolute'; + shadow.style.top = '-5000px'; + shadow.style.height = '1px'; + body.appendChild(shadow); + if (!!window.getSelection) { + //FF3, Webkit + selection = targetWindow.getSelection(); + range = selection.getRangeAt(0); + shadow.appendChild(range.cloneContents()); + removeHyphenationFromElement(shadow); + selection.selectAllChildren(shadow); + restore = function () { + shadow.parentNode.removeChild(shadow); + selection.addRange(range); + }; + } else { + // IE + selection = targetWindow.document.selection; + range = selection.createRange(); + shadow.innerHTML = range.htmlText; + removeHyphenationFromElement(shadow); + rangeShadow = body.createTextRange(); + rangeShadow.moveToElementText(shadow); + rangeShadow.select(); + restore = function () { + shadow.parentNode.removeChild(shadow); + if (range.text !== "") { + range.select(); + } + }; + } + window.setTimeout(restore, 0); + }; + if (!body) { + return; + } + el = el || body; + if (window.addEventListener) { + el.addEventListener("copy", oncopyHandler, false); + } else { + el.attachEvent("oncopy", oncopyHandler); + } + }, + + + /** + * @name Hyphenator-hyphenateElement + * @description + * Takes the content of the given element and - if there's text - replaces the words + * by hyphenated words. If there's another element, the function is called recursively. + * When all words are hyphenated, the visibility of the element is set to 'visible'. + * @param {Object} el The element to hyphenate + * @private + */ + hyphenateElement = function (el) { + var hyphenatorSettings = Expando.getDataForElem(el), + lang = hyphenatorSettings.language, hyphenate, n, i, + controlOrphans = function (part) { + var h, r; + switch (hyphen) { + case '|': + h = '\\|'; + break; + case '+': + h = '\\+'; + break; + case '*': + h = '\\*'; + break; + default: + h = hyphen; + } + if (orphanControl >= 2) { + //remove hyphen points from last word + r = part.split(' '); + r[1] = r[1].replace(new RegExp(h, 'g'), ''); + r[1] = r[1].replace(new RegExp(zeroWidthSpace, 'g'), ''); + r = r.join(' '); + } + if (orphanControl === 3) { + //replace spaces by non breaking spaces + r = r.replace(/[ ]+/g, String.fromCharCode(160)); + } + return r; + }; + if (Hyphenator.languages.hasOwnProperty(lang)) { + hyphenate = function (word) { + if (!Hyphenator.doHyphenation) { + return word; + } else if (urlOrMailRE.test(word)) { + return hyphenateURL(word); + } else { + return hyphenateWord(lang, word); + } + }; + if (safeCopy && (el.tagName.toLowerCase() !== 'body')) { + registerOnCopy(el); + } + i = 0; + while (!!(n = el.childNodes[i++])) { + if (n.nodeType === 3 && n.data.length >= min) { //type 3 = #text -> hyphenate! + n.data = n.data.replace(Hyphenator.languages[lang].genRegExp, hyphenate); + if (orphanControl !== 1) { + n.data = n.data.replace(/[\S]+ [\S]+$/, controlOrphans); + } + } + } + } + if (hyphenatorSettings.isHidden && intermediateState === 'hidden') { + el.style.visibility = 'visible'; + if (!hyphenatorSettings.hasOwnStyle) { + el.setAttribute('style', ''); // without this, removeAttribute doesn't work in Safari (thanks to molily) + el.removeAttribute('style'); + } else { + if (el.style.removeProperty) { + el.style.removeProperty('visibility'); + } else if (el.style.removeAttribute) { // IE + el.style.removeAttribute('visibility'); + } + } + } + if (hyphenatorSettings.isLast) { + state = 3; + documentCount--; + if (documentCount > (-1000) && documentCount <= 0) { + documentCount = (-2000); + onHyphenationDone(); + } + } + }, + /** * @name Hyphenator-hyphenateDocument - * @methodOf Hyphenator * @description * Calls hyphenateElement() for all members of elements. This is done with a setTimout * to prevent a "long running Script"-alert when hyphenating large pages. * Therefore a tricky bind()-function was necessary. - * @public + * @private */ hyphenateDocument = function () { function bind(fun, arg) { @@ -1284,17 +1574,17 @@ var Hyphenator = (function () { } var i = 0, el; while (!!(el = elements[i++])) { - window.setTimeout(bind(hyphenateElement, el), 0); - + if (el.ownerDocument.location.href === contextWindow.location.href) { + window.setTimeout(bind(hyphenateElement, el), 0); + } } }, /** * @name Hyphenator-removeHyphenationFromDocument - * @methodOf Hyphenator * @description * Does what it says ;-) - * @public + * @private */ removeHyphenationFromDocument = function () { var i = 0, el; @@ -1302,6 +1592,87 @@ var Hyphenator = (function () { removeHyphenationFromElement(el); } state = 4; + }, + + /** + * @name Hyphenator-createStorage + * @description + * inits the private var storage depending of the setting in storageType + * and the supported features of the system. + * @private + */ + createStorage = function () { + try { + if (storageType !== 'none' && + typeof(window.localStorage) !== 'undefined' && + typeof(window.sessionStorage) !== 'undefined' && + typeof(window.JSON.stringify) !== 'undefined' && + typeof(window.JSON.parse) !== 'undefined') { + switch (storageType) { + case 'session': + storage = window.sessionStorage; + break; + case 'local': + storage = window.localStorage; + break; + default: + storage = undefined; + break; + } + } + } catch (f) { + //FF throws an error if DOM.storage.enabled is set to false + } + }, + + /** + * @name Hyphenator-storeConfiguration + * @description + * Stores the current config-options in DOM-Storage + * @private + */ + storeConfiguration = function () { + if (!storage) { + return; + } + var settings = { + 'STORED': true, + 'classname': hyphenateClass, + 'donthyphenateclassname': dontHyphenateClass, + 'minwordlength': min, + 'hyphenchar': hyphen, + 'urlhyphenchar': urlhyphen, + 'togglebox': toggleBox, + 'displaytogglebox': displayToggleBox, + 'remoteloading': enableRemoteLoading, + 'enablecache': enableCache, + 'onhyphenationdonecallback': onHyphenationDone, + 'onerrorhandler': onError, + 'intermediatestate': intermediateState, + 'selectorfunction': selectorFunction, + 'safecopy': safeCopy, + 'doframes': doFrames, + 'storagetype': storageType, + 'orphancontrol': orphanControl, + 'dohyphenation': Hyphenator.doHyphenation, + 'persistentconfig': persistentConfig, + 'defaultlanguage': defaultLanguage + }; + storage.setItem('Hyphenator_config', window.JSON.stringify(settings)); + }, + + /** + * @name Hyphenator-restoreConfiguration + * @description + * Retrieves config-options from DOM-Storage and does configuration accordingly + * @private + */ + restoreConfiguration = function () { + var settings; + if (storage.getItem('Hyphenator_config')) { + settings = window.JSON.parse(storage.getItem('Hyphenator_config')); + Hyphenator.config(settings); + } }; return { @@ -1316,7 +1687,15 @@ var Hyphenator = (function () { * minor release: new languages, improvements * @public */ - version: '2.3.0', + version: 'X.Y.Z', + + /** + * @name Hyphenator.doHyphenation + * @description + * If doHyphenation is set to false (defaults to true), hyphenateDocument() isn't called. + * All other actions are performed. + */ + doHyphenation: true, /** * @name Hyphenator.languages @@ -1345,22 +1724,28 @@ var Hyphenator = (function () { /** * @name Hyphenator.config - * @methodOf Hyphenator - * @description + * @description * Config function that takes an object as an argument. The object contains key-value-pairs * containig Hyphenator-settings. This is a shortcut for calling Hyphenator.set...-Methods. - * @param object
{series_label}:{series}
{title}
{series}
{pubdate_label}:{pubdate}
{author}
{publisher} ({pubdate})
{rating_label}: {rating}
+ * @param {Object} obj
* * + * * * * * * * + * + * * * * + * + * + * + * *
keyvaluesdefault
classnamestring'hyphenate'
donthyphenateclassnamestring''
minwordlengthinteger6
hyphencharstring'&shy;'
urlhyphencharstring'zero with space'
toggleboxfunctionsee code
displaytoggleboxbooleanfalse
remoteloadingbooleantrue
enablecachebooleantrue
enablereducedpatternsetbooleanfalse
onhyphenationdonecallbackfunctionempty function
onerrorhandlerfunctionalert(onError)
intermediatestatestring'hidden'
selectorfunctionfunction[…]
safecopybooleantrue
doframesbooleanfalse
storagetypestring'none'
* @public * @example <script src = "Hyphenator.js" type = "text/javascript"></script> @@ -1379,22 +1764,37 @@ var Hyphenator = (function () { } }, key; + + if (obj.hasOwnProperty('storagetype')) { + if (assert('storagetype', 'string')) { + storageType = obj.storagetype; + } + if (!storage) { + createStorage(); + } + } + if (!obj.hasOwnProperty('STORED') && storage && obj.hasOwnProperty('persistentconfig') && obj.persistentconfig === true) { + restoreConfiguration(); + } + for (key in obj) { if (obj.hasOwnProperty(key)) { switch (key) { + case 'STORED': + break; case 'classname': if (assert('classname', 'string')) { - hyphenateClass = obj.classname; + hyphenateClass = obj[key]; } break; case 'donthyphenateclassname': if (assert('donthyphenateclassname', 'string')) { - dontHyphenateClass = obj.donthyphenateclassname; + dontHyphenateClass = obj[key]; } break; case 'minwordlength': if (assert('minwordlength', 'number')) { - min = obj.minwordlength; + min = obj[key]; } break; case 'hyphenchar': @@ -1402,54 +1802,94 @@ var Hyphenator = (function () { if (obj.hyphenchar === '­') { obj.hyphenchar = String.fromCharCode(173); } - hyphen = obj.hyphenchar; + hyphen = obj[key]; } break; case 'urlhyphenchar': if (obj.hasOwnProperty('urlhyphenchar')) { if (assert('urlhyphenchar', 'string')) { - urlhyphen = obj.urlhyphenchar; + urlhyphen = obj[key]; } } break; case 'togglebox': if (assert('togglebox', 'function')) { - toggleBox = obj.togglebox; + toggleBox = obj[key]; } break; case 'displaytogglebox': if (assert('displaytogglebox', 'boolean')) { - displayToggleBox = obj.displaytogglebox; + displayToggleBox = obj[key]; } break; case 'remoteloading': if (assert('remoteloading', 'boolean')) { - enableRemoteLoading = obj.remoteloading; + enableRemoteLoading = obj[key]; } break; case 'enablecache': if (assert('enablecache', 'boolean')) { - enableCache = obj.enablecache; + enableCache = obj[key]; + } + break; + case 'enablereducedpatternset': + if (assert('enablereducedpatternset', 'boolean')) { + enableReducedPatternSet = obj[key]; } break; case 'onhyphenationdonecallback': if (assert('onhyphenationdonecallback', 'function')) { - onHyphenationDone = obj.onhyphenationdonecallback; + onHyphenationDone = obj[key]; } break; case 'onerrorhandler': if (assert('onerrorhandler', 'function')) { - onError = obj.onerrorhandler; + onError = obj[key]; } break; case 'intermediatestate': if (assert('intermediatestate', 'string')) { - intermediateState = obj.intermediatestate; + intermediateState = obj[key]; } break; case 'selectorfunction': if (assert('selectorfunction', 'function')) { - selectorFunction = obj.selectorfunction; + selectorFunction = obj[key]; + } + break; + case 'safecopy': + if (assert('safecopy', 'boolean')) { + safeCopy = obj[key]; + } + break; + case 'doframes': + if (assert('doframes', 'boolean')) { + doFrames = obj[key]; + } + break; + case 'storagetype': + if (assert('storagetype', 'string')) { + storageType = obj[key]; + } + break; + case 'orphancontrol': + if (assert('orphancontrol', 'number')) { + orphanControl = obj[key]; + } + break; + case 'dohyphenation': + if (assert('dohyphenation', 'boolean')) { + Hyphenator.doHyphenation = obj[key]; + } + break; + case 'persistentconfig': + if (assert('persistentconfig', 'boolean')) { + persistentConfig = obj[key]; + } + break; + case 'defaultlanguage': + if (assert('defaultlanguage', 'string')) { + defaultLanguage = obj[key]; } break; default: @@ -1457,12 +1897,14 @@ var Hyphenator = (function () { } } } + if (storage && persistentConfig) { + storeConfiguration(); + } }, /** * @name Hyphenator.run - * @methodOf Hyphenator - * @description + * @description * Bootstrap function that starts all hyphenation processes when called. * @public * @example <script src = "Hyphenator.js" type = "text/javascript"></script> @@ -1471,35 +1913,60 @@ var Hyphenator = (function () {  * </script> */ run: function () { + documentCount = 0; var process = function () { try { - autoSetMainLanguage(); + if (contextWindow.document.getElementsByTagName('frameset').length > 0) { + return; //we are in a frameset + } + documentCount++; + autoSetMainLanguage(undefined); gatherDocumentInfos(); + //console.log('preparing for ' + contextWindow.location.href); prepare(hyphenateDocument); if (displayToggleBox) { - toggleBox(true); + toggleBox(); } - //registerOnCopy(); } catch (e) { onError(e); } - }; - if (!documentLoaded) { + }, i, haveAccess, fl = window.frames.length; + + if (!storage) { + createStorage(); + } + if (!documentLoaded && !isBookmarklet) { runOnContentLoaded(window, process); } - if (Hyphenator.isBookmarklet() || documentLoaded) { + if (isBookmarklet || documentLoaded) { + if (doFrames && fl > 0) { + for (i = 0; i < fl; i++) { + haveAccess = undefined; + //try catch isn't enough for webkit + try { + //opera throws only on document.toString-access + haveAccess = window.frames[i].document.toString(); + } catch (e) { + haveAccess = undefined; + } + if (!!haveAccess) { + contextWindow = window.frames[i]; + process(); + } + } + } + contextWindow = window; process(); } }, /** * @name Hyphenator.addExceptions - * @methodOf Hyphenator - * @description + * @description * Adds the exceptions from the string to the appropriate language in the * {@link Hyphenator-languages}-object - * @param string The language - * @param string A comma separated string of hyphenated words WITH spaces. + * @param {string} lang The language + * @param {string} words A comma separated string of hyphenated words WITH spaces. * @public * @example <script src = "Hyphenator.js" type = "text/javascript"></script>  * <script type = "text/javascript"> @@ -1511,7 +1978,7 @@ var Hyphenator = (function () { if (lang === '') { lang = 'global'; } - if (exceptions.hasOwnProperty[lang]) { + if (exceptions.hasOwnProperty(lang)) { exceptions[lang] += ", " + words; } else { exceptions[lang] = words; @@ -1520,14 +1987,13 @@ var Hyphenator = (function () { /** * @name Hyphenator.hyphenate - * @methodOf Hyphenator - * @public + * @public * @description * Hyphenates the target. The language patterns must be loaded. * If the target is a string, the hyphenated string is returned, * if it's an object, the values are hyphenated directly. - * @param mixed the target to be hyphenated - * @param string the language of the target + * @param {string|Object} target the target to be hyphenated + * @param {string} lang the language of the target * @returns string * @example <script src = "Hyphenator.js" type = "text/javascript"></script> * <script src = "patterns/en.js" type = "text/javascript"></script> @@ -1556,7 +2022,12 @@ var Hyphenator = (function () { if (n.nodeType === 3 && n.data.length >= min) { //type 3 = #text -> hyphenate! n.data = n.data.replace(Hyphenator.languages[lang].genRegExp, hyphenate); } else if (n.nodeType === 1) { - Hyphenator.hyphenate(n, lang); + // Modified by Kovid to use element lang only if it has been loaded + if (n.lang !== '' && Hyphenator.languages.hasOwnProperty(n.lang)) { + Hyphenator.hyphenate(n, n.lang); + } else { + Hyphenator.hyphenate(n, lang); + } } } } @@ -1565,10 +2036,21 @@ var Hyphenator = (function () { } }, + /** + * @name Hyphenator.getRedPatternSet + * @description + * Returns {@link Hyphenator-isBookmarklet}. + * @param {string} lang the language patterns are stored for + * @returns object {'patk': pat} + * @public + */ + getRedPatternSet: function (lang) { + return Hyphenator.languages[lang].redPatSet; + }, + /** * @name Hyphenator.isBookmarklet - * @methodOf Hyphenator - * @description + * @description * Returns {@link Hyphenator-isBookmarklet}. * @returns boolean * @public @@ -1577,29 +2059,85 @@ var Hyphenator = (function () { return isBookmarklet; }, + getConfigFromURI: function () { + var loc = null, re = {}, jsArray = document.getElementsByTagName('script'), i, j, l, s, gp, option; + for (i = 0, l = jsArray.length; i < l; i++) { + if (!!jsArray[i].getAttribute('src')) { + loc = jsArray[i].getAttribute('src'); + } + if (!loc) { + continue; + } else { + s = loc.indexOf('Hyphenator.js?'); + if (s === -1) { + continue; + } + gp = loc.substring(s + 14).split('&'); + for (j = 0; j < gp.length; j++) { + option = gp[j].split('='); + if (option[0] === 'bm') { + continue; + } + if (option[1] === 'true') { + re[option[0]] = true; + continue; + } + if (option[1] === 'false') { + re[option[0]] = false; + continue; + } + if (isFinite(option[1])) { + re[option[0]] = parseInt(option[1], 10); + continue; + } + if (option[0] === 'onhyphenationdonecallback') { + re[option[0]] = new Function('', option[1]); + continue; + } + re[option[0]] = option[1]; + } + break; + } + } + return re; + }, /** * @name Hyphenator.toggleHyphenation - * @methodOf Hyphenator - * @description + * @description * Checks the current state of the ToggleBox and removes or does hyphenation. * @public */ toggleHyphenation: function () { - switch (state) { - case 3: + if (Hyphenator.doHyphenation) { removeHyphenationFromDocument(); - toggleBox(false); - break; - case 4: + Hyphenator.doHyphenation = false; + storeConfiguration(); + toggleBox(); + } else { hyphenateDocument(); - toggleBox(true); - break; + Hyphenator.doHyphenation = true; + storeConfiguration(); + toggleBox(); } } }; -}()); +}(window)); + +//Export properties/methods (for google closure compiler) +Hyphenator['languages'] = Hyphenator.languages; +Hyphenator['config'] = Hyphenator.config; +Hyphenator['run'] = Hyphenator.run; +Hyphenator['addExceptions'] = Hyphenator.addExceptions; +Hyphenator['hyphenate'] = Hyphenator.hyphenate; +Hyphenator['getRedPatternSet'] = Hyphenator.getRedPatternSet; +Hyphenator['isBookmarklet'] = Hyphenator.isBookmarklet; +Hyphenator['getConfigFromURI'] = Hyphenator.getConfigFromURI; +Hyphenator['toggleHyphenation'] = Hyphenator.toggleHyphenation; +window['Hyphenator'] = Hyphenator; + if (Hyphenator.isBookmarklet()) { - Hyphenator.config({displaytogglebox: true, intermediatestate: 'visible'}); + Hyphenator.config({displaytogglebox: true, intermediatestate: 'visible', doframes: true}); + Hyphenator.config(Hyphenator.getConfigFromURI()); Hyphenator.run(); -} \ No newline at end of file +} diff --git a/resources/viewer/hyphenate/patterns/be.js b/resources/viewer/hyphenate/patterns/be.js new file mode 100644 index 0000000000..e942cec390 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/be.js @@ -0,0 +1,24 @@ +// Created by Olexandr Zhydenko ((olexandr.zhydenko (at) gmail.com) +// +// Based on the file: hyph_be_BY.dic +// Created by: Alex Buloichik +// Corrected by: Liasovich Sviatlana +// License: LGPL +Hyphenator.languages['be'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 2, + longestPattern : 10, + specialChars : "'’абвгґдежзиійклмнопрÑтуўфхцчшьыÑÑŽÑ", + patterns : { + 3:"а1аа1еа1ёа1іа1оа1уа1ыа1Ñа1юа1Ñе1ае1ее1ёе1іе1ое1уе1ые1Ñе1юе1ÑÑ‘1аё1её1ёё1Ñ–Ñ‘1оё1уё1ыё1ÑÑ‘1ÑŽÑ‘1ÑÑ–1аі1еі1ёі1Ñ–Ñ–1оі1уі1ыі1ÑÑ–1ÑŽÑ–1Ñо1ао1ео1ёо1іо1оо1уо1ыо1Ñо1юо1Ñу1ау1еу1ёу1іу1оу1уу1ыу1Ñу1юу1ÑÑ‹1аы1еы1ёы1Ñ–Ñ‹1оы1уы1ыы1ÑÑ‹1ÑŽÑ‹1ÑÑ1аÑ1еÑ1Ñ‘Ñ1Ñ–Ñ1оÑ1уÑ1Ñ‹Ñ1ÑÑ1ÑŽÑ1ÑÑŽ1аю1ею1ёю1Ñ–ÑŽ1ою1ую1ыю1ÑÑŽ1ÑŽÑŽ1ÑÑ1аÑ1еÑ1Ñ‘Ñ1Ñ–Ñ1оÑ1уÑ1Ñ‹Ñ1ÑÑ1ÑŽÑ1Ñ_б88б__в88в__г88г__Ò‘88Ò‘__д88д__ж88ж__з88з__й88й__к88к__л88л__м88м__н88н__п88п__Ñ€88Ñ€__Ñ88Ñ__Ñ‚88Ñ‚__Ñž88Ñž__Ñ„88Ñ„__Ñ…88Ñ…__ц88ц__ч88ч__ш88ш__ÑŒ88ÑŒ__а88а__е88е__Ñ‘88Ñ‘__Ñ–88Ñ–__о88о__у88у__Ñ‹88Ñ‹__Ñ88Ñ__ÑŽ88ÑŽ__Ñ88Ñ_б1бв1вг1гґ1ґд1дж1жз1зй1йк1кл1лм1мн1нп1пр1Ñ€Ñ1ÑÑ‚1тў1ўф1фх1хц1цч1чш1шь1ьб8ьв8ьг8ьґ8ьд8ьж8ьз8ьй8ьк8ьл8ьм8ьн8ьп8ьр8ÑŒÑ8ьт8ьў8ьф8ьх8ьц8ьч8ьш8ьь8ьд8зд8ж", + 4:"1б8а1б8е1б8Ñ‘1б8Ñ–1б8о1б8у1б8Ñ‹1б8Ñ1б8ÑŽ1б8Ñ1в8а1в8е1в8Ñ‘1в8Ñ–1в8о1в8у1в8Ñ‹1в8Ñ1в8ÑŽ1в8Ñ1г8а1г8е1г8Ñ‘1г8Ñ–1г8о1г8у1г8Ñ‹1г8Ñ1г8ÑŽ1г8Ñ1Ò‘8а1Ò‘8е1Ò‘8Ñ‘1Ò‘8Ñ–1Ò‘8о1Ò‘8у1Ò‘8Ñ‹1Ò‘8Ñ1Ò‘8ÑŽ1Ò‘8Ñ1д8а1д8е1д8Ñ‘1д8Ñ–1д8о1д8у1д8Ñ‹1д8Ñ1д8ÑŽ1д8Ñ1ж8а1ж8е1ж8Ñ‘1ж8Ñ–1ж8о1ж8у1ж8Ñ‹1ж8Ñ1ж8ÑŽ1ж8Ñ1з8а1з8е1з8Ñ‘1з8Ñ–1з8о1з8у1з8Ñ‹1з8Ñ1з8ÑŽ1з8Ñ1й8а1й8е1й8Ñ‘1й8Ñ–1й8о1й8у1й8Ñ‹1й8Ñ1й8ÑŽ1й8Ñ1к8а1к8е1к8Ñ‘1к8Ñ–1к8о1к8у1к8Ñ‹1к8Ñ1к8ÑŽ1к8Ñ1л8а1л8е1л8Ñ‘1л8Ñ–1л8о1л8у1л8Ñ‹1л8Ñ1л8ÑŽ1л8Ñ1м8а1м8е1м8Ñ‘1м8Ñ–1м8о1м8у1м8Ñ‹1м8Ñ1м8ÑŽ1м8Ñ1н8а1н8е1н8Ñ‘1н8Ñ–1н8о1н8у1н8Ñ‹1н8Ñ1н8ÑŽ1н8Ñ1п8а1п8е1п8Ñ‘1п8Ñ–1п8о1п8у1п8Ñ‹1п8Ñ1п8ÑŽ1п8Ñ1Ñ€8а1Ñ€8е1Ñ€8Ñ‘1Ñ€8Ñ–1Ñ€8о1Ñ€8у1Ñ€8Ñ‹1Ñ€8Ñ1Ñ€8ÑŽ1Ñ€8Ñ1Ñ8а1Ñ8е1Ñ8Ñ‘1Ñ8Ñ–1Ñ8о1Ñ8у1Ñ8Ñ‹1Ñ8Ñ1Ñ8ÑŽ1Ñ8Ñ1Ñ‚8а1Ñ‚8е1Ñ‚8Ñ‘1Ñ‚8Ñ–1Ñ‚8о1Ñ‚8у1Ñ‚8Ñ‹1Ñ‚8Ñ1Ñ‚8ÑŽ1Ñ‚8Ñ1Ñž8а1Ñž8е1Ñž8Ñ‘1Ñž8Ñ–1Ñž8о1Ñž8у1Ñž8Ñ‹1Ñž8Ñ1Ñž8ÑŽ1Ñž8Ñ1Ñ„8а1Ñ„8е1Ñ„8Ñ‘1Ñ„8Ñ–1Ñ„8о1Ñ„8у1Ñ„8Ñ‹1Ñ„8Ñ1Ñ„8ÑŽ1Ñ„8Ñ1Ñ…8а1Ñ…8е1Ñ…8Ñ‘1Ñ…8Ñ–1Ñ…8о1Ñ…8у1Ñ…8Ñ‹1Ñ…8Ñ1Ñ…8ÑŽ1Ñ…8Ñ1ц8а1ц8е1ц8Ñ‘1ц8Ñ–1ц8о1ц8у1ц8Ñ‹1ц8Ñ1ц8ÑŽ1ц8Ñ1ч8а1ч8е1ч8Ñ‘1ч8Ñ–1ч8о1ч8у1ч8Ñ‹1ч8Ñ1ч8ÑŽ1ч8Ñ1ш8а1ш8е1ш8Ñ‘1ш8Ñ–1ш8о1ш8у1ш8Ñ‹1ш8Ñ1ш8ÑŽ1ш8Ñ1ÑŒ8а1ÑŒ8е1ÑŒ8Ñ‘1ÑŒ8Ñ–1ÑŒ8о1ÑŒ8у1ÑŒ8Ñ‹1ÑŒ8Ñ1ÑŒ8ÑŽ1ÑŒ8Ñ_бб88бб__бв88бв__бг88бг__бґ88бґ__бд88бд__бж88бж__бз88бз__бй88бй__бк88бк__бл88бл__бм88бм__бн88бн__бп88бп__бр88бр__бÑ88бÑ__бт88бт__бў88бў__бф88бф__бх88бх__бц88бц__бч88бч__бш88бш__бь88бь__б'8_б’8_вб88вб__вв88вв__вг88вг__вґ88вґ__вд88вд__вж88вж__вз88вз__вй88вй__вк88вк__вл88вл__вм88вм__вн88вн__вп88вп__вр88вр__вÑ88вÑ__вт88вт__вў88вў__вф88вф__вх88вх__вц88вц__вч88вч__вш88вш__вь88вь__в'8_в’8_гб88гб__гв88гв__гг88гг__гґ88гґ__гд88гд__гж88гж__гз88гз__гй88гй__гк88гк__гл88гл__гм88гм__гн88гн__гп88гп__гр88гр__гÑ88гÑ__гт88гт__гў88гў__гф88гф__гх88гх__гц88гц__гч88гч__гш88гш__гь88гь__г'8_г’8_ґб88ґб__ґв88ґв__ґг88ґг__Ò‘Ò‘88Ò‘Ò‘__ґд88ґд__ґж88ґж__ґз88ґз__ґй88ґй__ґк88ґк__ґл88ґл__ґм88ґм__ґн88ґн__ґп88ґп__Ò‘Ñ€88Ò‘Ñ€__Ò‘Ñ88Ò‘Ñ__Ò‘Ñ‚88Ò‘Ñ‚__Ò‘Ñž88Ò‘Ñž__Ò‘Ñ„88Ò‘Ñ„__Ò‘Ñ…88Ò‘Ñ…__ґц88ґц__ґч88ґч__ґш88ґш__Ò‘ÑŒ88Ò‘ÑŒ__Ò‘'8_ґ’8_дб88дб__дв88дв__дг88дг__дґ88дґ__дд88дд__дж88дж__дз88дз__дй88дй__дк88дк__дл88дл__дм88дм__дн88дн__дп88дп__др88др__дÑ88дÑ__дт88дт__дў88дў__дф88дф__дх88дх__дц88дц__дч88дч__дш88дш__дь88дь__д'8_д’8_жб88жб__жв88жв__жг88жг__жґ88жґ__жд88жд__жж88жж__жз88жз__жй88жй__жк88жк__жл88жл__жм88жм__жн88жн__жп88жп__жр88жр__жÑ88жÑ__жт88жт__жў88жў__жф88жф__жх88жх__жц88жц__жч88жч__жш88жш__жь88жь__ж'8_ж’8_зб88зб__зв88зв__зг88зг__зґ88зґ__зд88зд__зж88зж__зз88зз__зй88зй__зк88зк__зл88зл__зм88зм__зн88зн__зп88зп__зр88зр__зÑ88зÑ__зт88зт__зў88зў__зф88зф__зх88зх__зц88зц__зч88зч__зш88зш__зь88зь__з'8_з’8_йб88йб__йв88йв__йг88йг__йґ88йґ__йд88йд__йж88йж__йз88йз__йй88йй__йк88йк__йл88йл__йм88йм__йн88йн__йп88йп__йр88йр__йÑ88йÑ__йт88йт__йў88йў__йф88йф__йх88йх__йц88йц__йч88йч__йш88йш__йь88йь__й'8_й’8_кб88кб__кв88кв__кг88кг__кґ88кґ__кд88кд__кж88кж__кз88кз__кй88кй__кк88кк__кл88кл__км88км__кн88кн__кп88кп__кр88кр__кÑ88кÑ__кт88кт__кў88кў__кф88кф__кх88кх__кц88кц__кч88кч__кш88кш__кь88кь__к'8_к’8_лб88лб__лв88лв__лг88лг__лґ88лґ__лд88лд__лж88лж__лз88лз__лй88лй__лк88лк__лл88лл__лм88лм__лн88лн__лп88лп__лр88лр__лÑ88лÑ__лт88лт__лў88лў__лф88лф__лх88лх__лц88лц__лч88лч__лш88лш__ль88ль__л'8_л’8_мб88мб__мв88мв__мг88мг__мґ88мґ__мд88мд__мж88мж__мз88мз__мй88мй__мк88мк__мл88мл__мм88мм__мн88мн__мп88мп__мр88мр__мÑ88мÑ__мт88мт__мў88мў__мф88мф__мх88мх__мц88мц__мч88мч__мш88мш__мь88мь__м'8_м’8_нб88нб__нв88нв__нг88нг__нґ88нґ__нд88нд__нж88нж__нз88нз__нй88нй__нк88нк__нл88нл__нм88нм__нн88нн__нп88нп__нр88нр__нÑ88нÑ__нт88нт__нў88нў__нф88нф__нх88нх__нц88нц__нч88нч__нш88нш__нь88нь__н'8_н’8_пб88пб__пв88пв__пг88пг__пґ88пґ__пд88пд__пж88пж__пз88пз__пй88пй__пк88пк__пл88пл__пм88пм__пн88пн__пп88пп__пр88пр__пÑ88пÑ__пт88пт__пў88пў__пф88пф__пх88пх__пц88пц__пч88пч__пш88пш__пь88пь__п'8_п’8_рб88рб__рв88рв__рг88рг__Ñ€Ò‘88Ñ€Ò‘__рд88рд__рж88рж__рз88рз__рй88рй__рк88рк__рл88рл__рм88рм__рн88рн__рп88рп__рр88рр__Ñ€Ñ88Ñ€Ñ__рт88рт__рў88рў__рф88рф__рх88рх__рц88рц__рч88рч__рш88рш__рь88рь__Ñ€'8_р’8_Ñб88Ñб__Ñв88Ñв__Ñг88Ñг__ÑÒ‘88ÑÒ‘__Ñд88Ñд__Ñж88Ñж__Ñз88Ñз__Ñй88Ñй__Ñк88Ñк__Ñл88Ñл__Ñм88Ñм__Ñн88Ñн__Ñп88Ñп__ÑÑ€88ÑÑ€__ÑÑ88ÑÑ__ÑÑ‚88ÑÑ‚__ÑÑž88ÑÑž__ÑÑ„88ÑÑ„__ÑÑ…88ÑÑ…__Ñц88Ñц__Ñч88Ñч__Ñш88Ñш__ÑÑŒ88ÑÑŒ__Ñ'8_Ñ’8_тб88тб__тв88тв__тг88тг__тґ88тґ__тд88тд__тж88тж__тз88тз__тй88тй__тк88тк__тл88тл__тм88тм__тн88тн__тп88тп__тр88тр__Ñ‚Ñ88Ñ‚Ñ__тт88тт__тў88тў__тф88тф__тх88тх__тц88тц__тч88тч__тш88тш__ть88ть__Ñ‚'8_т’8_ўб88ўб__ўв88ўв__ўг88ўг__ÑžÒ‘88ÑžÒ‘__ўд88ўд__ўж88ўж__ўз88ўз__ўй88ўй__ўк88ўк__ўл88ўл__ўм88ўм__ўн88ўн__ўп88ўп__ўр88ўр__ÑžÑ88ÑžÑ__ўт88ўт__ўў88ўў__ўф88ўф__ўх88ўх__ўц88ўц__ўч88ўч__ўш88ўш__ўь88ўь__Ñž'8_ў’8_фб88фб__фв88фв__фг88фг__фґ88фґ__фд88фд__фж88фж__фз88фз__фй88фй__фк88фк__фл88фл__фм88фм__фн88фн__фп88фп__фр88фр__Ñ„Ñ88Ñ„Ñ__фт88фт__фў88фў__фф88фф__фх88фх__фц88фц__фч88фч__фш88фш__фь88фь__Ñ„'8_ф’8_хб88хб__хв88хв__хг88хг__Ñ…Ò‘88Ñ…Ò‘__хд88хд__хж88хж__хз88хз__хй88хй__хк88хк__хл88хл__хм88хм__хн88хн__хп88хп__Ñ…Ñ€88Ñ…Ñ€__Ñ…Ñ88Ñ…Ñ__Ñ…Ñ‚88Ñ…Ñ‚__Ñ…Ñž88Ñ…Ñž__Ñ…Ñ„88Ñ…Ñ„__Ñ…Ñ…88Ñ…Ñ…__хц88хц__хч88хч__хш88хш__Ñ…ÑŒ88Ñ…ÑŒ__Ñ…'8_х’8_цб88цб__цв88цв__цг88цг__цґ88цґ__цд88цд__цж88цж__цз88цз__цй88цй__цк88цк__цл88цл__цм88цм__цн88цн__цп88цп__цр88цр__цÑ88цÑ__цт88цт__цў88цў__цф88цф__цх88цх__цц88цц__цч88цч__цш88цш__ць88ць__ц'8_ц’8_чб88чб__чв88чв__чг88чг__чґ88чґ__чд88чд__чж88чж__чз88чз__чй88чй__чк88чк__чл88чл__чм88чм__чн88чн__чп88чп__чр88чр__чÑ88чÑ__чт88чт__чў88чў__чф88чф__чх88чх__чц88чц__чч88чч__чш88чш__чь88чь__ч'8_ч’8_шб88шб__шв88шв__шг88шг__шґ88шґ__шд88шд__шж88шж__шз88шз__шй88шй__шк88шк__шл88шл__шм88шм__шн88шн__шп88шп__шр88шр__шÑ88шÑ__шт88шт__шў88шў__шф88шф__шх88шх__шц88шц__шч88шч__шш88шш__шь88шь__ш'8_ш’8_ьб88ьб__ьв88ьв__ьг88ьг__ьґ88ьґ__ьд88ьд__ьж88ьж__ьз88ьз__ьй88ьй__ьк88ьк__ьл88ьл__ьм88ьм__ьн88ьн__ьп88ьп__ьр88ьр__ÑŒÑ88ÑŒÑ__ьт88ьт__ьў88ьў__ьф88ьф__ьх88ьх__ьц88ьц__ьч88ьч__ьш88ьш__ьь88ьь__ÑŒ'8_ь’8б8'1б8’1в8'1в8’1г8'1г8’1Ò‘8'1Ò‘8’1д8'1д8’1ж8'1ж8’1з8'1з8’1й8'1й8’1к8'1к8’1л8'1л8’1м8'1м8’1н8'1н8’1п8'1п8’1Ñ€8'1Ñ€8’1Ñ8'1Ñ8’1Ñ‚8'1Ñ‚8’1Ñž8'1Ñž8’1Ñ„8'1Ñ„8’1Ñ…8'1Ñ…8’1ц8'1ц8’1ч8'1ч8’1ш8'1ш8’1ÑŒ8'1ÑŒ8’1б8а3б8у3б8о3б8е3б8Ñ‘3б8Ñ‹3б8Ñ3б8Ñ–3в8а3в8у3в8о3в8е3в8Ñ‘3в8Ñ‹3в8Ñ3в8Ñ–3г8а3г8у3г8о3г8е3г8Ñ‘3г8Ñ‹3г8Ñ3г8Ñ–3Ò‘8а3Ò‘8у3Ò‘8о3Ò‘8е3Ò‘8Ñ‘3Ò‘8Ñ‹3Ò‘8Ñ3Ò‘8Ñ–3д8а3д8у3д8о3д8е3д8Ñ‘3д8Ñ‹3д8Ñ3д8Ñ–3ж8а3ж8у3ж8о3ж8е3ж8Ñ‘3ж8Ñ‹3ж8Ñ3ж8Ñ–3з8а3з8у3з8о3з8е3з8Ñ‘3з8Ñ‹3з8Ñ3з8Ñ–3к8а3к8у3к8о3к8е3к8Ñ‘3к8Ñ‹3к8Ñ3к8Ñ–3л8а3л8у3л8о3л8е3л8Ñ‘3л8Ñ‹3л8Ñ3л8Ñ–3м8а3м8у3м8о3м8е3м8Ñ‘3м8Ñ‹3м8Ñ3м8Ñ–3н8а3н8у3н8о3н8е3н8Ñ‘3н8Ñ‹3н8Ñ3н8Ñ–3п8а3п8у3п8о3п8е3п8Ñ‘3п8Ñ‹3п8Ñ3п8Ñ–3Ñ€8а3Ñ€8у3Ñ€8о3Ñ€8е3Ñ€8Ñ‘3Ñ€8Ñ‹3Ñ€8Ñ3Ñ€8Ñ–3Ñ8а3Ñ8у3Ñ8о3Ñ8е3Ñ8Ñ‘3Ñ8Ñ‹3Ñ8Ñ3Ñ8Ñ–3Ñ‚8а3Ñ‚8у3Ñ‚8о3Ñ‚8е3Ñ‚8Ñ‘3Ñ‚8Ñ‹3Ñ‚8Ñ3Ñ‚8Ñ–3Ñ„8а3Ñ„8у3Ñ„8о3Ñ„8е3Ñ„8Ñ‘3Ñ„8Ñ‹3Ñ„8Ñ3Ñ„8Ñ–3Ñ…8а3Ñ…8у3Ñ…8о3Ñ…8е3Ñ…8Ñ‘3Ñ…8Ñ‹3Ñ…8Ñ3Ñ…8Ñ–3ц8а3ц8у3ц8о3ц8е3ц8Ñ‘3ц8Ñ‹3ц8Ñ3ц8Ñ–3ч8а3ч8у3ч8о3ч8е3ч8Ñ‘3ч8Ñ‹3ч8Ñ3ч8Ñ–3ш8а3ш8у3ш8о3ш8е3ш8Ñ‘3ш8Ñ‹3ш8Ñ3ш8Ñ–3а8й1о8й1е8й1Ñ–8й1Ñ8й1ÑŽ8й1Ñ8й1Ñ‘8й1Ñ‹8й1а8Ñž1о8Ñž1е8Ñž1Ñ–8Ñž1Ñ8Ñž1ÑŽ8Ñž1Ñ8Ñž1Ñ‘8Ñž1Ñ‹8Ñž1б8'1б8’1в8'1в8’1г8'1г8’1Ò‘8'1Ò‘8’1д8'1д8’1ж8'1ж8’1з8'1з8’1к8'1к8’1л8'1л8’1м8'1м8’1н8'1н8’1п8'1п8’1Ñ€8'1Ñ€8’1Ñ8'1Ñ8’1Ñ‚8'1Ñ‚8’1Ñ„8'1Ñ„8’1Ñ…8'1Ñ…8’1ц8'1ц8’1ч8'1ч8’1ш8'1ш8’1б8ÑŒ1в8ÑŒ1г8ÑŒ1Ò‘8ÑŒ1д8ÑŒ1ж8ÑŒ1з8ÑŒ1к8ÑŒ1л8ÑŒ1м8ÑŒ1н8ÑŒ1п8ÑŒ1Ñ€8ÑŒ1Ñ8ÑŒ1Ñ‚8ÑŒ1Ñ„8ÑŒ1Ñ…8ÑŒ1ц8ÑŒ1ч8ÑŒ1ш8ÑŒ1", + 5:"_ад1б_ад1в_ад1г_ад1Ò‘_ад1д_ад1ж_ад1з_ад1к_ад1л_ад1м_ад1н_ад1п_ад1Ñ€_ад1Ñ_ад1Ñ‚_ад1Ñ„_ад1Ñ…_ад1ц_ад1ч_ад1ш_аб1б_аб1в_аб1г_аб1Ò‘_аб1д_аб1ж_аб1з_аб1к_аб1л_аб1м_аб1н_аб1п_аб1Ñ€_аб1Ñ_аб1Ñ‚_аб1Ñ„_аб1Ñ…_аб1ц_аб1ч_аб1ш_уз1б_уз1в_уз1г_уз1Ò‘_уз1д_уз1ж_уз1з_уз1к_уз1л_уз1м_уз1н_уз1п_уз1Ñ€_уз1Ñ_уз1Ñ‚_уз1Ñ„_уз1Ñ…_уз1ц_уз1ч_уз1ш_уÑ1б_уÑ1в_уÑ1г_уÑ1Ò‘_уÑ1д_уÑ1ж_уÑ1з_уÑ1к_уÑ1л_уÑ1м_уÑ1н_уÑ1п_уÑ1Ñ€_уÑ1Ñ_уÑ1Ñ‚_уÑ1Ñ„_уÑ1Ñ…_уÑ1ц_уÑ1ч_уÑ1ш8льш_8Ñць_8дзь_", + 6:"_над1б_над1в_над1г_над1Ò‘_над1д_над1ж_над1з_над1к_над1л_над1м_над1н_над1п_над1Ñ€_над1Ñ_над1Ñ‚_над1Ñ„_над1Ñ…_над1ц_над1ч_над1ш_пад1б_пад1в_пад1г_пад1Ò‘_пад1д_пад1ж_пад1з_пад1к_пад1л_пад1м_пад1н_пад1п_пад1Ñ€_пад1Ñ_пад1Ñ‚_пад1Ñ„_пад1Ñ…_пад1ц_пад1ч_пад1ш_раз1б_раз1в_раз1г_раз1Ò‘_раз1д_раз1ж_раз1з_раз1к_раз1л_раз1м_раз1н_раз1п_раз1Ñ€_раз1Ñ_раз1Ñ‚_раз1Ñ„_раз1Ñ…_раз1ц_раз1ч_раз1ш_раÑ1б_раÑ1в_раÑ1г_раÑ1Ò‘_раÑ1д_раÑ1ж_раÑ1з_раÑ1к_раÑ1л_раÑ1м_раÑ1н_раÑ1п_раÑ1Ñ€_раÑ1Ñ_раÑ1Ñ‚_раÑ1Ñ„_раÑ1Ñ…_раÑ1ц_раÑ1ч_раÑ1ш_роз1б_роз1в_роз1г_роз1Ò‘_роз1д_роз1ж_роз1з_роз1к_роз1л_роз1м_роз1н_роз1п_роз1Ñ€_роз1Ñ_роз1Ñ‚_роз1Ñ„_роз1Ñ…_роз1ц_роз1ч_роз1ш_бÑз1б_бÑз1в_бÑз1г_бÑз1Ò‘_бÑз1д_бÑз1ж_бÑз1з_бÑз1к_бÑз1л_бÑз1м_бÑз1н_бÑз1п_бÑз1Ñ€_бÑз1Ñ_бÑз1Ñ‚_бÑз1Ñ„_бÑз1Ñ…_бÑз1ц_бÑз1ч_бÑз1ш_без1б_без1в_без1г_без1Ò‘_без1д_без1ж_без1з_без1к_без1л_без1м_без1н_без1п_без1Ñ€_без1Ñ_без1Ñ‚_без1Ñ„_без1Ñ…_без1ц_без1ч_без1ш_бÑÑ1б_бÑÑ1в_бÑÑ1г_бÑÑ1Ò‘_бÑÑ1д_бÑÑ1ж_бÑÑ1з_бÑÑ1к_бÑÑ1л_бÑÑ1м_бÑÑ1н_бÑÑ1п_бÑÑ1Ñ€_бÑÑ1Ñ_бÑÑ1Ñ‚_бÑÑ1Ñ„_бÑÑ1Ñ…_бÑÑ1ц_бÑÑ1ч_бÑÑ1ш_беÑ1б_беÑ1в_беÑ1г_беÑ1Ò‘_беÑ1д_беÑ1ж_беÑ1з_беÑ1к_беÑ1л_беÑ1м_беÑ1н_беÑ1п_беÑ1Ñ€_беÑ1Ñ_беÑ1Ñ‚_беÑ1Ñ„_беÑ1Ñ…_беÑ1ц_беÑ1ч_беÑ1ш_роÑ1б_роÑ1в_роÑ1г_роÑ1Ò‘_роÑ1д_роÑ1ж_роÑ1з_роÑ1к_роÑ1л_роÑ1м_роÑ1н_роÑ1п_роÑ1Ñ€_роÑ1Ñ_роÑ1Ñ‚_роÑ1Ñ„_роÑ1Ñ…_роÑ1ц_роÑ1ч_роÑ1швё8Ñ€ÑÑ‚", + 7:"_праз1б_праз1в_праз1г_праз1Ò‘_праз1д_праз1ж_праз1з_праз1к_праз1л_праз1м_праз1н_праз1п_праз1Ñ€_праз1Ñ_праз1Ñ‚_праз1Ñ„_праз1Ñ…_праз1ц_праз1ч_праз1ш_ад8зінтÑ8мбр__дву8Ñ…3_шма8Ñ‚1", + 8:"_перад1б_перад1в_перад1г_перад1Ò‘_перад1д_перад1ж_перад1з_перад1к_перад1л_перад1м_перад1н_перад1п_перад1Ñ€_перад1Ñ_перад1Ñ‚_перад1Ñ„_перад1Ñ…_перад1ц_перад1ч_перад1ш_цераз1б_цераз1в_цераз1г_цераз1Ò‘_цераз1д_цераз1ж_цераз1з_цераз1к_цераз1л_цераз1м_цераз1н_цераз1п_цераз1Ñ€_цераз1Ñ_цераз1Ñ‚_цераз1Ñ„_цераз1Ñ…_цераз1ц_цераз1ч_цераз1ш_цераÑ1б_цераÑ1в_цераÑ1г_цераÑ1Ò‘_цераÑ1д_цераÑ1ж_цераÑ1з_цераÑ1к_цераÑ1л_цераÑ1м_цераÑ1н_цераÑ1п_цераÑ1Ñ€_цераÑ1Ñ_цераÑ1Ñ‚_цераÑ1Ñ„_цераÑ1Ñ…_цераÑ1ц_цераÑ1ч_цераÑ1шна1д8вор", + 9:"за1п8люшч_па1д8зÑл_па1д8зелраз1г8лÑдраз1г8ледзло1Ñž8жыв_па1д8зÑк_вы1к8люч", + 10:"віда1з8мÑнвіда1з8менза3ц8вÑрдз_па3г8лÑдз", + 12:"Ñлова1Ñž8тваркрова3Ñž8твар" + } +}; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/bn.js b/resources/viewer/hyphenate/patterns/bn.js index 46497757f6..0b1b366659 100644 --- a/resources/viewer/hyphenate/patterns/bn.js +++ b/resources/viewer/hyphenate/patterns/bn.js @@ -1,13 +1,13 @@ -// For questions about the Bengali hyphenation patterns +// For questions about the Bengali hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.bn = { +Hyphenator.languages['bn'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 1, - specialChars : unescape('আঅইঈউঊঋà¦à¦à¦”কগখঘঙচছজà¦à¦žà¦Ÿà¦ à¦¡à¦¢à¦£à¦¤à¦¥à¦¦à¦§à¦¨à¦ªà¦«à¦¬à¦­à¦®à¦¯à¦°à¦²à¦¶à¦·à¦¸à¦¹à¦¿à§€à¦¾à§à§‚ৃোোৈৌৗà§à¦ƒà¦‚%u200D'), + specialChars : unescape("আঅইঈউঊঋà¦à¦à¦”কগখঘঙচছজà¦à¦žà¦Ÿà¦ à¦¡à¦¢à¦£à¦¤à¦¥à¦¦à¦§à¦¨à¦ªà¦«à¦¬à¦­à¦®à¦¯à¦°à¦²à¦¶à¦·à¦¸à¦¹à¦¿à§€à¦¾à§à§‚ৃোোৈৌৗà§à¦ƒà¦‚%u200D"), patterns : { - 2 : 'অ1আ1ই1ঈ1উ1ঊ1ঋ1à¦1à¦1ঔ1ি1া1à§€1à§1ৃ1ে1à§‹1à§Œ1à§—1à§2ঃ1ং11ক1গ1খ1ঘ1ঙ1চ1ছ1জ1à¦1ঞ1ট1ঠ1ড1ঢ1ণ1ত1থ1দ1ধ1ন1প1ফ1ব1ভ1ম1য1র1ল1শ1ষ1স1হ', - 3 : '2ঃ12ং1' + 2 : "অ1আ1ই1ঈ1উ1ঊ1ঋ1à¦1à¦1ঔ1ি1া1à§€1à§1ৃ1ে1à§‹1à§Œ1à§—1à§2ঃ1ং11ক1গ1খ1ঘ1ঙ1চ1ছ1জ1à¦1ঞ1ট1ঠ1ড1ঢ1ণ1ত1থ1দ1ধ1ন1প1ফ1ব1ভ1ম1য1র1ল1শ1ষ1স1হ", + 3 : "2ঃ12ং1" } }; diff --git a/resources/viewer/hyphenate/patterns/cs.js b/resources/viewer/hyphenate/patterns/cs.js index 9b934ac4cf..6c55af5a91 100644 --- a/resources/viewer/hyphenate/patterns/cs.js +++ b/resources/viewer/hyphenate/patterns/cs.js @@ -1,11 +1,11 @@ -// For questions about the Czech hyphenation patterns +// For questions about the Czech hyphenation patterns // ask Martin Hasoň (martin dot hason at gmail dot com) -Hyphenator.languages.cs = { +Hyphenator.languages['cs'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 6, - specialChars : 'ěšÄřžýáíéúůťÄ', + specialChars : "ěšÄřžýáíéúůťÄ", patterns : { 2 : "a11f1g1k1n1pu11vy11zé11ňó11Å¡1Å¥1ú1ž", 3 : "_a2_b2_c2_d2_e2_g2_h2_i2_j2_k2_l2_m2_o2_p2_r2_s2_t2_u2_v2_z2_Ä2_é2_í2_ó2_Å¡2_ú2_ž22a_a2da2ga2ia2ka2ra2sa2ta2u2av2aya2Äa2ňa2Å¥2b_b1db1h1bib1j2bkb1m2bn1bob2z1bá1bí2bň2c_1ca2cc1ce1ci2cl2cn1coc2p2ctcy21cá1cí2cň1ců2d_1dad1bd1d1de1did1j2dkd1m2dn1dod1t1dud2v1dy1dá1dé1dÄ›1dí2dň1dů1dý2e_e1ae1be1ee1ie2ke1o2ere1se1te1ue1áe2ňe1Å™e2Å¡eú12f_f2l2fn2fr2fs2ft2féf2ú2g_2gngo12h_h2bh2c2hd2hkh2mh2rh1Ä2hňhÅ™2h2ž2i_i1ai1bi1di1hi1ji1li1mi2ni1oi1ri1ti1xi1ái2Äi1éi1ói1Å™i2Å¡i2ž2j_j2d1jij1j2jkj2m2jn2jp2jz2jÄ1jí2jž2k_k2dk2e2kf2kkk2l2kn2ks2kÄk2ň2l_2lf2lg2lh1li2lj2lk2ll2ln2lp2lv2lz2lň1lů1lý2m_1ma1me2mf1mim2l2mn1mo2mp1mu2mv2mz2mÄm2ž2n_2nb2nf2ngn1j2nk2nn2nz2nÄ2nónů22nž2o_o1ao1cog2o1ho1io1jo1lo1mo2no1oo1to2uo1xo2zo1Äo2ňo1Å™2p_2pkp2l2pn2pp2ptpá12pÄ2pÅ¡2pÅ¥qu22r_r1br1cr1d2rkr1l2rn2rrr1x2rzr1Ä2ró2rÅ¡2s_s2cs2d1se2sf1sis2js2k2sn1sos2p1sr2ss1sus2v1sé1sí2sň2sÅ¥1sůs2ž2t_1te2tf2tg1ti2tl2tm2tn1to2tpt2vt2Ä1té1tÄ›2tÅ™2tÅ¡1tů2u_u2b2ufu2ku2mu2nu2pu2ru2su2vu2zu2Äu2Äu2ňu2Å¡u2ž2v_2vkv2l2vm2vnv2p2vňwe22x_2xf2xnx1ty2ay2ey2sy2ňy2Å¡yž22z_2zbz2ez2j2zl2ztz2v2zzzá12zÄ2zňz2řá1bá1dá1já1sá2ňá1řá2Å¡2Ä_1Äa2Äb1Äe1Äi2Äk2Än1ÄoÄ2p2Äs1Äu1Äá1Äí1Äů2Ä_1Äa1Äoé2dé2fé2lé2mé2sé2té2šé2žě1cÄ›1lÄ›2vÄ›2zÄ›1řě2šě2ťě2ží1bí1hí1jí1lí1rí1tí2ňí1ří2Å¡2ň_2ňa2ňk2ňmň1só2z2Å™_2Å™c2Å™dÅ™i12Å™k2Å™n1Å™oÅ™2v2Å™z2řš2Å¡_2Å¡l2Å¡nÅ¡2p2Å¡tÅ¡2vÅ¡2ň2Å¥_2Å¥k2Å¥m2Å¥tú2dú2kú2lú2nú2pú2tú2vú2zú2Äú2žů1bů1cůt2ů2vů2zů2žý1bý1dý1hý1jý1lý2ný1rý1tý1uý1Å™2ž_2žk2žl2žnž2v2žÄ2žň2žš", diff --git a/resources/viewer/hyphenate/patterns/da.js b/resources/viewer/hyphenate/patterns/da.js index f25076e53a..2046e5aa04 100644 --- a/resources/viewer/hyphenate/patterns/da.js +++ b/resources/viewer/hyphenate/patterns/da.js @@ -1,10 +1,10 @@ -Hyphenator.languages.da = { - 'leftmin' : 2, - 'rightmin' : 2, - 'shortestPattern' : 2, - 'longestPattern' : 8, - 'specialChars' : 'æøå', - 'patterns' : { +Hyphenator.languages['da'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 2, + longestPattern : 8, + specialChars : "æøå", + patterns : { 3 : "a3ca1ea3ha3ja5oa5z1ba4bd1be1bib1j1bo4bsb5t3bub5w1by1ce3chck35cy3dad1b1ded1fd1gd3h1did3jd1kd1ld1m3dod1p1dud1v3dye3ee1he5x1faf1bf1d1fef1ff1gf1h1fif1k3fl1fof1p4ft1fuf1v3fy1gag1bg1d1geg3fg1gg1h1gi5gjg3kg1lg1m3gog3p1grg3v1gyi1ai3bi1ci3hi5ii5ji1uj5kj3rk5bk3hk1kk1tl1bl1fl3hl3jl1ll3r4ls1mam1bm3d1mem3fm1gm3h1mim3km1lm1mm1n3mom1r3my3nan1bn1c4nd1nen1f1nin1mn1n1non5pn3r4ns3nyn3zo3ao1co1eo5ho1jo3t3pap3dp3fp3mp3np1t1pup5vqu4r1br1fr1hr1lr1nr3pr1rs1d1ses1fs1msp44tbt1ht1mt1n4tsu1au1eu3iu5qv5hv5jv5kvl41vov5pv5t3vuy3ay3ey5o5bæ3dæ3døe3æe5Ã¥3fæ3fø3gæ3gÃ¥i3ø3kø3kÃ¥1mæ3mø3mÃ¥3næ5nøo5Ã¥pÃ¥31sæ1sø5våæ3cæ3eæ5iæ5oø3eÃ¥1dÃ¥1eÃ¥5hÃ¥3lÃ¥3t", 4 : "_ae3_om1_po15adg5afgaf3r5afsa4gia4gya5kaa3kea5kraku5a3laa1lea1lial3ka1loa3lua1lya3nu3anva5pea3pia5poa1ra1arba1re5arga1ria3roa3saa3sca1sia3ska3soa1tea1tia1toa5tra1tua5vaa1vebe1k4b1n1br4bs5kb3sob1stby5s4c1c4ch_ci4oda4sd1d4de5ddi1edi5l4d1n4dopd5ovd5rud4smd4sud3tad1tedt5od5trdt5udub5e5ade3afe5age3ake1ale3ane5ape3ate3blebs3e1cie4do3effe3fr3efte3gue3inei5se3jee1kae3kee3kle5kre3kue1kve5kye3lee1lie3loe5lue3lyem1s4enne4noe5nue5ole3ope1ore3ovepi3e1pre3rae1ree1rier1ker3se5rye1tae1tee1tie3tje1toe3tre3tue1tye3ume3un3eure1vae3vee1vifej4f1s4f3taf1tef1tif5toge3sgi4bg5ovgs1ag4segs1pgs1vg3tag1teg1tig5tog3trgt4sg3udgun5g5yd4ha_he5s4hethi4ehi3s4h3thun4hvo4i3dri1eli1eni3erif3ri3gui1kai1keik1li5koi3kuik3vi3liil3ki1loil5ui3mu5infin3si3nui3odi3ogi5oki3olion4i3oti5pii5pri3rei3riir5ti3sci3sii4smis3pi1tai1tei1tii3toi3tri1tui3tyi1vai1vei1vij3agjds1j3lej3lijre5ju3s5kapk5au5kavki3ek1le3kluk4ny5kod1konko3v1kra5kryk1siks3kks1pks5vkt5s3kur1kus3kutk4vok4vu5lab5lam1latl3dr1le_5led3len1ler1les4leuli5ol1kel1kol3kyl5mul3op3lov4l3pl4psl5sjl1tal1tel3tilt3ol3trl3tulu5ll3vel3vimi3kmi4o4mopm1pem3pim3plm1pom3prm5skms3pms5vm3tam3tem3tim3trm1ud1mul4nak1naln3drne5aneo4n4go4n1h4nimni5on1ken1kon3krn3kun5kv4n1ln3sin1tan1ten1tin3ton1trn3tun3ty4n1vo4asod5sof5ro5ino3kao1keo3kuo3lao3leo1lio1loo3luo5ly1omron3kook5o3oro5ovo3piop3lop3rop3s4or_o3rior3kor5oo3sio3soo1teo5unov4s4pec3pen1perpe5spe3u4p5h1pla5pok3potp4rop3skp5sops4pp3stpu5b5py34rafr3dr1relr1guri1er3kar1ker1kir3kurmo4r5muro1bro3pr3orr1sar1sirs4nr3spr5sur3svr1ter1tir3tort3sr5tyr3ud5rutr3var1ver3viry4ss3af1sams3aps1ar1sat4s1bsdy4s4ed4s3h1sig5sis5sit5sius5ju4sk_1skes3kl5skys1les1lislo35slus5lys4myso5k5sol3sons1pls5r4s1s44st_5stj3sto1strs1ud3suls3un3surs3ve3s4y5ta_1tag3tegteo14t1f6t3g3tid4t3k4t1l4t3pt4ra1tryt3sit3st4t1t5turt5ve1typ5udlud5rud3s3udvugs3u5guu5klu1lau1leu5lyu5peup5lu3rau3reu3rous5au3siu5sous5vu1teu1tiu1tout5r5u5vva5d1vedve3s5vet1visv3lev5livls1v5rev3stv5suy5dry3key5kiy3koy3kvy5liy5loy5muyns5y1pey3piy3rey3riy3siy3tiy5vezi5o_sÃ¥3a3tøa5væe3læe3løe3røe5tæe5tøe1vægiø4g4søg5sÃ¥3gø1i5tæl3væ5løsm5tÃ¥n3kæn5tæo5læor3ø5præ5pædr5kær5tær5tør3vær5æl4røn5rør3rÃ¥dr5Ã¥rs4kÃ¥3slÃ¥s4næ5stø1stÃ¥s5økti4øt4søt5sÃ¥t3væu3læy5vææb3læg5aægs5æ5kvæ1reæ3riær5sæ5siæ3soæ3veøde5ø1jeø3keø3leøms5ø1reø3riør5oø1veÃ¥3reÃ¥5sk", 5 : "_an3k_an1s_be1t_her3_ove4_til3_yd5rab5le3abstaf4ria4gefag5inag5si3agtiais5t4alkval5siam4paar5af3a3spa3stea3stia1ta1ato5vba4tibe3robe5rube1s4be1trbi5skbo4grbo3rabo5rece5ro4d3afde5sk3drif3drivd5rosds5ands5ind1skidsu5lds5viea4laed5aredde4ed5raed3re4e1koek5sa3ekspe3ladel3akel3are1lase4lek3elem5elimel5sae4maden5ake4nanen3soer3afe4rage4rake4ref5erhve4ribero5der5over5tre3rumer5unfa4cefags3fejl1fo4rif5tvig3artgi3st4g5omgsha4g5slags3org4strheds3hi4n5ho5koho5vehund3i4bleids5ki3et_ik3reik5riiks5tik4tui3lagil3egil5ejil5elind3tings1in4svions1i5o5ri3plii3stii5suakel5ske3skke5stki3stk5lakko3ra3kortks3ank3stek5stuk4tarkti4ekt5relad3r5lagdld3st4lelele4molfin4l1go1li4galo4du4l5orlses1ls5inl4taf4m5ejm5ingmmen5mo4da4m5ovmse5sms5inm3stemu1lind5sind5sknd5spne4dan3erkn5erlne5slne5stni3stn3ordn1skuns3pon1stan5stint4suob3lio4dinod5riod5uno4geko4gelo4g5oog5reog5sk3optaor1an3ordnord5so3re_o3rego3reko3rero3retor5imor3slor3stpa5ghp5anlpe1rap4lan4ple_4pler4ples4p5p41procp5ulera5is4rarbrd4s34reksre5la5rese4ressre3st5rettri5la4rimor4ing4rinp4rintrk3sorre5sr5skrr5stur5talrt3rer5trir5trosa4ma5s4erse4se4s1g4si4bls5int1skabsk5s44snins4nit5som_3somms5oms5somt4s1op3spec4sper3s4pi1stanst5as3stat1stav1ste_1sted3stel1sten5step3stes5stetst5om1sy1s4tanvteds55tekn5termte5roti4enti3stto5rato1reto1ritor4m4trestro5vts4pats5prts5ult5udsue4t5uk4tauk4tru1reru5skaut5s43varm4v5omyk3liyk4s5yr3eky5t3r_ær5i_øv3rbrød35drøvdstÃ¥4er5øn4n5æb4s5ænsÃ¥4r53værd1værkæ4gekæ4g5rælle4æn1drær4maær4moæ3steøn3støn4t3ørne3Ã¥rs5t", diff --git a/resources/viewer/hyphenate/patterns/de.js b/resources/viewer/hyphenate/patterns/de.js index 05cdfb4353..859efb988b 100644 --- a/resources/viewer/hyphenate/patterns/de.js +++ b/resources/viewer/hyphenate/patterns/de.js @@ -1,20 +1,20 @@ -Hyphenator.languages.de = { +Hyphenator.languages['de'] = { leftmin : 2, rightmin : 2, shortestPattern : 2, longestPattern : 12, - specialChars : 'äöüß', + specialChars : "äüöéß", patterns : { - 3 : "2aaa1äa1ba1da1g2aia1j2aoa1öa1p2aqa1ßa2ua1xä1aä1bä1dä1gä1jä1k1äqä1ßä1v1äxä1z1bibl21cac4h1cic4k3co2cs3cu1cy1de1did1ö1due1be1d2eee1fe1ge1ke1me1pe1ße1te1üe1wey1e1z1fa1fä1fe1fi1fo1fö1fu1fü1fy2gd1geg1lh1j4hl2hnh1q2hr4hsh2ü2hwh1zi1a2iä2ici1d2ifi1ji1si1ßi1üi1x1ka1käkl21ko1kök1q1ku1kü1le1li4ln1lo1lö1ly1ma3mä1me1mi1mo1mö1mu1mü1my1na1nä1ne1nin1j1noo1b2oco1d2oi2ol2omo1qo1vo1xö1cö1dö1e1öfö1k2önöo1ö1ßö1tö1vö1wö1z1pä1php1j1po1puqu42rc1re1ri4rnr1q1ru1rür1x1ry1sa1sä1sc1se1si1so1sös1t1su1sü1ße1ßiß1j1ta1tä1tet1h1ti1to2tö2ts1tu2tü2ua4ucu1h2uiu1ju1lun1u1q2usu1wu1x1üb2üc2üdü1gü1ß2ütü1zve2v2r2vsw2a2wnw2rw2ux1a1xe1xix1jx1q2xyx1zy1by1dy1ey1gy1hy1jy1ly1py1ry1vy1wy1yza2zä2zu1zw2", - 4 : "_ax2_äm3_en1_eu1_gd2_he2_in3_oa3_öd2_pf4_ph4_ps2_st4_th4_ts4_um3_ur1_xe1a1aba3au2abaab1ä1abd1abf3abg1abh2abi1abkab1l1abnab3r1abs2abü1abw2aby1abz2ac_2aca2acca1cr2acu4ad_1add5adjae2ca2eka2etae2xaf1a2afe2afia2föaf1u2ag_2agaagd12agmag2n2agt2ah_2ahsa1huah1wa1hyaib3ai1eaif2a2ilai3o2ak_2akb2akc2akd2ako2aks2aku1akza1laa1lä2ale2ali2aloa1lu4aly2am_2amäam4ea2mö2amu1anb2ane1anf1anh2anj1anl2ann2anoa1nö1anra1nü1anwa1nyao1ia1opa1or2apea2pfap3lap2n2apra3pu2ar_a1raa1rä1arb2are2arf2arh2ari2arr2arua2rü2arv2ary2asc4asea2söaße22a1tata1at2cat2h3atmat1ö4atra3tü4atz2au_2aub4auc2aue2aug2auj4aum2aunau1oaup22aux2a1ü2a1vav4a4avia2vr2a1wax2e2a1zaz2oäb2sä1ckä2daä2dräd2s2ä1eäf3läf3räf2säg2näh1aä3hi2ähm2ähsä1huäh1wä1imä1la2äleä1lu2ämläm2s2än_2äne2änsä1onä1paär1aär1äär1c2äreä1rö2ärtä2saä3suät2häu1cä2uf1äug4äulä2un2äur1äuß3bah3bal3basb2ärb2äs4b1bb3bebb2sbbu12b1cbch21be_3bebbe1c3bek3bel1bem3bet3bew1bezbge3bib2biz24b1j2bl_b2leb2lo3blü2b3mbni2bo4abo2cboe1b1op2böf2b1qb2r43brä3brü4b1sb3säb5scb4slb2söbss2bs2t4b3tb5teb4thbt4rbtü1bu2fbü1c2b1v2b1w3by1by3pca1h3camc4an2c1c2cec2cefce1i2cek1cen1cerce1s1cetce1u4ch_2chb2chc2chd2chf2chg2chh2chj2chk2chp4chs2cht4chü2chv4chw2chzci2s4ck_ck1ack1ä2ckb2ckc2ckd1cke2ckf2ckg2ckh1cki4ckk2ckm2ckp2cks4ckt1cku2ckw1cky2ckzco2cco2dco4rcos4co2u2c1qc2r2cre2cst24c1tcti43da_da1ad1afd1ag2d1cd3dhd5dodeb4de1cd1ei3demdes1det2dga2d3gld3hedi2e2d1j2d1ld3ladni23do_d1obdo2o2d1qd2r4d3rid3rö2d1s4dsb4dsld2södss4dst42d1td2thd3tidto2d3tödt3rd3tüdu2fdu1idu1odur2dus33düf3dün3dür2d1wdwa22e1aea2ce2ade2ape1ä22eba2ebl2ebre3bue3cae1ce2eclec1s2ected2eed2öe3dyee1ce2edee1eeeg2e1eie1ene2ete2ew2ef_2efa2efe2efi2eflefs22efue3gee2gn2egue1hee1hi2ehme1hoehs2e1hue1hüeh1we1hy4eibe4idei1ee2ilei1p2eire2it2e1jek4a1ekdek4nek2oek4r2ektek2ue1lae1lä2eloe1lü2elz2ema2eme2emm2emüen1aen3f2enie4nre4nten1ue1nüe1ny2e1oe2odeo2ve1ö22epee3pu2e1qer1ae1räer1c2ereer3h2eri2eru2esbes2c2esfes3l2esmes2ö2esp2esres3ze3teet2he3ti2etoe3tö2etre3tü2etz1euke1um2euneu1p2eut2eux2e1ve3vo2ewae3wä2eweew2s2ex_3exp2exu1exzey4neys4ez2wfab43facf4ahf2alf2arf3atfä1cf1äu2f1cfe2c3fet3fewf1ex3fez2f1fff2efff4ff3lff2sfid2fi2r3fis2f1jf2l22fl_1fläf3löf4lü2föf2f1qf2r2f3ruf3rü4f1sf3scf3sifs2tf2süf3sy4f1tf2thf3tö3fugf1umf2ur3fut2fübfü2r2f1v2f1w2f1zfz2afz2öfzu33ga_ga1cga1kgäs5gä4ugbi22g1cg1dag1dog1dögd3rgdt4gd1uge1cged4gef4g2el3gen4g1ggg3lgg4r2g1hgh2egh1lg2hugh1wgi2m2g1j2gl_g2lag2lä2gls2glug2lyg1n22gn_g2nag2no2gns2gnug2nüg2nygo4a2goggo1igo1y2g1qg2r4gse2g4slgso2gsp4g4swg3syg3tegt3hg3tigt4rgt3tg3tügu1cgu2egu2sgu2t2gübgür1güs32g1v2g3w3haah1ahh1aph2as2h1c2heahe3x2hi_h1ia2hikhi2n2hio2hiph2ishlb4hld4hlg4h2lohlt22h1mh2moh3möhm2sh2muh2nähn2eh1nu2ho_2hodhoe22hoih2on2hoo3hov1h2öhö2ch4örhr1chr3dhrg2h2rih3rührz2hss24h1tht1ah2thhto2htt2h3tühu1chu2n2hurhüs32h1vhvi23hyg3hyphz2ahz2o2ia_i2ab2iaci2afi2ahi2aj2ial2iani2apia1qi3aui1ämiär2i1ät2i1bib2oib1ridt4id2ui2dyie1ci1eiieo2i1exif3lif3rif2s2i1gi2gl4i1hi3heih3nih3rih1wi3i2ii4gii4s2i1ki2kni1la6ilbilf22ilo2im_2imo2imt2imu2inein3fi1nö2inpin1ui1ny2i1oio1cio2dion2i2ori2oui2ovio2x2ip_i1pai1pei1pr2ips2ipu2i1qi1räir1cir2e2irki1ro2is_2isei2sü4itäi3töi3tüi3u2ium12i1v2i1wi2xaix2eix3t2i1zi2zöja1c2jatje2aje1cje2gjit3joa3jo2iju2kjus33ka_ka1ck2adka2o3kaskär2kby42k3c2keoki1ckik4ki3o3kir2kiz2k1jk2lek1lu2k1mk2n4k3nek3nu3knü3komk2onk2osko2wkö2fk1ölk2r42k1skst42k1tk2thktt2k3tüku1ckuh12kübkü1c2k1v2k1w3la_laa21lad2laf2lawlä1c3läd2läf1läs4lät1läu2l1blb2slb2u2l1c4l1dld3rl4dsldt4l2dü3le_2lec3ledle2e3leh2leple2u3lev2l1f2l1gl3goli1clid2l2ie3lig2limli2o2lir3liu4l3j2l1klk2llk2s2l1lllb4llg4llk4ll3t2l1mlm3plm3tlnd2l1nul1nü3loe3lok2löd4lög4löß2l1plp2fl3pu2l1q4l1sl2st4l1tl2thl3til4tsltt2l3tü1luf4luo2lur3lux2lüb5lüd2l1v2l3wly3cly1u2l1zl2zöm1abma1f3mas3maßm4aym3br2m3c2m1dmd1ameb43mehme3o3mesmeu12m1h3migmi2o3mit2m1jmk4n2m1lm3lam3li4m1mmmd2mmm2mm3pmm2sm3ni3mohmom2m2on3mos3motmo2umo1ymö2c4mökm1öl2m1pm2pf2m1q2m1sm3säm3scm3semss2m2süm3sy2m1tm2thm3tömts1mtt2m3tümt3zmu1a3mun2müb3mün3müt2m1v2m1wmwa2my1amy4s2m1z3na_n2acn2ag3nas3näs2näu4n1cn2ck2n1dn2dön2dü3ne_2necn1efne2l3nenne2one2un2ew3nez2n1fnf2änff4n3finf4lnf4rnf3s4n1gngg4ng3mn2gnn3hän3hen3hu3nian4ie3niknin1n2ip2nitni3v3nix2n1k4n1nnn3fn3ni3no_no1cn1of3nov3noz2nödn2öt2n1q4n1snsp4n3sy2n1tn3tin3ton3tön4tsn3tü1nud3nuenuf21nug1nuinu2n2nup2nur1nut1nuu1nuz3nü_3nüs1nüt4n1w1nyh1nyr1nys1nyw2n1znz3so4aco4adoa4go4aho2aro2aso4ato5au2obbob2e1objob1l2obüo1ceo1ck2odrodt42o1eoe2bo2ecoe2doe2hoe2lo2eso2etoe2x2ofa2ofiof3l2ofo2oft2o1go3ghog4nogs2o1häo1heo3hio1hooh1soh3to1huoh1wo3ieo1imo1inoi4roi1t2o1j2o1kokt2o1lao1läol2io3loo1luoms22ona2onä2onc2oneong2o1nuon3v1onyon3zoof2o1opo1or2opho1pi2oplo1pr2or_or1aor1c2ore2orf2orh2orm2orq2orr2orso3ruo2rü2orw2osios1po3sy2o1t4oteot2hot2i4otoo3tüo1uh2oulo1um2our2ouv2o1ü2o1wo3wiox2aox2eo2xuo1yoo3ziö1b2öbs3ödi3öf3lög3lög3rö1heö1huök2s3öl_öl3söm2sön2eö3niön2sö1nuö1peör1cör1oöru4ö2sa2öseö2spö3suöt2höze31paa1pacpag41pak1papp2ar2paß1pat1pau3päd3pär3päs2p1b2p3cpda41pe_pe2a1pedpei11pel1pem1pen3pet4pf_pff4pf3r2p1g4ph_ph2a2phä2phb2phf2phgph2iph2l2phmph2n2phöph4r2phs2phzpid23pik1pilpi2o3pip3pispku22pl_3pläp4lo2p1npo1c3podpo2i3pok3polp2oppo2wpo3xpö2c2p1ppp3lppt2p2r2p4rä2p1s4ps_p3sep2söps2pp2st2p1tpt1ap3tep2thp3tiptt2ptü4pt3zpu1apub42puc2pur3put1püf2pülpün22p1v2p1w3py1pys4py3t2p1zr1abr2afr2alr2apr1arr2as2raß1rat1raür2ax4räf4räg2räh2rämrä2u2r1brbb2rb2orb2srb2urby4r1cer2ckr1cr2r1dr2dördt43re_2reäre1e3regre2u2reür1ew3rez2r1frf2är3ferf2u2r1grgt4r1h22rh_2rha2rhä2rhö2rhsr2ie3rigr2isr2it2r1j2r1krk4n4r1lr3lar3lerl2or3lörl3t4r1mrm2urnd4r3nern3frng2r3nirn1ör1nur1nür1nyro1c3roir2on4roßr1ök1röl4röpr1örrp4arp4erpf4r3por3pu2r1rrrb2rr1cr3ru4r1sr3sorss24r1tr3tir3tör4tsr3türt3zru1a3ruf2rumru2n3rut4ruz2rüb2r1v2r1wry2c2r1zrz2ö3sa_s1an3sats1aus3av3säls2ci4scl2sco3see3seq3set2s1hsh2as3häsh3ns3hösh4rsib43sig3sio2s3j4sk_sk4a4skbs3kesk4lsk4n4skö4skss3läsl3bs3les3li4sna4snö3so_so1c3sogso2h3somso3o3sos3sov3sowsö2csö2fs1öks1ös1sp2s2pä2spl2spt4spy2s1q6s1ss3sessp46st_s2ta2stb2stdst2e2stf2stg2stj2stk2stl2stm2stns2to3stö2stp2stqs2tr3stü2stv2stwsu2nsu2s3süc3sün4s3v2s3w1s4ysyl12s1zs3zü2ß1c2ß1d2ß1f2ß1h2ß1l2ß1mß1o2ßst22ß1tß3ti2ß1ü2ß1v2ß1w2ß1z3ta_4taatah22tam3tav3tax4täbtä1c4täd3täe3täg2täh4tämt1äptä2st2ät2täx4t1ct3cr3te_t2ef2teh3ten3testet22th_2thcth2eth2i2thk4thö2thp2ths2thü2thvt2hy3tig3tik2tim3tio3tip3tis3tiv2t1jtl4e4t3m3to_to1c3tod3ton3too4toß3tow4töftö4l3tön4tößtpf42t1q2tr_try1ts1ot2söt3sy4t1tt3tit3tot3töt3tut3tü2tub3tuc2tud3tue4tuf2tuh2tuk3tus4tüb3tüf3tüm4t3v4t3wtwa21ty13typtys44t1ztz1äu1amu1auu1ayu1ämu1äu2u1bub2lub1r2u1dud2s2u1eue2cu2eguen1u2ep2uffuf3luf3r2u1gu2glugo3u2göu2güu3heuh1wu1ieu3iguk4au1keu1kiuk4nuk2öu1krulg4u2lü1umf1umg1umk1uml4ummum3n1umr1umz2un_u3ne2ung2unku3no1unruns21unt1unw2unzu3ofu1pau1piu1pr2ur_u1raurd2u1rou1röur3purt2u3ruurü2u2sü2u1ß2u1tu3teuto1u3töu3tüu1ü2u3v4ux2eux3tu1ya2u1zuz2e2übc2übdübe2üb3lüb3rüd3rüf3lü2gnüg3süh1aü1heüh1iüh1sü1huüh1wü1k2ül1aül2cül4eü1luün2sünt2ü1nuü1peü1piür1aürr2ür2süs2ava1cvas2v4at2v1b2v1dve3bve3cve3dve3hve4ive3over1ves3ve3v2v1g2v1hvi2cvig22v1k2v1l2v1m3vol2v1pvs2e2v3t2v1v2v1w2v1z1waa1wag1wah1walwa2p3was1wäh1wäl3wäswbu22w1c2w1d1weg1wehwe2i1wet2w1g2w3h1widwi2ewik21wil2w1k2w1l2w1mwn3s1wohwot21wöc2w1pw3ro2w1sws2t2w3twti21wucwul4wus21wühwül4wün32w1w1xa_1xaexa2m2x1b2x1cx1emxen33xes2x1f2x1g2x1hxib4xi1cxi3gxil12x1l2x1m2x1nx1or4x1p2x1r4x1txt1äxts21xu12x1v2x1w3xy_3xys1yacy1ary1äty1c2yd4ry2efye2ty1f2ygi2yg2ly1i4y1k2yl3cynt2y1nuy1ofy1ouypa2ype2y2pfy3phypo3y3riy3royrr2ys2cyse1ys2py1t2yu2ry1z2za3cz1ad3zahz1anz1arz1asz1är2z3czdä13ze_zem22z1hzi2o2z1jz3la3zolzo2oz1orz1öl2z1qz3saz3shz3skz3sz2z1tz3tiz3töz3tüzu3azub4zud4zu3kzuz22züb2z1v4z1zz3zizz2ö", - 5 : "_ab1a_ab3l_abo2_ack2_ag4n_ag4r_ag2u_ai2s_al2e_ang2_an3s_aps2_as3t_au3d_ät2s_bik2_by4t_dab4_de1i_de1s_eke2_enn2_epi1_er1e_erf4_er1i_ers2_es1p_et2s_eu3t_exa4_ext4_fe2i_fi2s_ga4t_ge3u_im3s_inn2_jor3_ka2i_ki2e_kus2_mäu2_ne2s_ni4e_nob4_nus4_ob1a_obe2_om2a_or2a_ort2_ozo2_pro1_ro4a_ro3m_rü1b_sch4_sha2_te2e_te2f_te2s_ti2a_ti2s_tit2_to2w_umo2_un3d_un3e_un3g_un3s_ur2i_ut2a_ut3r_übe4_vol2_vo4r_wa2s_wi4e_zi2e_zwe23aa1caa2gr4a1an4a2araa3reaart4ab2äuab1ebabe1eabei32abel2abew3abfiab1irab1it2ableab3liab4loa2bo_ab2ofa2bona4bräa2bre2abs_abs2aabst4ab3sz2a3buab1uraby4ta1cem2ach_ach1a2achba1che4achfa1chiach3lach3ma1choach3öach3ra4chtach3ü2achv2ada_ad2agad1an3adap4adav1a2dä2ade_2aden4a3diad2obad3ru2ads2ad3stad3szad2t1ad4tead4tiad4tr2a1e1a3e2da3e2ia3el_a2eliae2o3a2faka2fana3faraf4ata2faua2fexaf2fl2af3la3f2oafo1saf3raaf3räaf3reaf3röaf2spag1araga3sag1auag2daag2diag2duage1i2ages1aggr2a2glag4laa4glöag3naago2b2agorag4roag3säags3p2a1ha2a1heahe1sa1h2iahin3ah2löa1hom1ahorah1osa2h3öahr1aah3riaht3said2sa3ik_a1indain4ea1ingai2saais2iais2pais3saive3a3ivla3ivs2akalak4at4a1kea2kes2a1ki2ak3lak4li2a1kr3akroak3sh2akta2aktba2kun4a3kü2ala_al1abal1afal1ama2larala4s2alatal1aual1ämalb3sal2däal2drald3sal3dualen1ale2pale4t3algialk3s3almba2l1öal3öfal2ös1alphal2ufa2lumal1ur2am2aamab4ama3gama1s2ame_a2meba3meta2mew2amir4amml2am2sam3saam3sp3amt_am4tö2anaba3nad2anam2anana3natan1äs4and_2andua3nee2anfian3fu4ang_2angf2angoang1r2ank_an3klank1ran2ky2anmu3annäan1oda3nolan1ora3nos2anshant2i2anto1antr3antw2a3nu2anzb2anzg2anzs1anzü2anzwa1os32a3paa3pela3phäapo1sa2pot3appla3ra_ar2abarad22arb_2arbiar2bl2arbr2arbt2arbu1ar1card2ia2reaa4rega2reha3renare3uar2ewarf1rar2glar2gnarks4arm2äarms4arn2e2a1roar1oba3rolar1opar2rh2arsa2arsi2artoart3r2artsar1uhar1umarwa2ar2zä4arzeas3aua2s1äa2scaa2sebas2era3ses2asisa2s1pas2phas2pia3spuas2stas3teas3tias3to2astraßen3at1adat4agata3la3tamat1aua2t1ä4ate_a2tebate1cat2ei4atena2tep4atesat3haathe13athl4a3tiat3räat3reat2saat2siat2soat3taat2tha3tubat2zoatz3tau1a2au2draue2bau2faauff41aufnau3ha4au1iau2isau3lüaums2aun2eau1nu2ausc1ausd1ausg1auslau2so1ausü1ausz2aut_2aute1autoauz2wawi3eax2am2a1yaa1yeuaz2a3ä2b3lä1cheä1chiäch3lä2chrä1chuäck2eäf2fläge1iäge3sä2g3lä2g3räg4ra1ä2gy2ä3heähl1aähl2eäh3neäh3riä3is_ä1iskä2k3lä2k3rälbe2äl2bläl2p3ämt2eän2dräne1sän2f5än2glän2gr2ä3niänk2eän2kränk2säp2pläp2präp4stäre2när2grärk2sär3meärm2sär4spär2stär2thä5s4eäse3tä2s1päs4tr2ä3teätma3ät1obä2t3rät2saät2säät2siät2trät2zwäu2bräude1äuf2eäug3läu2maäun2eäu1nuä3us_äu3seä3usnäu2trba2bl2babsba2da2b1afba2kabak1r2b1amb1ang2banlban3tb1anzbar3bbard2bar3nbarz2ba2scbau3gbau1sba1yobben3bbe4pbb2läbb2lö2b3d4bde1sbe3arb2ebebedi4be1eh3bef4be3g2beib4beil2be3libel3t1ben_ben2iben3nbe1ra3be1sbes2pbe1ur2b1ex2b5f4bfal22b1g22b5h2bhut2bibe2bie2sbik2abil2abi2lubi3nabin2ebi2o1bio3dbi3onbiri1bi3seb1isob2it_bi2tu2b1k4b3lad3blatb3leb3blem3blenb3leub2lie2bligb2linb3lisb2litb4locb3los2blun3blut2b3n2bnis1bo5asb1ob3bo2blbo2brbo3d2bo2ei2b1ofbo3febo1isbond1bo2nebor2sb1ortbo2scbo3thbo2xibö2b32b1p2bpa2gb4ra_b4rahb4ralbrä4u2bre_3brea2bregb3rekb4rer2brigb4rilb4riob3rohb4ronbru4sbs3arbsat2b4särbs2äubs2cabs4cub3se_bse2bbsi4tbs2kubso2rbs2plb3stobtal3b4ts2bu2e3bu3libung4b2urgbu2sabwel32b3z22c1abca3g2ca2pece1nuce3sh2ceta2chac3chaoch1äs1chef4chei2chic2chil2chl2ch2lech2lu2ch2m2chn22chobcho2fch1ohch2r22chra2chrech3rh2chuf2chuh2chum1cka_2ckac2ckal2ckehck1im4ck3l2ck3nck1o22ck3r3c4l2clet4co3dictur6cu2p32d1ab2d1acdagi4da1inda1isda3löd1altd2an_dan2cd1ang2danh2danwd1anz2d1apd2aph2darbda2rod3arrda2rud2arwda1s2da3shdas4t4datmdat2s2dauk2d1äh2d1äpdä3us2d1b4dbe2edbu2c2d1d2ddar2de3brde4cade1e2de3g2deh2ad2eic2deinde2löd2en_de2nadend2de2nide1nu2deolde3osd4er_de1rode3rude2spdes3sde2sude1unde3usd1exi2dexp2d1f42d1g2d2ge_d3gem2d1h2d2hisdi2amdi1cedik2adi2obdi2spdist2di2tadit3sdi2tu3di5v2d1k4d3l2edli2f2d3m22d3n2dob4ld2obrdo3na2dope2dopfd2opp2dorc2dord2dorgd2orp2dortdot4hdö2l13d2ördös1c2d3p2d3rai2drädd4räh4dre_2dreg4drem2d3rhd4ri_d4ried4rifd4rikd4rild3robd3rocd4roidrom2d3roud5rubdrü1bd2sandsch4d3seids2had4shed4shidso2rd2späds2peds2pods2puds3std3stad3stod3strd2sundta2dd5teadt3hodt5s2du1ar2d1uhd1um1d2um_2dumb2dumd2dumf2dumg2dumld2ump2dumr2dumvdung42dunr2duntdus4c2dü4b2d1v22d1z2e3a2beab3lea2g4ea3gaea4geea3gleakt2ea2lae2ameeam1oea2nae3ar_ea2rae3arre3arveas3se3atheau2fe3augebe2i2ebeleb2en2ebeteb2läeb3loeb2lö2eb2oebot2ebö2seb4rueb2s1ebse2ech1äech3lech3mech3ne1chuech1weci2ae3d2aed2dre3deiede2red2gee3d2oeds3tedu2see3a2eeb2lee2ceeede3e1effeef4leef3seeh2aee1imeel2ee1empeena2e2enäe2enbe2ence2enoeen3se2enwee1rae1erde1erke1erlee1roeert2e1erzee3taee2the1e2xe2fate2fäuef1emef2er2eff_1effief2flefi2s1efkuef4rüef3soe3funeg1d4ege1ue2gloeg3nieg2thegus32e1hae3hal2e1häeh2eceh2ele3hereh1läeh3loeh3mueh3naeh3rieh3sheh3übei2blei3de2eidn1eifrei3gl2eigt2eiguei2kl2eil_eil3de1impei4näeink4ei3o2eip2fei3ree1irr2eitäei3teei2theitt4e3ke_e3kene3kese3keye3k2le3k2wela2cel1afela2sel2da2ele_elea2ele2c2eleh2elei1eleke3lepe3let2elev1elf_el3feelf4l1elfm1elftel3leel3naelö2selto22e1luel1urelu2se2lyaema2kem2daeme2ieme2se3mone2mop3empfem2saem2stem3t21emul4ena_2enac4enahe4nake2nap2ene_ene2c2enem2enen2enesenf2aenf2uen2gl1engpe3nice3niee3nioe3nite2nofen1ohe3noteno2w2e1nö4enpuen3sp1entb1entd1entnen3tu2entü1entw1entz2enut4enwüeo2b1eo2fee3on_e3onfe3onle3onre3onse3opfeop4te3orbe2o1se3os_eo1ulepa2gep3leep2paep4plep2prept2aepu2se1ra_era2ge1raie2rake1rale1rape2rare1rasera2ße1rawe1razer1äher1ämerb2eer3brer3da1erdber3de4ere_ere2le3rem4ereserf4rerg2lerg3s2erhüe3ribe3rio2erk_erk3t2ernie1ro_er3oae1roge1roke1role1rome3rone1rose1rouer1oxe1rozerö2de1röh4eröker1öser3p4er3rä2erru2errüer3sker3sner3sz2ertier3uzerü4bes3abe3safes3akesa2vesch2e3se_es2eles2hue2siles3kae4skees3kles3kue3spiess2aess2e2essoes2spe1stre1stues1umetab4et4ag3etapet4atet2auet1ähet2ene3thaet3hüeti2met2inet4riet4shet2stet2thetwa4et2zäet2zweu1a2eu2gaeugs4euil4eu1ine3um_e3umle3umseun2eeu1o23euroeu3speust4eut2heu3toeu2zw4everewä2se2we_e3wirewi2se3witex3atex1er2exie1exis2e3xye3z2aezi2sfab5sfa2dafa2drfaib4fa2ke2fanb2fanf2fanlf1anp2fanrfan3s2fanw2f1apfa3shfa2tof3aug3f4avfa2xa2f1b22f3d4f2echfe2drfe2eife1emfef4lf4eiefel3tf2em_fem4m2fempfe2nafe2näfen3gfe2nof1entf2er_fe1raf2ernfe1rof2ertf1erwfe2st2fexpff3arff1auffe2eff3eiffe2mff4enf2fexff4laff4lof3fluf3flüff3roffs3t4f3g2fge3s2f1h2fi4dsfien3fi2krfil3dfilg4fi3lif2inafi3nifin2sfi3olfi3rafis2afi3sofis2pfi3tu4f1k4f3ladf3lapf4läcf3länf4leef3lerf4limf3lonflo2wf4luc2f3m22f3n2fni2s2f1ob2f1offo2nafo2nu2f1op3form2f1ölför2s4f1p2f4racf5radf5rap2fre_f3rec2fregf4reufri2e2frig1frisf3rocfro2sf3rotf2sanfs3arfse2tfs3olfs1prfs3s4fst2af3tabft1afft1anft1arf3tatft3hoft1opft2s1ft3scftse4ft3stf2tumf3tü1ftü2bftwa4ft3z23f2uhfung42funm2funt2gabfgab4r2gabz2gadlga1flga3gega2kagal2a2ganbgan3d2ganh2ganlgans2g2ant2garb2garcga3ruga2sag3ascga2siga3spgas3sgat3h2gatmgau1cg2aukg1aus2g1äp2g3b2gber2gby4tgd2eng2dergd2esgd3s2ge3a2geb2age1e2ge1imge1irge3lege3lüge3migem2uge3nagen3ggenk4gen3ngeo2rge3p4ge1ragerm4ge1roge3siget2aget3sge1ul2g1f4gga4tgg4log2g3n3gh2rgie3bgie3ggi2elgi2gugi3negi3tigi3tugi4us4g3k2g3lacg2l4e2gle_3gleag3lecg3leg2glehg3len2glesg2lia2glibg2lik4gling2lio2glisg2lizglo3gg2lomglu2t3g2lü2g1m2g4na_2gnacg4nat3g2näg3nehg3ner2gneug2nieg2nifgno1r2gn3t2g1ob2g1ofgol2ago1rago2s1go3th2g1p2g3räng4rebg4remg4rerg3revg3ridgri2e2grig2grohgron2g4rosgro2ug4ruf2grut4g2s1gsa4gg3salgs3angs3arg3säug3s2cg4scagsch4g4scogsen1gs3ergse4tgsi2dg3silg3solgs3plgsrü2gs5s2gs3thg3stogs3trg3stugs3tügs3un2g1t2gti2mguet42g1uhgu1isgus3agu3segu4stgut1a2g3z2hab2ahab2eh2absh1akahaki3ha1kl2haleh1alph1amth2an_ha3nah1ansha2prh2ardhasi1h1äffh1ärz2h3b22h3d4he3behe2blhe3brhe1chhe3fehe3guhe3heh1eieh1eifh1eighe2im2heiohe3lihe3lohe2lö3hemdhe3mi3hemmh2en_he4nahe2nähen3z4he2ohe3onhe3ph2hera2hermhe3roh1eröhert2he3thh2e2uheu3g2h1f4hfi2s2h3g22h1h2hi2achi2anhi1ce2hi3dh2i2ehi2krhimä3h1infh1inhhi3nihi4onhi3oshi2phh2i2rhi3rehi3rihirn1hi3rohir2shis2ahi2sehis2ihis2phi4sthi1th2h1k4h2lach1lash3lawhl1ärh3lebhle3eh3lerh3lesh3lexh2lieh2lifh2liph2lish2lith3lochl1ofhl1oph4lorh3löch3lufh1lüfh3magh3manh4mäch4mähh4mälh4mäuhme1ehm3sahms1ph2n2ahn3adh3namhn3anhn1ärhn3d4h2nelh3nerhn3exh2nich2niehn1imh2niphn3k4h2norhnts2h2nuch2nulho2blho2efho4fahok4l3hole4holo3holzhom2eho2piho1ra2horeh1orgho4saho3slho2spho4st2hot_ho1y2hö3ckhö2s12h3p2hr1achr3adh1raih3rath3räuh2rech3redh3refh3rephre4th3revh3richri4eh3rinh2robh2rofh3rohh3rolh4ronh3rouhr3r4hrs3khr2suhr4swhrs3zhr2thhr2toh3ruhh4rübh2sanh2sauh1stah1stoh1strh1stüh2s1uh2tabh2takht2alh2tarht2ash2tauht1ehh3teth2toph3töpht4riht2soht2sphtti2ht1unht3z2hu2bahu2buhuko5hu2lähu2lohu3mah1umsh1unah1up_h1upshurg2hu3sahut2th4übsh3übuhvil4h2wälhwe1c2hy2thzug4iab4liaf4li3ak_ia2läial3bial3dialk2i5allia2luia2nai3anni3anziap2fi3ar_ia2rai3as_i2asiias3siast4i3at_i4atei3ath1iatri3atsi1är_i1ärsibe2nibi2ki3blai3blei2b1öib3rai4bräich1aich1äi1chei1chiich3lich3mi1choi1chuich1wi3dami2deei2deii2dioidni3i2d3rie3a4ie2bäie2ckie2drie1e2ie2fuie2gaie3heiel3di2elii1elli2elsielt42i1eni3en_ie2näi3endi2enei3enfi3enhi3enji3enki3enpi3enrien2sie1nui3enwi3enzi4eriier3ki1ernie2röies2pi1ettieu2eie1unif1arif4atif1auife2iif2enif2flif4läi1flui1flüif4rai1freif4rüif3seif3spif2taiga3iig3läig4noi3g2oig4raig3säig4seig3soihe4ni4is_i4i3tik1arik1ini3klaik3leiko5si2kölik3räik3reik3soiks2tikum4i2kunil1aui1lä1il2dail2drile2hill2ei1lu2i2lumi3lusil3v4im4ati2meji3men1immo1impoimp4s1impuim2sti4nabin2afina4sin1äs2indri2nedin3eiine2x2ingain2gl2ings2inig2inis2inn_2innlin1odin1orin3suint2hi2odaio3e4iof4li2o3hio3k4i3ol_i3om_i3omsi3on_io3nai2onyi2o1pio2pfi3opsi3or_i3orci3orpi3orsi3orti3os_i3ot_i3oz_i1ö2ki1ös_ipen3i3per2i1piipi2si3p4lip2plip3pui1r2ai3radirat2ir2bli5reeir2glirg4sir2heir4mäir2no1ironiro2sir3seir3shir2stiru3si3saci2scaise3eise2nisi2ais1inis1opis1pais1peis3sais2sti2s3tis4töis4tüi3takit1ani3tatität22itelite2ni2tex1itiii2tobit3rei3truit2sait2säit2soit1uhit2zäitz2iiu3seive4niwur2iz1apiz1auize2niz2eri2z1wja3nejani1ja1stjet3tjo2b1joni1jord2jo2scjou4lju2blju3nijur2ojute1k3a2aka3ar2kabh2kabska1frka1inka3kak1allk3ama3kampka3nakand4kan2e2kanlk1anskanu32kanw2karbk2ardk2argk2ark2karnk2arskar3tkaru2k2arwka3sekasi1kas3t2katt2k1ähkäse3kä1th2k3b2kbo4n2k1d2kdrü3k1effkege2ke2glk1einkei3skeit2ke2läk4eltke2nake2noke2plk2er_ke1rak2erck2erlk1erokerz2k6es_ket3sketz22k1ex2k3f42k1g22k1h4kho3mki3a4ki2elki3liki3lok2imik2in_2kinhk2inik2innkin3skio4skis2pkist2ki3zi2k1k44kla_4kle_4klehkle2ik3les2klic2kligk2link3lip4klizk4lopklö2sk2lötk4neiko2al2kobjkoff4ko1i4ko3leko4muko3nu2kop_ko1pe2kops2kopzko3riko2spko4stko3tako3ti2k1ouk1o2x2k1p2k4raz2kre_2kreg2k3rh2krib3krit2krufkrü1bk2sank2sauk3senk3shok3sofks2puks3s2ks2tik2s1uks3unkt1amktä3skte3ek2texkt3hok3topkt4rokt3s2kts4tkt3z2kul2a4kulpkung42kuntku2roku2spkus3tku2sukür4s2k1z2la3ba2labb2labf2labg2labh3labu2labwla1celad2i2ladm3ladula2falaf3sla2gala2gn2laho1lai12l1al3lalil2amil2ampla2na2lanb2lanf2lanll1anp2lans2larclar3sla2rula2sala3se2lash2lasila2so2laspla4stlat2ala3telat2ilat2s1laug3ländl1ärzlä2sc2läuc2läue3läufl3baclben1l3blälb3lel3blolb4rülb3salb3selb4sklb3splbs4tlch2ald3ablda4gld1all3daml3datld1auld1ärl2deil2dexld2ö2l2dreld4rüld3sald4shld3thl2dumle2asle2bl4leddle3dele3eilef2ale2gäle2gl4lehs4lehtl2eicl2eidl2eitlel3s4lemplem3sl2en_le2nale2näl2enfl2enk3lepa3lepf3leprl2er_lerb4lerk2le1rol1errler3tl1erzle3shlesi1le3sk4lesw2lesyle3th2leto4leudleu2k3leut2lexe2lexzlfe1elf3lolf2trlfur1lga3tlg1d4lg3rel3grolgs3t2l3h2li3acli3arlia1slibi34lickli3da3lie_lig4nli3keli2krli3l2l1imb3limol2in_4lishli2spli3teli3tulk3lolk4nelk4ralk3salk3sälk3sclk3shl3k2ül3lapll3d4ll2esl2lexll3l2l2lopl5lowll3shllt4rllts2llu2fll1urll3z2l2möllmpf4lms2tlm3szl3n4e3lobb2lobjlob2slo1f4lo2fe3lophlo1ralo4räl1ord3lorq3los_lo4sa3loselo2talö2b3l2ö2fl1öhrl1ö4l2lösslp3t42l3r2lre1slrom2lrut4lrü1bl3sexl4shals2pels2pols3s2l3stil3stol3strls1uml2sunlsu3sl2tabltag4lta1ilt1aklt1amlt1ehlt2enlt3hol2toblt1oplto2wlt1öll3törlt1öslt1ötl3trält3sclt2solt1uhlu2drlu2es2lufflu2golu2gu2l1uhlume22lumf2lumll2umpl1umw1lu2n2lunt2lunwl1urnl1urt2luselu2splu2tälüh1l2lymp3ly3nlzo2flz3t2l2z1wm2abe2mabk2mabs2mabtma2drm1agoma2kumali12mall2manbm2anfm2anh2manlm4annm1ansmanu12manzm2app3markmar2om3arzmata2ma3unm1ähnmä1i2m1ärg2m1b4mbe2em2d1äm2deimds2em2dumm2e1c2mecom2eil3meldmell2m2ens2meou3mer_me1ra3mersme4sä4mesumete22m1ex2m1f4mfi4l2m1g2mi2admibi1mi3dami2ermie1smi2ki3milcmi3nami3nimi1nu3mir_3miri3mirs3mirwmise1mi2tami3timi2tu4mitz2m1k2m3k4am3ma_m2mabmm1eimm3simm3spm2mummmül22m1n22mobj3m2odmo2dr4mog_mo3ne3mo2o2moptm1o2xmp2flmp3ta2m3r2m4sapms1asm2saumso2rm2späms2poms2pum3stoms4tümt1abmt1akm3tammt1armt3homt1immti2smt1ösmt2samt2semt1um2m3uhmu3la2mulsmu3namu3nim4unk4munzmu3ramu2spmu2sumwa4rmwel42n1abna2bän3abf4nabgna3bina2bln2abo2naddn2adena2dr2n1af3n2ahn3ahnnai2en3air2n1akna2ka3nakon3aktn2al_n4alena2lu4naly3name3namonam4s2nanbn1and2nanh2nani4nank2nanln1anp2nanr2n1ar3nar_n2ard4narg3nari4narmn2arpn3arzn2as_4naspn4ata3nate2natt2n1au4naufn3aug5naui3n2äcn1ähn2n1ännär4sn1ärznä2scn2ässn1äus2n3b4nbes2nbu2sn3cenn3cernch3mnd2agnd1aun2dein2dobnd1opnd1orn2drönd3shnd2stnd3thndt4r2neaune2bl3necane1ckne2de2nee3ne3g43nehm2n1ein2eidne2kenel3bne3lin2em_n4en_n2enbn2encn2enhne2nine2non2envn2enwne3osne1ranere2n1erfn1erh3nerin1erkn2erpn2erv3n2esne2sänes4cnesi1ne4thneu1cneu3g2n1exnexa4nf1aknfe2in4fo_nft2onft4sn2f1ung1adng1d4n3ge_n3gefng2enn3glän2glon2glöng3neng3tsn2gum2n1h2n3hann3harn3haunhe2rni3atnib4l2n1idni2deni1elnig2anig3rnik3t3n2ilnim2oni2obni3olni3os3n2is3nita3nitäni2tinit4sni3tun3kalnk2amnke2cnk2lonk2lunk4nank2öfn2kölnk3ti4n3l22n1m4nna2bn3narnn2exnn3g4n2nofnn3senn2thnn1ur2nobm2no2dno3drnol2eno3na3nor_nor2a2norc3norh3norm3norsn1ortno3shno2spno2täno2tr2nö2f2n3p4npa2gnpro1npsy32n3r2nre1sns1ebn3sexn3siln4sphn2sponsrü2ns3s2ns2tunst2ün2styns2umnt2alnt1ämn3tärnte1ent1ehnt2enn3ternteu3nti3cnti1tntmo2nto1snt3sants2onts2pnts2tntum4nt3z21nu3anu4alnubi11nu1cnu2esnu2fe2n1uhnu3k4n2um_2numf2numg1numm2numr2numz2nuna4nuntnurs41nu2snu3scnu3senu3slnus1pnu2ta2nü4bnür1cnürs22n1v2n3ver2nymu2n1yon2zadn2zann2zarn2zärnz1ecn2zornz2öln2zwön2zwu2o3a2oa3deo4a3ioa3keoa4kloa3seob2alo3bar2o3biobi4t2o3boob3roob3skobs2pobu2s2oby4och1ao1cheoch1ioch3loch3moch1ooch3roch1socht2o1chuoch1wo3ckeo3ckio2ckoock3to3d2aod2dro3debode2so3diro2donodo4so2dre2o3duoe2n1o3etsof1amof1auof2eno3ferof2fuof1laof4läof3raof3räof4rüof3thoga3dog2glog2loog3spo1h4aohl1aoh3looh2lu1ohngoh2ni1ohnmoh2noo2h3öohr1aoh1ro2o1hyo1i2do2isco1ismoki4ool2arol4droler2ol2flol2glol2grol2klolk3rol2lu3olymo2mabo2mebome3co2melo2mepom2esom3maomtu3o2naeon1apo3natone2ionen3on3f2ong4rong3son3gu4o3nion3k2onli4on3ne2ono1ons1pon3taont2hont3s2onukoo2k3oo2tr2o1ö22o1paopab4opa5so1peiope2no1pes2opf_o2pfeopf1lop3li2o3poop4plop2pr1opsiop3sz1opt2op3tho1ra_2orakor2amo1raso3r2äor3ätorb2lor2ce4orda1ordnor2do2ordr2ords2ordwore2aore2hor1eror2glor2gn2orgr2oritork2aork2s2o1roor1opor1or2o1röor3rhor3saors2cor2ufo3s2aos3ados4anosa1sos4co2o3seose2no3s2kos2loosmo3os2saos4säost3hot1äro2tebote2so3theotli4ot2oroto1sot3reot3scots1pot2thotz2eou2ceou2geouri22o3vi2o3voo3weco2xidoy1s42o1z2ozon1ö2bleö2b3röch1lö2chröch2söcht4öd2stöf2flöh3leöh3riö2ko5ö2k3röl1a2öl1eiöl1emöl1imöl1inöl3laöl1o2öls2zönn2eön3scön3spöpf3lör3a2ör2drör2glör2klör2trös2stös3teös3tröt2trpa2drpa2elpa3ghpa1ho1pala1paläpa3li2palt2panlpapi23para1parc2parg2parppa4stpat4cpat4epat4rp1auf3pä2cpät3hpä2to2p1d2pea4rpech1pe2en2pef42peicpe1im1peitpena4pen3zpe1ra1perl3perope3sapes3sp2fadpf3aip3fe_p2feipf3lopf3lup2forpf1ra2pfs2pf3slpf3sz2pf3tpgra2p1hopphu4s2p1hüpi2a3pias4pi2elpi4em3pierpi3lepin2epi3oipi2pe4pisopi1thpit2s2pitz2p1k2pkur11p2l23p4lap5la_p5lad2ple_p4legp4lemple3x2pligp4likp4liz2p3lu2p1m22p1ohpo3id2poilpo3li2pondpont2po2plpo3pt2pornpor3spos2epo3ta3potepö2blpöl4sp2p1hp3phopp1läp2plep2pripp3sa1prak1prax1präd1präg3präm3präs4pre_2prec1pred1preipri4e2prig1p4ro2proc3prod3prog3proj1prüfps4anp3s2hps1idp3stapst3rps2tu3p2syps2zept2abpt3atpte4lp2tospto2wp2t3rpt3s2pt1um3p2typu2dr2p1uh4pundpun2s2puntput2spwa4rra2ab2raacr3aalra3ar2rabd2rabfra2br2rabs2rabt2rabw1rabyra1cer2ack1r2ad3radf3radl1ra2era3erra3gera2gn4raht2raicra3ke3raküra3le2ralgr4aliralk2r4alsr3altra2lu3ralyra3mar2amer2amir2amm2ramt4ranc2ranf2ranl2ranr2rans2rapfr2arar2arkr2arpras2ar4at_r3atlrat4r4rau_4raud2rauf2raug3raum3r2äd3rän_3räni3räns2r1ärrä1raräu2s4räutr2bakr3blärb2lörb4rirb3serbs1orb3sprch3lrch3mrch3rrch1wr2dafr4dapr2deir3donrd1osrd4rird3tard3thrdwa4re3adre2amreb1rre2bür2ech4redd3refe4reff3refl3refo5reg_rehl4r1ehrr2ei_2reigr1einre2kere3larel2ere3lorelu2r4em_r2emi4remur4en_re2nir2enz3repe3repo4reppr1erfr1ergr1erkr1erlrer2nr1erör1ertr1erwre2sa2ress3rest3resu2reta2reulre2wi4rezirf4lör3flürf4rurf4rürf2sarf2targ2abr3ge_r3gerr3gesrg3lurg3nar2ha_r3her2rholrhu2sri2amria1sri3at4rickri1elri1euri2frrif3s5rig_5rige5rigjrig3l4rigrrik1l2rimpr2ina2rink3rinn2rins2rintr1inw2rion4r1irris2ari3so3rissrit4r5riturk4amrk4lork2lurk2sprk2umrku2nrle2arle2ir3l2irli2srm3d2rmo1srmt2arna2brna4nr3natrn3drrn2ehrn2eirne2nr5nesr4nexr3nodr1nötrn1ur2robj1robo2robsro3e4roh1lroh3nro1irro3lerol3s2roly4rom_4romm4romt3ronnrons2ro1nyro3phr2oraro2ro1rosero3shros2pro3tu3rout3römir2ös_2r1p2r2plirpro1rps3trr2abrr2arrr1ämr3r2er4rewrr2herrik2rrn3arr2str3r2ürrü1brs2anrs2aursen1r3s2irs2klr4skor4skrrs4nor3stor3strrs2turs4türtal2rt1amrt1ärr2thirto1prt1orrt2sart2sorube2ru2drru2fa3ruinru1isru2mi4rumz2rund4runn2runwru3prrur1eru2strut3hru2toru2zwrü1ch4rümmrves4ry2l3rz2anr2zarr2zasrz1idrz1oprz3terz2thr3zwä3s4aa2s1abs3abbsa2besa2blsa2br4sabss1adm3safasa2fe3sagasa2gr3s4ai2s1aksa2ka3sal_s1all3s2am5samms2an_s2and2s1apsa2po3sapr2s1ar3sar_3saris3arrsat2as4atesat2i4satmsa2trsa3ts3sau_3saue3saum3saurs3auss3ähns1ält2s1äm2s1är3s2ät2säuß4s3b4sba4nsber22scams2cans2cap4s3ce6sch_s4chä4schb4schc2schd2schf2schg2schh2schks4chl2schp2schq6schss2chu3schü2schvsch2w2schz3scor4s3d4sde1sse3adse3ap4sedese2els1effse2glseg4r3s2ehse3heseh1lseh1sseh3ts1ein3s2eks2el_s2elns2elsse3mase2näse2noseo2r3ser_3seraser3gs1erh3seriseru25ses_2s1ex3sex_se2xe4sexpsex3t4s3f4sflo44s3g2sha2k4shals3h2e3shidshi4r3showsi2adsi2am2siat5si1c3s2iesien3si1f4sig4nsi2grsi2klsik3tsi2ku3silos2in_sion43s2issi2sasis3s3s2itsit3rsi3tusive32s1k24skam4skass4keps2kifs2kig4skirski3s3skiz4skom4skor2s1l23slal4slan2s3m21smog2s3n4snab4so3et3softs1oheso3la3s2onsone23sor_s1orc3sorsso4rus4os_3s4oz2spaa4spaks2pan4spap3spaß2spat4spaus2paz3spähs2pee2spel4spet4s3pf2sphas3phe2sphispi2k4spil3spio4spip4spis4spla4splä4sple2spod2spog2spok4spol4spr_3spru2s3ps2spun2spup3spur4sput4s3r4srom2ss1acs5safs3sagss1ajs3sals3s2äss1ecss2erss4ess4s3ls3spiss3s2sst2ass2tis3sto6sta_3staast2ac4stag3stah2stakst1as2stax3s2tä4stäg2st3c4ste_2steas2ted4stees2tegs2tel2stem6stens2tep2ster4stes2stetst3ev2stex4s2ths4thist3ho2stia2stibs2ticsti2e2stig2stiks2til2stio2stip4stiss2tit2stiv2sto_s3tobsto3d1stof4ston4stoo1stop3stoß4stou2stow4stoz4stöns4tör1stub4stuc2stue3stuf3stuhstu2n2stus1stüc1stütsu1ansubs23su1c2s1uhsu1issult2s2ume3summsu4nes1unf4sunt3s2upsup3psu2rasu3sasus1esu3sh2sü2bsü2d1süd3usweh24swie4swilsy4n34s3zas2zes4szets2zis4s3zu2ß1a22ß1b22ß1ec2ß1eiße2naße2niße2noßer3t2ß3g2ßig4s2ß1in2ß1k4ßler32ß1n22ß1p22ß3r22ß1s22ß1um5taan4tab_t1abb4tabf2tabg2tabh2tabkt3abnta2br4tabsta2bü2tabw2tabz2t1ac3tacutadi33taf_t1afgt1afr3t2agta2gat3agotai4r2takzta2latal3d3talo2talt3tameta2mot1amt3tan_4tanb4tandta3ne4tanf2tang3tanit2ank4tanlt1ans2tanwta3or2tapfta2pl4tarb2tarkta2ruta3sa3tasct1aspta2tht3atlt4atm2tattt1auft1auk3taum4tägyt1ämtt2är_2tärm2tärz4tätt4t3b2t3chat3chetch2itch3lt2chutch1w4t3d4tdun2te2a22teakte3alte3an3tebat2ech2teckte1em3teha3tehä3tei_teik43teiltekt23tel_3telg3telk3teln3telp3tels3tem_3tema2temmtem3st6en_te2nät4enbten3gt4enhte2nit4enjtenk2t4enmten3nterd2t4erit4erot3erötert2teru2t2est4tetl3teuf3teumte1unte2vite1xa4texp3text2texz4t1f44t1g2tger22th2at2hag2t3hät4he_2thebt2hec2theit2hen3theot2hest2heut3him4th3l4th3m2th3n1t2hot3hoft3horthou22thub2thylti2adtia2m3tib4ti1ce2tieb2tiehti1elti2er2tießti1etti1euti1fr4tiftti2kl3tilgti2luti3nat1inf2tinkt1insti1nuti1rhti2spti3tutium2tive3ti2za4t3k44t3l26t5litmal22t5n4to4asto5at4tobjtob2l3tok43tole2tomg3topo3tor_to1ra4torct1ord3tore3torsto2ruto3scto3shto4sktos2p4tossto1ßu3totrtots23t4ou3töch4t1ökt1öst4t3p21t2r43trag3trak3tral4traß3träc3träg4träs4träß4trec3tref4tregt4remt4rert4reut3rev2trez2t3rh3trie3triot4rip3triu3tro_3troe3tront4rop3troyt3röc3trös3trua4truktrum2t4rübt4rügt4sabt3sacts1adts1alt2sants1ast2sauts1änts3ehts1emtsen1ts3krt3soltso2rt3sout2spät2spht2spots3s4t1st4ts3thts2tut2s1uts3untt1abtt2actt1akt3tantta1st3telttes1tt3rütt2sotu1antuf2etuff3tul2at2um_2tumf2tumg2tumk2tumr2tumz3tun_2tund3tungtun2i2tuntt1up_tu2rätur1c3turntu2rotu4rutu2satu2sotu3ta3tüch3tür_tür1c3türe3türg4tütztwi4ety2pat2za4tz1agtz1altz1aut3zestz1int2zortz2thtzug4tz1wätz1witz1wuu1a2bu1a2cuad4ru1al_u1alfu1alsual3tua2luu3ar_u1arsua3sauat2iu3b4iu2bopub3räu2bübu1ce2uch1auch1äu1cheu1chiuch3luch3much3nu1chuuch3üuch1wu3d2au2donud3rau3druud3scue2enu2elaue2leueli4ue2miue2naue2näue2nouer3ou3erru2escue2tau3fahuf1akuf3aru3fasuf1auuff4luffs4ufo2ruf3säu2fumug1afug1akuga4sug1auug3d2ug2glug3huug3laug3läug3lou4gluu2g3nug1orug3roug3seug3siuh2auuhe3suh1lauhr1auh3riuhrt4uh2ruuh4rüui2chui1emu4igeu1in_u1insu1k2luku2sul1abul1amula2sul1ämul2drule2nule2tu2lexul5f4uli2kul2knull3sulo2iul1or2ultaul3thult3sum2anum2enum1irumm2aum2suum3t2um2un2una_1unabun3acun2alun3anun3at1unda1undd1undf1undn1undv1undzune2bung5hun2grungs3u2ni_un2idu2nifun2imuni2r2unis3unkuunna2uno4run2osun3se1unsiun3skun3spun3taun3trunt3su1o2bu3or_u3orsu1os_uote2u1pe2uper1up2faup2plup2prupt1oup4tru2rab2u1räur1änurch1ur3diure2turf3tur1imurk2sur3oau3rolur1oruro1sur3teur2zaur2zäur2ziur2zous4eluske2u3sohus1opus1ouu2spou2spuus3tru1stuut1egut2eiut2esut2etu4tevutfi4u2thiu2thuuto3cu3tomuto3nut2orut3rüuts2put3teutts2ut2zo2u3u2uz1weuz3z4über3ü1cheüch3lüd3a4üd1o4üd3s2üdsa1üd3t4ü2f1aüfer2üf2flü2f1iüf2toü2g3lüg4stühl2eüh3moüh3neühn2süh1roühs2püh3teül2laül2loü2n1aün2daün2dründ3sünen3ün2faün2frünn2sün3scün3seün3spüp2plür2flür2frü1ro1ür3scür3seürt2hüse3hüse3lüse1süs2stüt2s1üt2trütz2e2v1abval2s2varbvat3t2v1auve3arveau1ve3lave3leve3love3maven2cve3neve3nive3növer3averd2vere2verf4verg4ve3river3kvers2vert2ver3uve3tavete1ve3trve3x22v1f2vi3arvi2elvima2vi3v22v1obvo3gavo2gu2v1opvo2r1vor3avor3dvo3rivor3kvor3ovors22v3ra2v3re2v3rov1stav3s2zvu2et2vumfwa5gewa2gnwa3gowai2bwa3nawa3sawa3sewa3sh2wängwäs2c2w1b2we2baweb3swe2e4weed3we2flwe3niwerd22wergwe2röwer2swe2spwe4stwet2s3wettwie3l4wing1wi4r3wirtwi2sp1wisswi3th1wo1c3wolfw3s2kwun2s4wur_wur2s2xa2b1x2adxa1fl1x2ag1x2as4x1d2x1e4gx2em_xens4x2er_2x3euxich2xide2xil2axi2loxiso2xis3s2x1k22x3s2x2t1ax2tänxtfi4x2t1ux1u2ny1al_y1a2myan2gy1anky2chiych3ny2es_yes2pygie5yk3s2y4le_yli4nyl3s2y2l1uyma4tym3p4ympi1y2n1oyno4dy1ontyp1any4p3sy3r2eys3t4y3s2zy3to12z3abzab3l2z1afza3geza3gr2z3akzale3za3li2z1amza3noza3ra2zarbza3reza3ri3zaubz3aug3zaun2z1äc3z2äh2z1äm4z3b4zbü1b2z3d2zeik4ze3me5zen_zen3nze2no3zentz1ergzers2ze3sczes3tze2tr2z1ex2z1f42z1g2zger2z2henzhir3zi3arzig4szil2ez2in_zin2ez2ing2zinhz2innzi3opzirk22z3k42z1l22z1m2zme2e2z3n4znei32z1ofzo2gl2z1oh2zopezo2ri2z3ot2zö2f2z3p42z3r24z1s2zt3hozt3s2zu4chzudi4zu2elzu3f4zu3gl2zumf2zumg2zumlzun2ezung42zuntzu3s4zu3t2zür1cz1wac2zwag2zwahz1war4zwäl2zweg2zwet4zwir2z1woz1wörz1wur2z1wüz3z4azze3s", - 6 : "_ab3ol_ab1or_al3br_alt3s_ampe4_an3d2_angs4_ans2p_ans2t_ari1e_ark2a_ar2sc_au2f3_au4s3_be3ra_ber2e_boge2_da4r1_de2al_de3sk_ehe1i_ei3e2_ei2sp_ei4st_ei2tr_el2bi_elb3s_em3m2_en4gl_en2t3_en4tr_er2da_ere3c_es3ta_es3to_es3tr_eu3g4_eve4r_flug1_for2t_fu2sc_ge3ne_ger2e_ges4a_guss3_he3ri_kamp2_kopf1_le3ni_li4tu_lut2h_mi4t1_näs1c_no4th_ohr5s_oper4_oste2_ost3r_poka2_ram3s_reli1_rom2a_rö2s1_sali1_se3ck_sen3s_se2t1_ski1e_ta2to_tehe3_te3no_te4st_ti2d1_ti5ta_tite4_to2ni_to4pl_tu3ra_tu3ri_uf2e2_ufer1_un3a2_uni4t_uns4t_ur3s2_ver3s_vie2r_voll1_wah4laa2r1aaar3f4aat4s3ab1eilabe2laabe2na2a3berab1erkab1errab1erzab1ins1a2blaab5lag1a2bläab4le_3a2blö2absarab3s2iab3s2p2abst_ab3ste1abteia1chalach1eia3cho_ach1ora1chu2ach1uf4ach1wa1ckarack2enack2seack3sla3d2aba2da2mad3amaade2ra4ade1sades4sadi3enad4resa2f1eca2fentaf1erlaf4fluaf3s2aaf2t1aaf2teiaf2t3raf2tura2f3urag1a2bag1a2dage4naage2saage2seage4siag4ne_a2g3rea2g3riag4setag4spoag3staag3stea2gundahl3a2ahl3szah4n3aah3r2eahrta4ain3spai3s2eais4se2a3kam1a2kazaken2nak1ernak3rauak5tan2aktikak2t3rak3tri2aktstal1a2ga3lalaalami5al3ampal1anaal1ansal1anzal2armal3arral1asial1assal2b1lal2bohal2b3ralds2ta4l1eha2l1eia4leina2l1ela2lengal1epoal1etaal1etha2l1eua4leur3a2lexal2glial2imbali4naal1insalk1ar1alkohal2laball1anal3les1allgäal1opeal3sunal2takal3tamal2tatal2trialt2seal1umbama3d2ama3stame2n1a2meriame3rua4mesea4mesh2ammalam2meiam2minam3stram2t1aam2t1äam4telam2t3ram4tream2t1ua3na3canadi3an1algan2dexand2suand1uran1e2can2ei_an1e4kan1erban1ethanft5san2gan1angeb2angie4angs_2a3n2i3a4niman2keian4klö3an3naan3n2ean2seuans1paan3s2z1anteian3t2h2anwet1anzeian2zwiar3abta2r3alar1ans2a2rara2r1auar2bauar2bec2arbenar2brearbrü32arbs2ar2danar2droar1effa2reinar2erfa2reriar2erwa2r1imar1insar1intar2kalar2korar2kriark3saark3shar2nanar1o2da2r1orarre4narr3he2ar2star3t2ear2thear2trear2z1was1alaa3schea3schiasch1la2schma3schua3s2hiaska1sas3panas3s2aass4auas3s2ias2s1pass3tias4stoas3stras3stu2as3taas4tauas4tofast3räas3triaswa2s3a2syla2t1abat1apfa2tausat3eiga2teliater3nati4st4atmusatra4tat3romat2s1pat4takat4tauat2teiatt3s4at2zinat2z1wau2bliau2bloau2briau3en_auer4nauf1an2aufehauf1er3aufga4augehau2m1oaum3p2au3n4a2au3r2au2sanau2sauau2spr2auts4ava3t4äch2späch4stäch3teä2d1iaäft4s32äh3t4äl2l1aämi3enäne2n1äng3seän2k3län2s1cänse3häp2s1cä2r1eiä3ren_är1eneär4s3iär3t4eärt2s3äse3g2äser2iäskop2ä3s2kräs6s1cäs2s3tä4s3t2äß1erkä2t1a2ät2e1iätein2ät2s1pät2s3täum4s1äu2s1pbacks4b1a2drbah2nuba2kerba2k1iba2kraba3l2abal3thba3n2aban2drba3n2eban4klban2kr2b1ansba2reibar2enbar3zwba3s2abaum3sbau3sp3b2ä1cbbens2bb3lerbbru2cbe3a2nbe2delbe1erbbe3etabei1f4bei3labe1indbei3scbeis2ebeit2sbe3lasbe3lecbe3leibe4letbel3label3szbe2nalben3arbe3nei3ben3g2bentbbent4r2bentwben3unben3z2ber3ambe2ranbe3renbere4sber3nab1erntbe3rumbe3s4abe3s4lbe3s4zbe2tapbien3sbi2kesbi2lau2b1inb2b1inf2b1intbi2solbi4s5tb2it2abi4turb2itusbla3b4b2latt2b3lawbläs1c3ble2a2b3legb3leinb3leseble3sz2blich3blickbo3ch2bo2lanbon2debo1r2abo4rigbo4s3p2b3radb4ra3k2b3ref3b4rem2b3repbri2er2b3rolbrust3bru2thb2s1adb3sandbsatz1b3sel_bse2n1b3s2esb2s1ofb3s2pubst3acbs3tätbst3erb4stodb4stübb2s1unbu2chibul2la2b3umkbu3r4ibu2sinbu2s1pbu2s3ucha2ck2ch1ak3chanc4chanz4char_3characha2sc3chatoch1ärmche1er3chef_3chefich1eimch1ess2cheta2chinf2chinhch1insch1int1chiruch1offch1orcchre3s1chron2chunt2ck3ancka4r14ckeffck1ehe4ck1eick1entck1erhck2ern2ckeseck1ind2ck1upcussi4da2b1a3d2abäda2ben3d2abldal3b2d1amma2d1amt2dange3d2ankdan4kl2d1ansd2anze4danzida2r1a3d2arld2ar3s4d3atld3a2to4daush2d1ämt2d1änd2d1äng2d1ärz2d1effdehas5de3he22d1ehrdein2ddein2sdel1ändel1ec2delek2delem2delfmdel2sodel3t4de2mag4d1emp3d2enhden3th2dentwde3onod1epi2de2rapder2bl2derdbde3recderer3de4ruhde4rumde2s3ade3sacdesa4gde4samdes2äcde4sehde2seide2sende4setde2sinde2sorde3spede2sto2d1etwde1urlde2xisdgas3tdge4tedha1s4di2ch1di3enidie2t5dil4s32d1imbdi3n2a2d1ind2d1inf2d1inh2d1ins2d1intdion3sdi4re_di2rendi2ris2d1irl2d1isrdi2t3rdkuri2dle2radmess62d1o2fdo2mard2o3rado2rie3d4ra_2d3rad2drahm3d4ramd3rand2d3räud4rea_d4reas3d4rehdrei3td4reiv4d3ren2d3rep4d3rer4dres_d4resc3d4ria2d5ricd5riegd4rin_2drindd4risc3d4rit4dritu2d3rod2d3rotdrö2s13d4ruc2d3ruh2d5rutd2sau2d2s1änds2eigd2serhds1errd2s1imds2infd3skulds1orids1pasd2sprods3tabd3steid3steld4stemd3s4tid4stodd3s2tuds1umsds2zend4theidtran22d1ufe2du2me2d3umk2d1unfdun3kedun2klduns3t2d1url2dursadwest3eadli4e3aleieat4e2eater3eat3s2eb4leue3blieeb4reaebs3paeb3staebs3thebs3tieb3str2e3cheech1eie2ch3rech3taech1uheck2areck3seede2aledens1ed2s1ped4streed3s2ee3lenee2nagee3n2ie1e2piee3resee1r2öe1ertree3r2ue2e3s2ee4tate2e3u2eewa4re2f1ade2fente3f4lu2e3f2oef3romef2tanege2raeg4saleg4stoegung4eh1anteh1auf1e2hepehe1raeh1inteh1lamehl2e2eh5lerehl2seeh2reieh1ro2ehr1obehr1ofeh1stee2hunt2ei3a2ei2barei2choei2d1aei3dra4eien3ei3g2aeig2er2eigew2eigrueik2arei3kauei2larei2laueil3f41eilzuei2moreim2plei2n1aei4nasein5deein3dr2einfoein3g2e1initei2sa4eis2ineis2peeis4thei3stoei2sumei2tabei2tanei2tarei2troeit3ume2l1akel1ansel1anze2l1apel3ariel1asiel1aspel2ast3elbiseld3s2el1eine2l1el1e2leme3lem_el1empel1erfel1erkel1erle2lerr2eles2el1esse2l1ideli4neel1itael5le_ell3spe4l1ofe2l1orelo2riel2sanel2sumel6tarel4tinel2t3re2l1umel3usee2m1ade2mans3emanze2metie2m1imem1intemma3uem2meiem3pflem2spr4e2namen4ameen3aree3natien3atte3nauee2n1ären4ce_en2dalend3siend3szend2umen1eche2neffe4neine2n1el4ener_e2nerfe4nerhe4nerk1engad3engagen3g2ien3gloeng3rieng3seen1i4me2n1inen2ingen3k2üen1o2be2n1one2n1open3sacen2sebens2el1ensemen2simen3skaens2po2enstoent4agen2thien4tid3entlaen2zwa2e3p2ae3p2f42epist1e2pocep4taler3admeraf4aera1frer3aicer3alle2rampe3ranee2ranher3anoer3apfe3rarie3ratie2ratme1rauber3aueerau2fer3augerb4sper3chlere2cker1effer1eiger1elee3renz4erer_e2rerke4rerl4ererne3reroer1errer1erse2rerter1esser1eul1ergol1erhabe2riat4e5ric4e3riee3rik4er1inber1inker1inser1inter1ita1erklä2erkreer1o2be2r1ofe1r1ohe2r1opers4auer5sener3smoert2akert2auer2thoert4raerts2eeruf4ser1u4mer1underung42erweges4aches3anze3s4ase4satoes3cape3schae2se2bes3ehres3eines3erfes3erzes3evaes2hares3intes2ortes2pekes2sau2es3sces3s2ies2sofess1paess2poes3stu1estase1state1stele1stiles2ture1s4tüet1a2metari1e4teineten3det3halet3heieti2tae2t1ofetons4et3rece2treset2seiet3stuet2t1aett3auet2teiet2t3ret4troett3szetze4seu4neie3un2geu2nioeu1staeu1stoeu1stre2vent1e2xeme2x1inex2tinfa2chof1aderfa3l2afal2klfal3tefalt2sfan2grf1an3zfar2brfarr3s3f4artfa3s4a2f1auff1ausb2f1ärmfä2ßerfeatu42f1eckfe1inifek2tafe2l1afel2drfe2lesfe2l1ofer2anfe2rauferde3fer2erf1erfaf2erl_f2ers_f2f3efffe1inff1rakf3f4räff3shoff3strfid3scfi2kinfik1o2fi2kobfi2lesfi4linfil2ip2f1intfi4s5tfit1o2fi2tor2f5läd2f3läufli4ne1f4lop1f4lot1f4lug2f1orgfo3rinfor4stfor2thfor3tu2f1o2xfra1st1f4ränfreik22f3ricf4risc1f4ronfro4nafs4ammf2s1asfs1e2bf2s1erf2si2df2s1o2f3spanf3s2plfs2porf2sprefs2prifs2pruf2stasf3steifs4tref2s3unft1a4lft1eigft1eisf4theif2t3rof3t4rufts3a4ft4samft4sehfts2tift1url2f1unffun2klfun2kofus2safzu4gaga2b5l2ga2drgal3lo2g1amtgan2gr2g1armga3r2og1arti2g1arzga4spega4sprga3t2a2g1auf2g1aut2g1ärzg3d2adge3g2lge2in_gein2sge2intgein2vgei3shgelb1rge5lehgels2tgel3szge3lumgel3z2ge4narge4natgen1ebge3necgens2egen3th4gentwger2erger3noge1r2öge3r2ug2e1s2ges4amge2serge3sesges4pige3ste2getapge3t2ugge2ne3g2het3g2hiegi3alogi2e1igie1stgi4mes2g1indgin2ga2g1ins2g3lag3glanzgläs1c4gläuf2g3leb4g5lerg3lese3g2lid3g2lie2g3lif4glisc3g2lit3g2loag3loch3g4lok3g4lop3g2lotgoa3ligo3n2a2gonis2g1ope2g1ordgra2bigra2bl2gradl2g3rah2g3rak2g3räu2g5re_2g3rec2g3redg4re2eg3reitg3rese2g3ret2g3ric3g4rif2gring2g3röh2g3rui2g3rumg3run_3gruns3g4rup2g3rücg3s2ahgs3a2kg4saltgs3ambgs3augg4s3crgs5erkgs4piegst2akg3starg4s3täg5stämg3stelg1steugs4thag3stirg4stolgst4ragst4rig4sturgs4tücgu1ant2g1u2f2g1unfg4ung_gunge2g4un4s2gunt2gurt3sgus4stha2choha2delha4dinh1adle2h2al_ha2lauhal2bahal2lahalt3rh4a3rah1arm_har2thh1arti2ha3sa2haufmh1aukthau2schau2trh1echthe3ckehe2e3lheere2heim3phei4muh1einkhe1ismhe1isthe2l3ahel1eche3len4h1emphend2she2nethe2nobhenst2hen3szh1entshe3rasherb4she2relh1erfüh1erkeher3thher2zwhe1stahe2strhe2tapheter2he3t4she1x2ahfell1h1i4dihi3enshier1ihil2frh1induhi3nelhin2enhin3n2hin3s2hl1anzh1lauth5len_hlen3ghle2rahl1erghl1erwh4lerzh4lesihl1indh3listhlo2reh3losihl2sanhl2serhl3skuhl3slohme1inhmen2shme2rahme1sth3nachh3natihn3eighn3einhne4n1hn1unfho2ch3ho2ckaho2f3r4holdyho2leihol3g4ho4lor3hol3sh3o2lyho2medho4sei2ho2w1h1raneh3rechh4rei_h3reich3r2enhr1etah4rinehr1insh4risth4romeh2r1orhr2sanhr2tabhr2tanhrt3rihr2trohrt2sehr1umsh2s1ech3s2exhs2penhs2porh2spräh2sprohst2anh1stech1stelhs3theh1s2tih2storhst3rih1stunht3alth4ta2mh2ta4nht3aneh3tankh2tasyh2t1ärht1e2chte2heh2teifh2temph7ter_h2t1euh2t1exht3henhthe3uh2tolyh2trith2t3ruh2t3rüht2senhts2tihu2b3lhu4b3rhu2h1ahu2h1ihuk3t4hu2l3ahu2lerhu2lethung4shu3ni1hus4sahus2sphu2tabhu3t2hhühne4h3weibi4a3g2i3aleiial3laia2lorial3t4ial3z2i3a4taibela2iben3ai2blisib4stei2bunki2buntibu2s1ich1eii2chini3chloi2ch3ri3ck2eid2ab4i2d1auidel2äiden3gide3soi3d2scid2s1pie2b3lie2b3rieb6scie2choie2fauief3f4ie2f3lie2froie4g5lie2g3riegs3cie3lasiel3auiel3sziel3tai3emeti3e2naiena2bien1ebie3neri3en3gie2nimi3e2noien3scien3siier3a2ie2radie2rapier1ecie3resi3ereuierin3i3ern_ier5niiers2eifens2if1ergif1erhi1f4lai1frauif4reiif2topift3szig1artiga1s4ige4naig1erzi2g1imig3reiig4salig3sprig3staig4stöig3strigung4i2h1umi4i3a4i2k1akik1amtik1anzik3atti2k1aui2k1äri2k1eiike2l1ike2rei2kindikot3ti2k3raik2t3ri2l3abil1a2di2l1akil1ansil1aspil3ausi2lautild2eril2d1oil1e2cil1eheileid4il1einilen1ei2lerrilfe3sil2f3lilf4s3i2l1ipi3lip_i3lipsil3l2ail3lenil3leril3l2iil2makil2mini2l1oril2seril3t2hilung4il2zarim1alli2manwi2melei2melfi4meshi2metiim2meiim1orgim3pseim3staimt3s2imul3tin3a2ci2n1adin2arain2arsin2dalin2dan1indexind4riin3drü1indusi2nehein2erhi2n1euine3un1info_in3gla1inhab2inhar2inhaui3nitzin2nor1inntaino1s2in1ö2dins4aminsch22insenins2id1insta1insuf1integin3t4ri3n2umin3unzinvil4inz2e2io2i3dio4naui3ons3ion4stiore2ni2o3s2ipi3elipi3en1i2rakiral2sir2k3lirli4nir2makir2mumir4narir2nerirpla4irt2stis3arei2sau2i2s1äni3schei2schmis1chyi2s1crise3haise3hiisen3si2serhis2hasi2s1idis3indis3infis2ingi2s1ofis1org3i2soti2sparis1picis2piti2sprois4sacis4sauiss2pois3staiss3tris3stuis2sumis4tabis4tamist2aniste4nistes3is4teuis4tocis5törist4raist3rei3struit1ab_ital1ait1altit1a2mi2t1aui3tauci4taufi4t1axi2t1äsi2t1eii4teigit2eili4teinite2lai4tepoi2t1init2innitmen2i2t1ofit3rafit3rasit3rauit3räuit3ricit3romit4ronit3runit2speit2stoit2tarit2tebit2triitt2spi2t1umi2tunsit1urgit2z1wi2v1aki2v1ani2v1eiiv1elti2v1urizei3ci2z1irjahr4sja3l2ajean2sjek2trje4s3tje2t1aje2t3hje2t3rjet3s2jugen2kab2blka2ben2kabla2kabläka3b4r2k3adaka1f4lkaf3t2kaken42kala_kal2abka3leikal2kakal2krkal4trkan2al2kanda2k1angka2norkan4thk2anz_2k1apf3k2araka3r2i2k1armk2arp3kar2pfka3tanka3t4hka2t3r4kaufr2k1auskau3t22kautok1ä2mikä2s1ckdamp22k1e1cke2he_2k1eic2k1eig2keinhke2lan4keletkell4e2k1empken3au2kenläkens2kken3szk2enteken3thk2entrk2entu2kentwke2radke2ranke2rauker2nak1e2seke4t3ake4t3hki3d4rki1f4lki1f4r2kil2a2k1intkis4tok3leitk3lem_2k3ler2k3leukle3usklit2s2k3locklo2i3klost4klung42k1lüc2k5nerkno4bl2k5norkol2k5ko3n2ekon3s2ko3r2a2k1orckot3s22k3radk3rats2kraum2k3rät2k3rec2k3refk3reick3reihk3ries3k4ronks2allks1e2bks2eink2s1emk4sentks1erlk3s2hik2s1idk2s1ink2s1o2k2s1pak3s2pek2spenks2pork2stork2sträk2stumks2zenk2t1adkt1aktkt1anzkta4rek2t1auk2tempkte3ruk4theik2t1idkt1innk2t1ofkt1opekt4rankt3rask4trefktro1skt3run2k1uhrku3l2eku3l2i2k3umlkum2s1kun4s4kunst3kur2blku2reikur4spkur2stlab4ri2l3absla2ce_2l1advla2giola2k1ila1k4l1lammf2l1amtlamt4sla4nau3l2andlangs42lanhä2l3annl2ant_2lantrlan2zwl3artilast1olau2fol2aufz2lausl2lauss2lauto2l1ähnl4betal2b1idl2b3lil4bre_lbst3elb4stol2b3uflch3lel3d2acl2d1akld1ammld3aril2delel3der_ld1erpl2d1idl2d1imldo2r2l2dranl3d4rule3arilech1ale2gaule3g4r4l1eigl2eindl2eine2leinkl2eint3l2ela3lemeslem2ma2lengll2e2nolen3szl1ents4lentzlen2zil2e1rale2raul1erfol2erfrl2erfül2erkal2erkol4ers_lers2klers2tl2erzales4amle2saule1stolet4tu2leurole2xisl2f1ecl3f4läl3f4lulgen2alge3ral2getili3chili2ckalien3sli2grelik2spli3m2ali3n1a2lindu2l1inflings52l1inhlin2kal2ins_l2insal2insc2linsp2linst2l1int2l1invli3s2a2l1islli3t2ali4talli1t2hlit1s2lit3szlk1alpl3k2anl3kar_lken3tl2k3rol2k3rulk4stüll1abbll1affll1aktl3l2alll3amall2anwll1anzll1armll1arzll3augl2l1ämll1echlle3enl2l1efll1eiml3l2eml3len_llen3al3ler_lle2rall2errl2lerzll1impll1insl2l1ofll1opfl3lor_l3lorel2l1oul2l3öfll3s2kll2sprll3szellti2ml2marclm1indlm1inslm3steln3a4r3l2ob_lo2ckulo2gaulo3h2e2l1ohrlo2n1o2l1orclo3ren2l1orglo4skelo4stelo4thr2l1o2v2l3öfelpe2n3l2p1holrat4sls3ampl3sarel2sau2l2s1emls3erels1ergl2serhls1erlls1erwls2logl3s2pil2sprol3s2pul3st2alstab6ls4tafl3steil3stells2tiel4stitlstro2l3s2tuls2zenlta4lal4tamelt1andlt1angl5tarblt1artlt3atol2t1aul5ten_lter3alt4erölte2thl2t1eul4theiltimo4l2t1ofltra3llt3räul2t3rel2t3rol2t3röl2t1umltur1altu2ri4lu4b32l1ufeluf2trlu2g1alu4g3llu2g3rlug3salug3splu1id_2l1una2l1unf2l1unilu2s1ulu2t1alu4teglu2toplu2t3rlü3ckel2z3acl3z2anlz2erklz1indm2ab4rma2ge_2m1aggma3g4n2m1aktma2lanma2lau2m1aldman3d2ma2netman4nam2ans_2mansc2mantwmanu3s2m3arbmaro3dma3r2uma1strma2tanma2telma2tromat3sp2mausg4m1ändmä2renmee2n12m1eif2m1eigme2lekme2lermelet42melf_mel2semel3t43m2en_mena2bme2nanmen3armen3glme2nimmen4skmen2so2mentnmer2er3merin2me3shmes2stmeste2mien3smi2kar2m1impmin2gaming3smis2sami2t3rmit5s4m2m1akm2m1almm1angm2mansmm1anzmma1stm2m1aumme2namme2samm1inbmm1infmm1inhmm1insmm1intmmi3scmm3stamm3strmmüll1m4nesimo2desmo2g1amo2k1lmon2s32m1opemo1r2a2m1orcmor2drmo2rermos4tampf3limpf1orm2s3anmsch2lm4s1efms1erwms1inims1orim2spedm2spotm2sprom3stelm3s2tim3s2tum3s2zemt3aremt1eltm2t1eum2tinsmtmen2mt2sprmu3cke4m3unfmu4s3amu2s1omut2s3mvoll1mwelt34n3abh4n3abs4n3abtna2ch13nachmnach3s3nachwna1f4rna2gemna2h1ana2letnalmo2na2lopnal2phn2als_nal3t4n2amenna3m4n2n3amtnamt4s2n1an_4n1ang2n1ans4n3anwnap2sina2r1an2arle4n3artna3r2unasyl2na3t4hnat2s1nat4sanat4sc3n2auln2auso4nauss4nauswnau5te2n1ä2m3nä1umnbe2ernbe2innber2en2d1akn2danlnd1annn2danzn5der_nde2sendo1stn2d3ren2drobnd3rolnd3rosn2druind2sornd2spr2n1ebnne2ei4n1e2henehe2r4n1ehr3neigtn3einknek3t42n1ele4nelek4nelemne3lennel4la3ne3lo3ne3lu2n1embn1e2mi2n1emp2n1emsnen1ecnen3einenen14nengb4nengs4nengtnens4enen3sk4nentn5nentrn1ents4nentz2n1epone2pos3n2er_ne2rapne2rau2nerfü3nergrn2erlin1ermän2ern_ne1rös2n1errn2ert_n1ertrne2rup2n1erzne2s1one2s1pne1stanes3tine2tap2n1eupnfalt4nf5linng2absn2g1acn2g1akng1andng1anzn2g1älngen2an3glasn2glicng4setng4stünich1sni3de_nie3b4nie4n3ni3eneni1eroni2grenig4spni2kalni2karni2kleni2k3r4n1imp3n2in_n2in4a4n3ind2n1inf3ning42n1inh2n1ins4n1int2n1invni2s1eni2s1pni3spinis3s4ni2s1uni3tscn2k1aknk4amtnk1anzn2k1ärnk1inhnk3lenn2klienk2lisn2k3ronk3s2znk2taknk2tannkt1itnk4topnk2trunkuri2nmen2sn2nadann1alln2n1annn2ensnn2erhnne2rönner2znne2s1nne4stnn1o2rnn3s2pno2bla2no2feno1rakno3ral3n2os_n2ostenost3rno3tabno2telnot3ha2n1o2x4n1ö4lnräu3snre3szn2salln2sangn2santn2saufn2sausn2s1änns1e2dn2s1epns1ergn2serhns1ersn2sethnsfi4lnsho2fns1i2dnsi4tensi2trns2kaln2s1opn4spatns2peins2penn3s2pins4piens3ponn4sprän4spron3starn3statns2tiens2tinnstü1bn2s1unnt1angn5tarbnt1arkn3tarznt2aufn2t1äunte3aun3t4ebnte3g6n2teignt4enent4entnt4ernnt4ersnt4ertn2t3hon3t4huntini1nt2insntmen2nt3recnt4rign5tropn2t3rünt4saunt2sto3n4tu_2n3umb2n1ums1nung43nung_n3ungl2n1uninu2t3rn2z1aun2z1ännze3rinzi2ganz1inin2z1wäoa3cheo4a3lao4a3mioanne42o3be_ob3einob1iteo2b3li2o3bloob3s2hob2staoche4boch1eioch3ö2och3teoch3toochu2fo2ckarock4shock3szode2n1odene22o3diaof1a2co2f1eiof2f1a1offizof2f5lof2f3r2o1f1rof2s3aof4samof2speof2sprof2s1uof2teio2g1eiohen3soh3lecohl1eioh3lemoh3lenoh3lepohls2eoho2lao2h1opoh4rinoimmu4okale4ok2s1po2l1akol1antolars2ol4damol1ei_ol1eieol1einol1eisol2lakol3lerol3lesol3lusolo3p2ol1ortol4strol2z1aol2zinom2anwom1arto2m1auo2m1eio2meruom1erzomiet1o4munton3arbon3auson3d2aon2e3honens2on1ergon1eröon3g4lo4nikro4n1imon1ingonlo2con1orconsa4gon2sebonse2lon4stüo2p1adop1aktopa3u2op2f3aop3fahopf3laop1flüopi5a4op5lago2p3le2o1ralor4altor3attor3ändor2baror2damor2dauorde2lor2deuor2dumor1eigo2reino2rerfor1ethor3g2a2orget2orgiaorgi1eor3gle2o3rico3rier4o5ril2orin1or1insor5ne_oro5naor2stuor3s2zor2tauor2tefor3teror2theor4tinor2torort3reo4r3uno3scheo2s1eio3s2hio4s3kao3s2pooss3anos4seios2s3oos4sonos2s1pos4s3tost1anosta4sost1auos4teioster1os3tilo2s3toost3räost3reost1ufo3s2zeo2ß1elota2goo3tarko2t1auot3augotei4not4em3otemp2ot3helo2t3hio2t3hoot3i2mot1opfot3rinot4spaot2tauot2t3rou4le_o1undsove1raoviso3owe2r1öl3z2wöp4s3tö2r3ecö2r1eiör2ergö2rerlör2erwör2f3lö2r1imörner2ör3s2kör3t2eö2schlö2s1eiös2s1cöte4n1pa1f4rpa1k4lpala3tpa3neipa2neupan3k43pa2nopan3sl3panz4pa5reg1park_par2klpar2kr1pa2ro1partn1partypar3z2pa3s2ppä3ckepät3s4pekt4spe2l1ape3l2ipeli4npen2alpen3dape4nenpe2n1o3pensiper2an1pere2per4na3pers2perwa4pf1ansp2fa4rpf3arep2f1aupf1eimpf1einp2fentp3fer_pf2erwp3f2esp2f3läpf3leipf3lie2p1heiphen3dphi2ka2ph3t2pi3chlping3s3pinse3pirinpi3t2apla3napo1o2bpo2pakpo1raupor4thpo4stapo4stäpos4trp2p1abppe2n1p2p1f4p2p3rap2p3repre2e13preis2p3rer3p4res1prinz4prosspro1stp3steap3stelp3s2tipt3albp4t3ecp4t1eip4telept1urspu2s3tra2barrab2blra2chura2dan2radapraf3arra2ferra3gle3r2ahmrail4l2r3airr3a2kr2raktira2la2ral3abrala4gr3alar3r4aldral3larall2e2rallgr3alp_ra2merram4muramt4sr4aner1rangirani1eran2kr2r1anmra2nor2r1anpr2ans_r2ansp2rantr2r3anwrar3f4r3asphra2stara2t1arat2serat2st3raub_rau2mi2rausgrau2sprau2taraut5srä2s1c3rätser2b1abrba3rerb1artrb1aufrb1echr4belärber2er3b2larbla2dr2ble_rb3lerrb4seirb3skarb4stärb3strr1che_r1chenrch1s2rch3sprch3tar3d2acr2d1akr2d1alrd1amerdani1rd1antrden3drde3rerde3sprdi3a2rdia4lrd1irir2d1itr2do2brd3ratre2altre3at_re3atsre2b1are2b1lreb3ra2reditrei4blreim2p2reina2reinb2reinf4reing2reinh2reink4reinn4reinr2reins2reint2reinw2reinz2r1elbre3lei2relek2r1elf2r1elt4rempfrena2bre2nanren3drren4glren3sar1ense2rentw3r4er_2r1erbr2erbr2r1erdr4eremr4erenr4erer2rerfo2r1ermr2e1rore2robr2erse2rersp2r1erzrer5zer2erzy3r4es_3resolre1stare2stureu3g2re3uni2r1eurrewa4rrf3licrf3linrf2s1ärf2s3tr2g1ahr2g1akrge4anrge2blr2getor2glanr2gleur2g3nor2gregr2gresrg3rinrg3s2prgs4tr3r4he_3r4henrho2i3ri3am_rib2bl4ri1ceri1chari2danri3elsriene4ri3enirien3srie2nuri1er_ri4ereri2f1ari2ferri2f1ori4kla2r1ind2r1infring3lrin2gr2r1inh2rinitrin5ner1innurin2sp3risikrismu2ri4s1pris4sari3t2ir3klaur2k5nurk3räurk3rinrk2s1erks3tirk2takrk2tinrk2t3rrk3trar2k1uhrk1unirl2s1prl3ster2mansrm1anzrm1a2pr2maphr2m1efrm3starm3umsrn2andrn3anirn3arern3arir4nerkr4n1inrn2ingr2n1opr2n1orrn3s2ärn3s2prn3s2zrn3t2ero2bei3rock_r2o3de3r2ohrro2madro2merro2munro3n2aro2ratro2reiro3s2iro3smoro5starost3rro4tagrote3iro2trirots2orö2b3lrpe2rerr1amtrrer4srre2strro3m2rr3sturs3antr3schersch2lrs2endrse4ners1erörs1ersr3s2hors3insrs2kalrs2kanrs2kiers2kisr4sordr3s2p4r4s3phr2stinrs4tobrs4todr3s2wirs2zenr2t1adrtals1rt1angrt1annrt1antr2t1arrt3attrte1e2rt4eifr2temorte2n1rt1erlrt3holrt2humr4tinsrto2rirt3recr2tresrt1rosrt4samrt2sparts2pert2sprrude2aruf2s32r1uhr4r3uml2r1unar2unde2r1unf2r1unirun2kr2r1unl2r1unm4r3unt4r3u2rrus4stru2t3rrü1benrwun3srz1a4cr5zenerz1engr2zergr3z2ofrzug4usa3blesa2chu2s1ada2s1affsa1f4rsa3i2k4s3aktsal2se2s1alt3s4alz4s3amn2s3anbs2an2c3sang_2s3anh3s4ani2s3anl2s3anp2s3anssan4sk2s3anw3s2ara4s3arb3s2ard3s2ars4sarti4s3ath4s3atlsau2grsauri1s4ause2s1änds2chad2schaksch2al2schaos2chau3sche_sch2en3sches4schexschi4es2chim3schis2schmö2schn_4s4chtscht4rsch2upsda3mese3at_see3igseein2se1er_se2galse2ha4seh1abseh1agse4helse2hinseh3rese2hüb2s1ei_2s1eig2seinb2seing4seinh2seink4seinl2seinn2seinw4s3eis3s2eitsek3tose2l1ase3ladsela4gse3lamsel1ec2self_sel1inse2l3ösel3szsel3tr4s1emp3s2en_se3nacse2nansen3gl3s4eni3s2ens2sentw2sentzse2n3use5refser2ers1erfos3erfüs2ergr2serhös1erklse1rot4seröfs2ers_2sersas1erse3s4ervse2selse2tapse1u2nse2van4sexa4sges4a3s2ha_4s3hoc4s3hof3s2hopsho4resi2achs2ide_2sideosi3dersi3enesi1errsi3gnusig4st2s1imm2s1ind2s1infsin3ghsin2gr4s3inhsin1i13sinn_3sinnl2s1inq2s1ins2s1int2s1invsi2s1esi2s1osi2s1psi2tra3skala4skanz3s2ki_3s2kiks2krip3skulpsler3ssli4tu4s5not2s1o2b4sohng2s1ohrso2leiso2ner2s3ordso2rei4s1ost2s1ö2l2spara4sparo3sparu2sperl4spers3s2pez3s2pli4s3poss2potts2pran2sprax2spräm4spräs2spred2spres2sprob4sprüfsrat2ssre4t3ssa2cks4samts4sangs4sansss3attss3aufsse1e2sse3has5sen_ss3erös4setass1offs2s1opss1oris2spros5stads3steis3stelss2turss1ums2stabb4stabl3s4tad2stafe1staffst1akt2stales3tali2stalkst1almst1alp2stan_sta4na1stand2stani2stans2stanws4tar_4staris4tarss3tat_3statis4tau_2staufs3taug2staum2stauss4tänd5stätts3täus3steckste2gr3s4tehs2te2i4steil4stel_2steln4stels4stem_st4ens6ster_ste2ras3tere4stermste4st3s2teu1steue4steuf2stie_2stien3s2tif3s4tims4tinfst1iso1stitus4toffs4t3om4stopo4stor_4store2storg2storis3tort4stote4stöch4s3töts3trac2strad2strai4strak2stral5straß2sträg4strefstri2k2strua3struk2strup2st3t43s4tudstum2s2stun_4stunn2stuntstu3rest1url4stüch4stür_4stüre4stürg4stürs2st3z23su2b3su4ba2su2cha2s1u2fsu1it_su3l2asu2marsu2mausu2mels3umsa2s1uni2s1urlsüden24s3zeis2zena4szent2ß1e2gßge2bl3tabel2taben3table2t3abt2t1adat1a2drta3d2s3taf2e4ta3gltag4sttah3leta3i2kt1a2kata3kesta2krotak6ta3taktb3t2al_ta3lagta3lakta3lart1alb_t1albk3talbu3t4aletal2enta2mert1a2nat3ankl2t1anm3tans_4tansit2ant_t2anz_t1anzat1anzuta2pes2t1armtar2tat1artitar2to2t1arz3t2as_3t2asttata2bta2tanta2tautat3eita2temtat3heta2tom4tatue2taufwt1ausb3tausct2auset1ausft1auskt1ausrtaxi3s2t1ältte3cha3technteck2ete2ckite2en3te1erwteg3ret3eifr2t1ein4teinzt3eis_t3eisbte2kel3te3le4telemtel1ente4leute2littell2e4tellute2l1ö3telt4tel3tate2marte2min2tempfte4m1ute2n3atena2bte3nactena2dtena4gte4naste4naut6endotend2sten1ecte2neftens2et3entb4tentdt3entzten3zwt3e2pi3t4er_tera2bte2radte1rafter3am4terbs4terbtte2relt4erfrte3riat4erli4terlö2ternct2errat2ers_terst4tesa2ctesä2cte2sprte2s1u3t2et_te2tatte4tik3teur_3t4ha_3thal_4t3hau3t4heat2hein3t2hek3t2hem4themd4themmt4henet4heni3these2t3hoc2t3hoh4tholz2t3hot3th2r2tiden23tief_2tieg43tierati2kamti2karti2kinti2kräti2larti2lauti2leiti2lel4t1imp3t2in_2t1inb4t1indti3n2e2t1injt2ins_4tinse2t1int4t1invti2seiti2solti3stati2velti2v1oti2v3rtnes2s3tochtto4d3ut1o2fetom1e2to2mento2pakto2patto2ranto2rauto4ränto3ren2t1org3tost43to3tetouil44tractt3rad_2trahm3t4rai2trandt3rann3transt3rase3träne4t5re_tre2brt3recht4reck2t3red5t4ree4trefe4trefo4treic2treift3reigt3reint3reist3reiz2t3rek4t3relt4ren_3trendt3rent2trepe2trepot4res_t3rese3t4ret3treuh4trieg4triemtri2ertri1es5trigg2tring3trink3trip_trizi13t4roitro2ke4trom_tro2mi4tromltro1pe3tropf2t3röttrums12trund3t4ruptru2thtrü1betrü1bu2t3rüct2s1aht4s3art3schats2chots4corts1engt2s1erts1init2s1irt3spalts1parts2pedt2spert3s2pits3takts4talts3tept2stitts3tocts3tort2stritta2bet3t2altt2anttt1arttt1ebett1eiftt1eistte2satte2sät2tetit2t3hott3rast3tro1tt2sentt2spett2sprtu1almtu2chitu3fent1u2kr3t2umetum2situm2so2t1umt2t1una3t2une2t1unft3ungatung4s2tuniftu2rantu2re_tu2reitu2resture4tturin1tü3cketück2s3tür3s3tütentze2n1tz2enetz1erltzgel2tz4tinua2lauu3a2louara2bua2t3hu2be2cub3licu2b3luub3ritub2sanub2s1oub2spau1cha_uch1eiu3chesuch1iluch1inu2ch3ruch2souchst4u2ckemuck2eru2ck1iuder2eudi3enuditi4uenge4u3e2niuen2zuue2r3aue2r1äu3erehu3ereru3erexuer3g2uer2neuer3scuer3t2u3erumue4teku2f1äsu2f1eiu2f1emu3fen_u2fentuf2frouf1oriuf4sinuf2spouft3s2u2g1apu2g1eiu3g2löug3rüsug4serug3spaug3spiug4sprug4spuug3staug5stäug3struh2reruh4rinui4s5tukle3iuk2t1auk2tinuk2t3ruld2seu2l1elul1erful1erhul1erwul1etaul1insul2lesul2p1hul4samul5s2eul2tarul2triul3z2wu2m3akum1allum3anzu2mausu2maut1um3d2umer2aum1insum4serum2simu2m1uru3n2am2un2asun4dabun4deiun2dorun2d3r2unds_und3spund3stun2ei_un3einunen2tun4es43unget3ungewung3raung3riung4saun3ideun3islu3n2it1u2nivun2ka2unk1apun2keiun2kneun3n2eunst1runvol2u1or3cu2pf2eu2pf1iupt3a2ura2beur1anaur2anbur1angur2anhu2r1auur3b2aur1effu2releu4r1epur1erhur1etaur2griurg3s4ur1iniur3insur1int1urlauur3sacur2sanur2seiur2serur4sinurst4rur3szeur2z1wu4s1afus4annu2s1ecu2s1efu2s1eiu3seiduse1rau2serpu3spekus1picus2porus4secusse2nus4sezus2sofu1stalus3tauu1stelust2inu2stunu2sturut1altut3a2mu2t1apu2t1aru2t1ärute4geu4tentu4t1exut3heiu2t3hout1opfu2topsuto3s4ut3reaut3s2aut2s1äut5t4lutu4reutu5ruutz2erut2zinut2z1wuve3räüb2s3tücht4eü3ckenück4shü3den_üdwes2ü2f1eiü2h1eiüh3r2eühr3taü2mentün2fliün2g3lün3strü2r1eiü2schlüs2s1cva2teiva2t3hva2t3rvat3s4va2t1uve3li5ve3nalve3radver3b2ve4rinver3teveter2vie3levie2w1vi2l1avi4leh2v1i2m2v1intvi3s2ov1steuwab2blwa3chewaffe2wah2liwal4dawal2tawal2towang4s3war2eware1iwart4ewe2b3lwe2g3lwe2g3rweg3s4wei4blwei2flwei3tawei4trwel2t1wel4trwe2r3awer2bl3werbuwerer2wer2fl3werk_wer2ka3werkewer2klwer2kuwer2tawer2to3wertswest1awest3rwes4tuwett3swi1ckawien2ewim2mawim4muwin2drwi3s2e3witzlwoche4woh2lewo2r1iwo4r1uwört2hwur2fa3wurstwus3te1wu4t1x1i2doxi2l3ux2i2s1xi3s2cxis4täx1i4tux3t2asxtblo4x2t1eix4tentx2t3evx3t2ury3chisy2la2myloni1y2p1iny1s4ty2z1all2z3anf2z3anlzar2trza1st42z3at3z1au2fzbübe32zecho2z1eck2z1effzei3lazeile42z1einzei3s4zeist4zeit1azei2trzel1erzel1inzel3szzel3th2z1empze2nanzent3sze2r3az1erfo2zergäzer3k2z2erl_2zerlözerne22z1erq2z1erz3zerzaz3erziz2e2s1ze3skuzes2stze3sta2zettszi3alozi1erhziers1zi1es_2z1impzin4er2z1infzin1itzin2sa2z1invzi3s2zzi1t2hzor4ne2z1oszz2t1auz4tehez3therzt3reczu3ckezug3un2z1uhr2z1um_zumen22z1umszup2fizu3r2a2z1urk2z1url2z1urs2z1urtzü3ckez1weis2z1wel2z1wen2z1wer2z1weszzi3s4", - 7 : "_al4tei_amt4s3_and4ri_an3gli_angst3_an4tag_ausch3_bo4s3k_ebe2r1_en2d3r_en4tei_er4dan_er4dar_er4dei_er4der_es5t4e_es3t2h_fi3est_fi4len_ge5nar_ge3r2a_haft5s_hau2t1_ho4met_ka2b5l_orts3e_pa4r1e_reb3s2_re3cha_rein4t_reli3e_res4tr_sim3p4_sto4re_to4nin_ul4mei_urin4s_ur3o2m_ur3o2p_wei4ta_wor4tu_zin4stab3essea4chenta4cherka4cheröach1o2bach2t1oa3d2ar3ade3s2p2ad3recaf4t5reage4nebage4ralage2s3pa2h1erhah4l1eiahner4eahre4s3ahr4tria3isch_1a2k4adala5ch2a2l1angalb3einalb3eisal4berha2l1e2b3a2l1efal3endsa2l1erba2l1erfa2l1erhaler3ina2l1erla2l1ert3a2lerza2l1eskal2l1aual3lenda2l1o2balt3eigalt3ricalt4stüalzer4zamer2a1amp2fa2am4schlana4lin2ana1s4an2d3rüan2g1eiang3erfan2g3laan2g3raa4n3insan2k1anan2k3noan2k3raan2k3räan3s2krant3rina3ra3lia2r1anga2r1anza2r3appar2b3unaren4seare3r2aa2r1erhar2f3raari3erdari3ergarin3itar2k5amar2k1arark3aueark3lagark4trear3m2orar2r3adart3erlar4trama4scheca2s1e2ma2s1o2fa2s1o2ras4t3rea2t1aktater3s2ato4mana2t1ortat4schnatt3angat2t3räat4zerkauch3taau4e3reaum3angaup4terau2s1ahau4schmau4schoaus3erp1aus3s4aus4se_au4terkaut2o3fäg3s4trä3isch_äl4schläser4eiäse4renäskopf3ät4schlät4schräu4schmäus2s1cban3g4lban2k1abau3s2k2b1eier2b1eimebe1in2hbei3s4tbe2l1enben3dorbens4eiben4sprber4ei_be4rengber4in_ber3issb3esst_2b1illubis2s1cbjek4to2b3leid3b4litzbor2d1ibor2t3rbra1st42b3riembrü3ckeb6schanb6schefb4s1erfb4s1ersbst1a2bb2s3träbs3treubtast3rbunde4sbu4schlbu4schmbu4schwbu2s1erbügel3ebzei2t1ch3a2bi3charta4chelemche4ler4chents4chentwche4recche3rei2ch1e4x2ch1invch3lein2ch1unf4ckense4ckentw2ck1errck4stro2ck1um32d1al2a2d1ammä2d1a2na3d2anz_2d1au2f2d1aus33d2e1imdelei4gde2l1obdel2s1edel2s1pden4sender3edider4erf4derklä4derneude3stande3stardie4nebdie2s3c2d1i2radi3s4trdi4tengdo1st1r2d3rast2d3rauc3d4reck2d3reicdrü3cked4s3amtd4schefd4seinsd2s1engd2s1entd2s1erfd2s1erkd3s2kan2d1un3de3ak3toe4aler_e3at5t4eb4stätebs3temech1o2bede3n2eeden4seeden4sped2s1eseein4see2f1e2bege4l1äege4streher4anehe3strehl3eineh2r1a2ehr1e2cehr4erleienge44eigeno1ei2g3nei4leineil3ins2e1induei4neng3eingabein4habei2n1o23einsate4inverekt3erfela4bene2l1a2me2l1a2re4leinge4leinh2e3len_e4lensee2l1ente2l1ergel1e4tael3l2an3elternelt3s2kelt3s2pe2m3anfe3m2e2nemen4the2m1erwem2p3leena3l2ien3d2acend4ortend3romend3s2pene4bene4n1enten4entre2n1erd1e2nerge2n1erle2n1erse2n1erte2n3erue2n1erwe4n3esseni3er_enob4lee2n1o2ren4terb3entspr4entweten4zergenz3erherd3erwere4dite2r1e2h4e3rei_4e3ren_e4rensee4rentner4ergee2r1erhe4rerscere4vid3ergebn4ergehäe2r1i2d4e3rin_e2r1ini3erlebnermen4serm3erser2n1ose4r1o2rer4res_erri3erers4tecer4terl3erweckese4lere3s2pore3s4prae4starbe1s2teces3trope2s3umseße3r2eeter4tre4traumet4tangette4n1et4t1umeu3ereieu4genteu3g2ere2u3r2eeve5r2ifa4chebfa2ch1ifan4gerfäh2r3ufeh4lei4f1einhfe2l1erfel4sohfer3erzfest1a2fest3eifet4t3afeuer3ef2f3emifi1er2ffi2l1anfil4auf2f3leinflu4gerfor4teifor2t3r2f3ra2mfrei3n4f4scheff4s1ehrf2s1entf4s1etaf2s1pasf4stechf3s4telf3sternf4t1entf2t1erlf2t1etift4scheft4s3täft4streft4stri2f1u2nifun2k3rfus4serfus2s1pfus2s3tfu2ß1ergan2g1a4gangeb2g1ankugebe4amge4lessgel3stegel3t2agen4auggen2d1rgen3eidgen3ern2g1entfge4renggerin4fger4inngerin4tger4stoges3s2tge4t1ergien2e12g3isel3g4laub2g3lauf4g3lein2gni2s12g3reic2g3rein2g3renng3rieseg4schefg3s2eilg3s2pekg3s2porgs4tellgst3entgst3errg4s3tor4gungew2g3unglgus4serhaf3f4lhalan4chal4beihas4serhau4spahäu2s1chba2r3ahe4b1eihe5ch2eheit4s3h3e2lekhel3ershel4meihen3endhen3erg2h3entwher3a2bher3eck4hereighe4rerwherin4shie4reihie4rinhi2l3a4hin4t1ahir4nerhle3runhner3eih3nunge2hot3s2hrei4bah4r3eigh3re2s1h3rieslhr2s1achr2s3auhr4s1ofhr4stechrü3ckeh2s1achh4schanhse4lerh2s1erlh2s1parhst3alth2s3tauh3steinhst3ranh3taktsh2t3assh2t3a2th4teilzh2t1eimh2t1eisht3erfoh2t1erhh4terklh2t1errht3erscht3ersth2t1erzh4t1essht3ort_ht3randh2t3rath2t5rinh2t3rosh4t3rösht3spriht4stabh2t1urshu2b1eihu2b1enhu2l3eihul3enghu4lenthu2l1inhut4zenia2l1a4i3alenti3alerfi3alerhi3a2leti3a2liai2b1aufi2b1eigi2b1eisich2t3rieb4strie2f1akie2f1anie3g4raie4l1ecien4erfienge4fien3s2eie4rerfier3staies2s3tie4tertie2t3hoie4t3ö4i2f3armift3erkif2t3riift3s2pi2g1angi4gefari3g4neuig3steiig4s3toig4strei2k3anoi4kanzei2k1etaik2o3p4i2l3a2mil4aufbi4lentsi2l1erfi2l1ergil2f3reili3e4ni2l1indil4mangil2m3atil2m1auilz3erki2m1armimat5scima4turi2m1erfi2m1erzi2m1infi2m1insi4n3au2in4deneind4stai2n1engin3erbeiner4lö1in4fosing4sami3n2i3d3inkarninn4stains3ertin3s2kain3stel1in3s2zional3aion4spiir2m1auir2m1eii4s3amtisch3ari4schefi2sch1lisch3leisch3obisch3otisch3reisch3rui4schwai4schwoisch3wuise3infi4seinti2s1ermi2s1essi3s4tati3s4teli3s4tilit3a4reiten3s2iti4kani2t3ranits1a4git2s1e4its3er1it4zergi2v1enei2v1enti2z1enejek4terjekt1o2jektor4je2t1u2jugend3jung3s42k1a2bo2k3a2drka3len_kal3eri2k1annakari3es2k1artikau2f1okauf4spke1in2d2k1eise2ke2lekkel3s2kk3enten2k1entsker4kenker4neu2k1i2deki3n2o32k1inse4k1last2k1o2fekop4fenkord3erkot4tak2k3räum2k3redek6s3ammk4s3amtk2s1ersk2s1erwk3stat4k2t3a2rk2t1ergk2t1erkk2t1ingkti4terkuri4erku4schl4l3aben4l1a2bl2l1a2drland4spla2r1eila4rene3l2ar3glar3ini2l1ar3t3lasserla2t3ralat4t1alat2t3rlaub4s3lau4fer2l1ausrlär2m1al2b1edel2b1insld3a2ckl2d1a2dl2d3a2nl2d1a2rleben4slecht4e4leier_lein4duleins4e2le2lekle2m1o24lendet4lenerglen4sem2l3entwlent4wäle2ra4gle4rers3lergehl3ergen2l1ergilerin4s2l1er2ö3l2erral4f1eislgeräu33lichem3licher2l1i2doli3e2neli4schu2l1i2soll1a2bel2l1abtl2l1a2ml2l1ausl4lentsl4lergoll3erntll3ertrl2l1indl2l1o2bl2l1o2rllus5t6l2m3a2blm3einsl2m1e2pl2m1erz2l1o2bllos3t4rl2s1a2dl4s3ambl4schinl4schmül2s1e2bl2s1ersl2s1impls3ohnel2t1eislte4leml3t2erglt4stablt4stoclug3stelung4sclus4s3alus2s1clus2s1olus2s3plus4s3tlust3rema4gentma2l1ak2m1analman4ce_man3ers2m1angrma3s2pa4m1aspemas4tel2m1au2fmäu2s1cmein4dame1i2some2r3apmer3eckme4rensmerin4dmerin4tmerz4en4m1essamierer4minde4smis2s1cmme4linm4mentwmme2ra2mme4recmmi3s4tmo4n1ermor2d3amp4ferfmpf3erpmpf3errmpf3erzm2t1erfm2t1ergm2t1erlm2t1ersm2t1ertm2t1etamt3s2kana3chenna2l1a23n2al3dna4lentnal3l2a4n1a2nana4schw4n1a2synauf4frn4austende4al_nde4lännde4robn2d3ratn4d3runnd4sparnd4stabnds3tau4n3eingne2n3a24n1endb4n1endd4n1endf4n1endh4n1endk4n1endp4n1endt4n1endwne4nenenen4ge_nen4gen5n2enta4n1entl4n3entw2ne4p3fne2ra2bne3r4alne2r3am4nerbe_4nerben2n1erbine2r1eb4n5erfonerfor42n1erlöner4mit4n1ernt3n2ers_4n3ersa4n3essi2n1etatnett4sc2n1e2tun2g1a2mn2g1einnge4zänn2g1i2dn3g2locng3sendnie3l2ani4kingni4schwn4k1algnke4leinke2r3un2k1insn2k1ortn4nentsn2n1unfn2o3ble2n1ob2sno2m1annor2d5rno4t3eino2t3inno2t1opn2s1äusn6schefnsen4spns3erfan4serfon2s1erkn2s1erwn2s1erznsi3de_n2s1inin4stat_n3stemmnst4erön4stracn4strien3t2a3cn4tanzan4t1essnti3k4ln4t1inhnton2s1nt3reifn5t4repntu4re_ntu4resn2z1a4gn4zensen4zentwnz3erwe2o3b4enoben3d4obe4riso2ch1ecocher4kof2f1ino2h1eiso2h1erto2h1erzoh4lergoh4lerwo3isch_ol2l1auoll1e2col2l1eiol4lerkoma4nero3m2eiso2m1indo2m1into2n1erbo2n1erdon3n2anont3erwon2t3riop4ferdopi3er_o4r3almo4r3alpor2d1iror2d3reord3s2to2r1e2cor2k3arormen4sor4mentor3n2o1ors4tinor2t1akor4t1anort3eigort3erfor2t3evor4trauort3ricor2t1umo2s3perost1a2bos4ta2gost3ageos4t1amos3tarrost3einost3rano2ß1enzo2ß3ereo2ß1erfo3t2e1iote2l1aote4leio2t1erwot3s2peot4terkozen4taöchs4tuögen4s3öl2f1eiöl2k3leö2r1e2lö3r2erzö2r1unepa2r3afpar3akt2par2erpar4kaupe4leinper2r1ap2f1a2b2ph1erspie4leipie4reipil4zerpingen4pi2z1in3ple5n4po2p3arpor4tripo2s3tepost3rap4t1entpt3ereip4t1erwp4t1erzp4t1in12r1acetra4chinracht3r3ra1k4l2r3alm_r4al3thram4manram2p3lran4dep4r3aneiran4spara2r1inra4schlrau3e2nrau4manra3umsa2raus5sr2d1elbrder4errderin4r2d1innre3alerrech3arreier4trei3l2arei3necre1in2v2r1entl2r1ents3r2erki2r1ernä2r1erns2r1ernt3r2ers_2r1ersa3r2ertu2r3evid2r1e2x1rfi4le_rfolg4srf4s1idrf2s3prr2g1a2drge4ralrge4taprgi4selr2g3ralrg5s2turi2f1eirif4terri4generin4dexrin4diz4rinnta3r4ins_rin4tegrin4t5r2r1inveri4schori4schwr3i2talr2k3reark4stecrk2t1anrk2t1o2rl4s3tor2m1ider2n1anzr3n2a2rrn3ebenr4n3eisr4n1ener4n1ergrn4erhir4n1ertrol4lanron4tanro2r3alros2s1crre4aler2s1a2dr4s3amtr2s3angr2s1e2br4stantrs4temprs4terbr3s2tierst3ingrst3ranr2t1almrt3a4rertei3lartei3s4r4t3elfrten3s2rt3ereir4terfar4terfor4t3erhr4t1erkr2t1ersrte3s4kr4t1i2dr4t1imar4t1rakr4treisrt4s1ehr2t1urtru3a2r3ruch3strun2d1arund3er4r3uniorus2s1pr2z1erfr2z1erkr2z1erwrz2t3ror3z2wecsa2cho22s1a2drsa2l1id6s3amma2s3a2nasan4dri4s5a2sy2s5aufb2s5ausb4schanc4schangsch3ei_4schemp4schess3sching4schiru4schle_4schre_4schrinsch3romsch3s2ksch3t2a4schunt4schwetsdien4e2s1echo2s1echt4s1e2ckse2e1i4se4h1eise4herk5s4ein_sein4dusei3n2esein4fo4s3einr4seinstsel3erdse4lerlsel3ers4s1endlsen3eck2s1entg2s1entsse2r3als3ereigser3eimse4reinser3eis2s1ernt4sersehse4r1ufse3r2umse3rung4s1e2thsi3ach_siege4ssi2k1absin3g4lsing3sasi4schuska4te_4skategska4tes4s3klassni3er_sni3erssol4ler4s3o2ly2s1orga5s4orgeso2r1o24spensi4s1peri3s2pi4e4spier44s3p4lu5s2prac3s4prec3sprosssrat4scs4s1alas4s1albs3sa1s2s4s1egasse3infs4sentsss3erhöss3erses3s4tipst1a2mi4s3tann3staus_4stechn3steilh3sternc3s4tett3s2tiel1s2ti2r2s3tosesto3s2t3s4trah4strans3s4tras4straum4stränest4reifst3renn2s4trig2s3trisst3roll4st3run2s4t3s4stum4sc3s4tunds2t1uni2s3tuns2st1urtsu2m1o23s4zene2ß1erseta2b1antab4bauta4bendta2g1eitage4s3tahl3sk4taktiv3t2aktutaler4ita2l1op2t1anna4t3ansp4tanzeita4rens3t4a3rita2t1erta2t1um2t3ausg4t3auss2t1ausw4teilhet3eingete2l1aute4l1ecte4l1ehte4leinte2l1inte2m1ei4t3endf4t1endl4t3endpten3d4rten3eid4tenerg4t1eng_ten4ge_ten4gla4tensem4t3entwten4zerter3endte4rengterer4z4terfol4terkläter4mert3erneuter4re_3t2erroter4sert4erst_t4erstit4erstute4r1ufter4wähter3z2a2t3erzbtes4sertes3tantest3eiteu3ereteu3eriteu2r3a2t3e2xe2t1e2xi4thrin_4thrinsti3e4n3tie4recti4gerzti2ma2gtim2m1at1in1ittin2k1lti4que_ti4schatisch3w3ti3t2etle2r3ato2d1ertor3inttra3chatra4demtra4far3t4ran_3t4reib2t3reihtre2t3rt4riche4t3rose3t4runkt4schart3sch2et4schefts4chemtsch4lit4schrot2s1e2bt4seindt2s1entt2s1i2dts4paret3s2pont3s2port4spreits3tätits3tradts3traut2s3trät4stropt2s3trütte4lent1u2fert3umsattu2r1ertur3eretu4schlt2z1e2ct2z1eiet2z1eistz3entsuben4seuch4spruch4toruch2t3ruden3s2u4erinnu3erunfu3eruntu2f1ä2ßu2f1erhu4ferleufs3temu4gabteu2g1erfu2g1erlugge4stu3isch_u3ischsulm3einu2m1artument4su2m1ergu2m1erlu2m1erwum2p3leum2s1peun2d1idun2d3umunk4titunk2t3run2n3adunte4riunvoll3upt3ergu2r3a2mur1an5su2r3a4rurgros4ur2s3auu2s1eseusi3er_us3partu2s1pasu5s4pizuss3erkust3abeu5strasu4t1erhuto4berut4schlut2s3pautz3engüch2s1cück3eriü4ckersück4speü3d2ensü2f1ergü2h1engü2h1erkü2h1erzühr3ei_ül2l1eiün2f1eiüste3neva2t3a4va4t1inve4l1auviel4ervi2l1invollen4waffel3wah4lerwalt4stwar3stewa4schawass4e2we3cke_we3ckeswei3strwen2k3rwer4gelwe4r3iowest3eiwest1o2wolf2s3wol4lerwor2t3rwuch4scxi4d1emx2t1e2dxtra3b4x2t3ranyl4anteyri3ersze2l1a2ze2n3aczen4sem4zergeb2z1erhözerin4tzer4neb2z1ersazert1a4zert4anzessen4zie4leizin4ser4zinsufzon4terzu2g1arzu4gentzwan2d1", - 8 : "_alb6rec_al5l4en_anden6k_ar4m3ac_ar4t3ei_bei6ge__ber4g3r_de3r4en_einen6g_en4d3er_er4zen4_ka4t3io_ost5end_par3t4h_richt6e_rücker6_sucher6_tan4k3la4ch3erwach6stuback5sta43a2er2o1al4b3erwal2l3a4rall5erfaalli5er_al4t3erfam4t3ernan4g3erlan4g3erzang4s3poani5ers_an2t3a4ran2z1i4nari5ers_at4z3erwau5ereinau4s3erwauster6mau4ten4gäs4s3erkbach7t4ebal4l3ehbe4r3eiwber3st4abe6steinbe4s3tolbote3n4ebse4r3inbu4s3chach3e4ben6chergebcher6zie4d3achse2d1an3d22d1e2bendel5sterde4n3end4den4semde4r3eckde3r4erbde4r3ero4d3erhöh4d3ersat2d1in1itdi4t3erldi4t3ermdi4t3ersd4s3chind4s3tätid3s4terne3a4reneech3t4eiege4n3a4eg4se4r1eh4l3entei2b3u4tei4d3errei2m1a4gein6stalei6schinei6schwuei4s3erweister6reld5erstel4d3erwel5eier_e4ler4fae4ler4laelgi5er_elgi5ersel4l3eine6mentspen4d3esseni5ers_en5sch4een4t3rolen4z3erfen4z3erke4r3entfer4g3an_eri3e4n3eri5ers_ess4e3reess5erwees4t3enges4t3erhes4t3essestmo6deest3o4riet4sch3wet4z3enteue6reifeut6schnfal6schafal6schmfrach6trf4s3tüteft4s3tangas4t3el2g1eise2gel4b3ragel6ders4g3ereigge4ren4sge4r3entge4s3terglei4t5rgrammen6gros6selhaft4s3phal6lerfhau3f4lihau5steihel4l3auhe2n1e2bhe4r3eishe4r3o4bhfel6lerh6l3ernäho6ckerlhol6zeneh6rerlebh3s4terbh3t4akt_h4t3entfh4t3entsh4t3erfüh4t3erkeh6terstaht6ersteht6raumeht4s3turht4s3türhut4z3eri2e2l1a2ie2l3o4bie4n3ergier4s3ehiesen3s4im4m3enti2n1e2bei4ner4trin2g1a4gin4n3ermir4m3untir4sch3wi4sch3eii6schwiriso6nendis4s3chejah4r3eikehr4s3o4ken4gagken5steik3er4lauk3er4lebkeu6schlkor6dergkre1i2e4k4s3tanzk4t3erfolat4t3inl2d1e2selei6nerble4n3end5lentwet4l3ereig4l3ergeb3l4ergewli2g1a2b2l1in1itl6lergenl4s3ort_l4s3tätils6ternels6ternsl4t1e4skl2t1o2rilu2g1e2blus4s3erlu4t3erglu4t3ersl2z1u4fema4t3erd4m3entwi4m3ergänmp4f3erg4m3ungebnacht6ra4n1a2mernavi5er_navi5ersn4d3entsnder5stene2n1e2bn4g3erseng4s3e4hnich6ter2n3i2geln4k3erfanseh5erens6eins_n4s3prien4s3tatenst5opfenten6te_nt4s3parober3in4oh4l3erhol4z3ernon4t3endopf5erdeopi5ers_or4d3engor2m1a4gorni5er_orsch5lior4t3entor4t3ereor4t3offor4t3räuos4s3enzos4s3erfoste4r3eo2ß1en2kpargel6dpä4t1e2hpä4t3entp2f1in3srach6trä2r3a2d3rrali5er_rali5ersran4d3errau4m3agräu5scher2b1a2der4b3lastrch6terwr4d3erntre4n3end4r3erlaures6serwrge4l3err4g1en4g4r3innerrkstati6r2m1o2rirpe4r3inr4s3ort_r6steingrst3er4wr6strangr4ter4laru6ckerlrun6derlrun6dersrun6derwr4z3entssat4z3en2s1e2bense2r3a2d6sereignse4r3enk4s1e2tatson5ende2s1o2riesrücker6sse3in4ts4t3endss4t3englstes6se_sun6derhta4r3eretau3f4litau6schrtau6schwtblock5e4t1e2bentein3e4ctel4l3änte4l3ostte2m1o2rte2n1e2bte3n4ei_ten4t3ri4t3erde_te2r1e2b4t3ereigter4n3art6erscha6terwerbtes6terkti4v3erlto6ckenttrücker6t4s3amt4t4s3esset3s4tero2t1u2niou2ch1e4cu3erin4tuern3s4tu4g3reisun4d3erfund5erhaunge3n4eu6schentusch5werusi5ers_ü2ck1e2rüge6leisve4n1en2wach4t4rwahl5entwandels6we5cken_weis4s3pwel6schlwel6schrwel4t3a4xpor6terx2t1er2fx2t1il2l2z1e2benzei4t3erze2r1e2bzer4n3ei4z3erstezer4t3ag", - 9 : "_ber6g5ab_er8stein_he6r5inn_men8schl_wort5en6_wor8tendach8traumalli7ers_al5s6terbäh4l3e4be6b5rechtechner8ei_den6s5taue6ch5erzierg3el4s3got6t5erggren6z5eihä6s5chenhe6rin6nuherin8terh6t5erspaieler8gebil4d3en4tke6rin6nulepositi86mel6ternn4n3er4waos4s3en4kpapieren8ram6m5ersr8blasserris6t5erssfal6l5erspani7er_su6m5ents4t3a4genttan6z5erhtblocken8tes6ter6gvati8ons_wer6t5ermwin4d3e4czer6t5rauzes6s5end", - 10 : "_er8brecht_os8ten8deder6t5en6deren8z7endgram8m7endin6n5er6scos6t5er6wewel6t5en6d", + 3 : "2aaa1äa1ba1da1g2aia1j2aoa1öa1p2aqa1ßa2ua1xä1aä1bä1dä1gä1jä1k1äqä1ß1äxä1z1bibl21cacä32cc1céc4hc1jc4k3co2cp2cs3cu1cy2dc1de1did1ö1due1be1d4eee1fe1ge1ke1m2eoe1pe1qe1ße1te3üe1wey1e1zé1bé1cé1gé1hé1lé1oé1pé1ré1sé1v1fa1fä1fe1fé1fi1fo1fö1fu1fü1fy2gd1geg1n1guh1j2hl2hnh1q2hr4hsh2ü2hwh1zi1a2iä2ici1d2ifii2i1ji1ßi1üj2u1ka1käkl21ko1kök1q2ks1kü1le1li4ln1lo1lö2lx1ly1ma3mä2mc1me1mé1mi1mo1mö1mu1mü1my1na1nä1ne1né1nin1j1noo1b2oco1d2oi2ol2omo1qo1ßo2uo1vo1xö1bö1dö1e1öf2önöo1ö1ßö1vö1wö1zp2a1päp2e1pé1php1j1puqu42rc1re1ré1ri4rnr1q1ru1rü1ry1sa1sä1sc1se1sé1si1so1sös1t1su1sü1ta1tä1tet1h1ti1to2tö2ts1tu2tü2ua2ucu1h2uiu1ju1lun12uou1q2usu1w1üb2üc2üdü1gü1k2ünü1ß2ütü1vü1zv2r2vsw2aw2ä2wnw2rw2ux1a2xc1xex1jx1q1xu2xv2xyx1zy1by1ey1gy1hy1jy1ly1py1ry1vy1wy1yzä2zu1zw2", + 4 : "_ax4_äm3_ch2_en1_eu1_fs4_gd2_gs4_he2_ia4_in1_ks2_md2_mm2_oa3_öd2_pf4_ph4_ps2_st4_th4_ts2_um3_ur1_xe3a1abaa1ca3au2abaab1ä1abd1abf1abg1abh2abi1abkab1l1abnab3r1abs2abu2abü1abw2aby1abz2ac_2acaa1cia1cl2acuad1c1add2adf2adh5adj2ado2adp2adq2adu2a1eae2bae2cae2da2ekae2pa2eta2ewae2xaf1a2afe2afia2fö2agaag2n2agt2ah_2ahsa1huah1wa1hyaif2a2ilaje22ak_2akb2akc2akd4ako2aks1akza1laa1lä2ale2ali2aloa1lu4aly2am_2amä2amf2amk2amla2mö2amu1anb2ane1anf1anh2anj1anl2anna1nö1anra1nü1anwao1ia1opa1or2ap_2apa2apea2péa2pfap2n2apr2ar_a1raa1rä1arb2are2arf2arh2ari2arr2arua2rü2arv2ary4asha2söa2süaße22a1tata1at2cat2eat2h3atmat1ö4atra3tü2au_2aub4auc2aue2aug2auj4aum4aunau1o2auu2auw2aux2auz2a1ü2a1v4avia2vr2a1wax2eays4ay3t2a1zaz2aaz2oaz2uäb2sä1ckä2daä2dräd2s2ä1eäf3läf3räf2säg2näh1aä3hi2ähm2ähsä1huäh1wä1imä1la2äleä1lu2ämläm2s2än_2äne2änsä1onä1paär1äär1c4äreär1oä1röä2rü1ärzä3suä3teät2häu1cä2uf1äug4äul2äumä2un2äur1äuß4ä1v3bah3basb2ärb2äs4b1bb3bebb2sbbu12b1c3be_3bea3beb3bek3bel1bembe1o3bet1bezbge3bib23bilbiz24b1j2bl_b2leb2lo3blü2b1mbni2bo4abo2cboe1b1op2böf2b1qb2r42br_3brä3brü4b1sb3säb3scb4slb2söbss2bs2t4b3tb5teb4thbt4rbtü1bu2fbü1c2b1v2b1w3by1by3pbys2ca1h3camc4an3carcäs2c1cec2d2c3do2cec2cefce1i2cek1cen1cer1cetce1u2c1f4ch_2chb2chc2chd1ché2chf2chg2chh2chj2chk2chp4chs2cht4chü2chv4chw2chzci1cci2s4ck_ck1ack1ä2ckb2ckc2ckd1cke2ckf2ckg2ckh1cki2ckk2ckm2ckp4cks2ckt1cku2ckv2ckw1cky2ckzc4l2clo11cluc2m2co2ccoi2cos42c1qcre2cry2cs2ac2si4c1tcti22c1z3da_da1ad1afd1agda1sdä2ud1chd3dhd5dodeg2d1eides1det2d3gl3dicdi2edi1pdi5v2d1jd3lad3ledl3mdl3sdni2d1obdo2o2d1qd2r4d3rid3rö2d1s4dsb4dsld2södss4dst42d1td2thdto2d3tödt3rd3tüdu2fdu1idu1odur22düb3düf3dün2d1wdwa2dy2s2d1z2e1aea2ceak1eam3e2ase1ä22eba2ebl2ebre3bue1cee1ci2ecoe3cr2ected2eed2öee1eeeg2e1eie1en2ef_2efa2efe2efi2eflefs22efu2efüegd4e3gee2gn2egue1hee1hi2ehme1hoehs22ehte1hue1hüeh1we1hy4eibe2idei1ee4ilei1p2eire2it2eiu2e1jek2a1ekdek4nek2oek4r2ektek2ue1la2eli2eln2eloe1lü2elz2ema2emm2emüen3fe4nre4nten1ue1nüe1nye1ofe1ohe4ole1ore1ove1ö2e3pae3puer1ae1räer1cer3h2erie1roer1ö2eru2esbes2c2esf4eshes3l2esmes2ö2esp2esres3we3syes3ze3teet2he3tie3tö2etre3tü2etz2euf1euke1um2euneu1p2eut2eux2e1ve3vo2ewae3wä2eweew2s2ex_e1xiex3l3exp2exu1exzey4neys4e3ziez2wégi2élu2é1t2é1u2é1z2fab43facf4ahf2alf2arf3atfä1cf1äu2f1cfe2c3fewf1ex3fez2f1fff2efff4ff3lff2s3fi_fid2fi2ofi2r3fis3fiz2f1jf2l22fl_1fläf4léf3löf4lü2föf2f1qf2r2f3ruf3rü4f1sf3scf3sifs2tf2süf3sy4f1tf2thf3töf3tü3fugf1umf2ur3fut2fübfü2r2f1v2f1w2f1zfz2afz2öfzu33ga_ga1c5gaiga1kgäs5gä4ugbi22g1cg1dag1dog1dögdt4gd1uge1cged4gef4g2el4g1gg3gegg4r2g1h4gh_gh2egh1lg2hugh1w2g1j4gl_2gls3glüg2ly2gn_gn2e2gng2gnp2gns2gnt2gnug2nüg2ny2gnzgo4a2goggo1igo1y2g1qg2r4gse2g4slgso2gsp4g4swg3sy2g1tg3tegt2sg3tügu1cgu2egu2t2gübgür1güs32g1v2g1w3haah1ahh1aph2as2h1c2heahe3x2hi_2hiahi2ehi2n2hio2hiuhlb4hld4hlg4hll2hlm2h2lohl2ö2h1mh2moh3möhm2sh2muh2nah2nähn2eh1nu2hodhoe42hoih2on2hoo2hop3hov1h2öhö2ch4örhr1chr3dhrf2hrg2h2rihrr4h3rüh2ryhrz2hss24h1th2thhto2h4tshtt4h3tühu1chu2n2hurhüs32h1vhvi23hyg3hyphz2o2ia_i4aai2ab2iaci2afi2ahi2aji2ak2iali2am2iani2apia1q2iasi3au2iavi1ämiär22i1bib2oic1cice1i1cii1clidt4i2dyie1ci1eii1exif3lif3rif2s2i1gi2gli3go2i1hi3heih3mih3nih3rihs2ih1wi1iei3igi1imi1inii3t2i1k4ikei2kni1la6ilbil2cilf22iloilv42im_2ime2imo2imt2imu2inein3f2inoi1nö2inp2inrin1ui1ny2i1oio1cio2dion2i2ori2oui2ovio2xi3ön2ip_i1pai1peiph2ip4li1pr2ips2ipu2i1qi1räir1cir2eir2i2irki1roi1rö2isb2iseis3ti2sü4itäi3töi3tü2itzium12i1v2i1w2i1xi2xai3xi2i1zi2zöja1c2jatje2aje1cje2gje2pje3wji2ajit3ji2vjoa3jo2iju2kjus32j1v3ka_ka1ck2adk2agka2o3kask1ähk1änkär2kby42k3cki1c3kir2kiz2k3j4kl_k2lek1lu2kly2k1mk2n2k3nek3nu3knü3komk2onk2os3kowkö2fk1ölk2r4kst44k1tk2thktt2k3tükt3zku1ckuh12kübkü1c2k1v2k1w3la_1lad2laf1lai3lao1lawlay1lä1c1läd2läf4lät2l1blb2slb2u2l1cl3cl4l1dld3rldt43le_2lec3ledle2e3leh2leple2u3lev2l1flf4ul3fü2l1glgd4l3go3liali1cl2ie3ligli3l2limli2o3liu4l1j2l1klk2l4l1lllb4llg4llk4ll5mlln22l1mlm1clm3plm3tlnd2l3nil1nul1nü3loklo2o2lox2lödlö2f4lög4löß2l1pl3palp2fl3pu2l1q4l1s4l1tl2thl6tsltt2l3tü1luf4luo2lur3lux2lüb5lüd2l1v2l3wly3c3lynly1oly3u2l1zl2zölz1wm1abmae2ma1f3mas3maßm4aymb4lmby4m3ch2m1dmd1ameb43mehme1o2meö3mesmeu1mi1c3mig3mil3mit2m1jm3kaml3cml3lml3s2m1mmmd2mmm2mm3pmm2smoa33moh3mom3mos3motmo1ymö2c4mökm1öl2m1pm2pfm3pu2m1q2m1sm3säm3scm3sem2süm3sy4m1tm2thm3tömtt2m3tümt3zmu1a3munm4us2müb3mün3müt2m1vmwa4my4s2m1z3na_n1af3nain1ar3nas3natn1au3näe3näs2näunby42n1cn2ck2n1dnd1cn2döndy33ne_2nec3nedn1efneg4ne2l3nenne2un2ew3nez2n1fnf2änff4n3finf4lnf2onf4rnf3s4n1gng3mn2gnn3hän3hen3hu3nian1idn4ie3niknin1n2ip2nitni3v3nix2n1k4n1nnn3fnng4n3ni3no_no1cn1of3nov3now3noz2nödn2ör2n1q6n1snsp4n3sy2n1tn3ton3tön4tsn3tun3tü1nu_1nud3nuenuf21nug1nuinu2n1nuo2nup2nur1nut1nuu1nux1nuz3nü_3nüs1nüt4n1w1ny_1nyhn1yo1nyr1nys1nyw2n1znz3so4aco4ado4aho2aro2aso4ato5au2obbob2e1objob1lo3caoc1co1ceo1cio1cko1cl2odrodt4o2ecoen12ofa2ofiof3l2ofo2oft2o1go3ghogs2o1hao1häo1heo1hio1hooh1soh3to1huoh1wo3ieo1imo1inoi2r2o1j2o1kok4n4okrokt4o1lao1läo1léol2io3loo1lu3olyoms2omy12ona2onä2onc2oneono1o1nuon3v1onyon3zoof2o1opo1oro1pao1pi2or_or1ao3räor1c4ore2orf2orh2orm2orq2orro3ru2osh2osio3sk2oso2o1to3tüoub4oug2o3uho3um2our2ouv2o1ü2ovi2ovo2o1wo3wiox2aox2eox3lo2xu1oxyo1yo2o1zoz2eo3ziöb2l2ö1cödi3öf3lög3lög3rö1heö1huö1keök3r3öl_öls2öm2sön2eö3niön2sö1nuö1peör1cör1oöru4ö2saö2spö2stö3su2ö1töt2höts2öze31pa_1paa1pacpag41pak1pap1pat1pau3päd3pär3päs2p1b2p3cpda41pe_pe2a1pedpef4pei11pel1pem1pen1pep3pet4pf_1pfäpff4pf3r2p1g4ph_ph2a2phä2phb4phd2phf4phg4phkph2l2phm2phn2phöph4r2phs2phz3pik1pilpi2o3pip3pispku22pl_3pläp4lo2p1n1p2opo1c3podpo2i3pokpo2wpo3xpö2c2p1ppp3lppt2p2r2p4rä2p1s4ps_p3sep2söp2st2p1tpt1ap3tep2thptt2ptü4pt3zpu1apub42puc2pur3put1püf2pülpün22p1v2p1w3py1pys4py3t2p1z1ra_r1abr2ad1raer2afr2alr2apr1arr2as2raß1rat1raür2ax4räf4räg2räh2rämrä2u2r1brbb2rb2orb2srb2ur1cer1cir1cl2r1dr2dördt43re_2reä3reg3rekre2u2reür1ew3rez2r1frf2u4r1gr1h42rh_2rha2rhä2rhö2rhsrid2r2ie3rigr2isr2itrix12r1j2r1krk4n4r1lr3larl2erl2örl3t4r1mrm2urnd4r3nern3frng2r3nirn1ör1nur1nür1nyro1c2rof3roir2onr1or4roß2rox2röf4rögr1ök4röpr1örrp4arp4erpf4r3porp3tr3pu2r1rrrb2rr1crr2or3ru4r1sr3sirs3lr3sor3sy4r1tr3tör4tsrtt4r3türt3zru1a3ruf4rug2rum3rut4ruz2rüb2r1v2r1w4r1xry2c2r1zrz2ö3sa_3saa3sai3sams1an3sat3säl2sc_2scj2scos2cr2scs2scusd4r3see3seh3seq3set2s1hsh2as3häsh3ns3hösh4rsib43sio2s1j4sk_4skbsk4lsk4n4skö4skss3läsl3bs3les3li4sna4snö3so_so4aso1c3sog3sol3somso3o3sos3sov3sow3sozsö2csö2fs1ös1sp22sp_s2pä2spls3pn2spt4spy2s1q6s1sss3l6st_s2ta2stb2stdst2e2stf2stg4sth2stj2stk4stl4stm2stns2to1stö2stp2stqs2trst2u1stü2stv2stwsu2nsu2s3suv3süc3sün4s3v2s1ws3was3we1s4ysyl12s1zsz2os3zü2ß1b2ß1f2ß1n2ß1w3ta_4taatah22tam3tas3tav3tax4täbtä1c4täd3täe3täg2täh4tämt1äptä2st2ät2täx4t1ct4ckt3clt3cr3te_2teh3ten3tes4th_th2e1thi2thk2thp2ths2thü2thvt2hy3tig3tik3tio3tip3tis3tiv2t1j4t3ltl4e3to_to1c3tod3tok3ton3too4toß3tow4töftö4l3tön4töß3töttpf42t1q2tr_3tritry14ts_ts1ot2söt3sy4t1tt3tit3tot3töttt4t3tut3tü2tub3tuc2tud3tue4tuf2tuh2tuk4tüb3tüf3tüm4t3v4t3wtwa21ty13typtys44t1ztz1ätz2öu1amu3auu1ayu1ämu1äu2u1bub2lub1ruc1cu1ceu1ciu1cl2u1d2u1eu2edu2eguen1u2ep2uffuf3luf3r2u1gugo3u2göu2gü2uh_uh1wu1ieu3iguk2au1keu1kiuk4nuk2öu1kuulb4ulg4u2lü1umf1umg1umk4umm1umr1umz4un_u3ne2unk1unruns21unt1unw2unzu3ofuos2u1pau3piu1pr2ur_u1raurd22ure2urfu1röur3purt2u3ruurü2u2sü2u1ß2u1tu3teuto1u3töu3tüu1ü22u1xux2eux2oux3tu1ya2u1z2übc2übdübe2üb3lüb3rüd3rüf3lü2gnüg3süh1aü1heüh1iüh1süh3tü1huüh1wül1aül2cül4eü1luün2sünt2ü1nuü1peü1piür1aürr2ür2süs2aü2stva1cva1sv4at2v1b2v1d1ve2ve3bve3cve3dve3gve3hve4ive3over1ves12veüve3v2v1g2v1hvi2cvig22vii2v1k2v1m2v1n3vol3voyvö2c2v1pv3revs2e2v3t2v1v2v1w2v1z1waa1wag1wah1walwa2p1was1wäh1wäl1wäswbu22w1c2w1dwe2a1weg1wehwe2i1wet2w1g2w3h1widwi2ewik21wil2w1k2w1l2w1mwn3s1wohwot21wöc2w1pw3ro2w1sws2t2w1twti21wucwul2wus21wühwül2wün32w1w1xa_1xae2x1bx1cex1chx1cl4x1d2xekxe2lx1emx2en3xes2x1f2x1g2x1hxib4xi1cxi3gxil1x3läx3le2x1m2x1nx1or4x1p2x1r4x1txt1äxt1uxu1axu2s2x1w3xy_3xys1yacy1äty1c2y1d4y2efy1f2ygi2yg2lyhr2y1i4y1k2yl3cynt2y1nuy1ofyom2y1ouypa2ype2y2pfy3phypo3y3riyrr2yse1y1t2yu2ry1z2za1c3zahz1anz1as2z3czdä1ze1e2z1h2z1j3zolzo2oz1orz1öl2z1qz3saz3shz3skz3sz2z1tz3töz3tüzu3azub4zud4zu3kzuz22züb2z1v4z1zzz2ö", + 5 : "_ab1a_abi4_ab3l_abo2_ack2_ag4n_ag4r_ag2u_ai2s_al2e_ang2_an3s_apo1_aps2_as3t_at4h_au3d_ät2s_by4t_dab4_de1i_de1s_dü1b_dys1_ei3k_eke2_enn2_er1e_erf4_er1i_es1p_et2s_eu3t_ext4_fe2i_fi2s_ga4t_ge3u_im2a_im5m_in3e_ink4_int6_inu1_ire3_is2a_jor3_ka2i_ki4e_kus2_li2f_ma3d_ma2i_me2e_ne4s_ni4e_nob4_nus2_ob1a_obe2_or2a_ort2_ozo4_pro1_ro4a_rü1b_sch4_sha2_te2e_te2f_te2s_ti2a_tid1_ti2s_to2w_umo2_un3d_un3e_un3g_un3s_ur2i_ut2a_ut3r_übe4_vo4r_wa2s_wi4e_wor2_ya4l_za2s_zi2e_zwe2aa2beaa2gr4a2araart4aas5tab2äuab1ebabe1eabei12abela3ber2abet2abew3abfiab1irab1it2ableab3liab4loa2blua2bo_ab2ofa2bon2abora3braa4brä2abrü2abs_abs2aab5scabst4ab3szab1uraby4t2ac1ca1cem2ach_ach1a2achba1che4achfa1chiach3lach3mach3na1choach3öach3ra4chta1chuach3ü2achvac1in2ada_ad2ag4adav1a2dä2ade_2aden4a3diad2obad3ru2ads2ad3stad3szad4tead4tra2elaa2eleae2o3aes5ta2faka2fana3faraf4ata2faua2fexaf2fl2af3lafo1saf3raaf3räaf3reaf3röaf2spag1abag1arag1auag2diag2drag2duage1i2agesag3gl1aggr2a2glag4laa4glöag4nuag4roagsa2ags3pag2th2a1haah4at2a1heahe1sa1h2iahin3ah2löahnt21ahorah1osa2h3öahr1aah3riaht3saian3aid2sai1e2aien3ai3g4a3ik_ai3keai3kuai2loa1indain4ea1ingai2saaiso2a3iv_aive3a3ivla3ivs2akal2akarak4at4a1kea2kefa2keu2a1ki2ak3lak4li2a1kr4akra3akroak3sh2akta2aktb2a1kua2kun4a3kü2ala_al1abal1afala2ga3lalal1ama2larala4s2alatal1aual1ämal2bralb3sal2däal2dral3dualen1ale2pale4talf4r3algi3almba2l1öal2ös1alphal2ufa2lumal1ural2zw2am2aamab4amad2ama3g2am4e4ame_a2meba3meta2mewa3mi_a3miea3mis2ammlammu2am3pr2am2sam3sa1amt_am4töam2tu2ana_2anabana3ca3nak2anam2ananan1äs2anbuan3ch2and_2andua3nee2anfi4ang_2angf2anghang1l2angoang1r2a3nian2id2ank_an3klank1rankt4an2ky2anmu3annäan1oda3nola3nos2anpr1ansä1ansc2ansk2ant_2anto1antr1antw2a1nuanu3s2anzb2anzg2anzs1anzü2anzwa1os3ao3t2a3ot_a2pefa3pelap2faa3pfla3phäa2pht2ap3la2pot3applap3pu2a3pua3ra_ar2ab2arb_4arba2arbiar2bl2arbr2arbt2arbu1ar1ca2reaa4rega2reha4reka3renare3uar2ewarf1rar2glar2gnar2iaar1ima3riuarm2äarn2e2a1roar1oba2rorar2rh2arsaarse32arsiar2st2artoart3r2artsar1ufar1uhar1umarwa2ar2zä2arze1arztas3aua2s1äa2sca4as2ea2seb2asisas1ora2s1pas2phas2pias2poa3spuas2stas3teas3tias3to2astraßen3at1abat2afat4agata3la3tama2tatat1aua2t1ä4ate_a2teb4atena2tep4atesat3ha3athl4a3ti4atorat3räat3reat2saat2seat2siat2soat3taatt3sa3tubatu2nat2zoau2draue2baue2sau2faauff43aufn4au1iau2isau3lüaun2eau1nua4unz2aup22ausc1ausd3ausf1ausg1auslau2so1ausr1ausü1ausz2aut_2aute1autoauz2wa3v4aawi3eax4am2a1yaa1yeuaysi1ä2b3lä1cheä1chiäch3lä2chrä1chuäck2eäf2fläge1iäge3sä2g3lä2g3räg4ra1ä2gy2ä3heähl1aähl2eäh3neäh3riä1is_ä1iskä2k3lä2k3rälbe2äl2bläl2p3ämt2eän5deän2dräne1sän2f52ängeän2glän2gr2ä3niänk2eän2kränk2säp2pläp2präp4stär4afäre2när2grärk2särm2särse2är4siär2stärt4eär2thär2zwä5s4eäse3tä2s1päss2eäs2stäs4träte2nät1obä2t3rät2saät2sääts3lät4trät2zwäu2bräude3äu3eläuf2eäug3läu2maäun2eäu1nuäu3seä3usgä3uskä3usnäu2trba2bl2babs2b1afbais2ba2kabak1lbak1rbal2a2b1amban2ab1ang2banlban3tb1anzbar3bbar3nba2scba2stbau3gbau1sba1yobben3bbe4pbb2lö2b3d4bde1sbe3anbe3arbe3asb2ebe1be1cbedi4be1eh3bef4be3g2beil2b2einbe3li1ben_ben3nbe1ra3be1sbes2abe1ur3b2ew2b1ex2b5f4bfal22b1g2bges42b5h2bhut2bi3akbibe2bie2sbik2abil2abi2lubin2ebi2o1bio3dbi3onbiri1bi3seb1isobi2spb2it_b2itebi2tu2b1k4b3lad3blatb3leb3blem3blenb4letb3leub2lie2bligb3lisb2litb4locb3los2blun3blut4b3n2bnis1bo5asb1ob3bo2blbo2brbo3d22b1ofbo3febo1is3bon_bond1bo2ne3bonsbo4räbor2sb1ortbo2scbo3thbo2xibö2b32b1p2bpa2gb4ra_b4rahbrä4u2bre_3brea2breg3bremb4rer2brigb4riob3rohb4ronb4rucbru4sbs3arbsat2b4särbs2äubs2cabs4cub3se_bse2bbsi4tbs2kubso2rbs2plb3stob3stöb3stübtal3btil4b4ts2bu2e3bu3libung4b2urgbu2sa2b3z22c1abca1chca2e3ca3g4cal3tca2pecar3ncas3tca1y2c1ch2ce2drcen3gcere3ce3sh2ceta2chab2chaf1chaoch1äs1chef4chei2chic2chl2ch2lech2lu4ch2m2chn42chobcho2fch1ohch2r44chrech3rh2chuf2chuh2chum1cka_2ckac1ckag2ckalcka4r2ckau2ckeh2ckexck1imck1in3ckis2ck3l2ck3nck1o22ck3rckt2eclet4co3chco2d2co3dicoff4co1itco2keco2lecol2oco2peco1racor3dco3reco4te1c4r2cte3ecti4octur6cu2p32d1ab2d1acdagi2dah3lda1ho3d4aida1inda1isdal2ada3löd1altdamo3d4ampd2an_d1ang2danw2d1apd2aph4dapp3darlda2rod3arrdar3sd1artda2rudas4tdat2a4datmdau3e2dauk2d1äh2d1äp2därzdä3us2d1b4dbu2cdco4r2d1d2ddar2de2adde3asde3b43de1cdeco3de1e4de3gldehe2de3hod2eicde2löd2en_dend2den3gd2enhde2nide1nude1ondepi2d4er_de3rude2sade2spde2sude1unde3us2dexpd2exz2d1f42d1g2d2ge_2d1h2d2hisdi4abdi2addi4amdi1cediet3dik2adin2adi2obdi2spdist2di2tadi2thdit3sdi2tudi3z22d1k44d1l2dli2f2d3m24d5n2dnis1d2obadob4ld2obrdole4doll22doped2opp2dorc2dordd2orp2dortd2os_dos3sdot6hdo3undö2l13d2ör2d3p2drag4d3rai2drädd4räh4dre_2dreg4drem2d3rhd4ri_d4ridd4ried4rifd4rikd4rild3robd3rocd4roid3roud5rubdrü1bd2sands1änd3seidse4td3shodso2rd2späds2peds2pods2pud2steds2tids2tud2sundta2dd5teadt3hodt5s2du1ardub3l2d1uh2dumd2dumf2dumg2dumld2ump2dumrd1umsdung42dunrdun2s2duntdus3t2d1v2e3a2beab3lea2drea2g4ea3gaea3gleakt2ea2laeam1oea2nae2anoe3ar_ea2rae3arre3arveas3se3athea5tre3aug2ebedebe2i2ebeleb2en2ebeteb3loeb2lö2eb2oebot2ebö2seb4rueb2s1ebse22e3caech1äe1chiech3lech3mech3ne1chuech1weci6a2eckt2e1clec1s4e3d2aed2dre3deiede2re3d2oeds2äed2suedu2se3dy3ee3a2eeb2lee2ceee1chee2ckeede3e1effeef4leef3see1imeel2ee1empeena2e2enäe2encee3nie2enoeen3see1rae1erde1erkee1röeert2e1erzee3s2ees3kee3taee2thee1u2e1e2xef1are2fate2fäue3fe_ef1emef2er2eff_1effief2flefi2s1efkue3fraef4rüef3soef3spe2fumege1ue2gloeg3nieg2thegus32e1ha2e1häeh2eceh2ele3hereh1läehle2eh3loeh3mue3holehr1äeh3rieh3sheh3übei2blei3de2eidn1eifrei3gl2eigt2eigu2eil_2eilbeil3d2eilne1impei4näein3kei3o2eip2fei3ree1irre2is_2eitäei3teei2theitt4e3ke_e3kene3kese3keye3k2lekt2oe3k2wela2cel1afela2h2elaoela4s2e1läel2da2ele_elea2ele2c2eleh2elei1eleke3lepe3leu2elevele2x1elf_el3feelf4l1elfm1elfte3lieel3klel3leelm2ael5nae2lofe2lolelon2el2öfelö2selto22e1luel1ure2lyaelz2eema2keme2se2mop3empfem2saem2stem3t21emule2n1a4ena_2enace3nade4naf4enahe4nak4enam4enaten1äu2ene_2enem2enen2enesenf2aenf2uen3geen2gl1engpe3ni_e3nice4nide3niee3nio2enise3nit2enive2nofen1ohe3nolen1one3noteno2w2e1nö1entd1entn2entü1entw1entz2enut4enwüeo2fee1on_e1onde1onfe1onle1onre1onse1opee1opfeop4te3or_e3orbe3orse3orweo1s2e3os_eo3ulepa2gep3leep2paep4plep2prept2aepu2se3ra_era2ge1raie2rake1rale1rape2rare1rasera2ße1rawe1razer1äher1ämerb2eer3brer3da1erdber3de4ere_er1ebere2l2eren2erer2ereserf2eerf4rerg3s2erhüe3ribe3rio2erk_erk3te3ro_er3oaer1ofer1ohe3rone3rose3rowerö2d2eröker3p4er3rä2errüers2aer3seers2ier3sker3sner3sper3sz4ertier3uzerü4bes3abes3ake3sceesch2es2eles2hues2ide2siles2ire4skees3kles3kue4skye3sote3spies3sces3se2essoe1stre1stues4tüetab4et1am3etapet4atet1ähet2enete2oet3hüeti2m2e3toeto2bets2pet3suett1aet2thet2zäet2zweu1a2eu2gaeugs4euil4eu1ineu2käe3um_e3umbe3umleun2eeu1o2eur2eeu3speust4eut2heu2zw4everewä2se2we_e3wirewi2se3witex3atex1er1exis2ext_ex2tu2e3xye3z2aezi2sf1abefab5sfa2drfaib4fa2ke2fanb2fanf2fanlf1anp2fanrfan3s2fanw2f1ap3farifa3shf3aug3f4avfa2xa2f1b22f3d4fdie2f2echfe2drfe2eife1emfef4lf4eief1eisfel3tf2em_fem4m2fempfe2näfen3gfe2nof1entf2er_fe1raf2eref2ertf1erwfe2st3fete2fexpff3arff1auffe2eff3eiffe2mff4enf2fexff4laff4läff4lof3fluf3flüff3roff3röffs3t4f3g2fge3s2f1h2fi3atfi4dsfien3fi3klfi2krfil3dfilg4fi3lif2inafi3nifin2sfi3olfi3rafis2afis2pfi3tu4f1k4f3ladf3lapf3länf4leef3lerf3li_flo2wf4luc2f3m22f3n2fni2sfob2l2f1offoli3fo2nafo2nu2f1opfo1ra3form2f1ök2f1ölför2s4f1p2f4racf5radfra4mf5rap2fre_f3recf3red2fregf3repf4reufri3dfri2e2frig1frisf3rocfro2sf3rotf2sanfs3arf4scefs4cofse4tf2sphfs1prfs3s4fs3thf4ta_f2tabft1afft1anft1arf3tatft3hoft1opft2s1ftsa2ftse4ft3stf2tumftwa4ft3z23f2uhfung42funt2gabfgab4r2gabz2gadlga1flga2kagal2ag4amo2ganbgan3d2ganh2ganlgans22ganwga1ny2garb2garc3gardg2arsga3ruga2saga2siga3spgas3sgat2a2gatmgat4rgau1cg2aukg1aus2g1äp2gärz2g1b2gber2gby4tgd1ing1d3rgd3s2ge3a2geb2ageb4rge1e2ge3ecge2esge1imge1irge2isge3lege3lügelz2ge3migem2uge3nagen3ggen3ngeo2rge1ouge3p4ge1ragerm4ge3sigest2ge5trge1ulge1ur2g1ex2g1f4gga4tg2g3lgg4log2g3n3gh2rgie3ggi2elgi2gugi3negi3tugi4us4g3k2g1labg1lac3glad3glätg2l4e2gle_3gleag3lecg3leg2glehg3len2glesg4lia2glib2glifg2lik4gling2lio2glisg2lizglo3gg2lom2g1luglu2t2g1m2g2n2ag4na_2gnacg4nat3g2näg3neh2gneug2nieg2nifg4nin3g2nogno1r2g1of2g1ohgol2a2gord2gorggo2s1go3stgo3th2g1p2g4rebg4remg4rerg3retg3revgri2e3grif2grig2groc2grohgron4g4rosgro4ug4ruf2grut4g2s1gsa2gg3salgs3angs3arg3s2cg4scagsch4g4scogs2ehgsen1gs3ergse4tgsi2dg3silg3spigs3plgsrü2gs5s4gs3tag3stog3stögs3trg3stugs3tügti2mg5t4rgu3am2guedguet42g1uhgu1is3gummgu4stgut1agut3h2g3z2hab2ahab2eh2absha1kl2haleh1alph1amth2an_h2andh4ann2hanr2hantha2plha2pr2harbh2ardhasi1h1äff2h3b22h3d4hdan2he2adhe3behe2blhe3brhed2ghe3dihee4she2fä2heffhe2frhe2fuhe3guh1eieh1eifh1eighe2im4heioh1eiwhe3lihe3lohe2lö3hemdhe3mi3hemmh2en_he2näheng22henihe2nohen3z4he2ohe3onhe3ophe3phherg22hermhe3roh1eröhert2he3thhet2ih2e2uheu3ghe1y22h3f4hfi2s2h3g2hget42h1h2hi2achi1ce2hi3dh2idehi2krh1infh1inhhi3nohi4onhi3or2hip1hi2phhi2pih2i2rhi3rahi3rihirn1hi3rohir2shis2ahi2sehis2phi2sthi1thhi3ti2h1k4h4lachla2nh1lash1lath3lädh1läsh1läuh3lebhle3eh3lerh3lesh3lexh2lieh2lifh2liph2lish2lith3lochl1ofhl1oph4lorh3löch2löshl3t2h3lufh3lukh1lüfh2mabh3magh3manh3marh4mäch4mähh4mälh4mäuh3me_hme1eh3menh4monhm3p4hm3sahms1phn1adh3namhn1anhn3d4h2nelhn3exh2nich2nidh2niehn1imhn1inh2niphn3k4h2norhnts2h2nuch2nulho2blho2efho4fa3hole4holo3holzhom2ehono3ho1rahor3dh1orgho3slho2spho4st2hot_ho3thh1o2xho1y2hö3ckhö2s1h3öst2h3p2hr1achr3adh1raih3räuh2rech3redh3refh3relh3rephre2th3revh3richri4eh3rinh2robh3rohh3rolh4ronh2rorh3rouhrs3khr2suhr4swhr2thh3ruhh4rübh2sanh2sauh2späh2sphh1stah1stoh2s1uh2t1ahta4nht2ash2tärht1ehhte2sh4thohtod1h3töpht4riht3röht2soht2sphtti2ht3z2hu2buhuko3hu2lähu2loh1umsh1unah1up_h1upshurg2hu3sahu2sohu2tihut2th4übsh3übuhvil4hwe1c2hy2thzug4iab4liaf4li3ak_i3akti5al_ia2läial3bial3dialk2i3allia2lui4amoian2ei3anni2anoi3anti3anzi3ar_ia2rai2ascia3shi2asiias3siast4i3at_i4ate1iatri3atsia3uni1är_i1ärsi1ät_i1ätaib1eiibe4nibi2ki3blai3blei2b1öi4bräich1aich1äi1chei1chiich3lich3mi1choi1chuich1wi3damid2ani2deiidni3i2dol2i2drie3a2ie2bäie2blie2ckie2drie1e2iel3di1ell2i1eni3en_i3enai3endi2enei3enfi3enhi3enji3enki3enmi3enni3enöi3enpi3enrien2sie1nui3envi3enwi3enzie1o2i2erei4erii1ernie2röies2pie3sui1ettieu2eie1unif1arif4atif1aui2fecife2iif2enif2flif4läi1flüif4rai1freif3seif3spif2taiga3iig1läig4nai4gnäig4noig4raig3säig4seig3soi2harihe1eihe4nii3a4i1i4si2is_i2käri3ki_ik1ini2k3lik3noiko3si2kölik3räik3reik1s2ik3soik3szikt2eikt3ri2kuni3kusi1lä1il2daild1oil2drile2hil1el2ill_2illsi1lu2i2lumi3lusim4ati2megi2meji2meki2mew1immo1impoimp4s1impuim2stin2afin3ami3napina4sin1äsin3do2indrin3eii3nelin1euine2x2ingain2gl4inhei3nie2inigin2ir2inis2inn_2innlin1odin1orino3tin3suint2hin3zwi2odaio3e4iof4li2o3hio3k4i3ol_i3om_i3omsi3on_ion3di2onyi2o1pio4pfi3opsi3opti3or_i3orci3orpi3orsi3ortio3s2i2osti3ot_i3otsi3oz_i1ö2ki1ös_ipen3i3perip3fa2i1piipi2sip2plip3pui1r2ai3radirat2ir2bli3ree2irek2i3réir2glirg4sir2he2irigir4mäir2no1ironiro2sirr2hir3seir3shir2sti3sacis2api2saui2scaise3eisi2ais1opis1pais1peis3sais2stis4töis4tüit1amit1ani3tatit1auit2ärität22itelite4ni2texi5thr1itiii5tocit3rei3truit2sait2soit1uhitut4it2zä2i3u2i2vebive4niwur2ix2emiz1apiz1auize2niz4erizo2bi2z1wja3nejani1ja1stje3najet3tjo2b1job3rjoni1jo1rajord2jo2scjou4lju2blju3nijur2ok3a2aka3ar2kabh2kabska1frka1inka3kak1allkalo5k3amakand4kan2ekank42kanlk1anska3nu2kanw3kara2karbk2ardk2argk2arkk2arskar3tkaru2k2arwka3sekasi1kas3s2kattk1auskäse32k3b4kbo4nkbu2s2k3d2k1effkefi4kege2ke2glk1einkei1skeit2ke2lake2läk4eltk2en_ke2no2keo2ke2plk2er_k2erck2erlkerz2k6es_ket3ske1up2k3f42k1g22k1h4kho3mki3a4ki3drki2elki3k4ki3liki3lok2imik2in_k2ing2kinhk2inik2innkin3ski3orkio4skis2pkist2ki3zi2k1k44kla_k4lar4kle_4kleh2klic2kligk2link3lipk2lir4klizk4lopklö2sk2lötkluf23knabk4neiko2al2kobjkoff4ko1i2kol4ako3leko4muko3nu2kop_ko1pe2kops2kopzko3riko2spko2stko3ta2k1ouko2wek1o2x2k1p2k4rawk4raz2kre_2kreg2k3rh2krib2krip3kris2krufkrü1bk2sanks3ark2sauks2änksch4ks3hak3sofks1paks2puks3s2k1stak1stek1stok1strk1stuk2s1uk3talkt1amkt1anktä3skte3ekt1eik2texkt3hokt1imk3topkt4rokt3s4kul2a4kulpkung42kuntku2roku2spkus3tku2sukür4s2k3z2kze3lla3ba2labb2labf2labg2labhlab2ol2abr3labu2labwla1celad2il1adl2ladm3ladul1advla2falaf3slaf3tla2gala2gnlago2l2akk2l1al4lall4lalpl2amil2amp2lanb2lanf2lanll1anp2lanslar3sla2ru4lasdla3se2lash2lasila2so2laspla2stlat2ala3telat2s1lauglawa41länd2läub2läuc2läue1läufl3bacl3blälb3lel2blil3blolb3salb3selb4sklb3splbs6tl3chel3chilch3llch3rlch3ülch1wlda2gld1all3daml3dasl3datld1auld1ärl2deil2dexldo2rld2osld2ö2l2dreld4rüld3sald3stld3thle2adle2bl4leddle3dele3eilef2ale2gäle2glleg4r4lehs4leht3lei_l2eicl2eidl2eitlel3s4lemplem3sl2en_le2näl2enfle3nil2enkle1os3lepa3lepf3leprl2er_lerb4lerk2ler3tl1erzles2ele3shlesi1le3skles2t4lesw2lesy2leto4leud3leut2lexe2lexzl3fahlfe1elf3lolf2trlfur1lga3tlg3rel3gro2l1h23lhi_li3acli3akli3arlia1slibi34lickli4ds3lie_lig4nli3keli2krlil2a3limolin2al1inv2linzli4om3lis_4lishli2spliss2lit2ali3telit2hli3tu2lixili2zalk3lolk4nelk4ralk2s1lk3sälks3tl3k2ülla2nl3lapll1aullch4ll3d4ll2emll2esl2lexll3l2ll1obl3lowl2löfll5t4llu2fll1urll3z2lme2el2möllmpf4lms2tlna4rl3n4e2lobjl2obrlo1fllof4rloi4rlol2a2lopf2loptlo1ralo4rä2lorcl1ordlo3ro3lorq3los_lo4sa3loselo2ta2l1ovlo2velö2b3l1öhrlp3t42l3r2lre1slrut4lrü1bl3sacl2saul3sexlsho2ls2pels2pols3s2lst2al2stels4trls2tuls1uml2sunlsu3sl2tabltag4lt1aklt1ehlt2enlt3hol3thul2toblt1oplto2wlt1öll3törlt1ösl3trält3relt3sclt2solt1uhlu1anluba2lubs2lu2drlu2es2lufflu2golu2gu2l1uhlume22lumf2lumll2umpl1umsl1umw1lu2n2lunt2lunwl1urnl1urt2luselu2splu4stlu2tälüh1lly1ar2lymply3nolzo2flz3t2m2abe2mabk2mabs2mabtma2cima3damal3dmalu4mam3m2manbm2anfm2anh2manlm4ann2manzma2orm2app2marb4marrm1arzmat4cma3unma1yom1ähnmä1i2m1ärg2m1b2mbe2em3b4rm2d1äm2deimds2em2e1cmedi32medyme1efmega1m2eil3meldmell2m2en_m2ens2meou3mer_me1rame2ro3mersmes1ame4sä4mesume3th2m1ex2m1f4mfi4l4m1g22m1h4mi2admi3akmibi1mi3damie3lmi2ermi4etmi2kimi2ku4milzmi3nimi1nu3mir_mi3ra3miri3mirs3mirwmi2samise1mi2tami2th4mitz4m1k44m1l2m2mabmm1eimm3simm3spm2mummm2unmmül22m3n22mobj3m2odmo2dr4mog_mo2i32mol_mom2e3m2onmo3ne3mo2o2moptmo1ramork4m1o2xmp2flm3ponmp3ta2m3r2m2sanm4sapms1asm2saumsch2m4scom4sexmso2rm2späms2poms2pums3s2m3stoms4trms4tüms1ummt1abmt1akm3tammt1armt3homti2smt1ösm4ts1mt2samt2semt1um2m3uhmu3la2mulsmu3nim4unkmunt24munzmu3ra3musimu2spmus3tmu2sumuts32m1w2mwel42n1abna2bä4nabg4nabhna2bln2abona2br4nabt3n2ac4naddn2ade3n2ag3n2ahn3ahnnai2en3aign3air2n1akna2ka3nakon2al_na2län4alena2lu2nalyn4am_3name3namon1an_4nanb2nanh2nani4nank2nanl3nannna3non1anp2nanr2nanw5nar_2narcn2ard4narg3narin2ark2narmn2arpn2as_4naspn4ata4natmnats14natt4naufn3aug5naui3n2äcn1ähn2n1ännä2scn2äss2n3b4nbe3nnbes4nbu2snch3mnd2agndat2nd1aun2dein2dobndo1cnd1opnd1orn2drönd3thndt4rn2dü4ne2apne3asne3atne2bl3necane1ckne2de2nee32neff3nehm2n1ein2eid4neifne2ke3nelanel3bne3lin2em_n4en_n2enbn2encn2enhne2nin2enjnen3kne2non2ensn2envn2enwne2obne1os2nepfn2er_ne1ranere2n1erfn1erh3nerin1erkne2ron2erpn2erv3n2esn4es_nes4cnes1one2thneu1cneu3g2n1exnf1aknfo1snft2on2f1ung1adng3d4n3gefn3gerng3g4ng3hun2glon2glöng3neng1orngs3cng3tsn2gum2n1h4n3hann3harn3haunhe2rnib4lni2deni3drnie3bni1elnig2anig3rni3klni2kr3n2ilnim2o2ninfni2obni3okni3olni3ra3n2isni2tinit4sni3tunk2amn2kähnke2cnk2lonk2lunk4nan2knenk2öfn2köl2n3l22n1m4n2naunne2snn2exn2nofnn3scnn3senn2thnn1ur3nobl2no2dno3drn3olen2on_3nor_nor2a2norc3norh3norm3norsn1ortno3shno2spno2täno2tr2nö2f2n3p4npa2gnpro1npsy32n3r2n3savns2cans1ebnse2tn3sexn3siln2sphn2sponsrü2ns3s2ns2tins2tunst2ün2styns2umnta3mnt4atnt1ämnte2bnte1ent1ehnt2enn3ternteu3nte3vn3thrnti3cntmo2nt3sants2onts2pnts2tntum4nt3z21nu1anu3arnubi11nu1cnu2esnu2fe2n1uhnu3k4n2um_2numf2numg3numm2numr2nuna2nunt3nu2snu3scnu3senu3slnus1pnu2ta2nü4bnür1c2n1v2n3ver2nymun2zadn2zann2zärnz1ecn2zornz2öln2zwö2o3a2o4abioa3deo4a3ioa3ke2obano3bar2obe_2obea2obewobi4t2o3boo3briob3skobs2p2o3buobu2s2o3bü2oby4och1ao1cheoch3loch3moch1ooch3roch1socht2o1chuoch1wo3ckeo3ckio2ckoo3d2aod2dro3debo3dexo3diro3divo2donodo4so2dre2o3du2o1e2o4e3so2e3to3et_o3etsof1amof1auof2eno3feroffs2of2fuof1laof4läof4löof3raof3räof4rüofs1aof3thoga3dog2loo3g4nog3spohl1aoh3looh2lu3ohngoh2ni1ohnmo2h3öohr1aoh1ro2o1hyo1i2do2isco1ismoiss2oi1thoki2ook1läo2labol2arol4drole3eoler2ole3sol2faol2flolf1rol2glol2grol2klolk3rol2of1olymol2zwo2mabo2mebome3co2melo2mepom2esom3maom3pfomtu3ona2bo2naeo3nalon1apon2auonbe3one2ion3f2ong4rong3s4o3nion3k2onli4o3nodono3sons1aonsi2ons3lons1pont2hont3s2onukoor3foo4skoo2tr2o1ö2opab4opa5so1peco1peiope4no1pes2opf_op2fäo2pfeopf1l4oph2o3pheopin2op3li2o3poop4plop2pr2o1pr1opsiop3szo1rad2orak2oral3oramo1rasor1ätorb2l2orcaor2ce4orda1ordnor2do2ordr2ords2ordwore2hor1eror3gaor2glor2gn4oril2oritork2aork2s2o1ro2o1röorr4aor3rh2ors2or3shor3szor4töor2ufo2r3üo2ryaos3ados4anosa1sos4co2o3seose3eose2no3shoo4skaos3keo4skios2lo2os1pos2saos4säost1aos3to2osu42o3syo2tebote2s4ot2hot4heo2throt2inotli2ot4olot2oroto1so3traot2saot3scots1pot2thou2ceou2geou3glouri4outu4ove3so3wecoy1s4ozon1ö2bleö2b3röb2s3öch1lö2chröch2söcht4öd2stöf2flöh3riö3ig_ö2ko3öl1a2öl1eiöl1emöl4enöl1imöl1inöl3laöl1o2öl3saöl3szö2l1uölz2wönn2eön3scön3spöpf3lör3a2ör2drör2glör2klörs2eört2eör2trös2stös3teös2thös3trö2t3aöt2scöt2trözes4pa3dapa2drpa2elpa3ghpa1ho1pala1paläpa3li2paltpank42panlpant2papi23para1parc2parg1paro2parppa4stpat4cp3auf3pä2cpä2to2p1d2pea4rpech1pe2en2peicpe1im1peitpel3dpena4pe1ra1perl3pero5perspe3sape2stp2fabp2fadp2fafpf3aip2feipf3lopf3lup2forpf1ra2pfs2pf3slpf3sz2pf3tpgra2p3hopph3t2phu4s2p1hüpi2a3pias4p4id2pi2el3pierpi3lepin2epi3oipi2pepi3ri4pisopi1thpit2s2p1k2pkur11p2l43p4lap5la_p5lad2ple_ple1cp4legp4lem2pligp4likp4liz2p3lu2p1m2po3b42p3ohpo3id3poin3p4olpo3li2pondpo2plpo3pt2pornpor3spos2epo3ta3potepö2blp2p1hpp1läp2plep2pripp3sa1prak1prax1präd1präg3präm3präs2pre_2prec1pred1preipri4e2prig1p4ro3prob2proc3prod3prog3proj3prot1prüf2prünps4anp3s2hps1idps2pop3staps2tup3stü3p2syps2zept2abpt3atpte4lp4tospto2wp2t3rpt3s2pt1um3p2typu2dr2p1uh2pundpun2s2puntput2spwa4r1queura2abr3aalra3ar2rabd2rabf2rabgra2br2rabs2rabt1rabyra1cer2ackr4ad_rada23radf3radlrad5tra2gn4raht2raic1rake3rakür4al_ral3bra3le2ralgr4aliralk2r4alsra2lu3ralyr2ammr2an_4ranc2ranf2ranl2ranr2rapfr2ara2rarbr2arkr2arpr4as_ras2ar4at_r3atlrat4r4rau_4raud2rauf2raug3raum3r2äd3rän_3räni3räns2r1ärr2är_rä3raräu2s4räutr2bakr3blärb2lörb4rirb3serbs1orb3sprby4tr1chirch3lrch3mrch3rrch1wr2ck1r2dafrd2amr4dapr2deir3denrd1itr2dobr3donrd1osrd4rird3tard3thrdwa4re2amre3asreb1rre2bür2ech4reddre1elre1er3refe4reff3refl3refo5reg_rehl4r2ei_r2eie2reigr1einre3larel2ere3lorelu2r4em_r2emi4remur4en_r2enare2näre2nir2enzre3or3repe3repo4reppr1erfr1ergr1erkr1erlrer2nr2eror1erör1ertre2sa3rese3reso2ress3rest3resu2reulre2wi4rezirf2äurf2esrf4lör3flür3forrf4rurf4rürf2sarf2targ2abrg2anr2gnor2ha_r3herr2hoe2rholrhu2sri3amria1sri3atri1ceri1elri1euri2frrif3s5rig_5rige5rigjrig1l4rigrrik1lr2imb2rimprim2s2rink3rinn2rintr1inv4r1irris2ari3so3rissri2strit4r5riturk2amr2kährk4lork2lur3krirk2sprk1strk2tark1uhrk2umrku2nrle2ar3lecrle2ir3letr3l2irli2sr3l2orm2ärrm3d2r3me_r2meorm2esrmo1srm3sarmt2arna2brna4nr2naurn3drr4nefrn2eirne2nr5nesrn2etr4nexr3nodr1nötrn1ur2robj2robsro3e4roh1lro1irro3lerol3s2roly4rom_4romm4romt3ronnrons2ro1nyro3phr2oraro3shros2p3routrö2du1r2öh1r2öl3römir2ös_r2öse2r1p2r2plirpro1rps3trr2abrr2arrr1ämr3r2er4rewrr2herrik2rro3mrr2strr2thr3r2ürrü1brs3abrs2anrs3arr3shors2klr4skor4skrr4skurs4nor4sobrs2p4rs3s2rs2thrs2tir3stor3störs2tur3swirtal2rt1amrt1ärrten1r2thirto1prt1orr5trirt2sorube2ru2drru2fa3ruinru1is4rumfru2mi4ruml4rumz2rund4runn4runt2runwru3pr4r3urru2ra5ruroru2siru2strut3hru2zwrü1ch4rümmrz2anr2zarr2zasrz1idrz1oprz3terz2thr3zwä2s1absa2besa2blsa2br4sabss1adm3safasa2fe3safi3sagasag4nsa2grsail42s1aksa2ka3saki3sakr4sakt3salo5samms1amps2an_s3anbs2and3sani2s1apsa2po3sapr2s1ar3saris3arrs1aspsat2a4satmsa2trsa3tss1a4u3sau_3sauc3saue3saum3saur2s3avsa2vos3ähns1ält2s1äm2s1är3s2ät3säul2säuß4s3b4sba4n2scams2cans2cap2scar2s1ce4sch_s4chä4schb4schc2schd2schf2schg2schh2schks4chls4chö2schp2schq4schss4chu3schü2schv2schz4s3cl4s3d2sde1sseb4rse1ecse2glseg4rse3heseh1lseh1sseh3ts1ein3s2eks2el_s2elsse2nä3senkse2noseo2rs4er_3seraser3gs1erh3seriseru25ses_se3su2s1exse2xe4sexpsex3t4s3f4sflo44s3g2sha2k1shass3h2e3shi_3shidshi4rs3hoc4shof3shop3showsi2ad2siat5si1cs2ido3s4iesien3sie2ssi1f43s4igsig4nsi2kisik1lsi2krsik3ssi2ku3silosin1ision43s2issi2sasis3s3s2itsit3rsi3tusiv1asive3si2vr2s1k24skams3kar4skass4keps2kifs2kig4skirski1s3skiz4skom4skor4skow4sk3t2s1l23slal4slans2laws3lo_s3loe2s3m22s3n4snab4so3baso3et3softso3la3s2onsone2so2ny2sopf3sor_s1orc3sorsso4rus4os_2s1ox2s1ök2spaa2spaks2pan2spap2spaus2paz3späh2spärs2pee2spel2spet4s3pf2sphas3phe2sphispi2k4spil3spio4spip4spis4spla4splä2spod2spogs2poi2spok4spol4spr_3spru2s3ps2spun2spup3spur4sput4s3r4sret3srü2ds5safs3sagss1ajs3sals3s2äs4sces4scoss1ecssoi4ss2poss3s4sst2ass2thss2tis3stü4sta_3staast2ac2stag3stah2stak2stax3s2tä4stäg2st3c2steas2ted4stee2stem4stens2tep2ster4stes2stetst3ev4stexs4thäs4this2thu2stia2stibs2ticsti2e2stig2stiks2til2stio2stis2stiv2sto_s3tob1stof4ston4stoo1stoß4stou2stow2stoz2stöt1stru1stub4stuc2stue3stuf3stuhstu2n3stüt4st3zsu1ansuba24subi3su1c2s1uhsu1issul2asul2isult23summ3sun_su4nes1unf4sunt3s2upsup3psu2ras1urtsu3sasus1esu3shsu3sisus3s2sü4bsü2d1sweh24swie4swilsy4n34s3zas2zess2zis4s3zu4s3zwßen3gße2niße2noße2roßer3tßig4s2ß1s25taan4tab_2tabf2tabg2tabh2tabkta2br4tabsta2bü2tabw2tabz2t1ac3tacut1adatadi33taf_4tafft1afg3t2agt3agotai2ltai4r2takzta2latal3d3talo2talt3tameta2mit1amt3tan_2tanbta3ne4tanf2tang3tanit2ank4tanlt2anot1ansta2nuta3or2tapfta2pl2tarb4tark2taro2tartta2ruta3sata2tht3atlt4atmt1auk3taum4tägyt1ämt3tänzt2är_tä2ru4tätt2täuß4t3b2t3chat3chetch2itch3lt2chutch1w4t3d4tdun2te2a22teakte3alte3an3tebat2ech2teckte1emte2es2teff3teha3tehät2eieteik43teil5tel_3telatelb43telg3telk5teln3telp5tels3tem_tem3st6en_ten3ate2nät4enbten3gt4enhte2nit4enjt4enmten3n3terct4erit4erot3erötert2teru2t2estte2su3tet2t2et_4teth4tetl3teuf3teumte1unte2vite1xa4texp3text2texz4t1f4tfi2l4t1g2tger22th4at2hagt3hait2hak2t3hä3thea2thebt2hect2hekt2hem1then3theot2hest2heut2hik4th3l4th3m2th3n1t2hot3hoft3horthou24t3hö2thub4thunti2ad3tib4ti1cetieg42tiehti1elti1etti1eu3tif_ti1fr4tift3tilgti2lötil3stilt4ti2lut2imiti3nat1inbt1infti1nuti3orti3plti1rhti2sptium2tive3ti2za4t3k46t5li4t3m2tmal24t5n4tnes2to4asto5at4tobjtob2ltode2toi4rto3la3tole4tolz2tomg3topo2topt3tor_to1ra4torct1ord3toret1orgto2rö3torsto2rut2orwto3sc3toseto4sktos2p4toss3totrtots23t4outo3un3töch4t1ökt1öst4t3p21t2r45tra_3trac3trag3trak3tral4traß5träc3träg4träs4träß4treb4trec3tref4treg2trekt4remt4rert4rett4reut3rev2trez5t4ré2t3rh4tric2tridt4riptri2x3tro_3troe3tront4rop3troyt3röc2tröh3trös3trua4truktrum2t4rübt4rügts1adts1alt2sants1ast2sauts1emts3krtso2rt3sout2spät2spht2spots3s4t1st4ts2tut2s1u1tsubtt1abtt2actt1aktt2altta1st3telttes1tto1stt3rutt3rütts1ptt2untu3antuf2etuff3tul2at2um_3tun_3tune3tungt1up_tu2rätur1c3turntu2rotu4rutu2satu2sotu3ta3tüch3tür_tür1c3türe3türg4tütztwi4ety2pat2za2tz1agtz1altz1artz1aut3ze_t2zortz2thtz1wätz1witz1wuu1a2bu1a2cuad4ru1al_u1albu1alfu1alru1alsu1altua2luu1ansu3ar_u1arsua3saua2thuat2iubau1u3b4iu2bopub3räu2bübuch1auch1äu1cheu1chiuch3luch3much3nu1chuuch3üuch1wu2ckiu3d2au2donud3rau3druue2ckue2enu2elaue2leueli4ue2miue2näue2niue2nou2ereu3errue2tau3fahuf1akuf3aru3fasuf1au2ufe_uff4luffs4u2fobufo2ruf3säuf4sou2fumug1afug1akuga4sug1auug3d2ug3huu2g1lug3lou4gluu2g3nug1orug3roug3seug3siuh1lauh1läuh2liuhme4uhr1auh3riuhrt4uh2ruuh4rüui2chui1emu4igeu1in_u3käuu1k2lu1k4ruk2tauku2sul1abul1amula2sul1ämul2drule4nule2tu2lexul3f4uli2kul3kaul2knull2aull3sulo2iul1orul2sauls3z2ultaul3thult3sul2vrulz2wuma4rum2enum1ir1um3lumm2aum2suum3t2um2un2una_1unabun3acun4alun3at1unda1undd1undf2undg1undn1undv1undzune2bune2hung5hun2idunik4un2imuni2r2unisunks23unkuunna2uno4run2os2uns_un3se1unsiun3skun3spun3taun3trunt3s2untuu1o2bu3or_u3orsu1os_uote2u1pe2uper1up2faup2plup2prupt1oup4tru2rabu2rar2u1räur1änurch1ur3diure4nurf3turi2cur1imurk2s4u1rou3roluro1sur4swur2zaur2zäur2ziur2zou3sepus3klu4skous3ocu3sohus1ouu2spou2spuus2thus3tru1stuus2uru2tärut1egute2lut2esut2etu4tevutfi4ut2heu2thiu2thuuto3cut4orutos4ut3rüuts2put3teutts2ut2zo2u1u2uufe22u1v4u2ve_uz1weuz3z4übe3cüber3ü1cheüch3lüd3a4üd1o4üd3s2üdsa1üd3t4ü2f1aüfer2üf2flü2f1iüf2toü2g3lüg4stühla2ühl2eüh3moüh3neühn2süh1roühs2püh4thül2laül2loül2löü2n1aün2daün2dründ3sünen3ün2faün2frünn2sün3scün3seün3spün2zaüp2plür2flür2frür3scür3seür3spürt2hüse3hüse3lüse1süss2eüs2stü2t3rüt2s1üt2tr2v1abval2s2vang2varb2v1auve3arveit4ve3lave3leve3live3love3mave3muven2cve3neve3nive3növer3averd2vere2verf4verg4ve3river3kvert2ver3uve3tavete1ve3trve3x22v1f4vi3arvi2elvi2ervima2vi4navin2svi3savise4vi2spvis2u2v1l22v1obvo3gavo2gu2v1opvo2r1vor3avor3dvor3evor3gvo3ri2v3rav4ree2v3rov1stav3s2zvu2et2vumfwa5gewa3gowai2b2walb2walmwa3nawa3sawa3sewa3sh2wängwäs2c2w1b2we2bawe2blweb3swe2e4weed3we2fl2weiewe3niwerd2we2röwer2s1wesewe2spwe4stwet2s2w1eywie3lwin2e2wing1wi4rwi2sp1wisswi3th1wo1c1wolfwor3aw3s2kwun2s4wur_wur2s2xa2b1x2adxa1fl1x2agx3a2mx2anz1x2asx1e4gx2er_x2erexers22x3euxich2xide2xie3lxil2axi2loxi2lux2is1xis2cxi2sexis3sxi2su2x1k22x2l22x3s2x2t1axt2asx2tänxtfi4xt3s2x3turx1u2n2y1aby1al_y1a2myan2gy1anky2chiych3nyen4ny2erey2es_yes2pye2thygie5yke3nyk3s2y4le_yli4nyl3s2y2l1uyma4tym3p4ympi1y2n1oyno4dyon4iy1ontyp3any4p3sy3r2eyri2ayri1ey3r4oys2any3s2cy3s2hy4s3lysme3ys2poys1prys3t4y3s2zy2te_y2tesy3to1yure3zab3lz1a2dza3de2z1afza3grzale32z1amza2na3zani2zarb2zarcz1arm3zaubz3aug3zaun2z1äc3z2äh2z1ämz1ärgz1ärm4z3b4zbü1b2z3d2zdan2zeik4zelu25zen_zen3nze2no3zentz2er_zerk2z2ernzers2ze2säze3sczes1ezes1ize2spze2tr2z1ex2z1f42z1g2z2henzhir3zi3arzid3rzil2ezin2ezi2o3zi3opzirk22z3k42z1l22z1m2zme2e2z3n42z1ob2z1ofzo2gl2z1oh2zopezo2ri2z3ot2zö2f2z3p42z3r24z1s2zt3hozt3s2zu4chzudi4zu2elzu3f4zu3gl2zumf2zumg2zumlzun2ezung42zuntz1urkzu3s4zu5t2zür1cz1wac4zwahz1war2zwas4zwäl2zweg2zwet4zwirz2wit2z1woz1wörz1wur2z1wüz3z4az3z2o", + 6 : "_ab3ol_ab1or_akt2a_al3br_alt3s_ampe4_an3d2_angs4_ans2p_ans2t_an3th_ari1e_ark2a_ar2sc_as4ta_au2f3_au4s3_be3ra_boge2_da2r1_darm1_de2al_de1o2_des2e_de3sk_des2t_do2mo_do1pe_dorf1_ehe1i_ei3e2_ei4na_ei2sp_ei4st_ei4tr_el2bi_elb3s_em3m2_end3s_enns3_en2t3_en4tr_er2da_ere3c_es3ta_est2h_es3to_es5tr_eu3g4_eve4r_flug1_for2t_fu2sc_ge3ne_guss1_he3fe_he3ri_inn2e_kamp2_kle2i_kopf1_le4ar_li4tu_ma3la_ma2st_mel2a_mi4t1_näs1c_no4th_oper4_oste2_ost3r_poka2_ram3s_reli1_ri2as_rö2s1_se3ck_sen3s_ser2u_se2t1_si4te_ski1e_tal2e_ta2to_te3no_te4st_ti5ta_tite4_to4pl_tro2s_tu3ri_uf2e2_ufer1_un3a2_uni4t_uns4t_uro2p_ur3s2_wah4l4a1a2naa2r1aaar3f4aat4s3ab1aufab1eilabe2laab1erkab1erzab1ins1a2blaab5lag1a2bläab4le_3a2blö2absarab3s2iab3s2p2abst_ab3ste1abteia1chalach3auach1eia3cho_ach1orach3su4ach1wa1ckarack2ena2ckinack2seack3slacon4na3d2abad3amaa2d1an3a4dapade2aladefi4a2deina2deri4ade1sades4sadi3enad4res2ad2t1a2f1eca2fentaf1erlaf4fluaf3s2aaf3s2haf2t1aaf2teiaf2t3raf2tura2f3urag1a2da3gen_age4naage2saage4si3a2gitag4ne_a2g3rea2g3riag4samag4setag4spoag3staag3stea2gundahl3a2ahl3szah4n1aah3r2eahrta2ain3spai3s2e2a3kam1a2kazaken2nak3rauak5tan2aktikak2t3r2aktstal1ageal3amealami5al3ampal1anaal1ansal1anza3lar_a3lareal2armal3arral1asial1assal3augal2b1lalb3lial2bohalb3rualds2ta4l1eha2l1eia2l1ela2lengal1epoal1erl3alermal1etaal1etha2l1eua4leur3a2lexal2glial1insa2linvalk1ar1alkohalk3s2alks4tal2labal2laual3lesal2lobalo2gaal1opeal1orc3alpe_al3sklal3sunal4takal3tamal2treal2trial2troalt2seal1umb2ambiqame2n1amer2aa2meriame3rua4mesh2a3mirami3taami3ti2ammalam2meiam2minam3stram2t1aam2t1äam4tel2amtemam2t3ram4treanadi3an1algan3dacande2san2dexand2suand1uran3e2can2ei_an3eifan1e4kan1ethanft5san3f2uang1ar3angeb2angiean2gla4angs_3a4nima4ninsan2keian4klöank3ra3an3naann2aban3n2ea2n1orans2enan2seuan3skrans1pa1anspran3s2z1antei1anthran2tro2anwet1anzeian2zwiar3abtara3d2a2r3al2a2rara2r1auar2bauar2bec2arbenar2bre2arbs2ar2droar1effar1ehra2reinar2erfa2reria2rerlar1intar2kalar2knear2korar4kriark1s4ark3saark3shar2lesar2nana2r1oparr3hear3s2har3staar3t2ear2thear3t2iartin2ar6triar2z1was1alaa3schea3schia2schma3schua3s2hiasin2gaska3sa3skopas3panas3s2aas3s2eas3s2ias2s1pass3tias3stras3stu2as3taas4tauas4tofast3räaswa2s3a2sylat1apfa2tausat3eiga2teliate2ru4athe1atil4sati2st4atmusatra4tat3romat4setat2s1pat4takat4tauat2teiatz1eratz3t2at2z1w2au1a2au2bliau2bloauf1an2aufe_2aufehauf1er2aufs_4augehaule2sau2malau2m1oaum3p2aum3s6au3n4aau2nio2au3r2au2sauau2spraus3s22auts4ava3t4äche1eäch2späch4stä2d1iaäft4s3äg3str2äh3t4äl2l1aämi3enäne2n1äng3seän2k3län2s1cänse3häp2s1cä2r3a2ä2r1eiär1intär2k3lärt2s3äse3g2äser2iäskop2ä3s2kräs6s1cä4s3t2ä4t1a2ät2e1iätein2ät2s1iät2s1pät2s3täum4s52ä3us_äu2s1pbacks4b1a2drbah2nuba2k1iba2krabal3th3b2andban2drba3n2eban4klban2kr2b1ansbar3deba2reibar2enbar3zwba3s2abau3sp3b2ä1cbbens2bb3lerbbru2cbe2delbe2erkbe1erlbe1etabei1f4bei3k4bei3labe1indbei3scbeis2ebei1stbeit2sbe3lasbe3lecbe3leibe2letbel3label3szbel3t4ben3arbe3nei3ben3gbe3n2iben2sebenst4ben2sub1ents2bentwben3unben3z2ber3ambe2ranbere4sber3nab1erntbe2robbe3ropbe3rumbe3slobes2pobess4ebes3szbe2tapbe3thabien3sbi2ke_bi2kes2b1inb2b1infbin3gl2b1intbi2solbi2s5tb2it2abla3b4b2lancb2latt2b3law3ble2a2b3legb3leinb3leseble3sz2blich3blickbling43blitzbo3ch2bo2e3ibon2debo1r2abo2reibo4rigbo4s3pbot2st2b3radb4ra3k2b3refb3reif2b3repbri2er2b3rolbrust3bru2thb2s1adb3sandb3sel_bse2n1b3s2esb2s1ofb3s2pubst3acbst1akbs3tätbst3erb2stipb4stodbs4trib4stübb2s1unbu2chibul2la2b3umkbu3r4ibus1erbu2sinbu2s1pbu2s1ubzeit1carri1ca3t4hcha2ck2ch1akch2anb3chancch1ang4chanz4char_1characha2sc3chato4chatuch1ärm3chef_3chefi3chefsch1eimcher3ach1ess2cheta1ch1iachi3na4chind2chinf2chinhch1insch1int1chiruch1offch1orcchre3s1chron2chunt2ck3an4ckeffck1ehe4ck1eick1entcke2rack2ereck1erhck2ern2ckero2ck1id2ckunt2ck1upcon2nec1s4trcussi43d2abäda2ben3d2ablda2bredab4rüdach3ada2chodach1sdal3b2d1amma2d1amt2d1ana2dangedan4kldan2kr2d1ans2dantwd2anz_4danzida2r3a2darb2dar2mada3s2hdat4e2da3teidate4n4d3atl4daush2d1ämt2d1änd2d1ängde3a2tde4ca_de2cka2d1eff2d1ehrdein2ddein2sdel1ändel1ec2delek2delem2delfmdelle2de2lopde3lordel5scdel2sodel3t4dem2ar2d1empden3th2dentwdera2bde1radde2rapder2bl2derdbderer33derieder3m2de4ruhde4rumde3sacdesa2gde4samdes2äcde2sebde4sehde2seide4setde2sinde2sordes3s2de2sto2d1etwde1urlde2xisdha1s4di3e2ddi3enidie2thdige4sdil2s52d1imb2d1ind2d1inf2d1inh2d1ins2d1intdion3sdi4re_di2rendi2ris2d1irl2d1isrdi4t3rdle2ra2d1o2fdo2mardo5n4adoni1e2d1opfdor2fädor2fldor2fr2d1orgdo2riedor2tadost1rdö2s1c3d4ra_2d3rad2drahm3d4ramd3rand2d3rät2d3räud4rea_d4reas3d4rehd4reiv4d3ren2d3rep4d3rer4dres_d4resc3d4ria2d5ricd5riegd4rin_3d4rit4dritu2d3rod2d3rot2d3rovdrö2s13d4ruc2d3ruh2d5rutd2sau2d2s1efds2eigd2serhds1errd3s2had2s1imds2infd3skuld2s1opds1orids1pasd2sprods3tabd4stagd4stead3steid4stemds4tilds4tipds1umsds2zend4theidtran2du1alvdu2bli2d1ufe2d1umb2d3umkd2ums_2d1umvdund2a2d1unfdun3kedun2kl2d1url2dursadwest3ea3dereadli4e3aleieat4e2eater1eat3s2e3au2feau1ste3b2akeb3lereb4leue3blieeb3reiebs3paeb3staeb3strebu2t12e3cheech1eie2cho_e2ch3rech3taech1uheck3seede2aledens1edi4aled2s1oed2s1pee2choeed3s2ee2lekee3lenee4nage1e2pie1erbtee3r2eeere2see4reteer2öse1ertree3r2uee4tateewa4re2f1adef1anae2fente3f4lu2e3f2oef3reaef3rolef3romef2tanege2raeg4saleg4stoegung4eh1ache3h2aleh2auseh1eff1e2hepehe1raeh1inteh1lameh2linehl2seehr1a2eh2reiehre3seh1ro2ehr1obehr1ofeh1stee2hunt2ei3a2ei2bareibu4tei2choei2d1aei3danei3dra4eien33eifrüeig2er2eigew2eigrueik2arei3kauei2lareilen1eil3f41eilzuei2moreim2plei2n1aei4nasein3dr2einduei4nelei2neu2einfoein3g2e1initein4szei2sa4eis2peeis4thei1stoei2sumei2tabei2tanei2tarei2troeit3umek1s4tek5trie2l1akel4amiel4ampel1ansel1anze2l1apel3ariel1asiel1aspel2ast3elbiseld3s22e3lebe2l1el1e2leme3lem_el1empel1erdel1erfel1erkel1erl2eles2el1esse2l1ideli2neel1itael3lanel5le_el3linell3spel1opee2l1orelo2riel2sumelte2kel2t3re2l1umel3useel2zwae2m1ad3emanze3m2ene2m1imem1intemi3tiemma3uem2meiem3pflem2spren4amee4nanden3angen3areen2ascen3atte3nauee2n1ären4ce_en2dalend3siend3szend2umen1e2ce4neine2n1elene4lee2nerfe4nerhe4nerk4enerne4nerz1engad3engagen3g2ien3gloeng3see2n1ineni3seen3k2üeno2mae2n1openost3en1ö2den3sacen2sauen2sebens2el1ensemensen1en3ska2enstoent4agen2teb1entfa3entgaen2thi3entlaenü1ste1o2b1e3p2f41episo1e2pocep2tale3rad_er3admeraf4aera1frer3aicer3alleran3de3raneer3anfe2ranher3anmer3apfe3rarie2rathe3ratie2ratme1rauber3aueerau2fer3augerb4sper3chl2erdece3recher1effer1eige2reiner1ele2e3reme3renae3renz4erer_e4rerl4ererne3reroer1errer1erse2rerter1erwer1esser1eul4erfür1ergolergs4t1erhabe2riat4e3ric4e3rieer1inber1inker1inter1ita1erklä2erkreern1oser1o2be2r1ope4ro2rer3smoert2aker2thoert4raerts2eeruf4ser1u4mer1underung4er1unser3untes2aches3anze3s2ases3cape3schaes3evaes2hares3intes2kates4loges2ortes2sau4essemessi2aes2sofes2spues3stres3stuest1ake1stare1state3stele1stile2stipes4trie2s1umes3umse4teinet3haleti2tae4t1ofetons4e2treset4riget2tabet2teiet2t3ret4troett3szetwa4retze4seu2esceu4glae3um2seum4sceums1peum3steu4neie3un2geu2nioeun3ka3eu3roeu1staeu1stoeu1stre2velae2vent1e2xeme2x1inex2tinfa2benfa2chof1aderfa3l2afal2klfal3tefalt2sfan2gr2f1ankf1an3zfar2br2f3arcfarr3s3f4art2f3arzfa3s4afa2to32f1auff1ausb2f1ärmfeatu42f1eckfe1inifek2tafe2l1afel2drfe2lesfe2l1ofen3safer2anfe2rauferde3fer2erf1erfaf2erl_f4erpaf2ers_fest1afest3rfeu4ruf2f3efffe1inf3f4räff3shoffs4trfid3scfi2kinfik1o2fi2kobfi2lesfi4linfil2ipfin3sp2f1intfi2s5tfit1o2fi2tor3f4läc2f5läd2f3läu2f3leb3f6limfli4ne2f5lon1f4lop1f4lot1f4lug4f3orgfo3rinfor4stfor2thfor3tu2f1o2xf3rand1f4ränfreik2frein42f3ricf4risc1f4ronfro2nafs1allfs4ammf2s1asf2sauff2sausf2sautfs1e2bf2s1emf2s1erf2si2df2s1o2f3spanf3s2plf2sprefs2prif2sprofs2pruf2stasf3steif2stipf3st4rf2s1unf2t1alft1e2hft1eigft1eisf4theif2t3rof2t3röf3t4ruft4samft3s2cft4sehfts3elfts2tift1url2f1unffun2klfun2ko2f1unmfu4re_fus2safus2stfzu4gaga2b5l2ga2dr2g1amtgan2gagan2grg3anla3g2ano2g1armga3r2og1arti2g1arzga2sorga4spega4sprgas4taga4ste2g1auf2g1autg2d1aug2d1erge3g2l2g1eifge2in_gein2sge2intgein2vgei3shgelb1rge5lehgell2age3lorgels2tgel3szge3lumge4namge4nargen1ebge3necgen3szgen3th2gentwge2rabger2erger3noge1r2öge3r2ug2e1s23ge3scges4pige3steges3thge3t2a2getapge3t4ugge2ne3g2het3g2hiegi3alogi2e1igie1stgi2me_gi4mesgi2met2g1indgin2ga2g1insgi3t2ag2lade2g1lag3glanz2gläuf2g3leb4g3lerg3lese3g2lid3g2lie3g2lit3g2loa3g2lobg3loch3g4lok3g2lop3g2lotgne2tr4g3notgoa3li2gonis2g1ope2g1opfg2o1ragra2bigra2bl2gradl2g3rah2g3rak2g3räu2g5re_2g3recg4re2eg3reit2g3ric2g3röh2g3rui2g3rum3g4rup2g3rüc3g4rüng3s2ahg4saltgs3amags3augg4s3cegs4chig4s3crg3sel_gs3elig3selngs5erkg4setags4pieg4spings2pitgsrat4g3stang3starg4s3täg5stämg3stelg1steugst2heg3stirgs3tocg4stolgs3topgst4rig4sturgs4tücgu1an_gu1ant2g1u2fgu1ins2g1unfg2ung_gunge2g2un4s2gunt22g1urlgurt3sgu2s3agus2spgus2stha2choha2delha4dinh1adle2h2al_ha2lauhal2bahalb3rhal2lahal2sthand3shan2krh4a3rah1arm_h2armehar2thh1arti2ha3sahat5t2h1aukthau2sahau2sc2hautohau2trhä3usphe1choh1echthe3ckehe2e3lhe2fanhe2f3lhe3friheim3phei4muheine2h1einkhe1ismhe1isthel1eche3lenhe4lof4h1emphend2she2nethenst2hen5trh1entshe2ral2heraphe3rasherb4she2relh1erfüh1erkeher3thher2zwhe1stahe2tapheter2he3t4she1x4ahfell1hi2angh1i4dihi3enshier1ihiers2hil2frh1induhin2enhi3n2ihin3n2hin3s22hi3rehl1anzh1lauth5len_hlen3ghl2ennhle2rahl1erghl1erwh4lerzh4lesihl1indh3listhlo2reh3losihl2sanhl2serhl3skuhl3slohme1inhmen2shme2rahn3eighn3einhne4n1hne4pfh3nerlh3nerzhn3s2khn1unfho2ch3ho2ckahock3tho2f3rhol1au4holdyhol3g4ho4lor3hol3sh1o2lyho2mecho2medho4seihotli42ho2w1h1raneh3rechh4rei_h3reich3r2enhr2erghr2erkhr2ermhr2erzh4rickh4rineh4rinhh4risth4romeh4romihr2sauhr2serhr4sethr2tabhr2tanhr2torhrt3rihr2trohrt2sahrt2sehr1umsh2s1ech3s2exh2s1ofhs2penhs2porh2spräh2sprohst2anh1stechst2heh1s2tih2storh1s4trhst3rih1stunhs2ungh3t2alht3aneh3tankh4tasyht3a2tht1e2ch2t1efhte2heh2teifh2temph2t1euh2t1exh4theihthe3uh2t1inh2tolyh2torgh4trefh2t3ruh2t3rühts2tihu2b1ahu2b3lhu4b3rhu2h1ahu2h1ihuk3t4hu2l3ahu2lerhu2lethu3m2ahung4shu3ni1hus4sahus2sphu2tabhu3t2hhutz1ihühne4h2wallh1weibhy2pe_i4a3g2ia2l1ai3aleiial3laia2lorial3t4ial3z2ia2nali3and2ia3p2fi2a3spi3a4tai3at4hib2blii2beigi2beisibela2iben3ai2blisib3renib4stei2bunki2buntibu2s1ich1eii2chini3chloi2ch3ri3ck2eid2ab4i2d1au1i2deeidel2äide3soide3sp1i2dio1idol_i3d2scid2s1pie2breie2choie2fauief3f4ie2f3lie2froie4g5lie3g4nie2g3riegs3cie3lasiel3auiel1ecielo4biel3sziel3taiena2bi3e2näien1ebie3neri3en3gi3e2noien3scien3siiens2kien3spien3szier3a2ie2rapie3resi3ereuierin3ier3k2i3ern_iers2tier3teies2spie1staie2t1aie4t1oie2triiet2seiet3zwifens2if1ergif1erhi1f4lai1frauif4reii1f4rüif2topift3szig2absig1artiga1s4ige4naig1erzi2g1imig3reiig4salig3sprig4stoig4stöig3strig3stüigung4i2h1ami2h1umik1amtik1anzik1artik3atti2k1aui2k1eiike2l1ik1erfi2kindi3k4läi2k3raik2trei2l3abi2l1acil1a2di2l1akil1ansil1aspi2l1auil3ausild2eril2doril1e2cil1eheil1einil2f3lilf4s3ilie4ni2l1ipi3lip_i3lipsil3l2ail3l2iil2makil2mauil2mini2l1oril3t2hilung4i2manwima2tri2melei2melfi4meshi2metiim2meiim1orgim3pseim3staimt3s2in3a2ci4nacki2n1adin2arain2arsi2n3auin2dalin2dan1indexind4riin3drü1indusin1ehein2erhi4neskine3un1info_1infosing1af1inhab2inhar2inhauin2i3dini3krini3sei3nitzin2nor1inntain3olsino1s2in1ö2dins2aminsch2in2seb2insenin3skr1insta1insufin3s2z1integin3t4rin5trii3n2umin3unzinvil4io2i3dio2naui3ons3ion4stiore4nipi3elipi3en1i2rakir2k3lirli4nir2makir2mauir2mumir2narirpla4irt2stiru2s1isage2is3arei2s1äni2schmis1chyi2s3crise3haise3hiise2n1is2endisen3si2serhiser2uis2hasi2s1idi2s1of3i2soti2sparis1picis2piti2sprois4sauis3stais3stoiss3tris3stuis2sumis4tabis4tamist2anis4teliste4nistes3is4tocis5törist4raist3reisum3pit1ab_ital1ait1altit2an_it1arti3tauci4t1axi2t1äsi2t1eii4teigit2eili4teinite2lai4tepoi2t1idit2innitmen2i2t1ofit3rafit3rasit3rauit3räuit3ricit3romit4ronit3runit2speit2stoit2tebit4triitt2spi2t1umi2tunsit1urgitzes4it2z1wi2v1akiv1angi2v1eiiv1elti2v1urizei3ci2z1irjahr4sja3l2ajean2sjekto2jek2trje4s3tje2t1aje2t3hje2t3rjet3s2jugen2jut2e1kab2blka2ben2kabla2kabläka3b4r2k1abt2k3adaka1f4lkaf3t2kaken42kala_ka2lanka3leikal2kakal2krkal4trkan2alka2nau2kanda2k1angk2ans_k2anz_2k1apfka3r2i2k1armk2arp3kar2pfk2artaka2s3tka3tanka3t4hka4t3r4kaufrkau3t22kautok1ä2mikä2s1ckdamp22k1e1cke2he_kehr2s2k1eic2k1eig2keinhkel1acke3lagkel1aukel3b4ke2lenkell4e2k1empken3au2kenläkens2kken3szk2enteken3thk2entrk2entu2kentwke1radk2erkok1e2rok2ers_ke2selke4t1ake2t3h2k1e2xki1f4lki1f4r2k1intkis4to4k1lack4leidk3lem_2k3lerkle2ra2k3leukle3usk2lisc2klistklit2s2k3locklo2i3klost4klung42k1lüc2k5nerkno4bl2k5norkoh3lukol2k5ko3n2ekon3s4ko1r2a2k1orckot3s22k3radk3rats2kraum2k3rät2k3rec2k3refk3reick3reih2k3rick3ries3k4ronks1e2bk2s1emk2sentks1erlk2s1idk2s1ink2s1o2k3s2peks2pork1s2tik2stork2sträk2stumks2zenk2t1adkt1aktkta4rek2t1auk2tempk2tentkte3ruk2t1idkt1insk2t1ofkt1opekt4rankt3rask4trefktro1skt3runk2tuns2k1uhrku3l2eku3l2i2k3umlkum2s1kun4s4kunst32k1up_kur2blku2reikuri2ekur2spkur2stlab4ralab4ri2l3absla2ce_la2gio2la1hola2k1ila1k4lla3min1lammf2l1amtlamt4sla4munl1analla2nau3l2andlan2gl2lanhäl2anhe4lanli2l3ann4lansä2lantrlan2zwlap4pll3artila2saulast1ola4tel2l3athl2auf_lau2fol2aufz2lausl2lausr2lauto2l1ähnlä2s1cl4betal2b1idlb2latl4bre_lb3ritlbst3elb4stol2b3uflbzei2l3d2acl2d1akld1amml2da2rld3arild1arml2delel3der_ld1erpl2d1idl2d1iml2dranl3d4rul2d1umle2chile2gaulei2br4l1eigl2ein_l2eindl2eine2leinkl2eintl4eistlei2talekt2a2lektr3l2ela3lemesle4nad2lendul2e2nolen3szl1ents4lentzlen2zil2e1rale2ragle2raul1erfol2erfrl2erfül2erkal2erkol2erlel4ers_lers2klers2tl2erzales2amle3serleste3le1stole2tat2le3thlet4tule3u2f2leurole2xislfang3l2f1ecl4feisl3f4läl3f4lulf3ramlgen2alge3ral2getilian2gli3chili2ckali3d2ali2deo2l1idolid3scli3enelien3slie2stli2grelik2spli3m2alin3alli3narli2nefli2nehli2nepli2nes2l1inflings52l1inh2l1injlink2sli2noll2ins_l2insal2insc2linsp2linst2l1intli3os_li2p3ali3s2a2l1islli2tallit1s2lit3szlizei3lk1alpl3k2anl3kar_lken3tl3k4lul2k3rol2k3rulk4ställ1abbll1affll1aktl3l2alll3amall2anwll1anzll1armll3augl2lausl2l1ämll1echlle3enl2l1efll1eiml3len_llen3gl3ler_lle2ral2lerzll1imbll1impll1insl2l1ofll1opfl3lor_l3lorel2l1oull3s2kll2sprllti2mllt5s2l2marclm1auslm1indlm1inslm3stelm3s2zln3are3l2ob_lob4ril1o2felo2gaulo3h2e2l1ohrlo2k3rl1o2lylo2minlo2n1olo3renlo4skelo2speloss2elo4stelo3thaloti4o2l3öfelpe2n3l2p1holrat4sl3s2all2sannl3sarel2s1ecl2s1emls1erels1ergl2serhls1erlls2logl3s2pil2sprol3s2pulstab6ls4tafl3stecl3steil3stell4stemls2tiel2stitls2zenlt1a2mlt3andlt1angl3tarblt1artl2t1aultbau1lt3elil5ten_lter3alt2erglt4erölte2thl2t1eul4theiltimo4l2t1ofl4t3ötltra3llt3räult4rielt3roclt3rosl2t3röl2t1umltu2ri4lu4b32l1ufelu2g1alu4g3llu2g3rlug3salug3splu1id_lu1is_2l1una2l1unf2l1unilu2s1ulu2t1alu4teglu2toplu4t3rl2z3acl3z2anlz2erklz1indlz2wecm2ab4rma2d4rma4d2sma2ge_ma2gebma2gefma2gegma2gekma2gepma2getma2gevma2gew2m1aggma3g4n2m1agomai4se2m1aktmal1akma2lanma2lauma3lermali1emal3lo2malltma2nauman3d2ma2net2mansa2mansä2mansc2mantwmar3g2maro3dma3r2uma2tanma2telma5trimat3semat3sp2mausg4m1ändmä3t4rm2d1ummedie4mee2n12m1eif2m1eig3meistme3lamme2lekme2lermelet42melf_mel2semel5t4mena2bme3nalmen3armen3aumen3glme3normen4skmen2somen3ta2mentnmer2er3merinme2sal4meser2me3shmes2stmeste2me1stome3t2amie3drmi2e1imien3smie2romie4timi2karmi3l2amilch1mild4s2m1impmin2enmin2eumin2ga3min2omi2t1rmit3s2mit5sami5tsumi2t1umk5re_m2m1akm2m1almm1angmm1anzm2m1aumme4namme2samm1inbmm1infmm1inhmm1insmm1intmmi3scmm3stamm3strmmüll1m4nesimode3smo2galmo2k1lmon2s3mon3su2m1opemo2rar2m1orcmor2drmo2rermos4tampf3limpf1ormp3strms3andm4s1efms1erwms1inims1orim2spedm2spotm2sprom4stagm3stelm3s2tims5träm3s2tumt3aremt1eltm2t1eum2t1immtmen2m2t3romt2sprmt1urtmu3cke4m3unfmu4s1amu2s1omut1aumut2stmvoll14n3absna2ch1nach3s4na2drna1f4rna2gemna2h1a3n2aldna2letnal3lanalmo2na2lopnal2phn2als_nal3t4n4amenna3m4n2n1amtnamt4sn1and24n1ang2n1ans2nantrnap2sina2r1an2arle4n3artna3r2unasyl2na3t4hnat4sanat4sc3n2aul4nausb4nausgn2auso4nauss4nausw2n1ä2mnär4s53nä1umnbe2inn2d1akn2danlnd1annnde2sendi2a3ndo2ben2d3ren2drobnd3rolnd3rosn2druind2sornd2spr2n1ebnne3ein4n1ehr3neigtnek3t42n1ele5neleb4nelek4nelemne3lennel4la3ne3lu2n1embn1e2mi2n3emp2n1emsnen3a2n1endgnen3einenen14nengb4nengs4nengtnens4enen3skn1entb4nentn5nentrn1ents4nentzne2n3u2n1epone2posne2ranne2rapne2raun1erbine2reb2nerfü3nergrn2erlin1ermän2ern_ne1rösn2ert_n1ertrne2rup2n1erzne3sannesi1ene3skane2s1pne1stanes3tine2tadne2tapn1etatne2taunet3han1e2tunet2zi2n1eupnfalt4nf5linnft4s3ng2absn2g1acn2g1akng2anfng1anzn2g1äln3g2enngen2an3gläsn2glicngrab6ng3ratng3rocngs3panich1sni3de_nie4n3ni3eneni1eronifes3ni2grenig4spni2kalni2karni3ker4n1imp3n2in_n2in4a4n3ind4n1inhni2nor2n1insn2ins_4ninse4n1int2n1invni2s1eni2s1pni3spinis3s4ni2s1uni3t4rni3tscnitts1n2k3adn2k1akn3k2aln2kansn2kausn2k1ärnk4ergnk1inhnk3lennk3lesn2klienk3lunn2k3ronks2eink3s2znk2taknk2tannkt1itnk4topnk2trunmen2snna2ben2nadan2n1annnen3gnn2erhnn2erknne2rönner2znnes1enne4stnn1o2rnn3s2pn2n1ufno2blano2leu3n2opano2radno1rakno3ral3n2os_n2ostenost1r2nostvno3tabno2telno3t3hno4tha2n1o2x4n1ö4lnräu3snre3sznrö2s1n2sangn2santn2sausn2s1änns1e2dns1entn2s1epns1erfns1ergn2serhns1ersnsfi4lnsho2fn2simpnsi4tensi2trns2kaln2s1opn2spatns2peins2penn3s2pins4piens3ponn2sprän4spronst1akn3starn3statns4tornstü1bn2s1unns2ungns4unrns4unsn4s3zint3absn3t2alnt1angnt2arbnt1arknt2armn2t1äunte3aunt1ebente3g6n2teignt4enent4ernnt4ersnt4ertnt2hern2t3hon3t4hunti3kln2tinfntini1nt2insn3ti1tntmen2nto3ment3recn5trepnt4rign5tropn2t3rünt4saunt2sto3n4tu_ntu2ra2n3umb2n1ums2n3umz3nung_n3ungl2n1uninu4t3rn2z1aun2z1ännzdi1snzi2ganzig4snz1inin2zurkn2z1wan2z1wän2z1wuoa3cheoa3chioa4k1lo4a3lao4a3mioanne43oa3seo3b2al2o3b2äob3ein2o3b2iob3iteo2b3li2o3bloo2b3reob3s2hob2staocha2boche4boch1eioch3ö2och3teochu2fo2ckarock2erock3szodein3ode2n1odene4ode3sp2o3diaof1a2co2f1eiof2f1a1offizof2f5lof2f3r2o1f1rof4samof2speof2sprof2s1uof2teio2g1abog1alaog1ango2g1eiogi2erog1steohen3sohl3auoh3lecohl1eioh3lemoh3lenoh3lepohls2eoh2n1ooho2laoh1o2poh4rinoimmu4oka2laokale43o2kelok2s1po2l1akolars2ol1aufol4damol1eieol1eisol2fraoli3k4ol2kreol2lakol2lelolo3p2ol1ortol2strol2z1aol2zinom2anwom1arto2m1auo2m1eio3men_o2meruom1erzomiet1om1ingom1orgo4munto2narbon3ausone2n3onens2on1ergon1eröo3netton3g2lon2i3do4nikro4n1imon3ingonlo2con3n2eo2nokeon1orconsa2gon4samon2sebonse2lonst2hon3t2aoo2k3lo2p3adop3aktopa2leop2f3aop3fahopf3laop1flüopi5a4op5lago2p3le1op3t4or3a2bor4altor2ando2ranhor3arbor3attor1ändor2baror2dauor2deuor2ditor2dumore4aso2r1efor1eigo2reino2rerfor1ethor2fleorf3s42orgetor3g2h2orgiaorgi1eor3gle2o3rico3rier4orin1or5ne_or3s4aor2täror2tefor2theor2torort3reo4r3un2o3s2ao3scheo2s1eio3s2hi2os2kl2os2koo3s2poos2seios2s3oos4sonos2s3pos2s3tosta2bos4teios2t3hos3tilost3räost3reost3ufo3s2zeota2goo5tarko3tarto2t1auot3augotei4not4em3otemp2ot5helo4t3hiot3hosot1opfoto2rao2t3reot3rinot4spaots2peot2sprot2t3rot4triou1f4lou4le_o3undsou3s2ioviso3owe2r11o2xido1y2enöbe2laöbe4liöh3l2eöl2k3löl2naröl2ungöp4s3tö2r3ecö2r1eiör2ergö2rerlör2f3lö2r1imörner2ör3s2kö2schaö2schlö2schwö2s1eiös2s1cöte4n3pa1f4rpa1k4lpak2topala3tpa2narpa3neipa2neu3pa2nopan3sl3panz4pa5regpa5rek1park_par2klpar2kr1partn1partypar3z2pa3s2ppat4e2pa5t4rpa3unipä3ckepä2t3hpät3s4pekt4spe2letpe2lexpell2apell4epen3dape4nenpe2n1o3pensipen3z2per2an1pere2per4nape2robperwa4pes3s2p2f1akpf1ansp2fa4rpf3arepf3armp2f1au4p3fe_pf1eimpf1einp3fen_p2fentp3fer_pf2erwp3f2esp2f3läpf3leipf3lie2p1heiphen3dphen3sphi2ka2phthepi3as_pi3chlpiela2ping3s3pinsepi3onu3pirinpi3t2aplan3gpo2laupo4lorpo1o2bpo1ralpo1raupo4stapo4stäpo2stopos6trpo2t1upp3anlppe2n1p2p1f4p3p2hopp5lanp2p3rap2p3repre2e13preis2p3rer3p4res1prinz2prosspro1stp3steap3stelp3s2tipt3albp4t3ecp4t1eip4telept1in1pto3mept1urspul2sppu2s3t2r3aacra2barrab2blr2aber1r4abi2r3abwra2chura2dam2radapraf3arra2ferra3gle3r2ahmrail4l2r3airra2krera2kro2raktira2la2ral3abr3alar3r4aldral3larall2e2rallgr3alp_2ralper3al3trama3srambi2ra2mer1r2ami2r1amtramt4sr4andar4anderand3sr4aner1rangirani1eran2kr2r1anm2r1anpr2ans_r2ansp2rantr2r3anw3rareirar3f42r3arz2rato_rat2st3raub_rau2mi3rausc2rausgrau2spraut5srä2s1c3rätser2b1abrbal3arba3rerb1artrb1aufrb1echr4belär3b2larbla2dr2ble_rb3lerrb2linrb4seirb3skarb4stärb3strr1che_r1chenrch1s2rch3sprch3tar3d2acr2d1akr2d1alrdani1rd1antrd1anzrd2ei_rden3drde3rerde3sprdi3a2rdia4lrdo2berd3ratre2altre3at_re3atsre2b1are2b1lreb3ra4rechs2reck_2recki2reditre2hacre2h1ire2h1orei4bl4reifrrei3gareim2p4reingr3eink4reinr4re2ke2r1elbre3lei2r1elf2r1elt4rempfrena2bre3nal3rendiren3drren4gl2rengpr1ense2rentw3r4er_2r1erbr2erbr2r1erdr2erki2rerlö2r1ermre2robr2erse2rerspr2erte2rertr2r1erzrer5zer2erzy3r4es_ress2ere1stare2thyreu3g2re3uni2r1eurrewa4rrf1ältr2fentrf3licrf3linrf2s1ärf2s3trf3t4rr2g1ahr2g1akrge4anrge2blr2getor2glanr2gleur2gligr2g1obr2gregr2gresr2gretrg3rinrg3s2prgs4tr3r4he_3r4henrho2i3rib2blri1cha2ridolrie2frriene4rien3srie2nuri1er_ri4ereri2f1ari2ferri2f1orim4scr2i3na2r1indri3n4erine1i2r1infrin2foring3lrin2gr2r1inh2rinitr1innu2r1insrin4sorin2spr2inva2rinve3risikri4s1pri3t2irit2trr3klaur2klisrk5nebr2k5nurk3räurk3rinrk2s1erk3shirk2tinrk2t3rrk3trark4trirk1unirlös3srl2s1prl3ster3m2agrma2larm1ansrm1anzrm1a2pr2maphr2m1efr2mider2m1imrm3starm3umsrn2andrn3anirn2a2rrn3arern3arirn3eifr4nerfr4nerkr4n1inr2n1opr2n1orrn3s2ärn3s2prn3s2zrn3t2ero2bei3rock_r2o3deroh3na3r2ohrro2madro2merror3alro2ratro2reiro2r1oror3thro3s2iro3smorost1rro4tagrote3iro2thoro4trirots2orot2taro3t2uro3untrö2b3lrpe2rerrer4srre2strr2n3ar2r3obrr3stur4samprs3anprs3antrsch2lr3schur3schwr2seinrse2n1rs2endrse4ners1erers1erörs1ersrs1erzrs1etars2kalrs2kanrs2kiers2kisr4s1opr4sordr2s3phrs2tecr3stier2stinr2stiprs4tobr4stotr3s4trr3s4türtals1rt1angrt1annrt1antrt1anzr2t1arrte1e2rt4eifr2telfr2temort1ersrt3holrt2humr2t1idr2tinfrto2rir4trakrt3recrt1rosrtrü2crt2sparts2pert2sprru2ckurude2aruf2s32r1uhrru1insru2m3ar2ums_2r1unar2unde2r1unf2runglrun2kr2r1unl2r1unmru2r1erus4stru3staru2t3rrü1benrwun3srz1a2cr5zenerz1engr3z2ofrzug2u3sabetsa3blesach3t2s1ada2s3affsa1f4r3s2al_sal2se2s1alt3s2alz4s1amnsam2tos2an2cs4and_3sang_2s3anh2s3anl2s3anssan4sk2s3anw3s4ar_3s2ara4s3arb3s2ard3s2ars4sartisa4ru24s3ath4s3atlsauri1s3ausw2s1änd3sänge2schak2schao3sche_2schefsch2en3sches4schexschi4es4chim3schis2schmö2schn_2schoxschs2e4sch3tscht2ascht4rsch2up3s4cop3sco4rsda3mese3at_s1echtsee3igseein2se1er_se1erö2s1effse2galse4helse2hinseh3rese2hüb2s1ei_2s1eig2seinb4seing2seinh4seink2seinl2seinn4seinr2seinw4s1eis3s2eitse2l1ase3ladsela2gse3lamsel1ec4selem2self_s3elixse2l3ösel3szsel3trs4e3ma2s1emp3s2en_se4nagsen3gl3s2enise4nob3s2enss2ent_s2enti2sentw2sentzse2n3use5refser2ers2erfrs3erfüs2ergr2serhöse2robs2ers_2sersas4ert_s2ertase3rum3s4ervse2selse1stase2tatse1u2n3s2ha_4s3hansho4resi2achsi3am_si3enesi1errsi3gnusi2g3rsig4stsi2k1äsik3t42s1immsi3n4a2s1ind2s1infsing1asin3ghsin2gr4s1inhsini1e2s1inq2s1ins2s1int4s1invsi2s1esi2s1osi2s1psi2tausi2tra3skala4skanz3s2ki_3s2kik3skulpsler3s3s4lipsli4tu4s5not2s1o2bs1o2he4sohng2s1ohr4so2lyson3auson3säso1ral2s3ordso2rei4s1ostso3unt2s1ö2l2spara2sparo3sparuspe3p42sperls2perr2spers3s2pez3s2plis3p4lu4s3poss2potts2pracs2pran2sprax2spräm4spräs2spred2spres2sprob2sprüfsrat2ssrö2s1ssa3bos2sanos4sansss2antss3attsse3hass1erös3s2essse3tass1offs2s1opss1oriss2pens2spros3stelss4tipss2turss1ums2stabb3s4tad3staff2stale2stalkst1alpst1ami4stan_sta4na3stand2stani2stans2stanws4tar_4staris3tat_2stauf2staum3staur2staus4stälts4tänd5stätts3täus4s5te_3s2tegste2gr3s4tehs2te2i3steig4steil1s2tel2stel_2steln2stels4stem_s5ten_st4ens4stermste4sts4teti3s2teu1steue4steufs2t3ho2stie_s2tiegs2tiel2stien3s2tif3s4tims4tinfs3tinnst1ins1stitu2sto3d4stod_s4toffs4t3om2stopo2stor_2store2storg2storis3tort2stose4stote2stöch2strad2strag4strai4strak2stral5straß2strua2strug3struk2strup2st3t43s4tud2stumt2stun_4stunn2stuntstu3rest3url2sturn2s3tus2stüch2stür_2stüre2stürg2stürs3s2tyl3su2b3su2cha2s1u2fsu1it_su2marsu2mau3s2umesu2mels3umfesum1o2su2mors3umsas3umst2s1uni2s1urlsüden24s3zeis2zena4szent4s3zetße2l1a2t1abb3tabel2taben3table2t3abn2t3abtta3d2s3taf2et1af4rta2ga24ta3gltag4sttah3leta3i2kta1insta1ir_t1a2kata2krotak6ta3taktb3t2al_ta3lagta3lak3t4aletal2löta2mert1amplt1a2na4t2andt3ankl2tanwa2tanwät2anz_t1anzat1anzuta2pe_ta2pes2t1armt1artitar2to2t1arz4t1aspta2tanta2tautat3eita2temtat3heta2tom4tatue2t1auf4taufg4taufnt1ausb3tausct2auset1ausk4tausltaxi1s2t1ältt1ängs3t4ebbte3cha3technteck2ete2ckite2en3te1erwteg3re3t2ei_t3eifr2t1ein4teinf4teinnt3eis_t3eisb3te3letel1eb2telemtel1ente4leute2littell2ete2l1ö3telt4tel3tatel3thte2min2temme2tempfte4m1utena2bte4naste4nauten3dat6endit6endote2nettens2et4entat3entb4tentdt4ente4tentnten3zwt3e2pi3t4er_tera2bte1rafter3am4terbs4terbtte2relt4erfrte3ria3termi2ternct4ers_terst4ter3zatesa2cte2santesä2cte2selte2sprtes3s2te2tat3teur_3t4ha_3thal_4t3hau1t2he_2t3heit4heint4henet4heni2therr3these2t3hil2t3himth4mag2t3hoc2t3hoht4hol_2t3hot1th2r2ti3a2mtiden2ti2deo3tief_3ti2erti2kamti2karti2kinti2kräti2larti2leiti2lel4t1imp3t2in_4t1indti3n2eting3lting3s2t1inj2t1int4t1invti2seiti1sta2ti3tuti2vanti2velti2v1oti2v3rtlung4tnes4s3tochtto4d1utom1e2to2mento2nauto2pakto2patto2rauto4ränto2relto3rent3orga3torint1ort_3tost4to1sta3to3teto2thotouil44tractt3rad_6trahm5t4rai2trand3trankt3rann3transt3raset3rasi3träne4t5re_tre2brt3recht4reck6t3red5t4ree4trefe4trefot4rei_4treic2treift3reigt3reint3reis6treitt3reiz6t3relt4ren_3trendt3rent2trepe2trepot4reprt4res_3treuh5trieb2triegtri4er5triggt3rind4tringtri3ni4trinn4tripttrizi13t4roitro2ke4trom_tro2mi4troml2t3rootro1pe3tropf2t3röttrums12trund5t4ruptru2thtrü1betrü1bu2t3rüct4sa4bt3s2act2s1aht4s3art2s1änts4cort3seiltse2n1t2s1erts1init2s1irt1slalt3spalts1parts2pedt3spekt3s2pit4stagts3takts4talt2stipt4stitts3tocts3tort2strits3türtta2bet2t1adtt2anttt1arttt1ebett1eiftt1eistte2lattel1otte2satte2sät4tetitt2häut2t3hot3tro1tt4roctt2sentt2sortt2spett2sprtt2stitu1almtu2chitu3fent3u2kr3t2ume2t3umf2t3umg2t3umk2t3umrtum2situm2so2t3umt2t3umz2t1una2t1und2t3unft3unga2tunif2t3unttu2re_tu2reitu2resturin1tück2s3tür3s3tütentze4n1tz2enetz1erltze2rotz2erst3ze2stzgel2tz1indtz1inttz2tinua2lauu3aletual2mau3a2louara2bu2be2cub3licu2b3luub2sanub2s1oub2spau1cha_uch1eiu3chesuch1iluch1inu2ch3ruch2souchst4u2ckemuder2eudi3enuditi4ue2neruenge4uen2zuue2r3aue2r1äu3erehu3ereru3erexuer3g2uer2neue2r3ouer3scuer3t2u3erumue4teku2f1äsu2f1eiu2f1emu3fen_u2fentuf2ernuf2frouf1oriuf4sinuf2spouft3s2u2g1apu2g1eiug3ladu3g2löug4serug3spaug4sprug4spuug5stäug3strug3stüuhe3s6uh2reruh4rinuisi4nui4s5tukle1iuk2t3ruld2seu2l1elul1erful1erhul1erwule2saul1etaul1insul2lesul2p1hul4samuls2thul4trium1allum1anzu2maut1um3d2umer2aum1ins3umsatum4serum2simu2m1uru3n2amu2n3an2un2asun4dabun4deiun2didun2dorun2d3r4unds_und3spund3stun2ei_un3einunen2tun4es41unget1ungew1unglüun2g1rung3raung3riung4saun3ide1u2nifun3islu3n2it3u2nivun2keiun3n2eunvol2u1or3cu2pf2eu2pf1iu3rabaura2beur2anbur2anhu2r1auur3b2aur1effu2releu4r1epur1erhur1erwur2griurg3s4ur1iniur3insur1intu2rinv1urlauur3sacur2sanur2sauur2serur4sinurst4rur2z1wu4s1afus4annu2s1ecu2s1eiu3seiduse1rau2serpu2s1opu2spatu3spekus1picus2porus4sezus2sofu1stalus3tauust2inu2stunu2sturut1altut3a2mu2t1apu2t1arute4geutel1eute2n1u2tentu4t1exu2t3hout1opfu2topsut3reaut3s2aut2s1äut5t4lutu4reutu5ruut2zinut2z1wuve3räüb2s3tücht4eü3ckenück1erü3den_üden4güdwes2ü2f1eiü2h1eiühl1acüh3r2eühr3taü2mentün2fliün2g3lün3strü2r1eiü3r2o1ü2schlüs2s1cü2t1alva2teiva2t3hvatik2va2t3rvat3s4va2t1uveits3ve3nalve3radve3rasver3b2ve4rekve4rinver3stver5te2ve3scves3tivi4a3tvie2w1vi2l1avi4leh2v1i2m2v1intvi3s2ovoll1avol2liv1steuwab2blwa3chewaffe2wa2g3nwah2liwal4dawal2tawal2towang4s1war2eware1iwart4ewass4e4webebwe2g1awe2g3lwe2g3rweg3s4wei4blwei2gawei3k4wei4trwel2t1wel4trwen3a4we2r3awer2bl1werbu1werduwerer2wer2fl1werk_wer2ka1werkewer2klwer2kuwer2tawer2to1wertswest1awes2thwest3rwes4tuwett3swi3ckawien2ewie2stwim2mawin2drwi3s2e1witzlwo2chawoche4woh2lewo2r3iwo4r3uwört2hwul3sewur2fa1wurstwus3te1wu4t1xe3lei3x2em_xen3s2x1i2doxin3s2xi2so2xis4täx1i2tuxtblo4x2t1eix4tentx2t3evy3chisyloni1y2p1iny1s4tyy2s1u22z3a2b2z3a2k2z1all2z3anf2z3anlz1artizar2tr2z1arzza1st42z3at3z1au2fzbübe32zecho2z1eck2z1effzei3lazeile42z1einzei3s4zeist4zei2trze2lenzell2azel3sz2z1empzens2ezent3sze2r3a2zerhöz2erl_2zerlö2z1erq2z1erzze3skuzes2spzes2stze2s3tze3sta2zettszger2azi3alozi1erhziers1zi1es_2z1impzin4er2z1inf2z1inhzin1itzin2sa2z1invzirk6szi3s2zzi1t2hzor4ne2z1oszz2t1auz4tehezt1inszt3reczu3ckezug1un2z1uhr2z1um_zumen22z1umszup2fizu3r2a2z1url2z1urs2z1urtz2wangz2weigz1weis2z1wel2z1wen2z1werz2werg2z1weszzi1s4", + 7 : "_al4tei_amt4s3_and4ri_an3gli_angst3_an4si__an4tag_ausch3_be3erb_be3r2e_berg3a_bo4s3k_bu4ser_da4rin_da4te__da4tes_de4in__dien4e_ebe2r1_en2d3r_en4tei_er4dan_er4dar_er4dei_er4der_es5t4e_fer4no_fi3est_fi4le__fi4len_ge5nar_ge3r2a_ge3r2e_ger4in_hau2t1_her3an_ho4met_ima4ge_ka2b5l_lo3ver_lus4tr_men3t4_orts3e_pa4r1e_reb3s2_re3cha_rein4t_reli3e_res6tr_ro3m2a_sali3e_sim3p4_sto4re_tage4s_to4nin_tri3es_ul4mei_urin4s_ur3o2m_ve5n2e_wei4ta_wor4tu_zin4stab1er2raber4ziaber4zoab3essea4cherfa4cherka4cheröach1o2bach2t1oach1u2fa3d2ar3ade1r2aade3s2pade5str2ad3recaf4t5reage4neba4gentuage4ralage4selage2s3pag3esseags4toca2h1erhah4l1eiahner4eahre4s3ahr6tria3isch_1a2k4adak5t4riala5ch2a2l1angalb3einalb3eisal4berh3a2l1efa4l3einal3endsa2l1erfa2l1erha2l1ert3a2lerza2l1eskali4eneali4nalal3lenda2l1o2bal4spalalt3eigalt3ricalt4stüalzer4zamen4seamp2fa2am4schlana4lin2ana1s4and4artandel4san2d3rüand4sasand3stean2f5laan2g1eian2g3raan2k1anan2k3noan2k3rä3antennan3t4heant3rina3ra3lia2r1anga2r1ansa2r1anza2r3appar2b3unaren4seare3r2aa2r1erhar2f3raari3e4nari3erdari3ergarin3itark3amtar2k1arark3aueark3lagark4trear4merkar3m2ora2r1o2dar2r3adarre4n3ar4schlar4trama4schecasch3laa2s3e2ma2s1o2fas4s3eia1s4tasas6t3rea2t1aktater3s2ato4mana2t1ortat4schnatt3angat3t4häat2t3räat4zerkat4zerwat2z1inau2b1alauch3taau4ferkaup4terau2s1ahau4schmau4schoaus3erp3aussagaus4se_aus5triau2t1äuä3isch_äl4schlän3n4e2ä2r1eneär4mentäser4eiäse4renäskopf3ät4schlät4schräu4schmäus2s1cba2k1erban2k1aba2r1ambau3s2k2b1eier2b1eimebe1in2hbe2l1enben3dorben4spaben4spr2b1entbben5t4rber4ei_be4rerkber4in_ber3issbe2s1erb3esst_be3s4ze4b1illubis2s1cb2i3tusbjek4to2b3leidbo2l1anbor2d1ibor2d3rbor2t3rbra1st42b3rat_2b3riemb4schanb6schefb4s1erfb4s1ersbst1a2bb2s3träbs3treubtast3rbu4schlbu4schmbu4schwbügel3eca3s2a3ch3a2bich3anst3chartache4fer4chelemche4ler4chents4chentwche3rei2ch1e4x3chines2ch1invch3lein2ch1unf4ckense4ckentw4ckerhö4ckerke2ck1err4ckerze2ck1eseck4stro2ck1um3co4der_com4te_comtes4cre4mes2d1alar2d1ammädan4ce_dan5kladan2k1odar2m1i2d1au2f2d1aus3delei4gde3leindel4lebdel4leide2l1obdel4sandel2s5edel2s1p4denergden4sende2re2bde4reckder3ediderer4tderin4f4derklä4derneuder3taudes3eltde2sen1de4stredes4tumdeten4tdge4t1edie4nebdi3ens_die2s3cdi2s5tedi4tengd2o3r4ador2f1a2d3rast2d3rauc3d4reck2d3reic3d4riscdrunge3drü5cked4s1amtds3assid4schind2s1e2bd4seinsd2s1engd2s1entd2s1erfd2s1erkd2s1erzd4s1etad3s2kand2s1pard3stell2d1un3ddu4schndu4schrdu4schwe4aler_e3at5t4ebens3eebet2s3eb4scheeb4stätebs3temebs3t2hech1o2bede3n2eeden4seeden4speder3t2ed2s1esed2s3treein4see2f1e2be2f1i2de2f1insege4strehen6t3ehe3strehl3eineh4lenteh5l2erehr1e2cehr3erleienge44eigeno1ei2g3nei3k4laei4leineil3inseim3allei4nengein4fo_ein4fosein4hab3einkomei2n1o23einsate4inverekt4antekt3erfekt3ergela4bene2l3a2me2l1a2re2l1eine3leinee4leing2e3len_e4lensee2l1ente2l1erge2l1errell3ebeell3eiseller4nelt3eng3elternelt3s2kelt3s2pe2m3anfe2m1ansem2d3a2e2m1erw1e2metiem2p3leena3l2ien3d2acend4ortend3romend3s2pene4bene4n1enten4entr4e3ner_e2n1erd1e2nerge2n1erle2n1erre2n1erse2n1erte2n3erue2n1erwe4n3esseni3er_e2n1i4me2n1o2benob4lee2n1o2ren3s2poen4terb3entspr4entwetenz3erte4ratemerd3erwer3echser1e2ckere4dite2r1e2h4e3rei_4e3ren_e4rensee4rentne2r3erfe2r1erher3e4tiere4vid3ergebn4ergehäe3ri3k44e3rin_e2r1ini3erlebnermen4serm3ersers4toder4tersert3ins3erweck6erweise4s3atoe2s3einese4lere3s2peke3s2pore3s4praess3erges2s1paestab4be4starb1e2stase1s2tecest3ories3tropeten3d2eter4höeter4tre4traume6t3recetsch3wet2t3auette4n1et4t1umeu3ereieu3g2ereve5r2iewinde3e2z1ennfa4chebfa2ch1ifäh2r1ufeh4lei2f1eing4f1einh2f1einw2fe2lekfe2l1erfel4sohfe4rangfer3erz4ferneufest3ei2f1e4tafet2t3afeuer3effel2d1f2f3emifi1er2ffi2l1anfisch3o2f3leinflu4gerfor4teifor2t3r2f5raucf4schanf4scheff4s1ehrf2s1entf4s1etaf3s2kief2s1pasf3s2porf4stechf3s4telf3sternft1a2bef4t1entft4scheft4s3täft4stri2f1u2nifun2k3rfus2s1p4gangeb2g3ankuga2s3eigas5tangebe4amge4lanzge4lessgel3stegel3t2agen4auggen2d1rgen3eidgen3erngen4samgen4ta_2g1entfge4renggerin4fgerin4tger4satger4stoges3aufges3eltge2s3erges3s2tgien2e12g3isel3g2laub2g1lauf4g3lein4g3lisc2gni2s13g2num_2g3rede2g3reic2g3rein2g3renng3riese2g3ring3g4runsg4s3a2kg4schefg3s2eilg3s2pekg3s2porgst3entgst3errg4s3torgs4trat4gungew2g1unglguschi5gus4serhaf3f4lhalan4chal4beihal4t3rhar4mes2h1aufmhau4spahäu2s1chba2r3ahe4b1eihe5ch2ehe2f1eihef3ermheiler4hei4nehheit4s3he2l3auh3e2lekhel3ershel4meihe4n3a2hen3endhen3erg2h3entwher3a2bhe4reck4hereighe4rerwh1er2foherin4fherin4sh3erlauhe2s5trhie4rinhif3f4rhi2l3a4hin4t1ahir4nerhlags4ohle3runhner3eih3nungeho2l1ei2hot3s2hrei4bah4r3eigh3re2s1h2r1etah3rieslhr2s1achr2s3anhr3schlhr2s1enhr4s1inhr4s1ofh2s1achh4schanhse4lerh2s1erlh2s1ingh2s1parhst3alth2s3tauh3steinh5stellhst3ranh3taktsh4t3alth4t3a2mh4t3assh2t1eimh2t1eish4tentfht3erfoht3erfüh2t1erhh4terklht3erscht3ersth2t1erzh4t1eseh4t1esshte3stah4t3rakht3randh2t3rath4t5rinh2t3rolh2t3rosh4t1rösht3spriht4stabhts4tieht4stürh2t1urshu2b3eihu2b1enhu2l3eihu4lenthu2l1inhut4zeni3alenti3alerfi3alerhi3a2leti3a4liai1ät3s4i2b1aufich2t3rieb4stoieb4strie2f1akie2f1anie3g4rai2e2l1aien4erfienge4fien3s2eie3r2erie4rerfi2er5niier4sehier3staier3steies2s3tie2t3hoie4t1ö4i2f3armift3erkif4t3riift3s2pi2g1angi4gefari3g4neuig3steiig4strei2k1a4ki2k1anoi4kanzei2ker2li2k1etaik4leriik2o3p4ikt3erki2l3a2mi4lentsi2l1erfi2l1ergi2l1erril2f3reilig1a2ili4gabi2l1indil3l2eril4mangil2m3atil2z1arilz3erki2m1armimat5scima4turi2m1erfi2m1erzi2m1infi2m1insindes4ii2n1engin3erbei4nerbiiner4löing4sam3inkarninma4leinn4stains3ertin3skanin3stelin4s3umional3aion4spiir2m1eii4s1amtisch3ari3s2chei4schefi4schini2sch1lisch3leisch3obisch3reisch3rui4schwai4schwoisch3wuise3infi4seinti2s1ermi2s1essis4s1aci1s4tati1s4teui1s4tilit3a4reiten3s2iti4kani2t1in1i2t3ranits1a2git2s1e4its3er1it4stafi2v1enei2v1enti2z1enejek4terjektor4je2t1u2jugend3jung3s42k1a2bo2k3a2drka3len_ka4lenskal3eri2k1annakari3es2k1artikau2f1okauf4spke1in2d2k1eise2ke2lek2ke3letkel3s2kk3enten2k1ents4kerfahk4erfamk3ergebk3er4hökerin4tker4kenker4neuker4zeu2k1i2dekie2l3o2ki3l2aki3n4o32k1inse4k1lastkle3ari4k3leit2k1o2fekop4fenkot4tak2k3räum2k3redekreier4k4s1amtk2s1ersk2s1erwk3stat4k2t3a2rk2t1erhk2t1ingkti4terk4torgakt3oriek2u3n2akuri4erku4schl4l3aben4l1a2bl2l1a2drla2g1oblan2d3rlang3s4l1a2po2la2r1anla2r1eila4rene3l4ar3glar3ini2l1ar3t3lasserla2t3ralat4tanlat2t3rlau2b3rlaub4se2l1ausslär2m1al2b1edel2b1insld3a2b1ld3a2ckl2d1a2dl2d3a2nld4arm_lecht4ele2g1asleh3r2elein4duleit3s22le2lekle2m1o24lendet4lenerg2l1ennilen4sem2l3entwlent4wäle2r3asl3ereigle4rers3lergehl3ergen2l1ergilerin4s2l1er2ö3l2erra2l1esellgeräu33lichem3licherliebe4slie2s3clik4ter2l1indulingst4lin2k1ali4schu2l1i4solkor2b1ll1a2bel2l1abtl2l1a2mlle4n3all3endul4lentsl4lerfol4lergoll3erntll3ertrl2l1indl2lo2bel2l1o2rll1ö4sellus5t6l2m3a2blm3einsl2m1e2pl2m1erz2l1o2bllos3t4r2l1ö4l3l2s1a2dl4s1ambl4schinl4schmül2s1e2bl2s1ersl2s1erwl2s1impls3ohnel4t3amel2t3atol2t1eislt4stablt4stocltu4ranluf2t1aluf2t1eluf2t5rlung4sclus4s3alus2s1cluss3erlus2s1olus2s3plus2s3tlus4stälus4t1alust3relut1o2fmach4trma4ges_ma4laktma4l3atma2l3ut2m1analman4ce_man3ers2m1angr4ma3r2oma3s2pa4m1aspemassen3mas4telma1s4trma2ta2b2m1au2fmäu2s1cmbast3emedien3mein4dame1i4so2m1e2miment4spme2r3apme4rensmerin4dmerin4tmerz4en4m1essames2s1omes2s1pme4t3römierer4mil4cheminde4sming3s4mi4schami4schnmi4schwmis2s1cmi2s5tem2m1ansmme4linm4mentwmme2ra2mme4recmmi1s4tmo4n1ermor2d3amoster4mpf3erpmpf3errms5trenm2t1erfm4t1ergm2t1erlm2t1ersm2t1ertm4t1etam2t1insmt3s2kamun2d1amül4lenmütter3na3chenna2l1a2na4lent4n1a2nana4schw4n1a2synauf4frn4austenbe3r2en3ce2n3n2d1anznde4al_nde4lännde4robn2d3ratn4d3runnd4stabnds3taune2e2i22ne2he_4n3eing4n3eink3ne3l2o4n1endb4n1endd4n1endf4n1endh4n1endk4n1endp4n1endt4n1endwne4nenenen4ge_nen4gen4n1entl4n3entwne2ra2bne3r4alne2r3am4nerbe_4nerben4n5erfonerfor42n3erhö2n1erlöner4mit4n1ernt3n2ers_2n3ersa4n3essine2t1akne2t1annett4scnfi4le_n2g3a2mn2g1andn2g1einnge4ramnge4zänn2g1i2dn3g2locngs5trinie3l2a3n2ing4ni4schwnitt4san4k3algn2k1insn2k1ortnk2s1aln4n1alln4nentsn2n1unfn2o3ble2n1ob2s2n3o2fenor2d5rno4t3eino2t3inno2t1opn2s1a2dn2s1alln2s1äusn6schefn4schronsen4spn2s1erkn2s1erön2s1erwn2s1erzn4s1etan2s1inin4stat_nst3eifn3stemmns4tentnst4erön4stracn4strien3t2a3cn4tanzan2t1eisn4t1essn2t1inhnton2s1nt3reifnt3riegntu4re_ntu4res1n2ung4n2z1a2gn4zensen4zentwn4zentznz3erwe2o3b4enoben3d4oben3seobe4riso2ch1ecocher4ko3d2e1iof2f1inoge2l1io2h1eiso2h1erto2h1erzoh4lergoh4lerwo3isch_ol2l3auoll1e2col2l1eiol4lerkoma4nero3m2eiso2m1indo2m1into2n1erbo2n1erdon3n2anont3antont3erwon4t3riop4ferdopi3er_o2r3almor2d3amor2d1irord3s2to4rientor2k3aror4mansor4mentor3n2o1oro3n2aor2t1akor4t1anor2t1auort3eigort3erfor2t3evort3insor4trauort3ricor2t1umo4sentso2s3peross3andos4t3amos3tarrost4artos4ta4soster3eos4t1obost3ranost3roto3t2e1iote2l1aote4leio2t1erwo2t1i2mot4terkoun4ge_our4ne_ozen4taöchs4tuögen2s1öl2f1eiö2r1e2lö3r2erzö2r1uneö2sch3mpa2r3afpar3akt2par2erpar4kampar4kaupe2l3a2pe3li4npe3n2alper2r1a2ph1erspil4zerpingen4pi2z1in3ple5n4po2p3akpo2p3arpor4tinpor4trepor6tripo2s3tepost3eipost3rap2p3a2bppe4lerp4t1entpt3ereip4t1erwp4t1erz2r1acetra4chebra4chinracht3rr3a2d3r3ra1k4l2r3alm_r4alt2hram4manram4m3uram2p3lran4dep4r3aneiran4spara2r1inra4schl2r3asph2r3attarau3e2nrau4man2raus5srbe3r2erchst4rr2d1elbrden4glrder4err2d1innre3alerrech3ar3reigewrei3l2arei3l2irei3necre1in2v2re2lek2r1entl2r1ents4r3entzr4ergen2r1ernä4r3erns4r3ernt3r2ers_2r1ersare2s2tu2r3evid2r3e2x1rfi4le_rfolg4srf4s1idrf2s3prr2g1a2drge4ralrge4taprgi4selr2g3ralrg5s2turi2d3anri3ers_ri3estiri2f1eirif4terri4generin4dexrin4diz4rinnta3r4ins_r4inspirin4tegrin4t5rri4schori4schwr3i2talr2k3reark4stecrkt3ersrk2t1o2rl2s3tor2m1aldr2n1anzr4n3eisr4n1enern3enser4n1ergrn4erhir4n1ertrol4lanron4tanros2s1cro3st2arre4aler2s1a2dr4s1amtr2s3angr3sch2er4stantrs4temprs4terbrst3ingrst3ranr2t1almrt3a4rer2t3attrtei3lartei1s4rten3s2rt3ereir4terfor4t3erhr2t1erkrter4rerte3s2kr2t1imar4treisrt4s1ehr2t1urtru3a2r3ruch3strun2d1arund3er2r1u2ni4r3uniorus2s1pru2t1o2rve4n1er2z1erfr2z1ergr2z1erkr2z1erwrz2t3ror3z2wecsa2cho22s1a2drsa4gentsa3i2k1sa2l1ids3ameri6s1amma2s3a2nasan4dri4s3antr4s3a2sy2s3aufb2s3ausb3s2ausesbe3r2es4ch2al4schanc4schangsch3ei_4schemp4schess4schiru4schle_sch6lit4schre_4schrinsch3rom4schrousch3s2k4schunt4schwetsch4wilsdien4e2s1echo2s1e2ckse2e1i4se2h1a2se4h1eise4herk5s4ein_sein4dusei3n2esein4fos4eins_4seinsp4seinstsel3ers2s1endl4s1entf2s3entg2s1entsser3a2dse2r3als3erbe_s3ereig2s1erfo4serfül4serken2s3ernt4s3eröf4sersehse4r1ufse3rund4se4tap4s1e2thsi3ach_siege4ssi2g1a2si2k1absik3erlsin3g4lsing3sasi4schuska4te_4skategska4tes4s3klassni3er_sni3ersso4l1eisol4ler2s1orga5s2orgeso2r1o24s1o2ve4spensi2s1peri3s2pi4e4spier43s4prec3sprosssrat4scss1a2cks4s1alas4s1albs4s3amts4s3angs4s3anzs3sa1s2s2s1egasse3infss3ersessquet4s3ta3li4s3tanns4t2ars3staus_st3a2ve4stechn3steilhstei4naste4mar6s5ter_3sterncs4t3ese3s4tett1s2ti2rst1i4sosto3s2t1s4trah4strans3s4tras4straum4s5träg4sträne4s5tref4streibst3renn2s4trig2s5trisst3rollstro4ma4st3run2s4t3s42stum2sstum4sc3s4tunds2t3uni2s3tuns2st3urtsuch4st3s4zeneße3r2eißi2g1a2ta2b1anta4bend2t1a2drta2g1eitahl3sk3t2aktuta4lensta2l1optan4gar2t1anme4t1anna3t2ans_4t3ansi4t3anspta4rens3t4a3rita2ta2bta2t3erta2t1um4t3ausg4t3auss4t1auswtbauer4tbe3r2e4teilhet3einget3einlate2l1abte2l1acte2l1autele4bete4l1ecte4l1ehte4leinte4lerd4t3elf_te2l1inte4losttel3s2kte2m1ei3temperte4na2dte4na2g4t3endf4t1endl4t3endpten3d4rten3eidten3ens4tenerg4t1eng_ten4glate4n3in4tensem4t3entw4t3entzte3ran_te2re2bter3endte4rengte4rerkterer4z4terfol4terfül3ter3g2t6ergru4terklä2t1erlöter4mert3erneuter4re_ter4sert4erst_t4erstit4erstute4r1ufter4wäh2t3erzbtes3tantest3eitestes4teu3ereteu3eriteu2r3a2t3e2xe2t1e2xi4thrin_4thrinsti4dendti3e4n3tie4recti4gerzti3k2erti2ma2gtim2m1atin2g1at1in1ittin2k1l3t2ins_4t1inseti4que_ti4schatisch3w3ti3t2etle2r3atmen6t3tmo4desto2d1ertor3inttra3chatra4demtra4far3t4ran_tre4ale3t4reib2t3reih4trenditre2t3r3t4runkt3s2chat4schart3sch2et4schefts4chemtsch4lit4schrot2s1e2bt4seindt2s1engt2s1entt2s1i2dts4paret3s2pont3s2port4spreits3tätit2s3tepts3tradt4strants3traut2s3trät4streut4stropt2s3trütte4lebtte4lent3u2fertums5trtung4s5tu2r1ertu4schlt2z1e2ct2z1eiet2z1eistz3entsubal3l2ubi3os_u2b3rituch4spruch4toruch2t3ru4ckentu3ck2eruden3s2ue3reigue4rergue4rerku4erinnuer4neru3erunfu3eruntu2f1ä2ßu2f1erhu4ferleufs3temuf2t1ebu4gabteu2g1erfu2g1erlugge4stu2g3rüsu3isch_u3ischsuk2t1inulm3einu2m3a2ku2m1artu2m1ausument4su2m1ergu2m1erlu2m1erwumpf4lium2p3leum2s1peun2d1umun2k1a2unk4titunk2t3run2n3aduns4t1runte4riunvoll3up4t3a2upt3ergu2r3a2mu2r1anau2r1angu2r3atturgros4ur3s2zeu2s1eseusi3er_us3partu2s1pasu5s4pizust3abeu5strasus6trisute4leiuter4eruto4berut4schlut4schmut4schöut2s3pautz3engüch2s1cück3eriü4ckersück4speü3d2ensü2f1ergü2h1engü2h1erkü2h1erzühr3ei_ül2l1eiün2f1eiü2r1entüste3neva2t3a4va4t1inve4l1auvenen4dve3rand2ve3s2evid3s2tvie2h3avie4recvi2l1invollen4vormen4waffel3wah4lerwalt4stwar3stewa4schawä3schewe3cke_we3ckeswei3strwer4gelwe4r3iowest3eiwest1o2wim4m3uwolf4s3wol4lerwor2t3rxi2d1emx2t1e2dxtra3b4x2t3rany2l3a2myl4ante3zambiqzei2t1aze2l1a2ze2l1erze2l1inzel3t2hze4n3aczen4semzen4zerze2re2b2z1ergäz3erhalzerin4tzer4neb2z1ersazert1a2zert4anzer4tin4zerwei3z2erzazessen4zger4s1zin4ser4zinsufzon4terz3t2herzu2g1arzu4gentzwan2d1", + 8 : "_al5l4en_anden6k_ar4m3ac_ar4t3ei_bei6ge__ber6gab_ber4g3r_de3r4en_einen6g_en4d3er_en5der__er4zen4_ka4t3io_lo4g3in_mode6ra_ost5end_oste6re_par3t4h_richt6e_sucher6_tan4k3la2ch1e2ca4ch3erwacht5ergach6tritack3sta43a2er2o1af4t3erlage4s3tiah4l3erhal4b3erw3a2l1e2bal2l3a4rall5erfaalli5er_al4t3erfam4t3ernand6spas3a4n1erban4g3erfan4g3erlan4g3erzang4s3poani5ers_an2t3a4ran2z1i4nau5ereinau4s3erwauster6mau4ten4gau4t3erhäs4s3erkbach7t4ebal4l3ehbe4r3eiwber6gan_ber3st4abe6steinbe4s3tolbote3n4ebst5einbbu4s3chach3e4ben6chergebcher6zie6ckergeb4d3achse2d1an3d23d4ärme_2d1e4ben3d2e1i2mde2l1a2gde4l3augdel5sterde4n3endden4k3li4den4semde3r4erbde3r4erfde4r3ero4d3erhöh4d3ersatdest5altdest5ratdienst5r2d1in1it4d3innerdi4t3erldi4t3ermdi4t3ersd4s3tätid3s4tern2d1u2m1edu4sch3le3a4reneech3t4eiege4n3a2eg4se4r1ehr6erleei4b3uteei4d3errei2m1a2gein6karnein6stalei6schwuei4s3erwek4t3erzeld5erstel4d3erwe4ler4fae4ler4lae4l3ernäe4l1e4taelgi5er_elgi5ersel4l3einemen4t3he6mentspen4d3esse4n3ermoeni5ers_en5sch4eenst5alten4s3täten4t3rolen4z3erfen4z3ergen4z3erke2r3a4sie4r3eis_e4r3entferi3e4n3er6tereiess4e3rees4t3enges4t3erhes4t3essestmo6deet4z3enteue6reifeut6schnfacher5ffal6schafal6schmfe4r3anzfrach6trf4s3tätif4s3tresf4s3tütef4t1e4tift4s3tanfzeiten6gas4t3el2g1eise2gel4b3ragel4b3rogel6dersge4l3ers4g3ereigge4ren4sge4r3entge4s3terglei4t5rgrammen6gros6selg3s4tatigs4t3rosgu4t3erhhaft4s3phal6lerfhau3f4lihau5steihau6terkhe4f3inghel4l3auhe2n1e2bhe4r3eishe4r3o4bhfel6lerhich6terho6ckerlhol6zeneh6rerlebh3s4terbh3t4akt_h4teil4zh4t3elith4t3entsht5erkenh6terneuh4t3erreh6terstaht6ersteht6raumeht4s3turhu4l3enghut4z3eria4l3ermie4n3a2gie4n3ergienst5räie4r3erziesen3s4ie4t3erhie4t3ertiker6fahi3l4aufbim4m3enti2n1e2bei4ner4trin2g1a2gin4n3ermin4s3tätir4m3untir4sch3wi4sch3eii5schingi6schwiri4s3etatiso6nendis4s3cheit4z3ergjah4r3eika4n1a4s6kantennkehr4s3oke4l3eim4ken4gagken5steiker6gebnkerin6stk3er4lauk3er4lebk6erlebe2k1er2zikeu6schlkor6dergkre1i2e4k4s3tanzk4t3erfolan2d3a22lat2t1alat4t3inl2d1e2seleben4s3lei6nerble4n3end5lentwetle4r3eim3l4ergew6lerwerbli4g3ers2l1in1itl6lereigl6lergebl6lergen2l1or3g2l4s3ort_l4s3tätils6ternels6ternsl4te4leml4t1e4skl2t1o2rilu2g1e2blus6serflus6serklus6serslu4t3ergl2z1u4femagi5er_magi5ersmar6schmmar6schrma4t3erdmen6tanz4m3entwi4m3ergänmes6sergmp4f3ergmp4f3erz4m3ungebmu4r1u2fnacht6ra4n3a2mernavi5er_navi5ersn4d3entsnder5stene2n1e2bn4g3erseng4s3e4h2n3i2gelni4k3ingn4k3erfanseh5eren4s3ort_n4s3prien4s3tatens6terbenst5opfenten6te_nt4s3parober3in4ode6rat_ode6rateoh4l3erholl5endsoll5erweol4z3ernonderer5on4t3endopf5erdeopi5ers_or4d3engo2r1e2ckorsch5lior4t3entor4t3ereor4t3offor4t3räuos4s3enzö4sch3eipargel6dpä4t1e2hpä4t3entpe4l3inkp2f1in3spos4t3agrach6trärali5er_rali5ersran4d3errau4m3agräu5scher2b1a2der4b3lastrch6terwrderin6sr4d3erntrege4l3äre4h3entreister6re4n3end4r3erken4r3erlaurge4l3errgen4z3w4r3innerrkstati6rk4t3engrk4t3erfrk6terscrk4t3erwr2m1o2rirn3e4benrol3l4enrpe4r3inr6scherlr4s3ort_r6strangr4t3erler4t3ernäru6ckerlrun6derlrun6dersrun6derwr4z3entssa4l3erbsat4z3en6schlein2s1e2bense4l3erl4s1e2pos6sereignse4r3eimse4r3enk2s1i2deoson5ende2s1o2riesrücker6sse3in4tstel4l3äs4t3endss4t3engls4t3entfste6rersstes6se_5st4reif1s4tri2ksun6derhtan6zerhta4r3eretau3f4litau6schrtau6schwtblock5e4t1e2bentein3e4cte2m1o2rte2n1e2bte3n4ei_ten4t3riten6zerh4t3erde_te4r3eif6tergreiter4n3art6erscha6terwerbtes6terkti4v3erlto6ckenttrücker6t4s1amt4t4s3esset3s4terotta6gess2t1u2niotu2r1a2gtu2r1e4tu2ch1e4cu3erin4tuern3s4tu4g3reisun4d3erfund5erhau2r1an5sur3a4renu6schentusch5werusi5ers_u4t3ersaüge6leiswach6stuwach4t4rwahl5entwandels6we5cken_wein4s3aweis4s3pwel6schlwel6schrwel4t3a2wen4k3ri5werdensxpor6terx2t1er2fx2t1il2l2z1e2benzeit5endzei4t3er4z3ergebzer4n3ei4z3erstezer4t3agzer6tere", + 9 : "_char8me__er8stein_he6r5inn_men8schl_men8schw_rü6cker6_wort5en6_wor8tendach8traumalli7ers_allkon8tral5s6terbausan8ne_äh4l3e4be6b5rechtebs3e4r3inchner8ei_dampf8erfden6s5taue6ch5erziee4r3en4ge6l5eier_erg3el4s3fal6l5erk6fel6ternfor4m3a4gforni7er_fzei8tendgot6t5erggrab8schegren6z5eihä6s5chenhe6rin6nuherin8terh6l3er4näh6t5erspaieler8gebi2k1e2r2eil4d3en4ti4sch3e4hkamp8ferfke6rin6nulan6d5erwlan6d5erzleis6s5erlepositi86mel6ternmorgen5s65n2en3t2aner8schlenich8tersn4n3er4wano6t5entrnsch7werdn5s6ternen5s6ternsos4s3en4kpapieren8ram6m5ersr8blasserres6s5erw6r5innenmris6t5ersr6st5eingrs4t3er4wr4t3er4lasfal6l5erspani7er_sse6r5atts4s3e4strsu6m5ents4t3a4genttblocken8tes6ter6gür4g3en4gvati8ons_vol6l5endwer6t5ermwin4d3e4czer6t5rauzes6s5end", + 10 : "_er8brecht_os8ten8deder6t5en6deren8z7endgram8m7endhrei6b5e6cos6t5er6werein8s7trewel6t5en6dwin8n7ersczge8rin8nu", 11 : "_er8stritt__spiege8leiach8träume_lei8t7er8scpapie8r7endpiegelei8en", - 12 : "ach8träumen_", + 12 : "ach8träumen_7sprechende_", 13 : "_er8stritten_" } }; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/el-monoton.js b/resources/viewer/hyphenate/patterns/el-monoton.js new file mode 100644 index 0000000000..79902a48c5 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/el-monoton.js @@ -0,0 +1,20 @@ +// Hyphenation patterns for Modern Monotonic Greek. +// Created by Dimitrios Filippou with some ideas borrowed from +// Yannis Haralambous, Kostis Dryllerakis and Claudio Beccari. +// From http://tug.org/svn/texhyphen/branches/ptex/hyph-utf8/tex/generic/hyph-utf8/patterns/tex/hyph-el-monoton.tex +// Converted by Pablo Rodríguez (hyphenator at pragmata dot tk) +Hyphenator.languages['el-monoton'] = Hyphenator.languages['el'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 1, + longestPattern : 7, + specialChars : "αεηιουωϊϋάέήίόÏÏŽÎΰίάύέήόώβγκδζθλμπντξÏσϲςφχψ'ʼ᾿’᾽", + patterns : { + 2 : "α1ε1η1ι1ο1Ï…1ω1ÏŠ1Ï‹1ά1έ1ή1ί1ÏŒ1Ï1ÏŽ1Î1ΰ14'4ʼ4᾿", + 3 : "α2ια2ία2ίά2ιά2ιά2ÏŠá½±2ϊα2υα2Ïα2ύά3Ï…á½±3υε2ιε2ίε2ίέ2ιέ2ιέ2ÏŠá½³2ϊε2υε2Ïε2ύέ3Ï…á½³3υη2υη2Ïη2ύή3Ï…á½µ3υο2ιο2ίο2á½·ÏŒ2ιό2ιό2ÏŠá½¹2ϊο2υο2Ïο2ύό3Ï…á½¹3Ï…Ï…2ιυ2ίυ2á½·Ï3ιύ3ια2ηα2ϊα2ϋε2ϊε2ϋο2ηο2ϊι2αι2άι2άι2ει2έι2έι2οι2όι2όι2ωι2ώι2á½½_ι3_ί3_á½·3η2αη2άη2άη2εη2έη2έη2οη2όη2όη2ωη2ώη2á½½_η3_ή3_á½µ3Ï…2αυ2άυ2άυ2ου2όυ2όυ2ωυ2ÏŽÏ…2á½½_Ï…3_Ï3_á½»34β_4γ_4δ_4ζ_4θ_4κ_4λ_4μ_4ν_4ξ_4Ï€_4Ï_4σ_4ϲ_4Ï‚_4Ï„_4φ_4χ_4ψ_4β'4βʼ4β᾿4γ'4γʼ4γ᾿4δ'4δʼ4δ᾿4ζ'4ζʼ4ζ᾿4θ'4θʼ4θ᾿4κ'4κʼ4κ᾿4λ'4λʼ4λ᾿4μ'4μʼ4μ᾿4ν'4νʼ4ν᾿4ξ'4ξʼ4ξ᾿4Ï€'4πʼ4π᾿4Ï'4Ïʼ4Ï᾿4σ'4σʼ4σ᾿4ϲ'4ϲʼ4ϲ᾿4Ï„'4τʼ4τ᾿4φ'4φʼ4φ᾿4χ'4χʼ4χ᾿4ψ'4ψʼ4ψ᾿_β4_γ4_δ4_ζ4_θ4_κ4_λ4_μ4_ν4_ξ4_Ï€4_Ï4_σ4_ϲ4_Ï„4_φ4_χ4_ψ4", + 4 : "ά3η_á½±3η_ά3ι_á½±3ι_ο2ειό3η_á½¹3η_ÏŒ3ι_á½¹3ι_4γκ_4μπ_4ντ_4τζ_4τσ_4τϲ_4τς_4μπ'4μπʼ4μπ᾿4ντ'4ντ’4ντ᾿4τζ'4τζʼ4τζ᾿4τσ'4τσʼ4τσ᾽4τϲ'4τϲʼ4τϲ᾿4β1β4γ1γ4δ1δ4ζ1ζ4θ1θ4κ1κ4λ1λ4μ1μ4ν1ν4Ï€1Ï€4Ï1Ï4σ1σ4ϲ1ϲ4Ï„1Ï„4φ1φ4χ1χ4ψ1ψ4β1ζ4β1θ4β1κ4β1μ4β1ν4β1ξ4β1Ï€4β1σ4β1ϲ4β1Ï„4β1φ4β1χ4β1ψ4γ1β4γ1ζ4γ1θ4γ1μ4γ1ξ4γ1Ï€4γ1σ4γ1ϲ4γ1Ï„4γ1φ4γ1χ4γ1ψ4δ1β4δ1γ4δ1ζ4δ1θ4δ1κ4δ1λ4δ1ξ4δ1Ï€4δ1σ4δ1ϲ4δ1Ï„4δ1φ4δ1χ4δ1ψ4ζ1β4ζ1γ4ζ1δ4ζ1θ4ζ1κ4ζ1λ4ζ1μτζ2μ4ζ1ν4ζ1ξ4ζ1Ï€4ζ1Ï4ζ1σ4ζ1ϲ4ζ1Ï„4ζ1φ4ζ1χ4ζ1ψ4θ1β4θ1γ4θ1δ4θ1ζ4θ1κ4θ1μσθ2μϲθ2μ4θ1ξ4θ1Ï€4θ1σ4θ1ϲ4θ1Ï„4θ1φ4θ1χ4θ1ψ4κ1β4κ1γ4κ1δ4κ1ζ4κ1θ4κ1μ4κ1ξ4κ1Ï€4κ1σ4κ1ϲ4κ1φ4κ1χ4κ1ψ4λ1β4λ1γ4λ1δ4λ1ζ4λ1θ4λ1κ4λ1μ4λ1ν4λ1ξ4λ1Ï€4λ1Ï4λ1σ4λ1ϲ4λ1Ï„4λ1φ4λ1χ4λ1ψ4μ1β4μ1γ4μ1δ4μ1ζ4μ1θ4μ1κ4μ1λ4μ1ξ4μ1Ï4μ1σ4μ1ϲ4μ1Ï„4μ1φ4μ1χ4μ1ψ4ν1β4ν1γ4ν1δ4ν1ζ4ν1θ4ν1κ4ν1λ4ν1μ4ν1ξ4ν1Ï€4ν1Ï4ν1σ4ν1ϲ4ν1φ4ν1χ4ν1ψ4ξ1β4ξ1γ4ξ1δ4ξ1ζ4ξ1θ4ξ1κ4ξ1λ4ξ1μ4ξ1ν4ξ1Ï€4ξ1Ï4ξ1σ4ξ1ϲ4ξ1Ï„4ξ1φ4ξ1χ4ξ1ψ4Ï€1β4Ï€1γ4Ï€1δ4Ï€1ζ4Ï€1θ4Ï€1κ4Ï€1μ4Ï€1ξ4Ï€1σ4Ï€1ϲ4Ï€1φ4Ï€1χ4Ï€1ψ4Ï1β4Ï1γ4Ï1δ4Ï1ζ4Ï1θ4Ï1κ4Ï1λ4Ï1μ4Ï1ν4Ï1ξ4Ï1Ï€4Ï1σ4Ï1ϲ4Ï1Ï„4Ï1φ4Ï1χ4Ï1ψ4σ1δ4ϲ1δ4σ1ζ4ϲ1ζ4σ1ν4ϲ1ν4σ1ξ4ϲ1ξ4σ1Ï4ϲ1Ï4σ1ψ4ϲ1ψ4Ï„1β4Ï„1γ4Ï„1δ4Ï„1θ4Ï„1κ4Ï„1ν4Ï„1ξ4Ï„1Ï€4Ï„1φστ2φϲτ2φ4Ï„1χ4Ï„1ψ4φ1β4φ1γ4φ1δ4φ1ζ4φ1κ4φ1μ4φ1ν4φ1ξ4φ1Ï€4φ1σ4φ1ϲ4φ1χ4φ1ψ4χ1β4χ1γ4χ1δ4χ1ζ4χ1κ4χ1μ4χ1ξ4χ1Ï€4χ1σ4χ1ϲ4χ1φ4χ1ψ4ψ1β4ψ1γ4ψ1δ4ψ1ζ4ψ1θ4ψ1κ4ψ1λ4ψ1μ4ψ1ν4ψ1ξ4ψ1Ï€4ψ1Ï4ψ1σ4ψ1ϲ4ψ1Ï„4ψ1φ4ψ1χ4βÏ_4γλ_4κλ_4κτ_6κς_6κϲ_4κσ_4λς_4λϲ_4λσ_4μς_4μϲ_4μσ_4νς_4νϲ_4νσ_4ÏÏ‚_4Ïϲ_4Ïσ_4σκ_4ϲκ_4στ_4ϲτ_4τλ_4Ï„Ï_4φτ_", + 5 : "ο3ÏŠ3όο3ÏŠ3á½¹4γ1κτ4μ1πτ4ν1τζ4ν1τσ4ν1τϲ4γκς_4γκϲ_4γκσ_4μπλ_4μπν_4μπÏ_4ντς_4ντϲ_4ντσ_", + 6 : "4Ï5γ2μ4Ï5θ2μ4λ5κ2μ4Ï5κ2μ4ν5κ2φ4γ5ξ2Ï„4Ï5ξ2Ï„4Ï5φ2ν4Ï5χ2μ4μ5ψ2Ï„4γ5κ2φ4γκ1ντ4γκ1τζ4γκ1τσ4γκ1τϲ4μπ1ντ4μπ1τζ4μπ1τσ4μπ1τϲ4ντ1μπ4τσ1γκ4τϲ1γκ4τσ1μπ4τϲ1μπ4τσ1ντ4τϲ1ντ", + 10 : "4χτ_4γκ1μπ" + } +}; diff --git a/resources/viewer/hyphenate/patterns/el-polyton.js b/resources/viewer/hyphenate/patterns/el-polyton.js new file mode 100644 index 0000000000..e7a23199f5 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/el-polyton.js @@ -0,0 +1,26 @@ +// Hyphenation patterns for Modern Polytonic Greek. +// Created by Dimitrios Filippou with some ideas borrowed from +// Yannis Haralambous, Kostis Dryllerakis and Claudio Beccari. +// From http://tug.org/svn/texhyphen/branches/ptex/hyph-utf8/tex/generic/hyph-utf8/patterns/tex/hyph-el-polyton.tex +// Converted by Pablo Rodríguez (hyphenator at pragmata dot tk) +Hyphenator.languages['el-polyton'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 1, + longestPattern : 11, + specialChars : "αεηιουωϊϋἀá¼á¼‚ἃἄἅἆἇá¼á¼‘ἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀá½á½‚ὃὄὅá½á½‘ὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰὲὴὶὸὺὼᾀá¾á¾‚ᾃᾄᾅᾆᾇá¾á¾‘ᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾲᾳᾴᾶᾷῂῃῄῆῇῒῖῗῢῦῧῲῳῴῶῷάέήίόÏÏŽÎΰάέήίόύώΐΰβγκδζθλμπντξÏσϲςφχψ'ʼ᾿’᾽ῤῥ", + patterns : { + 2 : "α1ε1η1ι1ο1Ï…1ω1ÏŠ1Ï‹1á¼€1á¼1ἂ1ἃ1ἄ1á¼…1ἆ1ἇ1á¼1ἑ1á¼’1ἓ1á¼”1ἕ1á¼ 1ἡ1á¼¢1á¼£1ἤ1á¼¥1ἦ1á¼§1á¼°1á¼±1á¼²1á¼³1á¼´1á¼µ1á¼¶1á¼·1á½€1á½1ὂ1ὃ1ὄ1á½…1á½1ὑ1á½’1ὓ1á½”1ὕ1á½–1á½—1á½ 1ὡ1á½¢1á½£1ὤ1á½¥1ὦ1á½§1á½°1á½²1á½´1á½¶1ὸ1ὺ1á½¼1á¾€1á¾1ᾂ1ᾃ1ᾄ1á¾…1ᾆ1ᾇ1á¾1ᾑ1á¾’1ᾓ1á¾”1ᾕ1á¾–1á¾—1á¾ 1ᾡ1á¾¢1á¾£1ᾤ1á¾¥1ᾦ1á¾§1á¾²1á¾³1á¾´1á¾¶1á¾·1á¿‚1ῃ1á¿„1ῆ1ῇ1á¿’1á¿–1á¿—1á¿¢1ῦ1á¿§1ῲ1ῳ1á¿´1á¿¶1á¿·1ά1έ1ή1ί1ÏŒ1Ï1ÏŽ1Î1ΰ1á½±1á½³1á½µ1á½·1á½¹1á½»1á½½1á¿“1á¿£16'6ʼ6᾿", + 3 : "α2ια2ία2ία2ὶα2ῖα2ἰα2ἴα2ἲα2ἶα2ἱα2ἵα2ἳα2ἷά2ιά2ιά2ÏŠá½±2ϊα2υα2Ïα2ύα2ὺα2ῦα2á½Î±2ὔα2ὒα2ὖα2ὑα2ὕα2ὓα2ὗά3Ï…á½±3υε2ιε2ίε2ίε2ὶε2ῖε2ἰε2ἴε2ἲε2ἶε2ἱε2ἵε2ἳε2ἷέ2ιέ2ιέ2ÏŠá½³2ϊε2υε2Ïε2ύε2ὺε2ῦε2á½Îµ2ὔε2ὒε2ὖε2ὑε2ὕε2ὓε2ὗέ3Ï…á½³3υη2υη2Ïη2ύη2ὺη2ῦη2á½Î·2ὔη2ὒη2ὖη2ὑη2ὕη2ὓη2ὗο2ιο2ίο2ίο2ὶο2ῖο2ἰο2ἴο2ἲο2ἶο2ἱο2ἵο2ἳο2á¼·ÏŒ2ιό2ιό2ÏŠá½¹2ϊο2υο2Ïο2ύο2ὺο2ῦο2á½Î¿2ὔο2ὒο2ὖο2ὑο2ὕο2ὓο2á½—ÏŒ3Ï…á½¹3Ï…Ï…2ιυ2ίυ2á½·Ï…2á½¶Ï…2á¿–Ï…2á¼°Ï…2á¼´Ï…2ἲυ2á¼¶Ï…2ἱυ2ἵυ2ἳυ2ἷα2ηα2ϊα2ϋά3ϋά3ϋε2ηέ2ηέ2ηε2ϊε2ϋό2ηό2ηο2ϊω2ιὠ2ιι2αι2άι2άι2ὰι2ᾶι2ει2έι2έι2ὲι2οι2όι2όι2ὸι2ωι2ώι2ώι2ὼι2á¿¶_ί3_á½·3_á¿–3_á¼°3_á¼±3η2αῃ2αη2άη2άη2ὰη2ᾶῃ2άῃ2άῃ2ὰῃ2ᾶη2εῃ2εη2έη2έη2ὲῃ2έῃ2έῃ2ὲη2οῃ2οη2όη2όη2ὸῃ2όῃ2όῃ2ὸη2ωῃ2ωη2ώη2ώη2ὼη2ῶῃ2ώῃ2ώῃ2ὼῃ2á¿¶_ή3_á½µ3_ῆ3_á¼ 3_ἡ3Ï…2αυ2άυ2άυ2á½°Ï…2á¾¶Ï…2ευ2έυ2έυ2ὲυ2ου2όυ2όυ2ὸυ2ωυ2ÏŽÏ…2ώυ2ὼυ2á¿¶_Ï3_á½»3_ῦ3_ὑ36β_6γ_6δ_6ζ_6θ_6κ_6λ_6μ_6ν_6ξ_6Ï€_6Ï_6σ_6ϲ_6Ï‚_6Ï„_6φ_6χ_6ψ_6β'6βʼ6β᾿6γ'6γʼ6γ᾿6δ'6δʼ6δ᾿6ζ'6ζʼ6ζ᾿6θ'6θʼ6θ᾿6κ'6κʼ6κ᾿6λ'6λʼ6λ᾿6μ'6μʼ6μ᾿6ν'6νʼ6ν᾿6ξ'6ξʼ6ξ᾿6Ï€'6πʼ6π᾿6Ï'6Ïʼ6Ï᾿6σ'6σʼ6σ᾿6ϲ'6ϲʼ6ϲ᾿6Ï„'6τʼ6τ᾿6φ'6φʼ6φ᾿6χ'6χʼ6χ᾿6ψ'6ψʼ6ψ᾿_β6_γ6_δ6_ζ6_θ6_κ6_λ6_μ6_ν6_ξ6_Ï€6_Ï6_σ6_ϲ6_Ï„6_φ6_χ6_ψ6", + 4 : "ά3η_á½±3η_ά3ι_á½±3ι_ά3ÏŠ_á½±3ÏŠ_ÏŒ2ειό2ειό3η_á½¹3η_ÏŒ3ι_á½¹3ι_ÏŒ3ÏŠ_á½¹3ÏŠ_6γκ_6μπ_6ντ_6τζ_6τσ_6τϲ_6τς_6μπ'6μπʼ6μπ᾿6ντ'6ντ’6ντ᾿6τζ'6τζʼ6τζ᾿6τσ'6τσʼ6τσ᾽6τϲ'6τϲʼ6τϲ᾿4β1β4γ1γ4δ1δ4ζ1ζ4θ1θ4κ1κ4λ1λ4μ1μ4ν1ν4Ï€1Ï€4Ï1Ï4ῤ1á¿¥4σ1σ4ϲ1ϲ4Ï„1Ï„4φ1φ4χ1χ4ψ1ψ4β1ζ4β1θ4β1κ4β1μ4β1ν4β1ξ4β1Ï€4β1σ4β1ϲ4β1Ï„4β1φ4β1χ4β1ψ4γ1β4γ1ζ4γ1θ4γ1κ4γ1μ4γ1ξ4γ1Ï€4γ1σ4γ1ϲ4γ1Ï„4γ1φ4γ1χ4γ1ψ4δ1β4δ1γ4δ1ζ4δ1θ4δ1κ4δ1λ4δ1ξ4δ1Ï€4δ1σ4δ1ϲ4δ1Ï„4δ1φ4δ1χ4δ1ψ4ζ1β4ζ1γ4ζ1δ4ζ1θ4ζ1κ4ζ1λ4ζ1μτζ2μ4ζ1ν4ζ1ξ4ζ1Ï€4ζ1Ï4ζ1σ4ζ1ϲ4ζ1Ï„4ζ1φ4ζ1χ4ζ1ψ4θ1β4θ1γ4θ1δ4θ1ζ4θ1κ4θ1μσθ2μϲθ2μ4θ1ξ4θ1Ï€4θ1σ4θ1ϲ4θ1Ï„4θ1φ4θ1χ4θ1ψ4κ1β4κ1γ4κ1δ4κ1ζ4κ1θ4κ1ξ4κ1Ï€4κ1σ4κ1ϲ4κ1φ4κ1χ4κ1ψ4λ1β4λ1γ4λ1δ4λ1ζ4λ1θ4λ1κ4λ1μ4λ1ν4λ1ξ4λ1Ï€4λ1Ï4λ1σ4λ1ϲ4λ1Ï„4λ1φ4λ1χ4λ1ψ4μ1β4μ1γ4μ1δ4μ1ζ4μ1θ4μ1κ4μ1λ4μ1ξ4μ1Ï€4μ1Ï4μ1σ4μ1ϲ4μ1Ï„4μ1φ4μ1χ4μ1ψ4ν1β4ν1γ4ν1δ4ν1ζ4ν1θ4ν1κ4ν1λ4ν1μ4ν1ξ4ν1Ï€4ν1Ï4ν1σ4ν1ϲ4ν1Ï„4ν1φ4ν1χ4ν1ψ4ξ1β4ξ1γ4ξ1δ4ξ1ζ4ξ1θ4ξ1κ4ξ1λ4ξ1μ4ξ1ν4ξ1Ï€4ξ1Ï4ξ1σ4ξ1ϲ4ξ1Ï„4ξ1φ4ξ1χ4ξ1ψ4Ï€1β4Ï€1γ4Ï€1δ4Ï€1ζ4Ï€1θ4Ï€1κ4Ï€1μ4Ï€1ξ4Ï€1σ4Ï€1ϲ4Ï€1φ4Ï€1χ4Ï€1ψ4Ï1β4Ï1γ4Ï1δ4Ï1ζ4Ï1θ4Ï1κ4Ï1λ4Ï1μ4Ï1ν4Ï1ξ4Ï1Ï€4Ï1σ4Ï1ϲ4Ï1Ï„4Ï1φ4Ï1χ4Ï1ψ4σ1δ4ϲ1δ4σ1ζ4ϲ1ζ4σ1ν4ϲ1ν4σ1ξ4ϲ1ξ4σ1Ï4ϲ1Ï4σ1ψ4ϲ1ψ4Ï„1β4Ï„1γ4Ï„1δ4Ï„1θ4Ï„1ν4Ï„1ξ4Ï„1Ï€4Ï„1φστ2φϲτ2φ4Ï„1χ4Ï„1ψ4φ1β4φ1γ4φ1δ4φ1ζ4φ1κ4φ1ν4φ1ξ4φ1Ï€4φ1σ4φ1ϲ4φ1χ4φ1ψ4χ1β4χ1γ4χ1δ4χ1ζ4χ1κ4χ1μ4χ1ξ4χ1Ï€4χ1σ4χ1ϲ4χ1φ4χ1ψ4ψ1β4ψ1γ4ψ1δ4ψ1ζ4ψ1θ4ψ1κ4ψ1λ4ψ1μ4ψ1ν4ψ1ξ4ψ1Ï€4ψ1Ï4ψ1σ4ψ1ϲ4ψ1Ï„4ψ1φ4ψ1χβγ2κσγ2κϲγ2κσμ2πϲμ2πμν2τσν2τϲν2Ï„6βÏ_6γλ_6κλ_6κτ_6κς_6κϲ_6κσ_6λς_6λϲ_6λσ_6μς_6μϲ_6μσ_6νς_6νϲ_6νσ_6ÏÏ‚_6Ïϲ_6Ïσ_6σκ_6ϲκ_6στ_6ϲτ_6τλ_6Ï„Ï_6φτ_6χτ_", + 5 : "ο3ÏŠ3όο3ÏŠ3όο3ÏŠ3ὸβ5ν2τζ5ν2τλ5ν2Ï„Ï5ν2Ï„", + 6 : "4Ï5γ2μ4Ï5θ2μ4λ5κ2μ4Ï5κ2μ4γ5κ2φ4ν5κ2φ4γ5ξ2Ï„4Ï5ξ2Ï„4Ï5φ2ν4Ï5χ2μ4μ5ψ2Ï„4λ5γ2κ4ν5γ2κ4Ï5γ2κ4Ï„5γ2κ4ζ5μ2Ï€4λ5μ2Ï€4ν5μ2Ï€4Ï5μ2πἄ5μ2ακἀ5μ2Ï€Ïὄ5μ2ποὀ5μ2ποὀ5ν2τάὀ5ν2τάὀ5ν2τὰὀ5ν2τᾶ6μ2πλ_6μ2πν_6μ2Ï€Ï_", + 7 : "á¼°5γ2κου_ξε5γ2κ_ξέ5γ2κ_ξέ5γ2κ_σι5γ2κ_ϲι5γ2κἀ5μ2πάκἀ5μ2πάκἀ5μ2πανἀ5μ2πάÏá¼€5μ2πάÏá¼€5μ2πᾶÏá¼€5μ2παÏá¼€Ïα5μ2πἰ5μ2Ï€Ïα_κε5μ2Ï€_λό5μ2Ï€_λό5μ2Ï€5μ2πέη_5μ2πέη_5μ2πεη_5μ2πογι_ξε5μ2Ï€_ξέ5μ2Ï€_ξέ5μ2Ï€_Ïε5μ2Ï€_Ïέ5μ2Ï€_Ïá½³5μ2Ï€_Ïο5μ2Ï€ÏÏŒ5μ2παÏá½¹5μ2παÏÏŒ5μ2πεÏá½¹5μ2πεÏÏŒ5μ2πωÏá½¹5μ2πωÏο5μ2πῶÏο5μ2παÏο5μ2πεÏο5μ2πωσό5μ2πασό5μ2παϲό5μ2παϲό5μ2πασό5μ2πεσό5μ2πεϲό5μ2πεϲό5μ2πεσο5μ2πῶϲο5μ2πῶσό5μ2πωσό5μ2πωϲό5μ2πωϲό5μ2πωσο5μ2παϲο5μ2πασο5μ2πεϲο5μ2πεσο5μ2πωϲο5μ2πω_τα5μ2Ï€_χα5μ2Ï€_χό5μ2Ï€_χό5μ2Ï€_ξε5ν2Ï„_ξέ5ν2Ï„_ξέ5ν2Ï„6γ2κ1τζ6γ2κ1τσ6γ2κ1τϲ6μ2Ï€1τζ6μ2Ï€1τσ6μ2Ï€1τϲ6τσ5γ2κ6τϲ5γ2κ6τσ5μ2Ï€6τϲ5μ2Ï€6τσ5ν2Ï„6τϲ5ν2Ï„", + 8 : "á¼Î¼Î¹5γ2κÏ_μπα5γ2κ_μπι5γ2κ_σπά5γ2κ_σπά5γ2κ_ϲπά5γ2κ_ϲπά5γ2κ_σπα5γ2κ_ϲπα5γ2κ_φιό5γ2κ_φιό5γ2κ_φιο5γ2κἀ6μ3πάÏιἀ6μ3πάÏιἀ6μ3παÏι_γά5μ2πι_γά5μ2πι_γα5μ2πι_ζεϊ5μ2Ï€_κό5μ2Ï€Ï_κό5μ2Ï€Ï_κο5μ2Ï€Ï_λι5μ2Ï€Ï5μ2πέης_5μ2πέης_5μ2πέηϲ_5μ2πέηϲ_5μ2πεης_5μ2πεηϲ_5μ2πέησ_5μ2πέησ_5μ2πεησ__μπι5μ2Ï€_Ï„Ïο6μ3Ï€_Ï„ÏÏŒ6μ3Ï€_Ï„Ïá½¹6μ3Ï€_Ïου5μ2Ï€_σέ5μ2Ï€Ï_σέ5μ2Ï€Ï_ϲέ5μ2Ï€Ï_ϲέ5μ2Ï€Ï_σνο5μ2Ï€_ϲνο5μ2Ï€_σοÏ5μ2Ï€_σού5μ2Ï€_ϲοÏ5μ2Ï€_ϲού5μ2Ï€_σου5μ2Ï€_ϲου5μ2Ï€_τζά5μ2Ï€_τζά5μ2Ï€_τζα5μ2Ï€_τζι5μ2Ï€_τό5μ2Ï€Ï_τό5μ2Ï€Ï_το5μ2Ï€Ï_φÏα5μ2πἀ5ν2τάτζἀ5ν2τάτζ_βί5ν2τε_βί5ν2τε_βι5ν2τε_κα5ν2Ï„Ï_μαϊ5ν2Ï„_μπε5ν2Ï„_μπι5ν2Ï„_ντα5ν2Ï„5ν2τίβαν5ν2τίβαν_Ïε5ν2τί_Ïε5ν2τί_Ïε5ν2τι_Ïοῦ5ν2Ï„_ÏοÏ5ν2Ï„_Ïού5ν2Ï„_χα5ν2το_χα5ν2Ï„Ï_χά5ν2Ï„Ï_χά5ν2Ï„Ï6γ2κ5μ2Ï€6γ2κ5ν2Ï„6μ2Ï€5ν2Ï„6ν2Ï„5μ2Ï€", + 9 : "5γ2κÏαντ_ἴντÏι5γ2κἰντÏι5γ2κ_μα5γ2κιό_μα5γ2κιό_ντά5γ2κλ_ντά5γ2κλ_ντα5γ2κλἀλα5μ2πουἀÏλοÏ5μ2πἀÏλού5μ2πἀÏλοῦ5μ2πἀÏλου5μ2Ï€_βό5μ2πιÏ_βό5μ2πιÏ_βο5μ2πιÏ_κα5μ2πάδ_κα5μ2πάδ_κα5μ2πίν_κα5μ2πίν_κα5μ2πῖν_κα5μ2πιν_κά5μ2ποτ_κά5μ2ποτ_κα5μ2πότ_κα5μ2πότ_κα5μ2ποτ_καου5μ2Ï€_καÏα5μ2Ï€5μ2πα5μ2Ï€5μ2πά5μ2Ï€5μ2πά5μ2Ï€5μ2πέ5μ2Ï€5μ2πέ5μ2Ï€5μ2πε5μ2Ï€_νό5μ2πελ_νό5μ2πελ_νο5μ2πελ_ντό5μ2Ï€Ï_ντό5μ2Ï€Ï_ντο5μ2Ï€Ï_σα2μ5ποτ_ϲα2μ5ποτ_τε5μ2πεσ_τε5μ2πεϲ_τζου5μ2Ï€_τσά5μ2πα_τσά5μ2πα_τϲά5μ2πα_τϲά5μ2πα_τσα5μ2πα_τϲα5μ2παἀτÏα5ν2τέἀτÏα5ν2τέἀτÏα5ν2τὲ_γιβε5ν2Ï„_γκάι5ν2Ï„_γκάι5ν2Ï„_γκάϊ5ν2Ï„_γκάϊ5ν2Ï„_γκαϊ5ν2Ï„_κα5ν2ταÎ_κα5ν2ταΐ_κα5ν2ταϊ_μα5ν2τάμ_μα5ν2τάμ_μα5ν2τὰμ_μα5ν2ταμ_μα5ν2τέμ_μα5ν2τέμ_μα5ν2τεμ_μεϊ5ν2τά_μεϊ5ν2τά_μεϊ5ν2τα_μο5ν2τέλ_μο5ν2τέλ_μο5ν2τελμο5ν2τέÏνμο5ν2τέÏνμο5ν2τεÏν_νισα5ν2Ï„_νιϲα5ν2Ï„_Ïεζε5ν2Ï„_σε5ν2τέφ_σε5ν2τέφ_ϲε5ν2τέφ_ϲε5ν2τέφ_σε5ν2τεφ_ϲε5ν2τεφ_σε5ν2τοῦ_ϲε5ν2τοῦ_σε5ν2τοÏ_σε5ν2τού_ϲε5ν2τοÏ_ϲε5ν2τού_σε5ν2του_ϲε5ν2του_τσα5ν2τί_τσα5ν2τί_τϲα5ν2τί_τϲα5ν2τί_τσα5ν2τι_τϲα5ν2τι", + 10 : "_γιου5γ2κο_καÏα5γ2κι_χοÏλι5γ2κ_χούλι5γ2κ_χουλι5γ2κ_γιαÏα5μ2Ï€_καλα5μ2πα_καλί5μ2Ï€Ï_καλί5μ2Ï€Ï_καλι5μ2Ï€Ï_κα5μ2παÏέ_κα5μ2παÏá½³_κα5μ2παÏá½²_κα5μ2παÏε_καÏνα5μ2Ï€_κολι5μ2Ï€Ï_κου5μ2ποÏ_κου5μ2πού_κου5μ2ποῦ_κου5μ2που5μ2πέηδες_5μ2πέηδες_5μ2πέηδεϲ_5μ2πέηδεϲ_5μ2πέηδεσ_5μ2πέηδεσ_5μ2πέηδων_5μ2πέηδων__μπό5μ2πιÏ_μπό5μ2πιÏ_μπο5μ2πιÏ_μπο5μ2πότ_μπο5μ2πότ_μπο5μ2ποτ_σκα5μ2παβ_ϲκα5μ2παβ_ταβλα5μ2Ï€_τζανα5μ2Ï€_Ï„Ïα5μ2πάλ_Ï„Ïα5μ2πάλ_Ï„Ïα5μ2παλ_φά5μ2Ï€Ïικ_φά5μ2Ï€Ïικ_φα5μ2Ï€Ïικ_μπαλά5ν2Ï„_μπαλά5ν2Ï„_μπαλα5ν2Ï„_μπα5ν2ταν_μπου5ν2τα_μπου5ν2Ï„Ï", + 11 : "_καÏα6μ3πόλ_καÏα6μ3πόλ_καÏα6μ3πολ_κολοÏ5μ2Ï€Ï_κολού5μ2Ï€Ï_κολοῦ5μ2Ï€Ï_κολου5μ2Ï€Ï_κο6μ3Ï€Ïέσσ_κο6μ3Ï€Ïέσσ_κο6μ3Ï€Ïέϲϲ_κο6μ3Ï€Ïέϲϲ_κο6μ3Ï€Ïεσσ_κο6μ3Ï€Ïεϲϲ_κοντÏα5μ2Ï€_κωλοÏ5μ2Ï€Ï_κωλού5μ2Ï€Ï_κωλοῦ5μ2Ï€Ï_κωλου5μ2Ï€Ï_μανιτό5μ2Ï€_μανιτό5μ2Ï€_μπα6μ3πάκι_μπα6μ3πάκι_μπα6μ3πακι_ÏεποÏ5μ2πλ_Ïεπού5μ2πλ_Ïεπου5μ2πλ_τα6μ3πεÏαμ_τα6μ3ποῦÏλ_τα6μ3ποÏÏλ_τα6μ3πούÏλ_Ï„Ïα5μ2ποῦκ_Ï„Ïα5μ2ποÏκ_Ï„Ïα5μ2πούκ_Ï„Ïα5μ2πουκ_τσι5μ2ποÏκ_τσι5μ2πούκ_τϲι5μ2ποÏκ_τϲι5μ2πούκ_τσι5μ2πουκ_τϲι5μ2πουκ_τσι5μ2ποÏσ_τσι5μ2πούσ_τϲι5μ2ποÏϲ_τϲι5μ2πούϲ_τσι5μ2πουσ_τϲι5μ2πουϲ_γιαχου5ν2Ï„", + 12 : "_σαλτιπά5γ2κ_σαλτιπά5γ2κ_ϲαλτιπά5γ2κ_ϲαλτιπά5γ2κ_κουλοÏ5μ2Ï€Ï_κουλού5μ2Ï€Ï_κουλοῦ5μ2Ï€Ï_κουλου5μ2Ï€Ï_μπου5μ2ποÏν_μπου5μ2πούν_μπου5μ2ποῦν_μπου5μ2πουν_χοντÏο5μ2πα_λικβι5ν2ταÏ_ντεÏμπε5ν2Ï„_ντου5ν2τοÏκ_ντου5ν2τούκ_ντου5ν2τοῦκ_ντου5ν2τουκ_φαστφου5ν2Ï„_φαϲτφου5ν2Ï„", + 13 : "_μπασκε2Ï„5μ2Ï€_μπαϲκε2Ï„5μ2Ï€_μπασι5μ2πουζ_μπαϲι5μ2πουζ" + } +}; diff --git a/resources/viewer/hyphenate/patterns/en-gb.js b/resources/viewer/hyphenate/patterns/en-gb.js new file mode 100644 index 0000000000..6cc34e95a2 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/en-gb.js @@ -0,0 +1,18 @@ +// The en-GB hyphenation patterns are retrieved from +// http://tug_org/svn/texhyphen/trunk/collaboration/repository/hyphenator/ +Hyphenator.languages['en-gb'] = { + leftmin : 2, + rightmin : 3, + shortestPattern : 2, + longestPattern : 8, + specialChars : "", + patterns : { + 3 : "sw2s2ym1p2chck1cl2cn2st24sss1rzz21moc1qcr2m5q2ct2byb1vcz2z5sd3bs1jbr4m3rs2hd2gbo2t3gd1jb1j1dosc2d1pdr2dt4m1v1dum3w2myd1vea2r2zr1we1bb2e2edn1az1irt2e1fe1j4aya4xr1q2av2tlzd4r2kr1jer1m1frh2r1fr2er1bqu44qft3ptr22ffy3wyv4y3ufl21fo1po2pn2ft3fut1wg1ba2ra4q2gh4ucm2ep5gp1fm5d2ap2aom1cg3p2gyuf2ha2h1bh1ch1d4nda2nhe22oz2oyo4xh1fh5h4hl2ot2hrun1h1wh2y2yp2aki2d2upie22ah2oo2igu4r2ii2omo1j2oiyn1lz42ip2iq2ir1aba4a2ocn3fuu4uv22ix1iz1jay1iy1h2lylx4l3wn5w2ji4jr4ng4jsy1gk1ck1fkk4y5fk1mkn21vok1pvr44vsk1t4vyk5vk1wl2aw5cn2ul3bw5fwh2wi2w1m1wowt4wy2wz4x1an1in1rn1ql3hxe4x1hx1ill24lsn3mlm2n1jx1ox3plr4x5wxx4", + 4 : "d3gr_fi2xy3ty1a2x5usy5acx1urxu4on2ielph2xti4ni2gx4thn2ilx1t2x1s25niql3rix4osxo4n1logn2ivx5om1locl3ro2lo_l3nel1n4_hi2l5rul1mexi4pl1max3io_ex1l1lu_ig3ll5tll3sll3p_in14n2kl1loll3mn3le_ew4n1n4nne4l1lixi4cll3fn3nil1lal5skls4p_eu14no_l4ivx3erx3enl1itx1eml1isx5eg3lirli1qxe2d3lik5lihx1ec1lig4y1bn1oun4ow4li_x3c4yb2il1g2l2fox2as1leyn3p42lev1letx2ag4ni_l1te_es1nhy2yc1l4n1sw3tow5tenho4ns2cwra42lerle5qn2si3womwol4l1try1d4lek42ledwl1in3suw3la4le_l3don1teldi2nth2lce4yda4l1c2l1tu4lu_l4by_od4lbe4lu1a4laz_oi4l4awnt2iwes4l4aul4asn2tjla4p_or1n1tr5wein1tun2tyn1h2w4ednu1awe4b5nuc_os13nudl4all4af_ov4w3drl4aey3eenu3iw1b45nukl4ac5laa4la_4lue3kyllu1in1gu4wabn1go_ph2v5vikur5_en12vv2ks4ty3enk3slv5rov5ri4k1sk3rung1n2vowy1erkol4ko5a4vonk2novo2l2vo_5lupn2gingh4k3lok3lik3lak2l2ng2aki4wvi2tkis4k1inki2l5kihk3holu1vke4g3kee4kedkdo4_sa2k5d2_eg4k1b4kav4kap4vim4ka3ovi4lk4ann3v2nve2vic2ka4lju1v4vi_ju5ljui4_sh2ygi2nfo4_st44jo_3jo2jil43jigl4vi2vel3veive3gjew3jeu42ve_4jesjeo2y3gljal43jac2ja__th44ly_2izz_ti22izo_do2i5yeix3oy3in2i1wn2x4i2vov4ad2ny25nyc5vacn1z24va_nzy4uy4aux2o2oa2o3ag2ivauve2u4vayle2i3um2ittly1c4obau3tu2itrob2i4obo_up12ithob5tuts2lym2ut2o_ve2oc2ait1a2isyo1clo1crut2ioct2is1pis1lo1cy4usto2doo2du4isblyp2n4ew2ab_2abai4saoe3a2abbus1pir2sir4qoe4do5eeir1ioep5o5eqo3er2usco1etir1a3lyr3lywipy43oeuo3evi3poab1ro3ex4ofo2o1gur1uo2ga2abyac2a3lyzi5oxo3gii3oti1orioe4ur2so2gui1od2io22acio1h2ur1o2inuo3hao3heohy44ma_oi4cins24inqoig4ac1r2ino2inn4inl4inkur1ioi4our2f4oisoi4t2iniynd4ok3lok5u2ind2inco1loyn2eo1mai2moom1iur2ca2doim1iil3v4iluon1co2nead1ril3f4onh2ik24iju4adyae5aija4i5in4aed2mahae5gihy4ae5pur1aae4s2i1h4igions2i1geyng42ont4af_4afe5maka4fui3fyu2pri3foon2zn1eru4po4agli2fe2i1foo1iu1ph4ieua2groo4moo2pyn4yi1er4iemie5ia1heah4n4iec2ai24ai_ai3aa1icne2p4idraig2oo2tu1peo1paop1iy1o2u1ouu3os4oplid1ayo3d2icuop1uor1a2ick4ich2a1ja4ju2mam4iceak5u4ibuunu44iboib1i2oreiav4i3aui3atun5ror1iun5o2alei5aii3ah2unniaf4i5ae2ormhy4thyr4hy3ohyn4hy2m2orthy2l1man2nedhuz4un2ihu4gh1th4alko1sch4skhsi42mapu1mu2h1shry4hri4hre41mar4h1pum2ph2ou4osp4osuy2ph4oth4ho_u1mi2h1mh1leh3la2ne_h4irhi2pu1mao4u2oub2h1in2a2mhi4l4oueu1lu2ulsoug4h1ic2hi_u1loul3mnde24ulln2daheu2ul2iou3mam1ihet12ounhep1ow1iows4ow5yyp1nox3ih4eiox5oypo1oy5aoys4u1la4ul_am2pu2izmav4h2ea4he_y2prhdu42m1ban2ao1zo_ch4mb4dy5pu4pa_ha4m1paru2ic5pau2ui2h4ac4ha_u4gon1cug5z2uft43gynu4fou3fl3ufa5gymmb2iue4tgy2b4anhnc1t2g1w5paw3gun2p1bu4edueb4p1c42guep5d2an1og5to2pe_gs4tgs4c2g1san2s2ped3grug4rou2dog4reud4g1gr2n1crgov12gou3gosud4e3goop4ee3goe5god3goc5goa2go_pe2fg2nog1niuc3lg1na2gn2an2y2pes3gluyr4r3pet5aowyr4s4ap_4apa3glo4pexyr5uu4ch2gl24y2s5gip2me_3gioap1i2ph_gi4g3gib4gi_uba41g2igh2tg3hoa2prphe44aps2medg2gegg4ame2g2g1gy3shu1alua5hu2ag2g1f3get2ua2ph2lge4o1pho2tz23gen4phs1gel1typ4gef2ge_g5d4me2m1phug1at4pi_p2iety4a4ty_p2ilt3wopim23gait2wi3gagn3b44ga_5piqar3har1i1tutfu4c4fu_1menp2l23tunna2vfs4p2f3s1pla1fr2tu1ifo3v4tufp4ly2p1myso53foo2arrme4par2stu1afo2n4tu_4po_t2tytt5s3pod2aru4poffo2e3foc4fo_ar5zas1ays1t3flu2asc3flo3flan2asas2et3ti2fin5poypph44f5hf3fr1pr2f1fif1fena5o3feufe4t4pry2ps22asotta4p3sh5fei3fecass2p1sits2its4ht2sc2fe_4t1s2f5d4f5b5faw5farp1st2pt2as1u2fa_1f2aeyl44ey_1expe1wre3whe1waevu4p4trp1tupub1puc4p4uneus44eumeuk5eue4p4uset5zyzy4z1a14p1wet2t2p4y4tovpy3e3pyg3pylpy5t2za__av44ra_r2adras2et2ae1su1namr2bat1orr2berb2ir1c2r2clrct4nak24re_rea4e2sc4es_2erza2to5tok2erurei4erk44erj1tog3toere1qre1vza2irf4lr1g2r2gez4as4ri_2ereto1b2erd2to_2erc4m3hri3ori5reph14mi_2au24au_m1ic4auc4t3me1paeo3mt1lieo2leof2eo3b4enur1lar1leaun2r1loen2sen1ot1laen3kzeb4r1mur2n24ene2end3tiurn5nrnt4ze4d4ro_r2od4roiroo4r2opelv4e1lur4owti4q1tip4roxrpe2r2ph1tior3puaw1i5nahaw5y4mijr3ri_as12eleay3mayn4ays2r5rurry5ek4l2az2m2ilaze4e2ize2iv4eis2ba_t1ineig24eifeid45bahba4ir2seehy21timeh5se5hoe1h2e2gr2efuef4lna2ceep1ee2mee1iee5gee2fr3su2na_rt3ced4g1basede23mytr1turu3ar2udr4ufe1clru2le1ceru2pb1c2ec2a2b1deb2te2bre4bl3myi4be_3beaeb2iebe4eb2b2bedzib5r1v2r2veeau3t1icmy3e5bee3bef2r2yry2tz2ie1bel2sa_2sabeap25saebe3meak1ea4gsa4g3sai4ti_5sak4beobe3q4eabmy4dd3zo3dyndyl25dyksa2l2d2y2d1wsa4mbe3w2b1fbfa44b1hb4ha2bi_1biazi5mdu3udu2ps3apb4ie3ducbif42ths2du_z4isb1ilmi3od4swds3m4bimd5sl1saumi3pz3li3dox4s3bd4osd2or3doosby3bip4bi5qbir44zo_s1cab2iss1cedo4jd4ob4do_5zoa2d1mmtu4d5lu2bl2d1losch2d1la2dl4tha42th_m5si4m1ss2co2t3f1diu2se_se2a4bly2b1m3texbmi44b1nm4ry4bo_3boa2sed5bobdil4bo5h3sei1didse2p1dia4di_d4hu3bon4d1hxys4dg4ami2t2d5f1boo3dexs2es1set3sev3sex3sey2s1fsfi4_an1d3eqde1ps4idsif4bow2si4g2sin5boyzo5p3sipde3gs1it3dec2de_d3di2tep3miute2od1d4d3c4zot23davs2k24sk_d1atske2d3ap4sksd1agb3sc2sl44da_5zumb5sicy4tbso2te2ltei4cys4cy4m2b1tcyl34bu_5bubte2g1cyc2cy_bun2cu5v5cuu1cuss2le1curt4edc4ufc1tyc1tu4te_c1trs1n2s2na2so_t1ca5mix4b3w4zy_4by_3byibys45byt2ca_2tc23soes2olc1te5cafsos45cai5cakc1al3sou4t3bt4axc2ta4m1lcry2sph2s1plc2res2pos4pym3pum3pocoz4cov14mo_sre22moc5cao1caps1sa3cooss3mcon11cars4sns1sos1su1takss3wmod13coe4st_1tai3tah3coc3coa4co_taf4c3nim2pist3cc1atste2mo1mc4kem4ons1th2cim3cau2tab2ta_3cayc1c44stl3cilc3ch3syn4cigci3f4ce_4ci_3chrs1tu1cho2ced4chm1sylch5k4stw4cefce5gs4tysy4d4su_sug3sy1c3sui4ch_m3pa2cem4sy_cew4ce2t1cepsu5zm4op2swo2s3vzzo3", + 5 : "n5tau2cenn3centsves45swee5cencsu5sus4urg1cen2sur3csu5pe3cerasun4a3cerdsum3i5cern5cesss4u2m1s2ulce4mo3cemi4celysy4bi4chab3chae3chaisui5ccelo45cellchec44ched3chee3chemsuf3fch1ersu3etsud4asuct44chessubt2ch5eusu4b13chewch5ex5chi_3chiasu5ansy4ce1styl3ceiv3chio5chip3cedi3cedestu4m5cedace4cicho3a5choc4chois4tud3chor3ceas2st3sstre43chots2tou3stonchow5cean3chur43chut5chyd3chyl3chym1c2i24ceab4ciaccia4mci3ca4cids4cie_ci3ers4toeci5etccle3cifi4ccip4ci3gast3lisyn5esyr5icat4ucim3aci3mes5tizs4thu4cinds4thac4atss4tec4cintci3olci5omci4pocisi4cit3rt2abockar5cka5tt5adeck5ifck4scc2atcs4teb3clasc2le22cle_c5lecc4at_clev3cli1mtad4icli2qclo4q4stakclue4clyp55clystad2rtae5n1c2o2case5car4vco5ba3tagrco3cico5custab23tail4cody2tairco5etco3grcar5mt4ais4col_col3atal2css5poco5lyta3lyco4met4anecomp4cap3uta4pass5liss1ins1sifs1siccon3scon3ts3siacapt4coop4co3orcop4eco3phco5plco3pocop4t2corassev3s5seus1sel1tard3corn4corotar3n5cort3cos_sre4ssreg5co5ta3tarr5cotytas3it3asmco3vacow5a5tassco5zic4anotas4t5craftat4rc4ran5spomcam4is4plysple2ca3maca3lys2pins2pids3phacal4m4speocri3lcron4so3vi4crousov5et5awacrym3cryo34c5s4csim5tawn43calcc3tacc4alaso5thct1an4soseca3gos3orycad4rc4teasor3os2o2ps4onect5esct5etct2ics2onaso3mo1so2mc3timsol3acaco3c4acesody4sod3oc5tio2s3odc3tittcas4tch5u4t1d4smo4dsmi3gc1tomc3tons3mensmas4b3utec2tres3man3bustc2tumte3cr2s1m4buss2s5lucslov5c2ulislo3cs3lits5leycu4mi5cunacun4e5cuni5cuolcu5pacu3pic3upl4tedds3lets5leabur3ebunt4cus5a3slauc3utr4tedobun4a4teeicy4bib4ulit3egoteg1rcy5noteg3us1latbsin41tellbsen4d4abr1d2acdach43tels3dact4b1s2sky3ld4aled4alg4bry_dam5a3damed3amida5mu3dangs5keybrum4d3ard5darms3ketbros4tem3as5kardat4ub4roa4teme4tenet5enm4tenob2ridteo5l4bre_5sivad3dlid3dyite3pe4s1ivde5awde4bisi4teb2ranbram44sismde1cr4dectded3i4sishs1is24bralde4gude3iosi4prtep5i4sio_1sio45sinkde5lo1d4emsin3is2ine4boxy1silibow3ssif5f4demybous4den4d4dened3enh4sidssi4de4sid_3bourde3oddeo3ldeon2si4cu5terd3sicc4s1ibde2pu5botishys44shu4d4eres3hon5shipsh3io1derider3k3dermsh5etsh1er4shab1teri2s1g4der3s5deru4des_de3sa5descbor4nter5k3terrdes4isexo23borides1psewo4de3sq2t2es5seum1de1t4tes_de5thde2tise5sh4ses_bor3d3septsep3atesi4t3esqdfol4tes4tteti4dgel4d4genbon4ebon4cdhot4bol4tbol3itet1rdi2ad3diarbol4e4d1ibd1ic_3sensdi4cedi3chd5iclsen5g1dictsem4osem2i5self4sele4boke5selasei3gd4ifo2boid3seedbod5i5dilldilo4di3luse4dabo5amdi1mi2d1indin4ese2cosec4a3di1odio4csea3wdip5t3diredi3riseas4di4s1d4iscs4eamb3lis3dissbli2q2s1d22s1cud3itos4coi2ditybli3oscof44blikscid5dix4i3bler4the_b3lan5dlefblag43dlewdlin45blac4b5k4bi5ve4d1n24bity4thea4thed4sceidog4abis4od4ol_s4ced5bismscav3sca2pd4ols5dom_1thei3theobi3ousbe4sdo5mos4bei4donybio5mbio3l4dor_dor4mdort41bi2ot4hersavi2dot1asaur52dousd4own4thi_th5lo2thm25binad3ral3dramdran4d4rassat1u3dreldres4sa2tedri4ed4rifs2a1td4romsas3s3sas_4d1s2th4mi3thotds4mi1th2rb2iledt5hobigu3bi5gadu1at5thurduch5sar5sdu4cosap3rbid5idu5en2santdu5indul3cd3uledul4lsan3adun4asamp43b2iddu3pl5durod5usesam5o5thymbi4b1dver2be3trsa3lube3sl3sale2bes_be1s2dy5ar5dy4e3thyrber5sdyll35dymi5berrdys3pberl4thys42beree1actbe5nuea5cue5addbe1neead1i1ti2ati3abben4deal3abel4tsad5osad5is3actean5i2t3ibsac4qe3appear3a5sacks3abl2belebe3labe3gube5grryp5arym4bry4goeas4t5rygmry5erbe3gobe4durvi4tr3veyr3vetr3vene4atube4doeav5ibed2it3ic_eaz5ibe3daebar43becube3caru3tirus4pe2beneb5et4bease5bile4bine4bisbdi4ve4bosrur4ibde4beb1rat2icie4bucru3putic1ut3id_run4trun4ge5camrun2eec3atr4umib3blir4umeech3ie4cibeci4ft4ida2b1b2ru3in3tidirue4lt5idsru4cerub3rr4ube1tif2ec1ror4tusti3fert5sirto5lr1t4oec1ulrt3li4tiffr2tize2dat3tigie4dede5dehrt3ivr2tinrth2ir5teue3deve5dew5barsr5tetr1ted4tigmr3tarrta4grt3abed1itedi2v5tigued3liedor4e4doxed1ror4suse2dulbar4nrs5liee4cers3ivee4doti4kabar4d5barbr4sitba4p1r3sioeem3ib4ansee4par4sileesi4ee3tot4illr5sieefal4rs3ibr3shir3sha5bangr3setb4anee4fugrsel4egel3egi5ae4gibe3glaeg3leeg4mir3secr3seat4ilte5gurban4abam4abal5utim1abal3abag4a5eidobaen43backr4sare4in_e3ince2inee1ingein5ir2sanei4p4eir3oazz4leis3ir2saleith4azyg4r4sagaz5eeaz3ar2r1s2ek3enek5isayth4e4lace5ladr3rymelam4r3ryi3tinnay5sirro4trrog5rrob3ay5larric4ax2idrrhe3rre2lele3orrap4el1ere1lesrra4h4r1r44tinst4intrpre4el5exrp5ise1lierph5ee3limav1isti3ocrp3atav3ige3livavas3r4oute3loae3locroul35rouero3tue2logro1te4rossr4osa4roreel3soror5dav5arelu4melus42t1ise5lyi3elytr4opr4rop_emar4tis4c5root1roomem5bie1me4e4meee4mele3mem3tissro1noro3murom4pe4miee2migro3lyro3laroid3e3mioro3ictis2te4miuro3gnro1fero3doava4ge2moge4moiro3cuem5om4emon5roccro5bre2morro4beav4abr5nute5mozrnuc4au3thr5nogr3noc3titlem3ume5muten3ace4nalrn3izrni5vr1nisrn3inr3nicrn5ibr5niaenct42t1ivr3neyr3netr3nelaus5pene5den3eern5are5nepe2nerr5nadr3nacrn3abt3iveen1et4aus_rmol4e3newen3gien3icr3mocrmil5en5inr5migaur4o5tleben3oieno2mrm4ieenov3aun3dr2micen3sprme2arm4asr2malr5madr3mac3tlefen2tor4litau3marlat33tlem5tlenen3uaen3ufen3uren5ut5enwa5tlewe4oche4odaaul4taul3ir3keyr3ketrk1ere5olutlin4eon4ae3onteop4te1or1r5kaseor3eeor5oeo1s2eo4toauc3oep4alaub5iepa4t4a2tyr2i4vr2ispris4cep5extmet2eph4ie2pige5pla2t3n2ri5orri4oprio4gatu4mrin4sr4inorin4e4rimse1p4u4rimmr4imbri2ma4rim_at1ulr4ileri2esera4gera4lri3erri5elrid4e2ricur4icl2riceri3boer3be2r2ib2a2tuer3cher3cltoas4ri5apri3am4toccat1ri4ered3r2hyrhos4tod4irgu5frg5lier3enr3gerr3geor5geee3reqer3erere4sa4trergal4r4gagat3rarfu4meret42a2tra5tozatos4ere4ver3exreur4er3glre3unre3tur3esq2res_er2ider3ierere4rer4aer3into5dore5phre1pe3reos3reogre3oce3river5iza3too4atoner3mer4enirene2rena4r3empr5em_re1le4ero_re1lam5ordreit3re3isre1inre3if2atolre2fe3reerree3mre1drre1de2r4ed4atogeru4beru5dre3cure3ce3reavr5eautol4ltolu5es5ames5an4atiure3agre3afr4ea_to5lye3seatom4be5seeat1itese4lr4dolrd3lie1shie5shurdi3ord2inr5digr4dier4desr2dares3imes3inr5dame4sitrc5titon4er5clor4clees4od3tonnrcis2rcil4eso3pe1sorr2cesrca4ston3ses4plr4bumr2bosrbit1r2binrbic4top4er4beses2sor3belrbe5ca4timrbar3e2stirb1anr4baga2tif4toreest4rrawn4tor5pra3sor4asktor4qr2aseras3cati2crare2eta3p4rarcran2tet4asra3mur5amnet5ayra3lyra3grra4de3tos_eter2r2acurac4aetex4e2th1r2abo2etia5rabera3bae5timet3inath5re3tir5quireti4u1quet2que_e2ton4quar5quaktos4ttot5uath3ipyr3etou4fet1ri5tourt3ousath3aet1ro4a2that5etetud4pu3tre4tumet4wetra5q3tray4ater4tre_4trede3urgeur5itren4pur3cpur5beut3ipu3pipun2tpun3i3puncev3atpun4aeve4n4trewpum4op4u4mpu5ere4vese1viapuch4e2vict2rieevid3ev5igpu5be2trilt2rit4trixe4viuevoc3p5tomp3tilata3st4rode4wage5wayew1erata3pew5ieew1inp5tiee3witatam4ex5icpt4ictro5ft2rotey4as2a2taey3s2p5tetp1tedez5ieas5uras4unfab4ip2tarfact2p4tan2f3agp4tad5falopt3abtro1v3psyc3troypso3mt4rucfar3itru3i2t4rytrys42asta3feast4silfeb5ras3ph2fed1as5orfe1lifem3i2t1t4p3sacf5enias4loas4la3feropro1l4pro_3ferrfer3v2fes_priv24priopren3aski43prempre1dfet4ot3tabpreb3as5iva3sit4pre_f5feta5siof5fiaf3ficf5fieffil3prar4ff4lepra5dffoc3prac1as3int5tanppi4ct5tast3tedfib5u4fic_ppet33fici4ficsppar34p1p2fiel4asep4p5oxi1fi2l4asedfin2apo1tefind3fin2ef1ing3p4os3portpor3pf3itapo4paas2crt3tlifle2s2ponyflin4t5toip4o2nasan2pom4eas4afa5ryta3ryot5torar3umt3tospo3caar2thar3soar2rhar4pupnos4tu5bufor5bar3oxtu5en5formplu2m2plesaro4ntu4is3plen3plegfrar44ple_fre4sar3odfruc42tum_3tumi4tumsf1tedtun4aft5es2p3k2p2itutu4netur4dtur4npis2sfug4ap4iscfun2gp4is_fur3npir4tfus5oar3guar5ghpi4pegadi4pip4at3wa4ar3en3gale3pi1op4innpin4e3galot3wit5pilo3piletwon4pig3n5tychpict4g5arcg4arepi4crpi3co4picagar5p5garr1ga4sgas5igas3o3piarar4bl3phyltyl5ig4at_2phy_phu5ity5mig4attgat5ugaud5ga5zaar3baara3va3rau5geal3gean2ge4d3gedi5gednar1at3type4gelege4li1tyr13phrage4lu2gelygem3i5gemoara3mph3ou3phorgen3oa3rajt5ziat5zie4gereph1is2ges_5gessphi4nua3ciget3aara2ga5quia5punua5lu1philg3ger4phic3phibg3gligglu3g5glyph3etg4grouan4og5haiuar3auar2dg4hosuar3iap5lia5pirph2angi4atu1b2igi5coap3in4phaeub5loub3ragi4orgi4otaph3igi5pag4i4s5gis_gi2t15gituu1c2aa5peug3laru5chrglec43glerap3alpe4wag4leypet3rpe2tia1pacaol3iglom34glopa5nyian5yap4ery3glyp2g1m4a5nuta3nurg4nabper3vp4eri4pere5percpe5ongn5eegn3eru4comg4niapen5upel5v4pelean3uluco5tgno4suc2trant4ruc3ubuc5ulu5cumgo4etgo4geu5dacg5oidgo3isgo2me5gonnpe2duud1algoph44gor_5gorg4gorsg4oryud5epgos4t1anth3pedsg1ousan2teu4derudev4grab43gram3pedigra2pudi3ogril43pedeu5doigro4gg5rongrop4ud5onan3scgru5ipe4coan5otan2osanor3g4stiu5doran2oeg4u2agu5ab5guan4annyg5uatan5no5gueu4aniuuen4ogu2magu4mi4anigpawk4uer3agur4ngur4u4gurypau3pani3fan3icues4san3euan4eagyn5ouga4cug2niug3uluhem3ui3alp5atohae3opas1t1p4ashag5uha5ichais4par3luid5ouil4apa3pypap3uhan2gpa3pepa4pahan4tpan3iha4pehap3lhar1ahar5bhar4dpan1ep4alspa3lohar3opain2paes4pad4rhat5ouil4to3zygozo5ihav5oana5kuin4san3aeuint4amyl5am3ului5pruis4t1head3hearui3vou4laba3mon4ulacu5lathe3doheek4ul4bohe3isul3caul4ch4uleaow5slow5shu5leehem1aow5in3amidow5hahem4pow1elhe3orulet4h1er_owd3lher2bowd4io5wayow3anow3ago1vish5erho5varouv5ah1erlouss42ouseh1ersoun2dul4evami2cul2fahet3ioul4tul4iaheum3ou5gihe4v4hev5ihex5oa3men3ambuu5lomhi4aram1atou5gaul4poh4iclh5ie_h1ierou3eth1iesama4gh3ifyhig4ohi5kaa5madoud5iou5coou5caa5lynhin4dou5brul1v45ou3aalv5uh2ins4o1trh4ioral1vahip3lum3amhir4ro4touhit4ahiv5aumar4u5masalu3bh3leth1l2ihli4aum2bio1t2oot4iv2h1n2o5tiaal3phho3anho4cou4micho5duho5epo4tedhold1o3taxo3tapot3ama5lowh2o4nos1uru4mos4ostaos4saos1pihon1o1hoodhoo5rh4opea4louo5sono5skeh4orno4sisos1inos5ifhosi4o3siaalos4os5eual1ora3looo2seta3lomoser4hr5erhres4um4paos5eohrim4h5rith3rodose5ga5loeo3secumpt4un5abun4aeht5aght5eeo4scio2schos4ceos4caht5eoht5esun2ce4aliuosar5un3doos3alosa5iory5phun4chunk4hun4thur3ior4unu1nicun4ie4or1uun3inal1in5aligal3ifal1iduni5por4schy1pehy3phuni1vor1ouun3iz2i1a2ia4blo5rooorm1ii2achiac3oa2letork5a5origa1leoun3kni2ag4ia3gnor3ifia3graleg4a3lec4ori_al3chor5gn4ialnor4fria5lyi5ambia3me5orexi3anti5apeia3phi2ardore4va5lavor3eiore3giat4uore3fal3atun3s4un5shun2tiibio4or4duib5lia1laei4bonibor4or4chi5bouib1riun3usoram4ic3acor5ali4calic1an2icariccu4akel4i5ceoa5ismich4io5raiora4g4icini5cioais1iic4lo2i2coico3cair3sair5pi5copop2ta2i1cri4crii4crui4cry1op1top5soopre4air5aop2plic3umopon4i5cut2i1cyuo3deain5oi5dayide4mo4poiain3iu1pato1phyid3ifi5digi5dili3dimo4pheo1phaidir4op1ero5peco4pabidi4vid3liid3olail3oai5guid3owu5peeid5riid3ulaid4aa5hoo2ieg2ie3gauper3i5ellahar22i1enien2da1h2aoo4sei2erio3opt4iernier2oi4erti3escagru5oon3iag3ri2i1eti4et_oo4leag5otook3iiev3au5pidiev3o4ag1nagli4if4fau5pola5giao5nuson5urifi4difi4n4i2fla5gheifoc5ont4rupre4af5tai3gadaev3a3igaraeth4i3geraet4aono3saes3ton5oionk4si3gonig1orig3oto1nioo5nigon3ifig1urae5siae3on4ura_aeco34uraead3umura2gik5anike4bi2l3aila4gon4id4a2duil4axil5dril4dui3lenon4guuras5on1eto3neoon1ee4oned4oneaad1owon5dyon3dril1ina3dos4onauon3aiil5iqona4do2mouil4moi5lonil3ouilth4il2trad3olil5uli5lumo4moi4adoi4ilymima4cim2agomni3im1alim5amom2naomme4om2itomil44adoeomi2co3mia3adjuome4gurc3ai5mogi3monim5ooome4dom4beo3mato2malo2macim5primpu4im1ulim5umin3abo4mabur4duadi4p4olytina4lol1ouin5amin3anin3apo3losol1or4olocur3eain3auin4aw4adilol3mia5difolle2ol2itolis4o5lifoli2eo1lia4inea4inedin5eeo3leuol1erine4so3lepo3leo4ineuinev5ol5chol4an4infu4ingaola4c4ingeur5ee4ingiad4haur1er4ingo4inguoith44adeeada3v4inico3isma5daiur3faac2too3inguril4ur1m4ac3ry4ino_in3oioil5i4inos4acou4oideo2i4d4acosurn5soi5chinse2o3ic_aco3din3si5insk4aco_ac3lio3ho4ack5aohab34acitacif4in5ulin5umin3unin3ura4cicuro4do5gyrur5oturph4iod5our3shio3gr4i1olio3maog4shio3moi5opeio3phi5opoiop4sa5cato4gro4ioreo2grio4got4iorlior4nio3sci3osei3osii4osoog2naur5taiot4aio5tho4gioio5tri4otyur1teo5geyac3alurth2ip3alipap4ogen1o3gasip1ato3gamurti4ur4vaofun4iphi4i4phuip3idi5pilip3ino4fulipir4ip5isab1uloflu42abs_ip3lou3sadi4pogus3agi4pomipon3i4powip2plab3omip4reoet4rip1uli5putus3alabli4i3quaab3laus4apoet3iira4co4et_ir4agus3atoes3t4abio2abiniray4ird3iire3air3ecir5eeirel4a3bieires4oelo4ab1icoe5icir4ima3bet5irizush5aoe5cuir5olir3omusil52abe4ir5taoe4biabay4us4pais5ado5dytis1alis3amis1anis3aris5av_za5ri2s3cod3ul_xy3lod5ruo3drouss4eod3liis2er5odizod5it4iseuod4ilodes4o5degode4co5cyt2isiais5icis3ie4isim_vo1c4isisis4keus1troc5uo2ismais1onocum4iso5pu5teooc1to5ispr2is1soc2te_vi2socre3u3tieiss4o4istao2cleu3tioo5chuoch4e4istho4cea4istloc5ago3cadis1tro4cab4istyi5sulis3urut3leutli4it5abita4c4itaiit3am_vec5it4asit3at_ur4oit3eeo3busob3ul_ura4_up3lo3braith5io5botith3rithy52itiao5bolob3ocit1ieit3ig4itim_un5uob1lio3blaob3iti5tiqut5smit3ivit4liit5lo4ito_it5ol2itonit1ou_un5sobe4lu4tul_un3goat5aoap5ioan4t4itueit1ulit1urit3us2i1u2_un3eiur5euven3oal4iiv1ati4vedu5vinoad5io3acto5ace_ul4luy5er2v3abives4iv3eti4vieiv3ifnyth4va1cavacu1iv1itva4geivoc3vag5rv1al_1vale_tor1vali25valu4izahiz3i2_til4iz5oivam4i_tho4va5mo5vannnwom4jac3ujag5u_te4mja5lonwin44vasev4at_jeop34vatuvect4_ta4m4velev1ellve1nejill55jis_4venu5ve3ojoc5ojoc5ujol4e_sis35verbju1di4ves__ses1ju3ninvi4tjut3a_se1qk4abinvel3kach4k3a4gkais5vi1b4vi4ca5vicuvign3vil3i5vimekar4i1kas_kaur42v1invin2evint4kcom43vi1oviol3kdol5vi5omke5dak5ede_rit2_rin4ken4dkeno4kep5tker5ak4erenu1trker4jker5okes4iket5anu4to5vi3pkfur4_re3w_re5uvire4kilo3vir3uk2in_3kind3nunc5numik3ingkin4ik2inskir3mkir4rv3ism3kis_k1ishkit5cvit2avit1rk5kervi3tu_re5ok5leak3lerk3let_re1mv3ity_re1ivi5zovolv41know3vorc4voreko5miko5pe3vorok5ro4_po2pv5ra4vrot4ks2miv3ure_pi2ev5verwag3owais4w3al_w3alswar4fwass4nu1men3ult5labrwas4tla2can4ulowa1tela4chla2conu4isw4bonla3cula4del5admw5die_out1nug4anu3enlag3r5lah4nud5i_oth54lale_osi4_or2o_or4ilam1ol5amu_ore4lan2d_or3dn5turntub5n3tua3weedweir4n5topwel3ilapi4n3tomn1t2o_op2i_on4ent3izla4tenti3pn3tign1tient4ibwent45laur_ome2_ol4d_of5twest3_oed5l4bit_ob3lw5hidl2catwid4elcen4n1thelch4el3darl3dedl3dehwi5ern4teol5dew_no4cl3dien3teln4tecwim2pld5li_ni4cwin2ecen3int1atnt1aln3swale3cawl1ernsta4_na5kle5drleg1an3s2t3leggn5sonleg3ons3ivwl4iensi2tlel5olelu5n3sion3sien3sid5lemml3emnle2mon4sicns3ibwon2tn3sh2n5seule1nen2seslen3on5seclen5ule3onleo4swoun4wp5inn4scun2sco_mis1_mi4enre3mnre4ix4ach4les_x4adenpri4x3aggnpos4npla4npil4leur5x3amil3eva5levexan5dle4wil5exaxano4lf5id_lyo3lf3on_lub3l4gall4gemlgi4al4gidl4goixas5pxcav3now3llias4lib1rl1ic_5lich_lo2pnove2nou5v2nousli4cul3ida3nounn4oug3lieul4ifel4ifoxcor5_li4p3notenot1a_li3oxec3r1l4illil4ilim2bno3splim4pnos4on4os_lin4dl4inenor4tn4oronop5i5nood4noneno2mo1nomi3linqnol4i3liogli4ollio3mliot4li3ou5liphlipt5x5edlx5edn_le2pl4iskno3la_le4ml2it_n5ol_no4fa3lithnoe4c3litrlit4uxer4gn4odyno4dinob4ln5obilk5atxer3on5nyi_ki4ex3ia_nnov3x4iasl5lasl4lawl5lebl1lecl1legl3leil1lellle5ml1lenl3lepl3leul3lev_is4o_is4c_ir3rx5ige_in3tllic4nlet4_in3ol5lie4n1l2l2linnk5ilnk5ifn3keyl5liolli5v_in2ixim3ank5ar_in3dllo2ql4lovnjam2_im5b_il4i_ig1n_idi2llun4l5lyal3lycl3lygl3lyhl3lyil5lymx4ime_hov3_ho2ll4mer_hi3bl5mipni3vox4it__he4ilneo4x4its5loadniv4ax4ode_hab2ni4ten5iss2locynis4onis4l_gos3n4isk4loi_lo5milom4mn4is_lon4expel43nipuni1ou5nioln4inu5ninnnin4jn4imelop4en3im1l3opm1lo1qnil4ax4tednik5e3nignn3igml4os_lo1soloss4_ga4mnift4nif4flo5tu5louplp1atlp3erxtre4l5phe_fo3cl2phol3piel3pitxur4b1y2ar_eye3_ex3a3yardl5samls5an4nicllsi4mls4isyas4i_eur4l1s2tni3ba3niac_es3tl5tar_es3pl4teiyca5mlth3inhyd5y3choltin4lti3tycom4lt4ory2cosnhab3_er2al4tusyder4_epi1luch4_eos5n2gumlu4cu_ent2lu1enlu5er_en3slu4ityel5olu4mo5lumpn4gry_en5c5lune_emp4n5gic_em3by5ettlusk5luss4_el2in5geen4gae_ei5rlut5r_ei3dygi5a_ec3t_eco3l4vorygo4i_dys3_du4c_do4eyl3osly4calyc4lyl5ouy1me4news3_de4wly4pay3meny5metnet1ry5miaym5inymot4yn4cim4acanet3an1est1nessn1escmact44mad_4mada4madsma4ge5magn2nes_yn3erma5ho3ma4i4mai_maid3_der2ner2vner5oyni4c_de1mneon4m3algneo3ln3end4n1enne2moyoun4n4ely2neleyp5alneis4man3a5negune3goneg3a3nedi_dav5m4ansne2coyper3m3aphy4petne4cl5neckn3earyph4en3dyind2wemar3vn4dunndu4bn2doundor4n5docnd1lin3diem4at_n1dicnd4hin5deznde4snde4ln1dedn3deayph3in3damm4atsn3daly4p1iy4poxyp5riyp4siypt3am5becn4cuny3ragm4besyr3atm2bicnct2oyr3icm4bisy5rigncoc4n1c2lm3blimbru4mbu3lmbur4yr3is_can1ys5agys5atmea5gn4cifme4bame4biy3s2c4med_n4cicn3chun3chon3chan5ceyme4dom5edy_bre2n5cetn3cer4melen1c2anbit4nbet4mel4tnbe4n_bov4ys1icys3in3men_2menaysi4o3nautnaus3me1nenat4rnati45meogys4sonas3s4merenas5p2me2snas5iys4tomes5qyz5er1me2tnam4nmet1e3nameza4bina3lyn5algmet3o_aus5_au3b_at3t_at3rza4tena5ivmi3co5nailm4ictzen4an5agom4idina4ginag4ami5fimig5an2ae_mi2gr_as4qmi5kaz5engm3ilanadi4nach4zer5a3millmi5lomil4t3m2immim5iz3et4_ari4_ar4e_ar5d5zic4_ap4i5my3c_any5z3ing3zlemz3ler_an3smu4sem5uncm2is_m4iscmi4semuff4zo3anmsol43zoo2_and2zo3olzo3onzo5op4mity_am2i_al1k_air3_ag5nmlun42m1m2_ag4amp5trmp3tompov5mpo2tmmig3_af3tmmis3mmob3m5mocmmor3mp3is4m1n2mnif4m4ninmni5omnis4mno5l_af3f_ae5d_ad3o_ad3em3pirmp1inmo4gom5pigm5oirmok4imol3amp5idz3zarm4phlmo3lyz5zasm4phe_ach4mona4z3ziemon1gmo4no_ace45most_ab4imo3spmop4t3morpz5zot", + 6 : "reit4i_ab3olmo5rel3moriam5orizmor5onm3orab3morse_acet3_aer3i_al5immo3sta2m1ous_al3le4monedm4pancm4pantmpath3_am5ar_am3pemper3izo5oti_am3phmo4mis_ana3b_ana3s_an5damog5rimp3ily_an4el_an4enmmut3ammin3u_an4glmmet4e_ant3am3medizing5imman4d_ar5abm5itanm3ists_ar5apmsel5fm3ist_5missimis3hamuck4e4misemmul1t2_ar4cimu5niomun3ismus5comirab4mus5kemu3til_at5ar1m4intmin3olm4initmin5ie_bas4i_be3di5myst4_be3lo_be5sm5min4d_bi4er_bo3lo_ca3de_cam5inac4te_cam3oyr5olona4d4amil4adnad4opyr3i4t_car4imid5onn4agen_ca4timid4inmi4cus_cer4imi3cul3micromi4cinmet3ri4naledyp5syfn4aliameti4cmeth4i4metedmeta3tna5nas_cit4anan4ta_co5itnan4to_co3pa4n4ard_co3ru_co3simes5enmer4iam5erannas5tenat5alna5tatn4ateena3thenath4l5mentsn4ati_nat5icn4ato_na3tomna4tosy4peroy4periy5peremend5oyoung5naut3imen4agna5vel4m5emeyo4gisnbeau4_de3linbene4mel3on_de3nomel5een4cal_yn4golncel4i_de3ra_de3rimega5tncer4en4ces_yn5ast3medityn5ap4nch4ie4medieynand5ynago43mediaym4phame5and_de3vem5blern4cles_dia3s_di4atmb5ist_din4anc4tin_dio5cm5bil5m4beryncu4lo_east5_ed5emncus4tmbat4t_elu5sn3da4c3m4attn4dalema3topnd3ancmat5omma3tognde3ciyes5tey3est__em5innd3enc_em5pyn3derlm4atit_en5tay4drouma3term4atenndic5undid5aydro5snd5ilynd4inend3ise_epi3d_er4i4nd5itynd3ler_er4o2_eros43mas1ty4collnd5ourndrag5ndram4n5dronmassi4y4colima3sonyclam4mar5rima3roone3aloma5ronne2b3umar5ol5maran_erot3_er4rima5nilych5isne4du4manic4man3dr_eth3e3m4an__eval3ne5lianeli4g_far4imal4limal3le_fen4dm3alismal3efmal5ed5male24nered_fin3gxtra3vner4r5mal3apxtra5d2mago4ma4cisne3sia5machy_fu5ganes3trmac3adnet3icne4toglys5erxtern3neut5rnev5erlypt5olymph5n4eys_lyc5osl5vet4xter3ixpoun4nfran3lv5atelu5tocxpo5n2_ge3ron3gerin5gerolut5an3lur3olu3oringio4gn5glemn3glien5gliol3unta_go3nolu2m5uxo4matluc5ralu2c5o_hama5l3t4ivltim4alti4ciltern3lt5antl4tangltan3en4icabni4cen_hem5anict5a_hy3loni4diol3phinni4ersximet4lot5atnif5ti_ico3s_in3e2loros4lo5rof_is4li_iso5ml4ored_ka5ro_kin3e5nimetn4inesl3onizl3onisloni4e3lonia_lab4olo5neyl5onellon4allo5gan3lo3drl3odis_la4me_lan5ixen4opnitch4loc5ulni3thon4itosni5tra_lep5rni3trinit4urloc3al5lob3al2m3odnivoc4niz5enlm3ing_lig3anjur5illoc5ulloc3an5kerol3linel3linal5lin__loc3anland5lli5col4liclllib4e_loph3_mac5ulli4anlli5amxa5met_math5llact4nni3killa4balk3erslk3er_lkal5ono5billiv5id_ment4_mi3gr_mirk4liv3erl5ivat5litia5liternois5il3it5a5lisselint5inom3al3lingu5lingtling3i3nonicw5sterws5ingnora4tnor5dinor4ianor4isnor3ma_mi5to_mo3bil4inasl4ina_wotch4word5ili5ger_mon3a5lidifl4idarlict4o_mu3ninova4l5licionov3el_mu3sili4cienow5erli4ani_myth3_nari4le5trenpoin4npo5lale5tra3les4sle3scon4quefler3otleros4ler3om_nast4le5rigl4eric3w4isens3cotle5recwin4tr_nec3tle5nielen4dolend4e_nom3ol5endalem5onn5sickl5emizlem3isns5ifins3ing_nos3tn3s2is4leledle3gransolu4le4ginn4soren4soryn3spirl3egan_obed5nstil4le5chansur4e_ob3elntab4unt3agew5est__oe5sont5and_om5el_on4cewel4liweliz4nt3ast_opt5ant5athnt3ati_or3eo3leaguld3ish_pal5in4tee_n4teesld4ine_pa5tald3estn4ter_n3terin5tern_pecu3war4tel5deral4cerenther5_ped3elav5atlat5usn4tic_ward5r_pend4n4tics_pep3tn3tid4_pi3la_plic4_plos4_po3lan5tillnt3ing_pop5lvo3tar_pur4rn4tis_nt3ismnt3istvo5raclat5al4laredlar5delar5anntoni4lan4tr_re3cantra3dnt3ralviv5orn3tratviv5alnt3rilv5itien5trymlan3etlan4er3landsvi5telland3i3land_lan3atlam4ievi3tal2v5istla4ic_la4gisla3gerlac5on5visiola5cerla5ceolabel4vi5ridlab5ar_re3ta5numerkin5et_rib5anu3tatn5utivkey4wok5erelkal4iska5limk2a5bunven4enven5o_ros3ajuscu4_sac5rjel5laja5panja2c5oi5vorevin5ta_sal4inym5itv5iniz5vinit3vinciiv3erii4ver_iv5elsoad5ervin4aciv5el_oak5ero3alesiv5ancoal5ino5alitit5uar_sanc5oar5eroar4se_sap5ait4titoat5eeoat5eri4tric_sa3vo4i5titob3ing2obi3o_sci3e4itio_it4insit4in_it5icuiti4coi5tholitha5lobrom4it3erait3entit3enci3tectit4ana3istry_sea3si4s1to5vider_sect4oc5ato4o3ce25vict2ocen5ovice3r_se3groch5ino3chon_sen3tvi4atroci3aboci4al5verseis4taliss4ivis5sanis4saliss5adi3s2phocu4luver4neislun4ocuss4ver3m4ocut5ris3incis5horocyt5ood3al_ish3op4ishioode4gao5dendo3dentish5eeod3icao4d1ieod3igais3harod1is2v5eriei2s3etis5ere4is3enis3ellod5olood5ousise5cr4i1secisci5cver3eiver5eaven4tris5chiis3agevent5oir5teeir5ochve5niair4is_ir2i4do3elecoelli4ir5essoe3o4pire5liven4doi5rasoven4alvel3liir4ae_ir4abiv4ellaip3plii4poliip3linip4itiip1i4tip4ine_su5daiphen3i1ph2ei3pendog5ar5v3eleripar3oi4oursi4our_iot5icio5staogoni45ioriz4ioritiora4mvel3atiod3i4ioact4_sul3tintu5m_tar5oin3til_tect45vateein4tee_tel5avast3av5a4sovar4isin3osiin5osei3nos_oi5ki5oil3eri5noleoin3de4vantlvanta4oin4tr_ter4pin3ionin4iciin5ia_oit4aling3um4ingliok4ine4ingleing5hain5galo4lacko5laliinfol4olan5dol5ast_thol45val4vole2c4ol5eciol5efiine5teole4onin3esi4in5eoo3lestin5egain5drool3icao3lice_ti5niol5ickol3icsol5id_va5lieo3lier_tri3dinde3tvager4oli5goo5linaol3ingoli5osol5ip4indes5inde5pin5darollim34vagedol4lyi3vag3ava5ceo4inataol3oido4lona_tro4vi3nas_in4ars_turb44ol1ubo3lumi_turi4ol3us_oly3phin3airin5aglin4ado4inaceimpot5im5pieo4maneomast4_tu5te_tu3toi3mos_im5mesomeg5aome3liom3enaomen4to3meriim5inoim4inei3m2ieomic5rom4ie_imat5uom4inyomiss4uv5eri_un5cei5m2asim3ageil5ureomoli3o2mo4nom5onyo4mos__un5chilit5uom5pil_un3d2il4iteil5ippo5nas__uni3c_uni3o4iliou_un3k4oncat3on4cho_un3t4u4t1raon3deru4to5sili4feili4eri5lienonec4ri3lici_ve5loon5ellil3iaron3essil3ia_ong3atilesi45u5tiz4o1niaon5iar2oni4conic5aut3istut5ismon3iesigu5iti4g5roi5gretigno5m4onneson5odiign5izono4miu5tiniut3ingo5nota_ver3nig3andu4tereon4ter_vis3ionton5if5teeon4treif5icsut5eniutch4eif3ic_u3taneoof3eriev3erook3eri5eutiiet3ieool5iei3est_i1es2ties3eloop4ieieri4ni3eresus5uri4idomioot3erooz5eridol3ausur4eo5paliopa5raopath5id4istopens4id1is43operaus4treidios4_vi5sooph4ieo5philop5holi3dicuus1to4iderm5op3iesop5ingo3p2itid3eraust3ilid3encopol3ii5cun4op5onyop5oriopoun4o2p5ovicu4luop5plioprac4op3ranict5icopro4lop5ropic4terust5igust4icicon3ous5tanic5olaor5adoich5olus3tacic5ado4oralsib3utaoran3eab5areorb3ini4boseorch3iibios4ib3eraor5eadore5arore5caab5beri5atomia5theoreo5lor3escore3shor3essusk5eru4s1inor5ett4iaritianch5i2a3loial5lii3alitab3erdor3ia_4orianori4cius5ianorien4ab3erria5demori5gaori4no4orio_or5ion4oriosia5crii2ac2rus4canor3n4a5ornisor3nitor3oneabi5onor5oseor5osohys3teorrel3orres3hyol5ior4seyor4stihyl5enort3anort3atort3erab3itaor3thior4thror4titort3izor4toror5traort3reh4warthu3siahu4minhu5merhu4matht4ineht4fooht3ensht3eniab4ituht3en_ab3otah3rym3osec3uhrom4ios5encosens43abouthre5maabu4loab3useho4tonosi4alosi4anos5ideo3sierhort5hho5roghorn5ihor5etab3usio3sophos3opoho2p5ro3specho5niohong3ioss5aros4sithon3eyur3theos4taros5teeos5tenac5ablur5tesos3tilac5ardost3orho5neuhon5emhom5inot3a4gurs3orho4magach5alho5lysurs5ero5ta5vurs5alhol3aroter4muroti4ho3donachro4ur5o4mach5urac5onro5thorurn3ero5tillurn3alh5micao3tivao5tiviur5lieo5toneo4tornhirr5ihio5looturi4oty3lehi5noph5inizhi5nieh2in2ehimos4hi5merhi5ma4h3ifi4url5erhi4cinur5ionur4iliur4ie_ac2t5roult5ih4et3ahes3trh5erwaound5aac5uatur3ettoun3troup5liour3erou5sanh4eron5ousiaher5omur1e2tur3ersova3lead5eni4ovatiad3icao4ver_over3bover3sov4eteadi4opadis4iovis5oo2v5oshere3ohere3aherb3iherb3aher4ashende5ur5diehe5mopa3ditihemis4he3menowi5neh3el3ohel4lihe5liuhe3lioh5elinhe5lat5admithe5delhec3t4adram4heast5ad3ulahdeac5ae4cithavel4ura4cipac4tepa5douhas4tehar4tipa3gan4pagataed5isu5quet4pairmpa5lanpal3inag4ariharge4pan5ac4agerihant3ah5anizh1ani4agi4asham5an4aginopara5sup3ingpa3rocpa3rolpar5onhagi3oag3onihaged5agor4apa3terpati4naha5raaid5erail3erhadi4epaul5egust5apa5vilg4uredg4uraspaw5kigui5ta5guit43guardaim5erai5neagrum4bpec4tugru3en5ped3agrim3a4grameped3isgour4igo5noma3ing_5gnorig4ni2ope5leogn4in_pen4at5p4encu5orospen5drpen4ic3p4ennal5ablg2n3ingn5edlalact4until4g5natial5ais5gnathala3map3eronalc3atald5riun4nagg5nateglu5tiglu5tepes4s3ale5ma4g5lodun5ketpet3eng5lis4gli5ong4letrg4letoal3ibrali4cigin5gigi5ganun3istph5al_gi4alluni3sogh5eniph5esiggrav3ggi4a5al5icsg5gedlun4ine3germ4phi5thgeo3logen5ti4phobla5linigen5italin5ophos3pgen4dugel5ligel4ing4atosg4ato_gat5ivgast3ral5ipegasol5ga5rotp5icalu3n2ergar3eeg5antsgan4trp4iestpi5etip5ifieg5ant_un4dus4ganed4alis_gan5atpi3lotgam4blun4diepin5et3pingegali4a5p4insga5lenga4dosga4ciefu5tilpir5acfu3sil4furedfu4minundi4cpiss5aunde4tpis4trft4inefti4etf4ter_un3dedpla5noun4dalalk5ieun4as_al4lab4pled_frant4frag5aunabu44plism4plistal4lagu4n3a4umu4lofore3tfor4difor5ayfo5ramfon4deallig4fo4liefo1l4ifoeti42p5oidpois5iump5tepo4ly1poly3spoman5flum4iump5lipon4acpon4ceump3er3ponifpon5taf3licaf5iteepo5pleal3ogrpor3ea4poredpori4ffir2m1fin4nial3ous5fininpos1s2fi3nalu4moraumi4fyu2m5iffight5fier4cfid3enfi5delal5penp4pene4ficalumen4tal3tiep4pledp5plerp5pletal5uedal3uesffor3effoni4ff3linf2f3isal5ver2a1ly4fet4inaman5dul3siffet4ala3mas_fest5ipres3aulph3op3reseulph3i5pricipri4es4pri4mam5atuam4binfest3ap5riolpri4osul4litfess3o4privafer5ompro3boul4lispro4chfe5rocpron4aul4latam5elopro3r2pros4iu5litypro3thfer3ee4feredu5litipsal5tfemin5fea3tup5sin_fant3iul5ishpsul3i4fan3aul3ingfa5lonu3linefa2c3ufa3cetpt5arcez5ersp5tenapt5enn5pteryez5er_ex4on_ew5ishamen4dp2t3inpt4inep3tisep5tisievol5eevis5oam3eraev5ishev4ileam5erle4viabpudi4ce4veriam5icapu4laramic5rpu5lisu5lentu1len4a3miliev5eliev3astpun5gieva2p3eval5eev4abieu3tereu5teneudio5am5ilypu3tat5ulcheet3udeet3tere4trima5mis_et4riaul5ardet4ranetra5mamor5aetra5getor3iet3onaamort3am5ose3quera4quere4ques_et5olo5quinauit5er3quito4quitueti4naeti4gie3ticuuisti4ethyl3ra3bolamp3liuis3erampo5luin4taet5enia5nadian3agerag5ouuinc5u3raillra5ist4raliaet3eeret3atiet3ater4andian3aliran4dura5neeui3libra3niara3noiet5aryan3arca5nastan4conrant5orapol5rap5toet3arieta5merar3efand5auug3uraan5delet3al_es4ur5e2s3ulrass5aan5difug5lifra5tapra5tatrat5eurath4erat3ifan5ditra5tocan5eeran3ellra4tosra5tuirat5umrat3urrav5aian3ganrav3itestud4ra3ziees5tooe3stocangov4rb3alian4gures5taue5starest3anesta4brbel5orb3entes4siless5eeessar5rbic5uan5ifor5binee5s2pres5potan5ionrbu5t4es5pitrcant54anityr4celean3omaan4scoans3ilrcha3irch3alan4suran2t2ar3cheor4cherud3iedr4chinrch3isr3chites3onaan3talan5tamrciz4ies3olae3s4mie3skinrcolo4rcrit5an4thies4itses4it_e5sion3anthrrd4an_es5iesr5de4lr3dens4anticrd5essrd5ianan4tiee5sickes5ic_rd3ingesi4anrd1is2rd5lere3sh4aes5encrd5ouse5seg5e3sectescut5esci5eant4ives5chees5canre5altre5ambre3anire5antre5ascreas3oeryth35erwauan4tusreb5ucre3calrec4ceer4vilan5tymre3chaan3um_an5umsap5aroerund5ert5izer4thire3disre4dolape5lireed5iu4cender4terer5tedre3finuccen5re5grare3grereg3rire3groreg3ulaph5emer4repaph5olaphyl3ero5stero5iser3oidern3it4reledre3liarel3icre5ligreli4qrel3liern3isrem5acap5icuub3linern3errem5ulu4bicuren5atr4endiap4ineren4eser4moirenic5ren4itub5blyre5num4eri2ta3planre5olare3olier4iscer3ioure4pereri4onrep5idre3pinre3plere4preeri4nauari4ner3iffre5reare3r2uapo3thre3scrre3selre3semre3serap5ronre5sitre3speapt5at4arabiara5bore5stu3retarre3tenar3agear5agire1t2ore5tonre3trare3trere5trier4ianer3ia_ergi3ver3ettrev3elrevi4ter3etser3et_ar3agoar3allaran4ger3esier5eseere5olr4geneeren4e5erende4remeer5elser5ellr5hel4rhe5oler5el_er3egrer3ealerdi4eerd5arerb5oser3batar5apaer5atuarb5etar4bidty4letri5cliri3colri5corri4craarb3lirid4aler3apyer3apier3aphera4doar4bularch5otwi5liri5gamaren5dri5l4aar5ettar3ev5ar5iff5tur5oequin4rima4gar4illrim3ate4putarimen4e3pur5ept3or5turitr4inetturf5iturb3aep5rimt4uranrins5itu5racep3rehtun5it5rioneepol3iepol3ari5p2ari5piear5iniep3licarm3erris4ise4peteris4paris4pear5mit4ristiri3tonr5it5rep5ertriv4alar3nalar3nisriv3enriv3il5ri5zoar5oidep5arceor4derk5atir5kellrk5enia5rotieol5ata5roucr3kiertud5ier5kin_r5kinsrks4meen4tusent5uptu5denr3l4icr3liner5linsen4tritu4binen5tiarma5cetuari4ent3arr4mancr4manor4marir4maryen4susars5alart5atarth4een4sumens5alrm4icar5m2iden3otyenit5ut4tupermin4erm3ingarth3rar5tizen5iere2n3euen4ettrmu3lie3nessen5esiener5var5un4as5conrn3ateas5cotrn5edlt3tlerr3nessrn5esttti3tuas3ectt5test3encept4tereen3as_rn4inee2n3arrn3isten4annash5ayem4preash5ilem5pesas5ilyempa5rask5erem3orras5ochrob3letstay4e3moniem3oloemod4uemo3birody4n4emnitem4maee4mitaem3ismem5ingem3inar4oledas4silassit5as4tatro5melro3mitas4tiaas3tisemet4eron4ac4ronalas4titron5chron4dorong5ir5onmeem5ero4asto2as3traas4trit5roto4atabiem3anaro3peltro3spem3agor5opteel5tieelp5inel5opsrosi4aro5solel5op_5troopros4tiatar3aro3tatata3t4ro4terelo4dieloc3uelo5caat3eautri3me4roussell5izel4labrow3erelit4ttri3lie4li4seli3onr3pentrp5er_el3ingat3echr3pholrp3ingat5eerrpol3ar2p5ouele3vi3tricuelev3at5ricla5tel_e5lesstres4sele5phel3enor4reo4el5eni4e4ledelea5grricu4tre5prate5lerri4oseld3ertre4moat3entat3eraelast3el5ancel5age4traddeiv3ereit5ertra4co4atesse4ins_to3warehyd5re5g4oneg5nabefut5arsell5rs3er_rs3ersa3thene4fiteath3odr4shier5si2ato3temto5stra5thonrs3ingeem5eree2l1ieed3ere4d5urrstor4to3s4ped3ulo4a3tiator5oitor5ered3imeed5igrrt3ageto5radr4tareed5icsto4posr4tedlr3tel4r5tendrt3enito5piaa2t3in4atinaat5ingede3teton5earth3rir1t4icr4ticlr5tietr5tilar5tilltom5osrt5ilyedes3tr3tinart3ingr3titirti5tue4delee5dansrt5lete5culito4mogec4titrt5ridecti4cec4teratit3urtwis4e4cremtoma4nec3ratec5oroec3oratom3acat4iviec3lipruis5iecip5i4toledec5ath5at5odrun4clruncu42t3oidrun2d4e4caporu5netecal5ea4topsec3adea4toryebus5iebot3oe4belstode5cat3ronat5rouat4tagru3tale4bel_eav5our4vanceavi4ervel4ie3atrirven4erv5er_t4nerer3vestat3uraeatit4e3atifeat5ieeat3ertmo4t5east5iat3urge1as1s3ryngoau5ceraud5ereas5erryth4iaudic4ear4tee5ar2rear4liear3ereap5eream3ersac4teeam4blea3logeal3eread3liead3ersain4teac4tedy4ad_sa5lacdwell3sa3lies4al4t5tletrdvert3sa5minault5id5un4cdum4be5tledrs4an4etlant4san5ifdu5ettau5reodu5elldu5eliau5rordrunk3tiv3isaus5erdri4g3aut3ars5ativti3tradrast4d5railsau5ciaut3erdossi4sa3voudo5simdon4atdom5itt3itisdomin5doman4tit5ildo4lonscar4cdol5ittith4edol3endo4c3u4s4ces5dlestt4istrdi4val1di1v2ditor3av3ageava5latish5idithe4av5alr3tisand4iterd4itas3disiadisen34d5irodi4oladi5nossec5andin5gisecon4dimet4di5mersed4itdi3gamdig3al3di3evdi4ersd5icurse3lecselen55dicul2s4emedic4tesemi5dav5antdic5oldic5amt3iristi5quaav3end5sentmti3pliav3ernti5omosep4side4voisep3tiser4antiol3aser4to4servode3vitde3visdev3ils5estade3tesdes3tid3est_sev3enaviol4aw5er_de3sidde3sectin3uetin4tedes4casfor5esfran5der5os3dero45dernesh4abiaw5ersder4miaw5nieay5sta3dererde5reg4deredde3raiderac4si4allsiast5tin3ets3icatdepen42s5icldeont5si5cul4tinedba5birdens5aside5lsid3enbalm5ideni4eba5lonsi4ersde1n2ade4mosde3morba5nan5tilindemo4nti4letsin5etbardi44demiedel5lisi5nolsi3nusba5romdeli4esi5o5sde3lat5de3isde4fy_bar3onde4cilsist3asist3otigi5odeb5itsit5omdeac3td3dlerd4derebas4tedaugh3dativ4dast5a3d4as2d1an4ts3kierba4th4sk5ily3baticba5tiod4a4gid5ache3ti2encys5toc3utivbat5on4cur4oti3diecur4er1c2ultb4batab4bonecul5abcu5itycub3atctro5tbcord4ti3colct5olo3smithbdeac5tic5asct5ivec4tityc4tituc3t2isbed5elc3tinict5ing4s3oid4te3loct4in_so5lansol4erso3lic3solvebe5dra5ti5bube3lit3some_bend5ac4ticsbe5nigson5atbicen5son5orc4tentbi4ers5soriosor4its5orizc2t5eec3tato5bilesct5antc5ta5gctac5u5c4ruscrost4spast45thoug3b2ill3sperms5pero4thoptcre4to5creti3spher4t5hoocre4p3sp5id_s5pierspil4lcre3atsp3ingspi5nith3oli4creancra4tecras3tbimet55crani5bin4d3spons3spoonspru5dbind3ecous5t3co3trth4is_srep5ucost3aco5rolco3rels5sam24coreds5sengs3sent5th4ioss3er_s5seriss3ers3thinkt5hillbin5etcon4iecon4eyth3eryss4in_s4siness4is_s3s2itss4ivicon4chth3ernco3mo4co5masssol3ut5herds4soreth5erc5colouco3logco3inc4c3oidco3difco3dicsta3bic4lotrs4talebin5i4s3tas_theo3lc3lingbi3re4ste5arste5atbi5rusbisul54s1teds4tedls4tedn4stereth5eas3bituas3terost5est5blastcine5a4cinabs3ti3a3sticks3ticuthal3ms4tilyst3ing5s4tir5cimenth5al_st3lercigar5ci3estch5ousstone3bla5tu5blespblim3as4tose4chotis4tray4chosostrep33strucstru5dbment4tew3arch5oid5chlorstur4echizz4ch3innch4in_ch3ily3chicoche5va3chetech4erltetr5och4eriche3olcha3pa4boledbon4iesu5ingces5trcest5oce3remcer4bites5tusu3pinsupra3sur4ascept3a5testesur3pltest3aboni4ft3ess_bon4spcent4ab3oratbor5eebor5etbor5icter5nobor5iocen5cice4metce5lomter3itt4erinsy4chrcel3aice3darcci3d4ter5ifsy5photer5idcav3ilter3iabot3an3tablica3t2rta3bolta4bout4a3cete3reota3chyta4cidc4atom3casu35t2adjta5dor5terel3cas3scashi4tage5ota5gogca3roucar5oocar5oncar3olcar3nicar3ifter5ecca3reeter3ebta5lept4aliat4alin2tere45tallut2alo43ter3bt4eragtera4c3brachtan5atbran4db4reas5taneltan5iet5aniz4b2rescap3tica5piltent4atark5ican4trte5nog5brief5tennaca3noec2an4eta3stabring5t4ateu3tatist4ato_tat4ouca5nartat3uttau3tobri4osca5lefcal5ar4tenarcab5inb5ut5obut4ivten4ag3butiob5utinbu5tarte5cha5technbus5sibusi4ete5d2abur4rite5monb4ulosb5rist5tegicb5tletbro4mab4stacbso3lubsol3e4teledtel5izbscon4ct4ina", + 7 : "mor4atobstupe5buf5ferb5u5nattch5ettm3orat4call5inmor5talcan5tarcan5tedcan4tictar5ia_brev5ettant5anca3ra5ctand5er_ad4din5ta3mettam5arit4eratocar5ameboun5tital4l3atal5entmonolo4cas5tigta5chom3teres4ta5blemcaulk4iccent5rcces4sacel5ib5mpel5licel5lincen5ded5ternit4sweredswell5icend5encend5ersvest5isvers5acen5tedt5esses_ama5tem5perercen5testest5ertest5intest5orcep5ticmpet5itchan5gi5cherin4choredchor5olmphal5os5toratblem5atston4iecil5lin4mologu4mologss4tern_ster4iaci5nesscla5rifclemat45static4molog_5therapmogast4ssolu4b4theredcon4aticond5erconta5dcor5dedcord5ermpol5itcost5ercraft5ispon5gicra5niuspital5spic5ulspers5a4thorescret5orspens5ac5tariabi4fid_4sor3iecter4iab5ertinberga5mc5ticiabend5erso5metesoma5toctifi4esolv5erc5tin5o_an4on_ct4ivittici5ar3ti3cint4icityc5torisc5toriz4ticulecull5ercull5inbattle5cur5ialmmel5lislang5idal5lersk5iness5kiest4tific_daun5tede5cantdefor5edel5ler_an3ti34dem4issim4plyb4aniti_ant4icde4mons_an4t5osid5eri5timet4dens5er5ti5nadden5titdeposi4zin4c3i_aph5orshil5lider5minsfact5otin5tedtint5erde5scalmis4tindes5ponse5renedevol5u4tionemdiat5omti5plexseo5logsent5eemi5racu_ar4isedic5tat4scuras4scura__ar4isi5scopic3s4cope5t4istedi5vineti5t4ando5linesca5lendom5inodot4tins5atorydress5oaus4tedtiv5allsassem4dropho4duci5ansant5risan5garaun4dresan4ded_ar5sendust5erault5erdvoc5ataul5tedearth5iea4soni4ryngoleassem4eat5enieat4iturv5ers_rus4t5urus5ticrust5eeatric5urust5at_as5sibrup5licminth5oecad5enruncul5ru4moreecent5oa5tivizecon4sc_ateli4_au3g4uec5rean_aur4e5ect5atiec4t5usrtil5le4at4is__av5erar4theneedeter5edi4alsr5terered5icala4t1i4lediges4at5icizediv5idtori4asrswear4ati5citat5icisedu5cerrstrat4eer4ineefact5oming5li_ba5sicef5ereemin4ersath5eteath5eromin4er__be5r4ae5ignitr5salizmind5err5salisejudic44traistmil5iestrarch4tra5ven_blaz5o4m5iliee4lates_bos5omat5enatelch5errrin5getrend5irri4fy_rran5gie4lesteel3et3o_boun4d_bra5chtri5fli_burn5ieli4ers_ca4ginrou5sel_can5tamigh5tiros5tita5talisro5stattro4pharop4ineemarc5aem5atizemat5ole4m3eraron4tonro5nateem4icisnaffil4romant4emig5rarol5iteass5iblassa5giemon5ola4sonedem5orise4moticempara54empli_en3am3o_cen5sot5tereren4cileen4d5alen4dedlttitud45n4a3grend5ritrn5atine5nellee5nereor4mite_r4ming_en3ig3rmet5icirma5tocr4m3atinannot4en4tersen4tifyarp5ersent5rinr5kiesteol5ar_eologi4aro4mas_clem5eriv5eliri5vallris5ternan5teda5rishi3mesti4epolit5tup5lettup5lic_cop5roepres5erink5erme5si4aring5ie_co5terrim5an4equi5noment5or4tut4ivna5turiera4cierig5ant5rifugaar4donear5dinarif5tiear5chetrift5er4erati_4eratimrick4enrich5omrica5tuaran5teer5esteer5estieres5trre5termar4aged_dea5coaract4irest5erre5stalapu5lareri4ciduant5isuant5itres5ist5er5ickapo5strer4imet_de5lecuar4t5iua5terneri5staren4ter5ernaclmend5errem5atoreman4d_del5egerre5laer5sinere5galiert5er_ert5ersrec4t3rr4e1c2rreci5simelt5er_deli5ran4tone_de5nitan4tinges5idenesi5diur4d1an4rcriti4es3ol3urci5nogant5abludi4cinrch4ieru5dinisrch5ateu5ditiorch5ardes3per3mel5lerrcen5eres5piraanis5teesplen5uen4teres4s3anest5ifi_de5resues5trin4cept_rav5elianel5li4r4atom5ra5tolan4donirat4in_r4as5teand5istrass5in5meg2a1et3al5oand5eerrar5ia_an3d4atrant5inuicent55rantelran5teduild5erran4gennch5oloetell5irad4inencid5enra5culorac5ulaet3er3aet5eria3ra3binet5itivui5val5amphi5gam5peri_de5sirqua5tio4e4trala4mium_et5ressetrib5aaminos4am5inizamini4fp5u5tis5ulchrepush4ieev5eratev5eren4ulenciever4erpu5lar_puff5erevictu4evis5in_de5sisfall5inncip5ie_di4al_fend5erpros5trpropyl5proph5eul4l5ibp3roc3apris5inpring5imbival5nco5pat5pressiyllab5iulp5ingpre5matylin5dem4b3ingnct4ivife5veriffec4te_du4al_pprob5am5bererum4bar__echin5fi5anceal5tatipparat5pout5ern4curviumi5liaumin4aru4minedu4m3ingpoult5epor5tieal4orim4poratopon4i4eflo5rical4lish_ed4it_foment4_ed4itialli5anplum4befor4m3a_el3ev3fratch4pla5t4oma5turem4atizafrost5ipis5tilmat4itifuel5ligal5lerpill5ingang5ergariz4aunho5lial5ipotgass5inph5oriz4phonedgest5atg5gererphant5ipha5gedgiv5en_5glass_unk5eripet5allal5endepes5tilpert5isper5tinper4os_al5ance5p4er3nperem5indeleg4gna5turndepre4aint5eruodent4pend5er4gogram_en4dedpearl5indes5crgth5enimas4tinpat4richad4inepas4tinnd5is4ihak4inehal5anthan4crohar5dieha5rismhar4tedaet4or_aerody5pag4atihaught5_er5em5hearch44urantiheav5enurb5ingoxic5olowhith4ur5den_ur5deniowel5lih5erettovid5ennd5ism_her5ialh5erineout5ishoun5ginound5elhet4tedact5oryu5ri5cuheumat5ur5ifieact5ileought5ihi3c4anuri4os_h4i4ersh4manicurl5ingact5atemast4ichnocen5_men5taaci4erso5thermmar4shimantel5ot5estaurpen5tach5isma5chinihol4is_ot4atioot4anico5talito5stome5acanthost5icaosten5tost5ageh4op4te3house3hras5eoy4chosen5ectom4abolicht5eneror5tes_man4icay5chedei5a4g5oori5cidialect4or5este_escal5iatur4aorator5_wine5s_vo5lutich5ingo5quial_etern5us5ticiic4tedloplast4ophy5laid4ines4operag2i4d1itoost5eriff5leronvo5lui4ficaconti5fiman5dar_vic5to_fal4lemament4mal4is__ver4ieila5telonical4i5later_feoff5ili4arl_va5ledil4ificond5ent_ur5eth5ond5arut4toneil5ine_on5ativonast5i_under5ompt5eromot5ivi4matedi4matin_fi5liaimpar5a_fil5tro5lunte4inalit_tular5olon5el5neringinator5_tro4ph_fis4c5inc4tua_trin4aol4lopeoli4f3eol5ies_mal5ari_tran4c_tit4isnerv5inval4iseol5icizinfilt5olat5erin4itud_gam5etxter4m3ink4inein4sch5_tell5evas5el5insect5insec5uinsolv5int5essvat4inaoher4erint5res_tamar5xtens5o_tact4iinvol5ui4omani_gen4et_gen5iave5linei5pheriip5torivel5lerir4alinvel5opiir4alliirassi4nfortu5irl5ingirwo4meo4ducts4lut5arv5en5ue_stat4o_si5gnoverde5v4v4ere4o4duct_odu5cerodis5iaocus5siis5onerist5encxotrop4_ser4ie5vialitist5entochro4n_gnost4_sec5tovi5cariocess4iis4t3iclum4brio5calli4is4tom4itioneit5ress3vili4av5ilisev5ilizevil5linoast5eritu4als_han4de_hast5ii4vers__sa5linlsi4fiai5vilit5ivist_5ivistsnvoc5at_ho5rol_rol4lakinema4ni4cul4nultim5_re5strloth4ie5la5collos5sienight5ilor4ife_re5spolor5iatntup5li5lo5pen_re5sen_res5ci_re5linnt5ressn4trant_re5garloom5erxhort4a_ran5gilong5invol4ubi_ra5cem_put4ten5tition4tiparlo4cus__pos5si_lash4e_len5tint5ing_nit5res_le5vanxecut5o_plica4n4tify__plast45latini_phon4illow5er_li4onslligat4_peri5nntic4u4_pen5dewall5ern5ticizwan5gliwank5erwar5dedward5ern5ticisnth5ine_lo4giawar5thinmater4_pec3t4_pa4tiowav4ine_lous5i_para5t_par5af_lov5ernmor5ti_orner4nt5ativ_or5che_ma5lin_mar5ti_or4at4le5ation5tasiswel4izint4ariun4t3antntan5eon4t3ancleav5erl3eb5rannel5li_nucle5_no5ticlem5enclen5darwill5in_ni5tronsec4tewing5er4lentio5l4eriannerv5a_nas5tinres5tr5le5tu5lev5itano5blemnovel5el3ic3onwol5ver_mor5tilift5erlight5ilimet4e_mo5lec5lin3ealin4er_lin4erslin4gern5ocula_min5uenobser4_met4er_me5rin_me5ridmas4ted", + 8 : "_musi5cobserv5anwith5erilect5icaweight5ica5laman_mal5ad5l5di5nestast5i4cntend5enntern5alnter5nat_perse5c_pe5titi_phe5nomxe5cutio5latiliz_librar5nt5ilati_les5son_po5lite_ac5tiva5latilisnis5tersnis5ter_tamorph5_pro5batvo5litiolan5tine_ref5eremophil5ila5melli_re5statca3r4i3c5lamandrcen5ter_5visecti5numentanvers5aniver5saliv5eling_salt5ercen5ters_ha5bilio4c5ativlunch5eois5terer_sev5era_glor5io_stra5tocham5perstor5ianstil5ler_ge5neti_sulph5a_tac5ticnform5eroin4t5erneuma5to_te5ra5tma5chinecine5mat_tri5bal_fran5ch_tri5sti_fi5n4it_troph5o_fin5essimparad5stant5iv_vent5il4o5nomicssor5ialight5ersight5er__evol5utm5ament_ont5ane_icotyle5orest5atiab5oliziab5olismod5ifiehrill5inothalam5oth5erinnduct5ivrth5ing_otherm5a5ot5inizov5elinghav5ersipass5ivessent5ermater5n4ain5dersuo5tatiopens5atipercent5slav5eriplant5er5sing5erfortu5naplumb5erpo5lemicpound5erffranch5ppress5oa5lumnia_domest5pref5ereprel5atea5marinepre5scina5m4aticpring5ertil4l5agmmand5er5sid5u4a_de5spoievol5utee5tometeetend5erting5ingmed5icatran5dishm5ed5ieset5allis_de5servsh5inessmlo5cutiuest5ratncent5rincarn5atdes5ignareact5ivr5ebratereced5ennbarric5sen5sorier5nalisuar5tersre4t4er3_custom5naugh5tirill5er_sen5sati5scripti_cotyle5e4p5rob5a5ri5netaun5chierin4t5errip5lica_art5icl5at5ressepend5entu4al5lir5ma5tolttitu5di_cent5ria5torianena5ture5na5geri_cas5ualromolec5elom5ateatitud5i_ca5pituround5ernac5tiva_at5omizrpass5intomat5oltrifu5gae4l3ica4rpret5erel5ativetrav5esttra5versat5ernisat5ernizefor5estath5erinef5initeto5talizto5talis_barri5c_authen5mass5ing", + 9 : "_bap5tismna5cious_econstit5na5ciousl_at5omisena5culari_cen5tena_clima5toepe5titionar5tisti_cri5ticirill5ingserpent5inrcen5tenaest5igati_de5scrib_de5signe_determ5ifals5ifiefan5tasizplas5ticiundeter5msmu5tatiopa5triciaosclero5s_fec5unda_ulti5matindeterm5ipart5ite_string5i5lutionizltramont5_re5storeter5iorit_invest5imonolog5introl5ler_lam5enta_po5sitio_para5dis_ora5tori_me5lodio" + } +}; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/en-us.js b/resources/viewer/hyphenate/patterns/en-us.js new file mode 100644 index 0000000000..45191af388 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/en-us.js @@ -0,0 +1,21 @@ +// The en-US hyphenation patterns are retrieved from +// http://tug_org/svn/texhyphen/trunk/collaboration/repository/hyphenator/ +Hyphenator.languages['en-us'] = Hyphenator.languages['en'] = { + leftmin : 2, + rightmin : 3, + shortestPattern : 2, + longestPattern : 9, + specialChars : "", + patterns : { + 3 : "x1qei2e1je1f1to2tlou2w3c1tue1q4tvtw41tyo1q4tz4tcd2yd1wd1v1du1ta4eu1pas4y1droo2d1psw24sv1dod1m1fad1j1su4fdo2n4fh1fi4fm4fn1fopd42ft3fu1fy1ga2sss1ru5jd5cd1bg3bgd44uk2ok1cyo5jgl2g1m4pf4pg1gog3p1gr1soc1qgs2oi2g3w1gysk21coc5nh1bck1h1fh1h4hk1zo1ci4zms2hh1w2ch5zl2idc3c2us2igi3hi3j4ik1cab1vsa22btr1w4bp2io2ipu3u4irbk4b1j1va2ze2bf4oar1p4nz4zbi1u2iv4iy5ja1jeza1y1wk1bk3fkh4k1ikk4k1lk1mk5tk1w2ldr1mn1t2lfr1lr3j4ljl1l2lm2lp4ltn1rrh4v4yn1q1ly1maw1brg2r1fwi24ao2mhw4kr1cw5p4mkm1m1mo4wtwy4x1ar1ba2nn5mx1ex1h4mtx3i1muqu2p3wx3o4mwa1jx3p1naai2x1ua2fxx4y1ba2dn1jy1cn3fpr2y1dy1i", + 4 : "4dryn2itni4on1inn1im_up3nik4ni4dy5giye4tyes4_ye44ab_nhe4nha4abe2n2gyn1guy1ery5eep2pe4abry3lay3lone4wne4v1nesy3chn1erne2q3neo1nenp2seps4hy2cey5lu2nedne2cyme44nk2y5at2adine2b2ne_y5ac2p1tp2ten1den1cun1cryn5dp2th4adup4twpub3ae4rxu3ayn5gaff4pue4n2au4p1ppuf4n2atag1ipu4mag1na2gon4asx3tix1t2pu2na4gya3haa3heah4la3ho_ti2a5ian2an5puspu2tnak4_th2n1kl_te4_ta4mu4u4mupmun23mum2alex4ob_sy25ynxal1i_st4y1o4xi5cxi5a4alm_si2_sh2m5sixhu4m4sh4m3r4amam2py2rabm2pixhi2yo5dr2ai4m1pmo2vmos2x2edmo2r4n1la2mor2asx3c2xas5yom4x4apxam3nme44mokrbi2nne44andy4osp4ot3noemn4omn4a4m1n4nog4m1l2angws4l1posw3shwri4wra4yp3iwom11wo2m2izrb4ow4nopo4pr2cem2isrd2iano4mig4y3pomi3awiz55mi_no4n4m1fme4v2re_wir42mes1menme2mme2gre1o2med4me_4nop4m5c4m1bwil21noureu2whi4w3ev4maprev2w1era2plpo4crfu4r4fyy5pu2maha3pu2mab2a2rn1p4npi44lyb4lya2p3nwam42l1w1lut4luplu3or1glluf4lu5a2wacltu2y3rol1tr4vv4r3guyr4rl1te4rh_nru4ar1il2sel4sc4l1rl5prl4plys4c4lovri3ar4ib4lof3lo_ar2par3q_os3ll4oll2i4as_ri1o3vokl2levoi44p1mlka35vo_ns4cas4ll1izr4iqr2is3vivl1it3lika2tan2sen2slrle42l3hlgo3l5gal5frns3mvi4p3ley_od2r2meles24athr4myle2al3drv1inldi4l2de2vilnt2il3civik4lce42l1b4lavv3ifrno4r3nua1trr2ocnt4sy4sok4syks4la2tuk4sck3ouko5ryss4a2tyau4b4klyys1tnu1akis4au3rki4pro4ek4ima2va5ki_nu4dn4umn3uokes4k1erav1irok2ke4g1keek2ed_me2aw3ikal4aws4k5agk3ab3ka_aye4ays4veg3jo4p5ba_4vedjew3n1v24ve_ja4pzar23vatizi4n1w41batba4z2b1bb2beix4o4i5w4b1d4be_rox5nym4nyp4n3za4ittr3por1r4i1ti1bel2ith2itei2su4rs2r1sars4cr2seis1p3betvag4i2sor1shbe3wr1sioad34b3hbi2bbi4d3bie3isf4ise2is_1bilr1sp5va_r5sw_le2uz4eir1ibi2tuxu3r1tiu1v2i1raze4nze4pb2l2uu4mo1biip3iz1eripe4b4louts44b1m4b3no3br3bodi4osbo4eru3aio4mi1ol4io_3booo1ce4inyin1u2insru2n2inn4inl4inkrv4e2inioch42iner3vo4indpi2np4idbt4lb4tob3trry4cry3t2in_o4elbu4ni2muim1i5saiil3v4ilnil1iil5fs1apo3er4b5w5by_bys4_in1sau4i1lazet4u2suo3ev2z1ii2go4igius1p5saw4s5bo2fi4ifti3fl4if_i3etsch2usc22ie4i2dui4dri2diid5dpi3au3ruz4ils1cuz4is4s5d4se_se4a2ce_2ici4ich3ceii1bri5bo1ceni1blse2g5seiibe43cepi2aniam4ur2li2al2i1acet4hy2scew41phy4ch_5phuhu4thu4gche2h4tyh4shur1durc44hr44h5p5sev5sexu1ra4s3fup3p2s3gph3t2sh_ho4g2h1n_he23ciau3pl4h1mci5ch2lozo4m4ciihi2vhi4p2cim2cin4phsu1peu1ouo1geu5osheu4sho4he4th1es4shwun5zun5ysi1bunu45cizo4glck3ihep5he2nh4ed1sioph2l5hazsi2rcly4zte4_ge21siscoe22cog5siu1siv5siz_ga24skes1l2s2leha4m2s1ms3ma1ogyo1h2u1ni3gus3gun2guegu4acov1gth3_eu3g4ros1n4_es3u2nez4zyum2pu1mi3som_ev2oig4cri2gov15goos4opgon2ul5v5goeu3lugob53go_2c1t4ph_g1nog1nic2te4sov4ulsgn4ag4myc4twcud5c4ufc4uipe2t3glo1gleul2igla4_eg23giz3cun5givgi4u3gir5gio1cusul4e2spagil4g1ic5gi__eb4cze41d2a5da_u1laggo44daf2dagg2gege4v1geo1gen2ged3dato1la2ge_ol2dol2i5daypek4p4eed1d42de_4gazol2tuiv3ol2vo2lys1sa2gamgaf4o2meui4n2ui2pe2cd4em4fugi4jku3fl3ufaf2tyf4to1denu4du4pe_2f3sfri2de1ps1si4f5pfos5d3eqs4sls4snfo2rss2tdes25fon4p1b_ci23payss5w2st_de1tf4l2de1v2fin4dey4d1fd4gast2idg1id2gyd1h25di_ud5dfi3au4cy_ch4pav43didu3cud1iff2fyu3crd1inst4r4f1ffev4fer11dio2fedfe4bdir2s2ty4fe_dis1on1au3ca4f5bon1c2ondd5k25far4fagpa1peys45eyc1exps4ul2dlyp4ale3whon3s3do_e1wa5doee5vud4oge1visu2msu2nub4euav4su2rp4ai6rk_d4or3dosu1atdo4v3doxp4adoo4k4swoo2padre4eus4e3upe5un2ophet5z4syc3syl4y3hoy1ads4pd4swd4syd2tho4wo3ta_du2c4etn2tabta2luac4es4wdu4g2ess4uabdu4n4duptav4st5bow1io1pr5dyn2tawe1sp2t1bop1uead1tz4et4chopy5ea4l4t1d4te_2tyle1si4esh1tee4tyat1cr4twoteg4es2c4eru1teoer1s2eroea2tte4po1rat1wh3tusea2v3teu3texer1i2e1ber1h4tey2t1f4t1ge3br2th_th2e4thle1ce3tumec2i2ths2erb1tia4tueer1aou5vtud2tif22tige1potu1aou4lttu41timt5toos4le1cre2pat4swe5owe1cue4ottsh4eos4e1ort4sce3ol4edieo2ge5of1tio4eno4enn5tiq4edoti4u1tive3my1tiz4othee2ct5laee2ft5lo4t1mee2mtme4e1meem5bcoi4to3be5exo1ry2tof1effel2iel2ftos24t1pe1la1traos2ceig2ei5de5ico2soe1h45egyeg5n", + 5 : "_ach4e4go_e4goseg1ule5gurtre5feg4iceher4eg5ibeger44egaltre4mei5gle3imbe3infe1ingtra3beir4deit3eei3the5ity5triae4jud3efiteki4nek4la2trime4la_e4lactri4v4toute4law5toure3leaefil45elece4ledto2rae5len4tonye1lestro3ve4fic4tonoto3mytom4bto2mato5ice5limto2gre3lioe2listru5i4todo4ellaee4tyello4e5locel5ogeest4el2shel4tae5ludel5uge4mace4mage5man2t1n2ee2s4ee4p1e2mele4metee4naemi4eee4lyeel3i3tled3tle_e4mistlan4eed3iem3iztrus4emo4gti3zaem3pie4mule4dulemu3ne4dritiv4aedon2e4dolti3tle5neae5neeen3emtis4pti5sotis4m3tisee3newti3sae5niee5nile3nioedi5zen3ite5niu5enized1ited3imeno4ge4nosen3oven4swti5oc4t1s2en3uaen5ufe3ny_4en3zed3ibe3diae4oi4ede4s3tini4ed3deo3ret2ina2e2dae4culeo4toe5outec4te4t3t2t4tes2t1ine5pel4timpe2corephe4e4plie2col5tigutu3arti5fytu4bie3pro3tienep4sh5tidie4putt4icoeci4t4tick2ti2bec3imera4bti4aber3ar4tuf45tu3ier4bler3che4cib2ere_4thooecca54thil3thet4thea3turethan4e4cade4bitere4qe4ben5turieret4tur5oeav5oeav5itu5ry4tess4tes_ter5ve1rio4eriter4iueri4v1terier3m4ter3cte5pe4t1waer3noeast3er5obe5rocero4rer1oue3assea5sp1tent4ertler3twtwis4eru4t3tende1s4a3tenc5telsear2te2scateli4e3scres5cue1s2ee2sec3tel_te5giear5kear4cte5diear3ae3sha2t1ede5ande2sice2sid5tecttece44teattype3ty5phesi4uea4gees4mie2sole3acte2sone1a4bdys5pdy4sedu4petaun4d3uleta5sytas4e4tare4tarctar4ata5pl2estrta5mo4talke2surtal3idu5eleta4bta5lae3teoua5naet1ic4taf4etin4ta5doe5tir4taciuan4id1ucad1u1ae3trae3tre2d1s2syn5ouar2d4drowet3uaet5ymdro4pdril4dri4b5dreneu3rouar3ieute44draieu5truar3te2vasdop4pe5veadoo3ddoni4u4belsum3iev1erdoli4do4laev3idevi4le4vinevi4ve5voc2d5ofdo5dee4wage5wee4d1n4ewil54d5lue3wit2d3lou3ber5eye_u1b4i3dledfa3blfab3rfa4ce3dle_fain4suit3su5issu2g34d5lasu4b3fa3tasu1al4fato1di1vd2iti5disiuci4bfeas4di1redi4pl4feca5fectdio5gfe3life4mofen2d4st3wuc4it5ferr5diniucle3f4fesf4fie4stry1dinaf4flydi3ge3dictd4icedia5bs4tops1tle5stirs3tifs4ties1ticfic4is5tias4ti_4ficsfi3cuud3ers3thefil5iste2w4filyudev45finas4tedfi2nes2talfin4ns2tagde2tode4suflin4u1dicf2ly5ud5isu5ditde1scd2es_der5sfon4tu4don5dermss4lid4erhfor4is4siede2pudepi4fra4tf5reade3pade3nufril4frol5ud4side3nou4eneuens4ug5infu5el5dem_s5setfu5nefu3rifusi4fus4s4futade5lode5if4dee_5gal_3galiga3lo2d1eds3selg5amos2s5cssas3u1ing4ganouir4mgass4gath3uita4deaf5dav5e5dav44dato4darygeez44spotspor4s4pon4gelydark5s4ply4spio4geno4genydard5ge3omg4ery5gesigeth54getoge4tydan3g4g1g2da2m2g3gergglu5dach4gh3inspil4gh4to4cutr1gi4agia5rula5bspho5g4icogien5s2pheulch42sperspa4n5spai3c4utu1lenul4gigir4lg3islcu5pycu3picu4mic3umecu2maso5vi5glasu5liagli4bg3lig5culiglo3r4ul3mctu4ru1l4og4na_c3terul1tig2ning4nio4ultug4noncta4b4c3s2cru4dul5ulsor5dgo3isum5absor5ccris4go3nic4rinson4gsona45gos_cri5fcre4vum4bi5credg4raigran25solvsoft3so4ceunat44graygre4nco5zi4gritcoz5egruf4cow5ag5stecove4cos4es5menun4ersmel44corbco4pl4gu4tco3pacon5tsman3gy5racon3ghach4hae4mhae4th5aguha3lac4onecon4aun4ims3latu2ninhan4gs3ket5colocol5ihan4kuni3vhap3lhap5ttras4co4grhar2dco5agsir5aclim45sionhas5shaun44clichaz3acle4m1head3hearun3s4s3ingun4sws2ina2s1in4silysil4eh5elohem4p4clarhena45sidiheo5r1c4l4h4eras5icc2c1itu4orsh3ernshor4h3eryci3phshon34cipecion45cinoc1ingc4inahi5anhi4cohigh5h4il2shiv5h4ina3ship3cilihir4lhi3rohir4phir4rsh3iohis4ssh1inci4lau5pia4h1l4hlan44cier5shevcia5rhmet4ch4tish1erh5ods3cho2hoge4chi2z3chitho4mahome3hon4aho5ny3hoodhoon45chiouptu44ura_ho5ruhos4esew4ihos1p1housu4ragses5tu4rasur4behree5se5shs1e4s4h1s24chedh4tarht1enht5esur4fru3rifser4os4erlhun4tsen5gur1inu3riosen4dhy3pehy3phu1ritces5tur3iz4cesa4sencur4no4iancian3i4semeia5peiass45selv5selfi4atu3centse1le4ceniib5iaib3inseg3ruros43cencib3li3cell5cel_s5edli5bun4icam5icap4icar4s4ed3secticas5i4cayiccu44iceour4pe4ced_i5cidsea5wi2cipseas4i4clyur4pi4i1cr5icrai4cryic4teictu2ccon4urti4ic4umic5uoi3curcci4ai4daiccha5ca4thscof4ide4s4casys4cliscle5i5dieid3ios4choid1itid5iui3dlei4domid3owu5sadu5sanid5uous4apied4ecany4ield3s4cesien4ei5enn4sceii1er_i3esci1estus3ciuse5as4cedscav5if4frsca4pi3fieu5siau3siccan4eiga5bcan5d4calous5sli3gibig3ilig3inig3iti4g4lus1trig3orig5oti5greigu5iig1ur2c5ah4i5i44cag4cach4ca1blusur4sat3usa5tab5utoi3legil1erilev4uta4b4butail3iail2ibil3io3sanc2ilitil2izsal4t5bustil3oqil4tyil5uru3tati4magsa5losal4m4ute_4imetbu3res3act5sack2s1ab4imitim4nii3mon4utelbumi4bu3libu4ga4inav4utenbsor42b5s2u4tis4briti3neervi4vr3vic4inga4inger3vey4ingir3ven4ingo4inguu4t1li5ni_i4niain3ioin1isbo4tor5uscrunk5both5b5ota5bos42i1no5boriino4si4not5borein3seru3in2int_ru4glbor5di5nusut5of5bor_uto5gioge4io2grbon4au5tonru3enu4touion3iio5phior3ibod3iio5thi5otiio4toi4ourbne5gb3lisrt4shblen4ip4icr3triip3uli3quar4tivr3tigrti4db4le_b5itzira4bi4racird5ert5ibi4refbi3tri4resir5gibi5ourte5oir4isr3tebr4tagbin4diro4gvac3uir5ul2b3ifis5agis3arisas52is1cis3chbi4eris3erbi5enrson3be5yor5shais3ibisi4di5sisbe3tw4is4krs3es4ismsbe5trr3secva4geis2piis4py4is1sbe3sp4bes4be5nuval5ois1teis1tirrys4rros44be5mis5us4ita_rron4i4tagrri4vi3tani3tatbe3lorri4or4reoit4esbe1libe5gu4itiarre4frre4cbe3giit3igbe3dii2tim2itio4itisrp4h4r3pet4itonr4peait5rybe3debe3dai5tudit3ul4itz_4be2dbeat3beak4ro4varo4tyros4sro5roiv5ioiv1itror3i5root1roomval1ub3berva5mo4izarva5piron4eban3ijac4qban4ebal1ajer5srom4prom4iba4geazz5i5judgay5alax4idax4ickais4aw4ly3awaya1vorav5ocav3igke5liv3el_ve4lov4elyro1feke4tyv4erdv4e2sa5vanav3ag5k2ick4illkilo5au1thk4in_4ves_ro3crkin4gve4teaun5dk5ishau4l2au3gu4kleyaugh3ve4tyk5nes1k2noat3ulkosh4at5uekro5n4k1s2at5uaat4that5te5vianat4sk5vidil4abolaci4l4adela3dylag4nlam3o3landrob3la4tosr4noular4glar3ilas4ea4topr3nivr3nita2tomr5nica4toglbin44l1c2vi5gnat3ifat1ica5tiar3neyr5net4ati_ld5isat4hol4driv2incle4bileft55leg_5leggr4nerr3nel4len_3lencr4nar1lentle3phle4prvin5dler4e3lergr3mitl4eroat5evr4mio5lesq3lessr3menl3eva4vingrma5cvio3lvi1ou4leyevi5rovi3so4l1g4vi3sulgar3l4gesate5cat5apli4agli2amr3lo4li4asr4lisli5bir4ligr2led4lics4vitil4icul3icyl3idaat5ac3lidirk4lel4iffli4flr3ket3lighvit3r4vityriv3iri2tulim3ili4moris4pl4inar3ishris4clin3ir4is_li5og4l4iqlis4pas1trl2it_as4shas5phri2pla4socask3ia3sicl3kallka4ta3sibl4lawashi4l5leal3lecl3legl3lel5riphas4abar2shrin4grin4ear4sarin4dr2inal5lowarre4l5met3rimol4modlmon42l1n2a3roorim5ilo4civo4la5rigil5ogo3loguri5et5longlon4iri1erlood5r4icolop3il3opmlora44ricir4icerib3a5los_v5oleri4agria4blos4tlo4taar2mi2loutar2izar3iolpa5bl3phal5phi4rhall3pit5voltar4im3volv2l1s2vom5ivori4l4siear4fllt5agar4fivo4rylten4vo4talth3ia3reeltis4ar4drw5ablrgo4naraw4lu3brluch4lu3cilu3enwag5olu5idlu4ma5lumia5raur5gitwait5luo3rw5al_luss4r5gisar4atl5venrgi4nara3pwar4tar3alwas4tly5mely3no2lys4l5ysewa1teaque5ma2car3gicma4clr3get5magnwed4nmaid54maldrg3erweet3wee5vwel4lapoc5re4whwest3ap3in4aphires2tr4es_mar3vre5rumas4emas1t5matemath3rero4r4eriap5atr1er4m5bilre1pumbi4vapar4a5nuran3ul4med_an3uare5lure1lian4twre5itmel4tan2trre4fy4antomen4are3fire2fe4menemen4imens4re1de3ment2r2edme5onre4awwin4g5reavme4tare3anme1tere1alm4etr3wiserdin4rdi4aan4stwith3an2span4snan2samid4amid4gan5otwl4esr4dalm4illmin4a3mindrcum3rc4itr3charcen4min4tm4inumiot4wl3ina3niumis5lan3ita3nip4mithan3ioan1gla3neuws4per2bina3nena5neem4ninw5s4tan1dl4mocrrbi4fmo2d1mo4gomois2xac5ex4agor4bagmo3mer4baba3narrau4ta5monrare4rar5cra5nor4aniam1inr2amiam5ifra4lomo3spmoth3m5ouf3mousam3icxer4ixe5roraf4tr5aclm3petra3bixhil5mpi4aam3ag3quetm5pirmp5is3quer2que_qua5vmpov5mp4tram5ab3alyz4m1s25alyt4alysa4ly_ali4exi5di5multx4ime4aldia4laral3adal5abak1enain5opu3trn4abu4nac_na4can5act5putexpe3dna4lia4i4n4naltai5lya3ic_pur4rag5ulnank4nar3c4narenar3inar4ln5arm3agognas4c4ag4l4ageupul3cage4oaga4na4gab3nautnav4e4n1b4ncar5ad5umn3chaa3ducptu4rpti3mnc1innc4itad4suad3owad4len4dain5dana5diua3ditndi4ba3dion1ditn3dizn5ducndu4rnd2we3yar4n3eara3dianeb3uac4um5neckac3ulp4siba3cio5negene4laac1inne5mine4moa3cie4nene4a2cine4poyc5erac1er2p1s2pro1tn2erepro3lner4rych4e2nes_4nesp2nest4neswpri4sycom4n5evea4carab3uln4gabn3gelpre3vpre3rycot4ng5han3gibng1inn5gitn4glangov4ng5shabi5an4gumy4erf4n1h4a5bannhab3a5bal3n4iani3anni4apni3bani4bl_us5ani5dini4erni2fip3petn5igr_ure3_un3up3per_un5op3pennin4g_un5k5nis_p5pel_un1en4ithp4ped_un1ani3tr_to4pympa3_til4n3ketnk3inyn5ic_se2ny4o5gy4onsnmet44n1n2_ru4d5pounnni4vnob4lpo4tan5ocly4ped_ro4qyper5noge4pos1s_ri4gpo4ry1p4or_res2no4mono3my_ree2po4ninon5ipoin2y4poc5po4gpo5em5pod_4noscnos4enos5tno5tayp2ta3noun_ra4cnowl3_pi2tyra5m_pi4eyr5ia_out3_oth32n1s2ns5ab_or3t_or1d_or3cplu4mnsid1nsig4y3s2eys3ion4socns4pen5spiploi4_odd5nta4bpli4n_ni4cn5tib4plignti2fpli3a3plannti4p1p2l23ysis2p3k2ys3ta_mis1nu5enpi2tun3uinp3ithysur4nu1men5umi3nu4nyt3icnu3trz5a2b_li4t_li3o_li2n_li4g_lev1_lep5_len4pion4oard3oas4e3pi1ooat5ip4inoo5barobe4l_la4mo2binpind4_ju3rob3ul_is4i_ir5rp4in_ocif3o4cil_in3so4codpi3lopi3enocre33piec5pidipi3dep5ida_in2kod3icodi3oo2do4odor3pi4cypian4_ine2o5engze3rooe4ta_im3m_id4l_hov5_hi3b_het3_hes3_go4r_gi4bpho4ro5geoo4gero3gie3phobog3it_gi5azo5ol3phizo4groogu5i4z1z22ogyn_fes3ohab5_eye55phieph1icoiff4_en3sph4ero3ing_en3go5ism_to2qans3v_el5d_eer4bbi4to3kenok5iebio5mo4lanper1v4chs_old1eol3erpe5ruo3letol4fi_du4co3liaper3op4ernp4erio5lilpe5ono5liop4encpe4la_do4tpee4do5livcin2q3pediolo4rol5pld3tabol3ub3pedeol3uno5lusedg1le1loaom5ahoma5l2p2edom2beom4bl_de3o3fich3pe4ao4met_co4ro3mia_co3ek3shao5midom1inll1fll3teapa2teo4monom3pi3pare_ca4tlue1pon4aco3nanm2an_pa4pum2en_on5doo3nenng1hoon4guon1ico3nioon1iso5niupa3nypan4ao3nou_bri2pain4ra1oronsu4rk1hopac4tpa4ceon5umonva5_ber4ood5eood5i6rks_oop3io3ordoost5rz1scope5dop1erpa4ca_ba4g_awn4_av4i_au1down5io3pito5pon1sync_as1s_as1p_as3ctch1c_ar5so5ra_ow3elo3visov4enore5auea1mor3eioun2d_ant4orew4or4guou5etou3blo5rilor1ino1rio_ang4o3riuor2miorn2eo5rofoto5sor5pe3orrhor4seo3tisorst4o3tif_an5cor4tyo5rum_al3tos3al_af1tos4ceo4teso4tano5scros2taos4poos4paz2z3wosi4ue3pai", + 6 : "os3ityos3itoz3ian_os4i4ey1stroos5tilos5titxquis3_am5atot3er_ot5erso3scopor3thyweek1noth3i4ot3ic_ot5icao3ticeor3thiors5enor3ougor3ityor3icaouch5i4o5ria_ani5mv1ativore5sho5realus2er__an3teover3sov4erttot3icoviti4o5v4olow3dero4r3agow5esto4posiop3ingo5phero5phanthy3sc3operaontif5on3t4ionten45paganp3agattele2gonspi4on3omyon4odipan3elpan4tyon3keyon5est3oncil_ar4tyswimm6par5diompro5par5elp4a4ripar4isomo4gepa5terst5scrpa5thy_atom5sta1tio5miniom3icaom3ic_ss3hatsky1scpear4lom3ena_ba5naol3umer1veilpedia4ped4icolli4er1treuo5liteol3ishpeli4epe4nano5lis_pen4thol3ingp4era_r1thoup4erago3li4f_bas4er1krauperme5ol5id_o3liceper3tio3lescolass4oi3terpe5tenpe5tiz_be5raoi5son_be3smphar5iphe3nooi5letph4es_oi3deroic3esph5ingr3ial_3ognizo5g2ly1o1gis3phone5phonio5geneo4gatora3mour2amenofit4tof5itera3chupi4ciepoly1eod5dedo5cureoc3ula1pole_5ocritpee2v1param4oc3raco4clamo3chetob5ingob3a3boast5eoke1st3nu3itpi5thanuf4fentu3meoerst2o3chasplas5tn3tinepli5ernti4ernter3sntre1pn4s3esplum4bnsati4npre4cns4moonon1eqnor5abpo3et5n5lessn5oniz5pointpoly5tnon4agnk3rup3nomicng1sprno5l4inois5i4n3o2dno3blenni3aln5keroppa5ran3itor3nitionis4ta5nine_ni3miznd3thrmu2dron3geripray4e5precipre5copre3emm3ma1bpre4lan5gerep3rese3press_can5cmedi2c5pri4e_ce4la3neticpris3op3rocal3chain4er5ipros3en4erarnera5bnel5iz_cit5rne4gatn5d2ifpt5a4bjanu3aign4itn3chisn5chiln5cheon4ces_nau3seid4iosna3talnas5tinan4itnanci4na5mitna5liahnau3zput3er2n1a2bhex2a3hatch1multi3hair1sm4pousg1utanmpo3rim4p1inmp5iesmphas4rach4empar5iraf5figriev1mpara5mo5seyram3et4mora_rane5oran4gemo3ny_monol4rap3er3raphymo3nizgno5morar5ef4raril1g2nacg1leadmoni3ara5vairav3elra5ziemon5gemon5etght1wemoi5sege3o1dmma5ryr5bine3fluoren1dixmis4ti_de3ra_de3rie3chasrch4err4ci4bm4inglm5ineedu2al_3miliame3tryrdi4er_des4crd3ingdi2rerme5thimet3alre5arr3mestim5ersadi2rende2ticdes3icre4cremen4temensu5re3disred5itre4facmen4dede2mosmen5acmem1o3reg3ismel5onm5e5dyme3died2d5ibren4te5mediare5pindd5a5bdata1bmba4t5cle4arma3tisma5scemar4lyre4spichs3huma5riz_dumb5re3strre4terbrus4qre3tribio1rhre5utiman3izre4valrev3elbi1orbbe2vie_eas3ire5vilba1thyman5is5maniamal4tymal4lima5linma3ligmag5inav3ioul5vet4rg3inglus3teanti1dl5umn_ltur3a_el3emltera4ltane5lp5ingloun5dans5gra2cabllos5etlor5ouric5aslo5rie_enam35ricidri4cie5lope_rid5erri3encri3ent_semi5lom3errig5an3logicril3iz5rimanlob5allm3ingrim4pell5out5rina__er4ril5linal2lin4l3le4tl3le4nriph5eliv3er_ge5og_han5k_hi3er_hon3olin3ea1l4inel4im4p_idol3_in3ci_la4cy_lath5rit3iclim4blrit5urriv5elriv3et4l4i4lli4gra_leg5elif3errk4linlid5er4lict_li4cor5licioli4atorl5ish_lig5a_mal5o_man5a_mer3c5less_rm5ersrm3ingy3thinle5sco3l4erilera5b5lene__mon3ele4matld4erild4erela4v4ar1nis44lativ_mo3rola5tanlan4telan5etlan4dllab3ic_mu5takin4dek3est_ro5filk3en4dro5ker5role__of5te4jestyys3icaron4al5izont_os4tlron4tai4v3ot_pe5tero3pelrop3ici5voreiv5il__pio5n_pre3mro4the_ran4tiv3en_rov5eliv3ellit3uati4tramr5pentrp5er__rit5ui4tismrp3ingit5ill_ros5tit3ica4i2tici5terirre4stit3era4ita5mita4bi_row5dist4lyis4ta_is4sesrsa5tiissen4is4sal_sci3erse4crrs5er_islan4rse5v2yo5netish5opis3honr4si4bis5han5iron_ir4minrtach4_self5iri3turten4diri5dei4rel4ire4de_sell5r4tieriq3uidrtil3irtil4lr4tilyr4tistiq5uefip4re4_sing4_ting4yn3chrru3e4lion3at2in4th_tin5krum3pli4no4cin3ityrun4ty_ton4aruti5nymbol5rvel4i_top5irv5er_r5vestin5geni5ness_tou5s_un3cein3cerincel45ryngei4n3auim3ulai5miniimi5lesac3riim5ida_ve5rasalar4ima5ryim3ageill5abil4istsan4deila5rai2l5am_wil5ii4ladeil3a4bsa5voright3iig3eraab5erd4ific_iff5enif5eroi3entiien5a45ie5gaidi5ou3s4cieab5latidi4arid5ianide3al4scopyab5rogid5ancic3ulaac5ardi2c5ocic3ipaic5inase2c3oi4carai4car_se4d4ei2b5riib5iteib5it_ib5ertib3eraac5aroi4ativ4ian4tse4molsen5ata5ceouh4warts5enedhus3t4s5enin4sentd4sentlsep3a34s1er_hun5kehu4min4servohro3poa5chethov5el5se5umhouse3sev3enho5senhort3eho5rishor5at3hol4ehol5arh5odizhlo3riac5robhis3elhion4ehimer4het4edsh5oldhe2s5ph5eroushort5here5aher4bahera3p3side_5sideshen5atsi5diz4signahel4lyact5ifhe3l4ihe5do55sine_h5ecathe4canad4dinsion5aad5er_har4lehard3e3sitioha5rasha3ranhan4tead3icahang5oadi4ersk5inesk5ing5hand_han4cyhan4cislith5hala3mh3ab4lsmall32g5y3n5gui5t3guard5smithad5ranaeri4eag5ellag3onia5guerso4labsol3d2so3licain5in4grada3s4on_gor5ougo5rizgondo5xpan4dait5ens5ophyal3end3g4o4ggnet4tglad5i5g4insgin5ge3g4in_spen4d2s5peog3imen5gies_3spher5giciagh5outsp5ingge5nizge4natge5lizge5lisgel4inxi5miz4gativgar5n4a5le5oga3nizgan5isga5mets5sengs4ses_fu4minfres5cfort5assi4erss5ilyfore5tfor5ayfo5ratal4ia_fon4dessur5aflo3ref5lessfis4tif1in3gstam4i5stands4ta4p5stat_fin2d5al5levs5tero4allicstew5afight5fi5del5ficie5ficiafi3cer5stickf3icena5log_st3ingf3icanama5ra5stockstom3a5stone2f3ic_3storef2f5iss4tradam5ascs4trays4tridf5fin_fend5efeath3fault5fa3thefar5thfam5is4fa4mafall5eew3inge5verbeven4ie5vengevel3oev3ellev5asteva2p5euti5let5roset3roget5rifsy5rinet3ricet5onaam5eraam5ilyami4noamor5ieti4noe5tidetai5loethod3eten4dtal5enes5urramp5enan3ageta5loge5strotan4detanta3ta5pere3ston4es2toes5times3tigta3rizestan43analy4taticta4tures4prean3arces3pertax4ises5onaes3olue5skintch5etanar4ies4i4ntead4ie2s5ima3natiande4sesh5enan3disan4dowang5iete5geres5ences5ecres5cana4n1icte2ma2tem3at3tenanwrita45erwau4tenesert3era3nieser3set5erniz4erniter4nis5ter3de4rivaan3i3fter3isan4imewo5vener3ineeri4ere3rient3ess_teth5e5ericke1ria4er3ester5esser3ent4erenea5nimier5enaer3emoth3easthe5atthe3iser5el_th5ic_th5icaere3in5thinkere5coth5odea5ninee3realan3ishan4klier4che5anniz4erandti4atoanoth5equi3lep5utat4ic1uan4scoe4probep3rehe4predans3poe4precan4surantal4e3penttim5ulep5anceo5rol3tine_eop3aran4tiewin4deap5eroen3ishen5icsen3etren5esten5esien5eroa3pheren3dicap3itae4nanten5amoem5ulaa3pituti3zen5emnize5missem5ishap5olaem5ine3tles_t5let_em1in2apor5iem3icaem5anael3op_el4labapos3te3liv3el5ishaps5esweath3e3lierel3icaar3actwa5verto3nate3libee4l1erel3egato3rietor5iza5radeelaxa4aran4gto3warelan4dej5udie5insttra5chtraci4ar5av4wa5gere5git5arbal4ar5easeg5ing4voteetrem5iar3enta5ressar5ial4tricsvor5abe3finetro5mitron5i4tronyar3iantro3sp5eficia3rieted5uloed3icae4d1erec3ulaec4tane4cremeco5roec3orae4concar5o5de4comme4cluse4clame5citeec5ifya5ronias3anta5sia_tu4nis2t3up_ecan5ce4belstur3ise4bel_eav3ene4a3tue5atifeath3ieat5eneart3eear4ilear4icear5eseam3ereal3oueal5erea5geread5iedum4be4ducts4duct_duc5eras3tenasur5adrea5rat3abl4d5outdo3natdom5izdo5lor4dlessu4bero3dles_at3alou3ble_d4is3tdirt5idi5niz3dine_at5ech5di3endi4cam1d4i3ad3ge4tud5estdev3ilde3strud3iedud3iesdes3tide2s5oat3egovis3itde4nardemor5at3en_uen4teuer4ilde5milat3eraugh3en3demicater5nuil5izdeli4ede5comde4cildecan4de4bonv3io4rdeb5it4dativ2d3a4bat3estu5laticu4tie5ulcheul3dercuss4icu5riaath5em3cultua5thenul3ingul5ishul4lar4vi4naul4liscu5ityctim3ic4ticuuls5esc5tantultra3ct5angcros4ecrop5ocro4pl5critiath5omum4blycre3at5vilitumor5oat5i5b5crat_cras5tcoro3ncop3iccom5ercol3orun5ishco3inc5clareat3ituunt3abat5ropun4tescit3iz4cisti4cista4cipicc5ing_cin3em3cinatuper5s5videsup3ingci2a5b5chini5videdupt5ib5vide_at4tag4ch1inch3ersch3er_ch5ene3chemiche5loure5atur4fercheap3vi5aliat3uravet3er4ch3abc5e4taau5sib3cessives4tece5ram2cen4e4cedenccou3turs5erur5tesur3theaut5enur4tiecav5al4cativave4nover3thcar5omca5percan4tycan3izcan5iscan4icus4lin3versecal4laver3ieca3latca5dencab3in3butiobuss4ebus5iebunt4iv4eresuten4i4u1t2iv3erenu3tineut3ingv4erelbroth35u5tizbound34b1orabon5at5vere_bom4bibol3icblun4t5blespblath5av3erav5enuebi3ogrbi5netven3om2v1a4bvac5ilbi3lizbet5izbe5strva5liebe5nigbbi4nabas4siva5nizbari4aav5ernbarbi5av5eryvel3liazi4eravi4er", + 7 : "_dri5v4ban5dagvar5iedbina5r43bi3tio3bit5ua_ad4derution5auti5lizver5encbuf4ferus5terevermi4ncall5incast5ercas5tigccompa5z3o1phros5itiv5chanicuri4fico5stati5chine_y5che3dupport54v3iden5cific_un4ter_at5omiz4oscopiotele4g5craticu4m3ingv3i3liz4c3retaul4li4bcul4tiscur5a4b4c5utiva5ternauiv4er_del5i5qdem5ic_de4monsdenti5fdern5izdi4latou4b5ingdrag5on5drupliuar5ant5a5si4tec5essawo4k1enec5ifiee4compear5inate4f3eretro5phewide5sp5triciatri5cesefor5ese4fuse_oth5esiar5dinear4chantra5ventrac4tetrac4itar5ativa5ratioel5ativor5est_ar5adisel5ebraton4alie4l5ic_wea5rieel5igibe4l3ingto5cratem5igraem3i3niemoni5oench4erwave1g4a4pillavoice1ption5eewill5inent5age4enthesvaude3vtill5inep5recaep5ti5bva6guer4erati_tho5rizthor5it5thodicer5ence5ternitteri5zater5iesten4tage4sage_e4sagese4sert_an5est_e4sertse4servaes5idenes5ignaesis4tees5piraes4si4btal4lisestruc5e5titioounc5erxe4cutota5bleset5itiva4m5atoa4matis5stratu4f3ical5a5lyst4ficatefill5instern5isspend4gani5zasqual4la4lenti4g3o3nas5ophiz5sophicxpecto55graph_or5angeuri4al_4graphy4gress_smol5d4hang5erh5a5nizharp5enhar5terhel4lishith5erhro5niziam5eteia4tricic4t3uascour5au2r1al_5scin4dover4nescan4t55sa3tiou5do3ny_ven4de_under5ty2p5al_anti5sylla5bliner4arturn3ari5nite_5initioinsur5aion4eryiphras4_tim5o5_ten5an_sta5blrtroph4_se5rieiq3ui3t5i5r2izis5itiviso5mer4istral5i5ticki2t5o5mtsch3ie_re5mittro3fiti4v3er_i4vers_ros5per_pe5titiv3o3ro_ped5alro5n4is_or5ato4jestierom5ete_muta5bk5iness4latelitr4ial__mist5i_me5terr4ming_lev4er__mar5tilev4eralev4ers_mag5a5liar5iz5ligaterit5ers_lat5errit5er_r5ited__im5pinri3ta3blink5er_hon5ey5litica_hero5ior5aliz_hand5irip5lic_gen3t4tolo2gylloqui5_con5grt1li2erbad5ger4operag_eu4lertho3donter2ic__ar4tie_ge4ome_ge5ot1_he3mo1_he3p6a_he3roe_in5u2tpara5bl5tar2rht1a1mintalk1a5ta3gon_par5age_aster5_ne6o3f_noe1thstyl1is_poly1s5pathic_pre1ampa4tricl3o3niz_sem4ic_semid6_semip4_semir45ommend_semiv4lea4s1a_spin1oom5etryspher1o_to6poglo4ratospe3cio3s2paceso2lute_we2b1l_re1e4ca5bolicom5erseaf6fishside5swanal6ysano5a2cside5stl5ties_5lumniasid2ed_anti1reshoe1stscy4th1s4chitzsales5wsales3cat6tes_augh4tlau5li5fom5atizol5ogizo5litiorev5olure5vertre5versbi5d2ifbil2lab_earth5pera5blro1tronro3meshblan2d1blin2d1blon2d2bor1no5ro1bot1re4ti4zr5le5quperi5stper4malbut2ed_but4tedcad5e1moist5enre5stalress5ibchie5vocig3a3roint5er4matizariv1o1lcous2ticri3tie5phisti_be5stoog5ativo2g5a5rr3a3digm4b3ingre4posir4en4tade4als_od5uctsquasis6quasir6re5fer_p5trol3rec5olldic1aiddif5fra3pseu2dr5ebrat5metric2d1lead2d1li2epro2g1epre1neuod5uct_octor5apoin3came5triem5i5liepli5narpara3memin5glim5inglypi4grappal6matmis4er_m5istryeo3graporth1riop1ism__but4tio3normaonom1icfeb1ruafermi1o_de4moio5a5lesodit1icodel3lirb5ing_gen2cy_n4t3ingmo5lestration4get2ic_4g1lishobli2g1mon4ismnsta5blmon4istg2n1or_nov3el3ns5ceivno1vembmpa5rabno4rarymula5r4nom1a6lput4tinput4tedn5o5miz_cam4penag5er_nge5nesh2t1eoun1dieck2ne1skiifac1etncour5ane3backmono1s6mono3chmol1e5cpref5ac3militapre5tenith5i2lnge4n4end5est__capa5bje1re1mma1la1ply5styr1kovian_car5olprin4t3lo2ges_l2l3ishprof5it1s2tamp", + 8 : "lead6er_url5ing_ces5si5bch5a5nis1le1noidlith1o5g_chill5ilar5ce1nym5e5trych5inessation5arload4ed_load6er_la4c3i5elth5i2lyneg5ativ1lunk3erwrit6er_wrap3arotrav5es51ke6linga5rameteman3u1scmar1gin1ap5illar5tisticamedio6c1me3gran3i1tesima3mi3da5bves1titemil2l1agv1er1eigmi6n3is_1verely_e4q3ui3s5tabolizg5rapher5graphicmo5e2lasinfra1s2mon4ey1lim3ped3amo4no1enab5o5liz_cor5nermoth4et2m1ou3sinm5shack2ppo5sitemul2ti5uab5it5abimenta5rignit1ernato5mizhypo1thani5ficatuad1ratu4n5i4an_ho6r1ic_ua3drati5nologishite3sidin5dling_trib5utin5glingnom5e1non1o1mistmpos5itenon1i4so_re5stattro1p2istrof4ic_g2norespgnet1ism5glo5binlem5aticflow2er_fla1g6elntrol5lifit5ted_treach1etra1versl5i5ticso3mecha6_for5mer_de5rivati2n3o1me3spac6i2t3i4an_thy4l1antho1k2er_eq5ui5to4s3phertha4l1amt3ess2es3ter1geiou3ba3dotele1r6ooxi6d1iceli2t1isonspir5apar4a1leed1ulingea4n3iesoc5ratiztch3i1er_kil2n3ipi2c1a3dpli2c1abt6ap6athdrom3e5d_le6icesdrif2t1a_me4ga1l1prema3cdren1a5lpres2plipro2cess_met4ala3do5word1syth3i2_non1e2m_post1ampto3mat4rec5ompepu5bes5cstrib5utqu6a3si31stor1ab_sem6is4star3tliqui3v4arr1abolic_sph6in1de5clar12d3aloneradi1o6gs3qui3tosports3wsports3cra5n2hascro5e2cor3bin1gespokes5wspi2c1il_te3legrcroc1o1d_un3at5t_dictio5cat1a1s2buss4ingbus6i2esbus6i2erbo2t1u1lro5e2las1s2pacinb1i3tivema5rine_r3pau5li_un5err5r5ev5er__vi2c3arback2er_ma5chinesi5resid5losophyan3ti1n2sca6p1ersca2t1olar2rangesep3temb1sci2uttse3mes1tar3che5tsem1a1ph", + 9 : "re4t1ribuuto5maticl3chil6d1a4pe5able1lec3ta6bas5ymptotyes5ter1yl5mo3nell5losophizlo1bot1o1c5laratioba6r1onierse1rad1iro5epide1co6ph1o3nscrap4er_rec5t6angre2c3i1prlai6n3ess1lum5bia_3lyg1a1miec5ificatef5i5nites2s3i4an_1ki5neticjapan1e2smed3i3cinirre6v3ocde2c5linao3les3termil5li5listrat1a1gquain2t1eep5etitiostu1pi4d1v1oir5du1su2per1e6_mi1s4ers3di1methy_mim5i2c1i5nitely_5maph1ro15moc1ra1tmoro6n5isdu1op1o1l_ko6r1te1n3ar4chs_phi2l3ant_ga4s1om1teach4er_parag6ra4o6v3i4an_oth3e1o1sn3ch2es1to5tes3toro5test1eror5tively5nop5o5liha2p3ar5rttrib1ut1_eth1y6l1e2r3i4an_5nop1oly_graph5er_5eu2clid1o1lo3n4omtrai3tor1_ratio5na5mocratiz_rav5en1o", + 10 : "se1mi6t5ic3tro1le1um5sa3par5iloli3gop1o1am1en3ta5bath3er1o1s3slova1kia3s2og1a1myo3no2t1o3nc2tro3me6c1cu2r1ance5noc3er1osth1o5gen1ih3i5pel1a4nfi6n3ites_ever5si5bs2s1a3chu1d1ri3pleg5_ta5pes1trproc3i3ty_s5sign5a3b3rab1o1loiitin5er5arwaste3w6a2mi1n2ut1erde3fin3itiquin5tes5svi1vip3a3r", + 11 : "pseu3d6o3f2s2t1ant5shimi1n2ut1estpseu3d6o3d25tab1o1lismpo3lyph1onophi5lat1e3ltravers3a3bschro1ding12g1o4n3i1zat1ro1pol3it3trop1o5lis3trop1o5lesle3g6en2dreeth1y6l1eneor4tho3ni4t", + 12 : "3ra4m5e1triz1e6p3i3neph1" + } +}; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/en.js b/resources/viewer/hyphenate/patterns/en.js deleted file mode 100644 index 0ec36bcc65..0000000000 --- a/resources/viewer/hyphenate/patterns/en.js +++ /dev/null @@ -1,16 +0,0 @@ -Hyphenator.languages.en = { - leftmin : 2, - rightmin : 2, - shortestPattern : 2, - longestPattern : 8, - specialChars : '', - patterns : { - 3 : 'a2da2fai2a1ja2n4ao2bfb1jbk44bp2btb1v1cac3c2ch1cick1c5n1coc1q1cyd1bd5cd1jd1m1dod1p1dr1dud1vd1wd2ye1fei2e1je1q4eu1fa4fd4fh1fi4fm4fn1fo2ft3fu1fy1gag3bgd4gl2g1m1gog3p1grgs2g3w1gyh1bh1fh1h4hkh1w2id2igi3hi3j4ik2io2ip4iri1u2iv4iy5ja1jek1bk3fkh4k1ikk4k1lk1mk5tk1w2ld2lf4ljl1l2lm2lp4lt1ly1ma2mh4mkm1m1mo4mt1mu4mw1nan3fn1jn5mn1qn1rn1t4nz4oaoi2o5j2oko2noo2o1qou21papd44pf4pgpr2p3wqu2r1br1cr1frg2rh4r3jr1lr1mr1pr1wsa2s2hsk21sos1r2ss1su4svsw2s4y1ta4tc2tl1to1tu4tvtw41ty4tzu5j4uk2usu3u1vav4yw1bwi2w4kw5p4wtwy4x1ax1ex1hx3ix3ox3px1uxx4y1by1cy1dy1iy1wza14zb2ze5zl4zm1zo', - 4 : '_ch4_ci2_eb4_eg2_es3_eu3_ga2_ge2_he2_in1_le2_me2_od2_os3_sh2_si2_st4_sy2_ta4_te4_th2_ti2_up3_ye44ab_abe24abr2adi4aduae4raff4ag1iag1na2goa4gya3haa3heah4la3hoa5ia2aleal1i4alm4amaa2mo4and2angano4a2pla3pu2a2rar1iar2par3q4as_as4la2ta4atha1tra2tua2tyau4bau3ra2vaav1iaw3iaws4aye4ays45ba_1batba4z2b1bb2be4b1d4be_1bel3betbe3w4b3hbi2bbi4d3bie1bilbi2tb2l2b4lo4b1m4b3n3bodbo4e3boobt4lb4tob3trbu4n4b5w5by_bys42ce_3cei1cen3cepcet4cew44ch_che23ciaci5c4cii2cim2cin5cizck3icly4coe22cogcoi4cov1cri22c1tc2tec4twcud5c4ufc4ui3cun1cuscze41d2a5da_4daf2dag3dat5dayd1d42de_d4em1dende1pd3eqdes2de1tde1v4dey4d1fd4gadg1id2gyd1h25di_3didd1ifd1in1diodir2dis1d5k22dly3do_5doed4ogd4or3dosdo4v3doxdre44dryds4pd4swd4syd2thdu2cdu4gdu4n4dup5dynead1ea4lea2tea2v2e1be3bre1ceec2ie1cre1cu4edi4edoee2cee2fee2me5ex1effeg5n5egye1h4e5icei5deig2e1lael2fel2iem5be1mee3my4enn4enoe5ofeo2ge3ole1oreos4e4ote5owe2pae1poer1a2erber1her1i2eroer1s4erues2c4eshe1sie1sp2esses4w4etnet5ze5une3upeus4e1vie5vue1wae3wh1exp5eyceys44fag5far4f5b4fe_fe4b2fedfer1fev44f1ff2fyfi3a2finf4l25fonfo2rfos54f5pfri22f3sf4tof2ty4fuggaf42gam4gaz2ge_2ged1gen1geoge4vg2geggo45gi_g1icgil45gio3girgi4u5giv3gizgla41gle3glog4mygn4ag1nig1no3go_gob55goegon25googov1g4rogth3gu4a2gue3gun3gusha4m5hazh4edhe2nhep5h1eshe4theu4hi4phi2vh2lo4h1m2h1nho4g4h5p4hr4h4shh4tyhu4ghu4thy2s2i1ai2aliam4i2anibe4i1bli5boi1br4ich2iciid5di2dii4dri2du2ie4i3et4if_i3fl4ift4igii2goi1lail5fil1i4ilnil3vim1ii2mu2in_4ind2ine2ini4ink4inl2inn2insin1u4iny4io_i1olio4mi4osipe4ip3ii1rair1i2is_4ise3isfi2sois1pi2su2ite2ithi1ti4itt4i5wix4oizi4ja4pjew3jo4p3ka_k3abk5agkal4k2ed1keeke4gk1erkes45ki_k4imki4pkis44klyko5rk3ouk4scks4lk4sy4lav2l1blce4l3cil2deldi4l3drle2ales23leyl5frl5galgo32l3h3likl1itl1izlka3l2lell2ill4o3lo_4lof4lovl4pll5pr4l1rl4scl2sel1tel1trltu2lu5aluf4lu3o4lup1lut2l1w4lya4lyb2mab2mah4map4m1b4m5c4me_2medme2gme2m1men2mesme4v4m1f5mi_mi3amig4m2ism2iz4m1l4m1nmn4amn4o4mokmo2rmos2mo2v4m1pm2pim2py4m3rm4shm5si3mummun24mupmu4unak4n2ann4asn2atn2aun1crn1cun1de2ne_ne2bne2c2ned1nen3neone2qn1er1nesne4vne4wn1gun2gynha4nhe4ni4dnik4n1imn1inni4on2it4nk2n1kl4n1lnme4nne43noe4nogno4n4nop1noun1p4npi4nru4ns4cn2sen2slns3mnt2int4snu1anu4dn4umn3uon1v2n1w4nym4nyp4n3zaoad3o1bio3bro1ceoch4o4elo3ero3evo2fio1geo4gl1ogyo1h2oig4o1laol2dol2iol2tol2vo2lyo2meon1aon1c2ondon3soo4ko2pa2opho1prop1uopy5o1rao1ryos2cos4lo2so4othou4lou5vow1io4wooy1ap4adp4aip4alpa1ppav43pay4p1b4pe_pe2cp4eepek4pe2t4ph_ph2l4phsph3t5phu1phypi3ap4idpi2n4p1m2p3npo4cpo4p1posp4ot4p1pp2pep2seps4h2p1tp2tep2thp4twpub3pue4puf4pu4mpu2n5puspu2t2rabr2air2asrbi2rb4or2cerd2i2re_re1oreu2rev2rfu4r4fyr1glr3gu4rh_ri3ar4ibri1or4iqr2isrle4r2mer4myrno4r3nur2ocro4erok2rox5r3por1r44rs2r1sars4cr2ser1shr1sir1spr5swr1tiru3aru2nrv4er3vory4cry3t5sais1apsau45saw4s5bsch2s1cu4s5d4se_se4ase2g5sei5sev5sex4s3f2s3g2sh_sho44shwsi1b1siosi2r1sis5siu1siv5siz4skes1l2s2le2s1ms3mas1n43soms4op4sov2spas1sas1sis4sls4snss2tss5w2st_st2ist4rs2tys4ulsu2msu2nsu2r4swo4syc3syl3ta_2tabta2ltav42taw2t1bt4ch4t1d4te_1teeteg41teote4p3teu3tex4tey2t1f4t1g2th_th2e4thl2ths1tiatif22tig1tim1tio5tiqti4u1tiv1tizt5lat5lo4t1mtme4to3b2toftos24t1p1trat4sctsh4t4swt5tottu4tu1atud24tue3tum3tus4two4tya2tyltz4e4uabuac4u1atuav4ub4eu3cau3cru3cuu4cyud5du4du3ufau3fl2ui2ui4nuiv3u1laul4eul2i4ulsu3luul5vu1mium2pu2neu1niunu4un5yun5zu5osu1ouu1peu3plup3pu1raurc4ur1dur2lu3ruusc2us1pu2suuts4uu4mu1v2uxu3uz4e5va_vag43vat4ve_4vedveg3v3ifvik42vilv1invi4p3viv5vo_voi43vok4vv42wacwam4w1erw3evwhi4wil2wir4wiz5w4no1wo2wom1wra4wri4w3shws4lxam3x4apxas5x3c2x2edxhi2xhu4xi5axi5cx4obx1t2x3tixu3ay5acy5aty2cey3chy5eey1eryes4ye4ty5gi4y3hy3lay3loy5luyme4yn5dyn5g5ynxy1o4yo5dyom4y4osyp3iy3poy5puy3royr4rys4cy4soyss4ys1tzar2ze4nze4pz1erzet42z1iz4ilz4iszo4mzte4z4zy', - 5 : '_ach4_af1t_al3t_an5c_ang4_ant4_ar5s_as3c_as1p_as1s_au1d_av4i_awn4_ba4g_ber4_bri2_ca4t_co3e_co4r_de3o_do4t_du4c_eer4_el5d_en3g_en3s_eye5_fes3_gi5a_gi4b_go4r_hes3_het3_hi3b_hov5_id4l_im3m_ine2_in2k_in3s_ir5r_is4i_ju3r_la4m_len4_lep5_lev1_li4g_li2n_li3o_li4t_mis1_ni4c_odd5_or3c_or1d_or3t_oth3_out3_pi4e_pi2t_ra4c_ree2_res2_ri4g_ro4q_ru4d_se2n_til4_to4p_un1a_un1e_un5k_un5o_un3u_ure3_us5aa5bala5banabi5aab3ula4carac1er4a2cia3cieac1ina3cioac3ulac4uma3diaa3dioa3dita5diuad4lead3owad4sua3ducad5uma4gabaga4nage4o4ageu4ag4l3agogag5ula3ic_ai5lya4i4nain5oak1enal5abal3ada4lar4aldiali4ea4ly_4alys5alyt3alyzam5abam3agam3icam5ifam1ina5mona3naran1dla5neea3nena3neuan1glan3ioa3nipan3ita3niuan5otan2saan4snan2span4st4antoan2tran4twan3uaan3ula5nurapar4ap5at4aphiap3inapoc5aque5ar3alara3par4ata5rauaraw4ar4dra3reear4fiar4flar4imar3ioar2izar2mia3rooarre4ar4saar2shas4abashi4a3siba3sicask3ia4socas5phas4shas1trat5acat5apate5cat5evat4ho4ati_a5tiaat1icat3ifa4toga2toma4topa4tosat4skat5teat4that5uaat5ueat3ulaugh3au3guau4l2aun5dau1thav3aga5vanav3igav5oca1vor3awayaw4lyax4icax4iday5alazz5iba4gebal1aban4eban3ib3berbeak4beat34be2dbe3dabe3debe3dibe3gibe5gube1libe3lo4be5mbe5nu4bes4be3spbe5trbe3twbe5yobi5enbi4er2b3ifbin4dbi5oubi3trb5itzb4le_blen4b3lisbne5gbod3ibon4a5bor_bor5d5bore5bori5bos4b5otaboth5bo4to4brit2b5s2bsor4bu4gabu3libumi4bu3re5bust4butab5utoca1blcach44cag42c5ah4calocan5dcan4ecany44casyca4thccha5cci4accon44ced_5cel_3cell3cenc4ceni3cent4cesaces5t4ched5chio3chitchi2z3cho2ch4ticia5r4cierci4la3cilic4inac1ing5cinocion44cipeci3ph2c1it1c4l44clarcle4m4clicclim4co5agco4grcol5i5colocon4ac4onecon3gcon5tco3paco4pl4corbcos4ecove4cow5acoz5eco5zi5credcre4vcri5fc4rincris4cru4d4c3s2cta4bc3terctu4r5culicu2mac3umecu4micu3picu5py3c4ut4cutrdach4da2m2dan3gdard5dark54dary4dato5dav4dav5edeaf52d1ed4dee_de5ifde5lo5dem_de3node3nude3padepi4de2pud4erh5dermder5sd2es_de1scde4sude2todia5bd4ice3dictdi3ge1dina5dinidio5gdi4pldi1re5disid2iti1di1v4d5la3dle_3dled2d3lo4d5lu4d1n4do5de2d5ofdo4ladoli4doni4doo3ddop4p4drai5drendri4bdril4dro4p4drow2d1s2d1u1ad1ucadu5eld3uledu4pedy4sedys5pe1a4be3actea4gee5andear3aear4cear5kear2tea5spe3asseast3eav5ieav5oe4bene4bite4cadecca5e4cibec3imeci4te2cole2corec4tee4cul2e2da4ed3dede4se3diaed3ibed3imed1itedi5ze4doledon2e4drie4duleed3ieel3iee4lyee4naee4p1ee2s4eest4ee4tye4ficefil43efit4egaleger4eg5ibeg4ice4go_e4goseg1ule5gureher4ei5gle3imbe3infe1ingeir4deit3eei3the5itye4judeki4nek4lae4la_e4lace4lawe3lea5elece4lede5lene1lese5lime3lioe2lis4ellaello4e5locel5ogel2shel4tae5ludel5uge4mace4mage5mane2mele4metemi4ee4misem3izemo4gem3pie4mulemu3ne5neae5neeen3eme3newe5niee5nile3nioen3ite5niu5enizeno4ge4nosen3oven4swen3uaen5ufe3ny_4en3ze4oi4eo3reeo4toe5oute3paie5pelephe4e4plie3proep4she4putera4ber3arer4bler3ch2ere_ere4qeret4e1rio4eriter4iueri4ver3m4er3noer5obe5rocero4rer1ou4ertler3tweru4te1s4ae2scae3scres5cue1s2ee2sece3shae2sice2sidesi4ues4mie2sole2son2estre2sureta4be3teoet1icetin4e5tire3trae3treet3uaet5ymeu3roeute4eu5tre2vase5veaev1erev3idevi4le4vinevi4ve5voce4wage5weeewil5e3wit5eye_fa3blfab3rfa4cefain4fa3ta4fatofeas44feca5fectfe3life4mofen2d5ferrf4fesf4fief4flyfic4i4ficsfi3cufil5i4fily5finafi2nefin4nflin4f2ly5fon4tfor4ifra4tf5reafril4frol5fu5elfu5nefu3rifusi4fus4s4futa5gal_3galiga3log5amo4ganogass4gath3geez44gely4geno4genyge3omg4ery5gesigeth54getoge4ty4g1g2g3gergglu5gh3ingh4to1gi4agia5rg4icogien5gir4lg3isl5glasgli4bg3ligglo3rg4na_g2ning4niog4nongo3isgo3ni5gos_g4raigran24graygre4n4gritgruf4g5ste4gu4tgy5rahach4hae4mhae4th5aguha3lahan4ghan4khap3lhap5thar2dhas5shaun4haz3a1head3hearh5elohem4phena4heo5rh4erah3ernh3eryhi5anhi4cohigh5h4il2h4inahir4lhi3rohir4phir4rhis4s4h1l4hlan4hmet4h5odshoge4ho4mahome3hon4aho5ny3hoodhoon4ho5ruhos4ehos1p1houshree54h1s2h4tarht1enht5eshun4thy3pehy3ph4iancian3iia5peiass4i4atuib5iaib3inib3lii5bun4icam5icap4icaricas5i4cayiccu44iceoi5cidi2cipi4cly4i1cr5icrai4cryic4teictu2ic4umic5uoi3curi4daiide4si5dieid3ioid1itid5iui3dlei4domid3owid5uoied4eield3ien4ei5enni1er_i3esci1estif4fri3fieiga5bi3gibig3ilig3inig3iti4g4lig3orig5oti5greigu5iig1ur4i5i4i3legil1erilev4il3iail2ibil3io2ilitil2izil3oqil4tyil5uri4mag4imet4imitim4nii3mon4inavi3nee4inga4inge4ingi4ingo4ingui5ni_i4niain3ioin1is2i1noino4si4notin3se2int_i5nusioge4io2grion3iio5phior3iio5thi5otiio4toi4ourip4icip3uli3quaira4bi4racird5ei4refi4resir5giir4isiro4gir5ulis5agis3arisas52is1cis3chis3eris3ibisi4di5sis4is4k4ismsis2piis4py4is1sis1teis1tiis5us4ita_i4tagi3tani3tatit4es4itiait3igi2tim2itio4itis4itonit5ryi5tudit3ul4itz_iv5ioiv1it4izarjac4qjer5s5judgkais4ke5like4ty5k2ick4illkilo5k4in_kin4gk5ish4kleyk5nes1k2nokosh4kro5n4k1s2l4abolaci4l4adela3dylag4nlam3o3landlar4glar3ilas4elbin44l1c2ld5isl4drile4bileft55leg_5legg4len_3lenc1lentle3phle4prler4e3lergl4ero5lesq3lessl3eva4leye4l1g4lgar3l4gesli4agli2amli4asli5bi4licsl4icul3icyl3ida3lidil4iffli4fl3lighlim3ili4mol4inalin3ili5og4l4iqlis4pl2it_l3kallka4tl4lawl5leal3lecl3legl3lell5lowl5metl4modlmon42l1n2lo4cil5ogo3logu5longlon4ilood5lop3il3opmlora45los_los4tlo4ta2loutlpa5bl3phal5phil3pit2l1s2l4sielt5aglten4lth3iltis4lu3brluch4lu3cilu3enlu5idlu4ma5lumiluo3rluss4l5venly5mely3no2lys4l5ysema2cama4cl5magnmaid54maldmar3vmas4emas1t5matemath3m5bilmbi4v4med_mel4tmen4a4menemen4imens43mentme5onme4tame1tem4etrmid4amid4gm4illmin4a3mindmin4tm4inumiot4mis5l4mithm4nin4mocrmo2d1mo4gomois2mo3memo3spmoth3m5ouf3mousm3petmpi4am5pirmp5ismpov5mp4tr4m1s25multn4abu4nac_na4can5actna4li4naltnank4nar3c4narenar3inar4ln5armnas4c3nautnav4e4n1b4ncar5n3chanc1innc4itn4dain5danndi4bn1ditn3dizn5ducndu4rnd2wen3earneb3u5neck5negene4lane5mine4mo4nenene4pon2erener4r2nes_4nesp2nest4neswn5even4gabn3gelng5han3gibng1inn5gitn4glangov4ng5shn4gum4n1h4nhab33n4iani3anni4apni3bani4blni5dini4erni2fin5igrnin4g5nis_n4ithni3trn3ketnk3innmet44n1n2nni4vnob4ln5oclnoge4no4mono3mynon5i4noscnos4enos5tno5ta3nounnowl32n1s2ns5abnsid1nsig4n4socns4pen5spinta4bn5tibnti2fnti4pnu5enn3uinnu1men5umi3nu4nnu3troard3oas4eoat5io5barobe4lo2binob3ulocif3o4cilo4codocre3od3icodi3oo2do4odor3o5engoe4tao5geoo4gero3gieog3ito4groogu5i2ogynohab5oiff4o3ingo5ismo3kenok5ieo4lanold1eol3ero3letol4fio3liao5lilo5lioo5livolo4rol5plol3ubol3uno5lusom5ahoma5lom2beom4blo4meto3miao5midom1ino4monom3pion4aco3nanon5doo3nenon4guon1ico3nioon1iso5niuonsu4on5umonva5ood5eood5ioop3io3ordoost5ope5dop1ero3pito5pono5ra_ore5aor3eiorew4or4guo5rilor1ino1rioo3riuor2miorn2eo5rofor5pe3orrhor4seorst4or4tyo5rumos3alos4ceo5scrosi4uos4paos4poos2tao4tano4teso3tifo3tisoto5sou3blou5etoun2dov4eno3visow3elown5ipa4capa4cepac4tpain4pan4apa3nypa4pu3parepa2te3pe4a2p2ed3pede3pedipee4dpe4lap4encpe5onp4erip4ernper3ope5ruper1vph4erph1ic5phie3phiz3phobpho4rpian4pi4cyp5idapi3de5pidi3piecpi3enpi3lop4in_pind4p4ino3pi1opion4p3ithpi2tu2p3k21p2l23planpli3a4pligpli4nploi4plu4m5pod_po5em5po4gpoin2po4ni1p4orpo4rypos1spo4ta5pounp4pedp5pelp3penp3perp3petpre3rpre3vpri4spro3lpro1t2p1s2p4sibpti3mptu4rpul3cpur4r5putepu3trqua5v2que_3quer3quetra3bir5aclraf4tra4lor2amir4anira5norar5crare4rau4tr4babr4bagrbi4fr2binrcen4r3charc4itrcum3r4dalrdi4ardin4re1alre3an5reavre4aw2r2edre1dere2fere3fire4fyre5itre1lire5lure1pur1er4r4erirero4re5rur4es_res2tre4whrg3err3getr3gicrgi4nr5gisr5gitrgo4n4rhalria4bri4agrib3ar4ice4ricir4icori1erri5et5rigirim5i3rimor2inarin4drin4erin4g5riphri2plr4is_ris4cr3ishris4pri2turiv3ir3ketrk4ler2ledr4ligr4lisr3lo4rma5cr3menr4mior3mitr4narr3nelr4nerr5netr3neyr5nicr3nitr3nivr4nourob3lro3crro1ferom4irom4pron4e1room5rootror3iro5roros4sro4tyro4var4pear3petrp4h4rre4crre4fr4reorri4orri4vrron4rros4rrys4r3secrs3esr5sharson3r4tagr3tebrte5ort5ibrti4dr3tigr4tivr3trirt4shru3enru4glru3inrunk5r5uscr3venr3veyr3vicrvi4v2s1ab5sacks3actsal4msa5losal4t3sancsa5tasat3usca4pscav5s4ced4sceis4cess4choscle5s4cliscof4seas4sea5w3sect4s4eds5edlseg3rse1le5self5selv4seme4sencsen4dsen5gs4erlser4os1e4sse5shses5tsew4ish1er5shevsh1insh3io3shipshiv5shon3shor4s5icc5sidisil4e4sily2s1ins2inas3ing5sionsir5as3kets3latsman3smel4s5menso4cesoft35solvsona4son4gsor5csor5dso5vi5spaispa4n2spers2phespho5spil44spios4plys4ponspor44spotssas3s2s5cs3sels5sets4siess4lis2tags2tals4tedste2ws3thes4ti_s5tias1tics4ties3tif5stirs1tles4top4stry4st3wsu1alsu4b3su2g3su5issuit3sum3isyn5o4tacita5do4taf4ta5latal3i4talkta5mota5pltar4a4tarc4taretas4eta5sytaun44teattece45tect2t1edte5dite5gi3tel_teli45tels3tenc3tend1tentte5peter3c1teriter5v4tes_4tessthan44thea3thet4thil4thooti4ab2ti2b4tickt4ico5tidi3tienti5fy5tigu4timp2t1int2ina3tiniti5octi3sa3tisetis4mti5sotis4pti3tltiv4ati3zatlan43tle_3tled2t1n24todoto2grto5icto2matom4bto3my4tono4tonyto2ra5tour4touttra3btras4tre5ftre4m5tria2trimtri4vtro3vtru5itrus44t1s24t3t2t4testu3artu4bi4tuf45tu3i3ture5turitur5otu5ry4t1watwis4type3ty5phua5nauan4iuar2duar3iuar3tu4belu3beru1b4iuci4buc4itucle3ud3erudev4u1dicud5isu5ditu4donud4siu4eneuens4ug5inu1inguir4muita4ula5bulch4u1lenul4giu5lia4ul3mu1l4oul1ti4ultuul5ulum5abum4biunat4un4erun4imu2ninuni3vun3s4un4swu4orsu5piauptu44ura_u4ragu4rasur4beur4fru3rifur1inu3riou1ritur3izur4nouros4ur4peur4piurti4u5sadu5sanus4apus3ciuse5au5siau3sicus5slus1trusur4uta4bu3tat4ute_4utel4utenu4tisu4t1lut5ofuto5gu5tonu4touvac3uva4geval5oval1uva5mova5piv3el_ve4lov4elyv4erdv4e2s4ves_ve4teve4ty5vian5vidivi5gnv2incvin5d4vingvio3lvi1ouvi5rovi3sovi3su4vitivit3r4vityvo4lav5ole5volt3volvvom5ivori4vo4ryvo4taw5ablwag5owait5w5al_war4twas4twa1tewed4nweet3wee5vwel4lwest3win4g3wisewith3wl4eswl3inws4pew5s4txac5ex4agoxer4ixe5roxhil5xi5dix4imexpe3d3yar4yc5erych4eycom4ycot4y4erfympa3yn5icy4o5gy4onsy4pedyper5y4pocyp2tayra5myr5iay3s2eys3io3ysisys3taysur4yt3icz5a2bze3rozo5ol4z1z2', - 6 : '_am5at_ani5m_an3te_ar4ty_atom5_ba5na_bas4e_be5ra_be3sm_can5c_ce4la_cit5r_de3ra_de3ri_des4c_dumb5_eas3i_el3em_enam3_er4ri_ge5og_han5k_hi3er_hon3o_idol3_in3ci_la4cy_lath5_leg5e_lig5a_mal5o_man5a_mer3c_mon3e_mo3ro_mu5ta_of5te_os4tl_pe5te_pio5n_pre3m_ran4t_rit5u_ros5t_row5d_sci3e_self5_sell5_sing4_ting4_tin5k_ton4a_top5i_tou5s_un3ce_ve5ra_wil5iab5erdab5latab5rogac5ardac5aroa5ceoua5chetac5robact5ifad4dinad5er_ad3icaadi4erad5ranaeri4eag5ellag3onia5guerain5inait5enal3enda5le5oal4ia_al5lev4allica5log_ama5raam5ascam5eraam5ilyami4noamor5iamp5enan3age3analyan3arcanar4ia3natiande4san3disan4dowang5iea4n1ica3niesan3i3fan4imea5nimia5ninean3ishan4kli5annizanoth5an4scoans3poan4surantal4an4tieap5eroa3pherap3itaa3pituap5olaapor5iapos3taps5esar3acta5radearan4gar5av4arbal4ar5easar3enta5ressar5ialar3iana3rietar5o5da5ronias3anta5sia_as3tenasur5aat3ablat3aloat5echat3egoat3en_at3eraater5nat3estath5ema5thenath5omat5i5bat3ituat5ropat4tagat3uraau5sibaut5enave4noav3eraav5ernav5eryavi4erazi4erbarbi5bari4abas4sibbi4nabe5nigbe5strbet5izbi3lizbi5netbi3ogrblath55blespblun4tbol3icbom4bibon5at4b1orabound3broth3bunt4ibus5iebuss4e3butiocab3inca5denca3latcal4lacan4iccan5iscan3izcan4tyca5percar5om4cativcav5alccou3t4ceden2cen4ece5ram3cessic5e4ta4ch3abcheap3che5lo3chemich5enech3er_ch3ers4ch1in5chinici2a5b3cinatcin3emc5ing_4cipic4cista4cisticit3iz5clareco3inccol3orcom5ercop3iccoro3ncras5t5crat_cre3at5criticro4plcrop5ocros4ect5angc5tantc4ticuctim3icu5ity3cultucu5riacuss4icu4tie2d3a4b4dativdeb5itde4bondecan4de4cilde5comdeli4e3demicde5mildemor5de4narde2s5odes3tide3strdev3ild3ge4t1d4i3adi4cam5di3en3dine_di5nizdirt5id4is3t3dles_4dlessdo5lordom5izdo3nat4d5outdrea5rduc5er4duct_4ductsdum4beead5ieea5gereal5ereal3oueam3erear5esear4icear4ileart3eeat5eneath3ie5atife4a3tueav3ene4bel_e4belsecan5cec5ifye5citee4clame4cluse4comme4concec3oraeco5roe4cremec4tanec3ulae4d1ered3icaed5ulo5eficie3fineeg5inge5git5e5instej5udielan4delaxa4el3egae4l1ere3libeel3icae3lierel5ishe3liv3el4label3op_em5anaem3icaem1in2em5ineem5ishe5miss5emnizem5ulaen5amoe4nanten3dicen5eroen5esien5esten3etren5icsen3isheop3areo5rolep5ance3pente4prece4predep3rehe4probep5utaequi3l4erander4chee3realere5coere3iner5el_er3emoer5ena4ereneer3enter5esser3este1ria45ericke3rieneri4erer3inee4rivaer4nis4ernit5ernizer3setert3er5erwaues5canes5ecres5encesh5ene2s5imes4i4ne5skines3olues5onaes3peres4preestan4es3tiges5tim4es2toe3stone5stroes5urreten4dethod3e5tideeti4noet5onaet3ricet5rifet3roget5roseuti5leva2p5ev5astev3ellevel3oe5vengeven4ie5verbew3ingfall5e4fa4mafam5isfar5thfa3thefault5feath3fend5ef5fin_f2f5is2f3ic_f3icanf3icenfi3cer5ficia5ficiefi5delfight5fin2d5f1in3gfis4tif5lessflo3refon4defo5ratfor5ayfore5tfort5afres5cfu4minga5metgan5isga3nizgar5n44gativgel4inge5lisge5lizge4natge5nizgh5out5gicia5gies_g3imen3g4in_gin5ge5g4insglad5ignet4t3g4o4ggondo5go5rizgor5ou4grada3guard5gui5t2g5y3nh3ab4lhala3mhan4cihan4cy5hand_hang5ohan4teha3ranha5rashard3ehar4lehe4canh5ecathe5do5he3l4ihel4lyhen5athera3pher4bahere5ah5erouhe2s5phet4edhimer4hion4ehis3elhlo3rih5odizhol5ar3hol4ehor5atho5rishort3eho5senhouse3hov5elhro3pohu4minhun5kehus3t4h4wart4ian4ti4ativib3eraib5ertib5it_ib5itei2b5rii4car_i4caraic5inaic3ipai2c5ocic3ulaid5ancide3alid5ianidi4aridi5ou5ie5gaien5a4i3entiif5eroiff5en4ific_ig3eraight3iil3a4bi4ladei2l5amila5rail4istill5abim3ageima5ryim5idaimi5lei5miniim3ulai4n3auincel4in3ceri5nessin5genin3ityi4no4c2in4thion3atip4re4iq5uefiq3uidire4dei4rel4iri5deiri3tuir4min5iron_is5hanis3honish5opislan4is4salissen4is4sesis4ta_ist4lyita4bi4ita5mit3erai5teri4i2ticit3icait5illi4tismi4tramit3uativ3elliv3en_iv5il_i5vorei4v3ot5izont4jestyk3en4dk3est_kin4delab3iclan4dllan5etlan4tela5tan4lativla4v4ald4ereld4erile4mat5lene_lera5b3l4erile5sco5less_li4ato5licioli4cor4lict_lid5erlif3erli4gra4l4i4llim4bll4im4p1l4inelin3ealiv3erl3le4nl3le4tl2lin4l5linall5outlm3inglob5al3logiclom3er5lope_lo5rielor5oulos5etloun5dlp5ingltane5ltera4ltur3al5umn_lus3tel5vet4mag5inma3ligma5linmal4limal4ty5maniaman5isman3izma5rizmar4lyma5scema3tismba4t55mediame3diem5e5dymel5onmem1o3men5acmen4demensu5men4tem5ersa3mestimet3alme5thime3try3miliam5ineem4inglmis4timma5rymoi5semon5etmon5gemoni3amo3nizmonol4mo3ny_4mora_mo5seympara5mpar5imphas4mp5iesm4p1inmpo3rim4pousmulti32n1a2bna5liana5mitnanci4nan4itnas5tina3talnau3sen4ces_n5cheon5chiln3chisn5d2ifne4gatnel5iznera5bn4erarn4er5i3neticn5geren3gerini3miz5nine_nis4ta3nition3itorn5keronni3alno3ble4n3o2dnois5ino5l4i3nomicnon4agn5oniznor5abnpre4cnsati4n4s3esnter3snti4ern3tinentu3menuf4fe3nu3itoast5eob3a3bob5ingo3cheto4clamoc3rac5ocritoc3ulao5cureod5dedof5iteofit4to4gatoo5gene1o1giso5g2ly3ognizoic3esoi3deroi5letoi5sonoi3terolass4o3lesco3liceol5id_o3li4fol3ingo5lis_ol3isho5liteolli4eol3umeom3enaom3ic_om3icao5miniomo4geompro53oncilon5eston3keyon4odion3omyonspi4onten4on3t4iontif53operao5phano5pherop3ingo4posio4r3ago5realore5sh4o5riaor3icaor3ityor3ougors5enor3thior3thyo3scopos4i4eos3itoos3ityos5tilos5titot3er_ot5ersoth3i4ot3ic_ot5icao3ticeouch5iover3sov4ertoviti4o5v4olow3derow5est5paganp3agatpan3elpan4typar5dipar5elp4a4ripar4ispa5terpa5thypear4lpedia4ped4icpeli4epe4nanpen4thp4era_p4eragperme5per3tipe5tenpe5tizphar5iphe3noph4es_ph5ing3phone5phonipi4ciepi5thaplas5tpli5erplum4bpo3et55pointpoly5tppa5rapray4e5precipre5copre3empre4lap3rese3press5pri4epris3op3rocapros3ept5a4bput3errach4eraf5firam3etrane5oran4gerap3er3raphyrar5ef4rarilra5vairav3elra5zier5binerch4err4ci4brdi4errd3ingre5arrre4crere3disred5itre4facreg3isren4tere5pinre4spire3strre4terre3trire5utire4valrev3elre5vilrg3ingric5as5ricidri4cierid5erri3encri3entrig5anril3iz5rimanrim4pe5rina_riph5erit3icrit5urriv5elriv3etrk4linrl5ishrm5ersrm3ingr1nis4ro5filro5ker5role_ron4alron4taro3pelrop3icro4therov5elr5pentrp5er_rp3ingrre4strsa5tirse4crrs5er_rse5v2r4si4brtach4rten4dr4tierrtil3irtil4lr4tilyr4tistru3e4lrum3plrun4tyruti5nrvel4irv5er_r5vest5ryngesac3risalar4san4desa5vor3s4cie4scopyse2c3ose4d4ese4molsen5ats5eneds5enin4sentd4sentlsep3a34s1er_4servo5se5umsev3ensh5oldshort53side_5sidessi5diz4signa5sine_sion5a3sitiosk5inesk5ingslith5small35smithso4labsol3d2so3lic3s4on_s5ophyspen4d2s5peo3sphersp5ings5sengs4ses_ssi4erss5ilyssur5astam4i5stands4ta4p5stat_s5terostew5a5stickst3ing5stockstom3a5stone3stores4trads4trays4tridsy5rintai5lotal5enta5logtan4detanta3ta5perta3riz4taticta4turtax4istch5ettead4ite5gerte2ma2tem3at3tenan4tenes5ter3dter3ist3ess_teth5eth3easthe5atthe3isth5ic_th5ica5thinkth5odeti4atot4ic1utim5ul3tine_ti3zen3tles_t5let_to3natto3rietor5izto3wartra5chtraci4trem5i4tricstro5mitron5i4tronytro3sptu4nis2t3up_tur3isu4berou3ble_ud5estud3iedud3iesuen4teuer4ilugh3enuil5izu5lati5ulcheul3derul3ingul5ishul4larul4lisuls5esultra3um4blyumor5oun5ishunt3abun4tesuper5sup3ingupt5ibure5atur4ferurs5erur5tesur3theur4tieus4linuten4i4u1t2iu3tineut3ing5u5tiz2v1a4bvac5ilva5lieva5nizvel3liven3omv5enue5vere_v4erelv3erenv4eresver3ie3versever3thves4tevet3ervi5ali5vide_5vided5vides5vilit4vi4nav3io4rvis3itvor5ab4voteewa5gerwa5verweath3win4dewo5venwrita4xi5mizxpan4dymbol5yn3chryo5netys3icay3thin', - 7 : '_ad4der_anti5s_ar4tie_aster5_be5sto_but4ti_cam4pe_capa5b_car5ol_de4moi_earth5_gen3t4_hand5i_hero5i_hon5ey_im5pin_lat5er_mag5a5_mar5ti_me5ter_mist5i_muta5b_or5ato_ped5al_pe5tit_re5mit_se5rie_sta5bl_ten5an_tim5o5_under5_ven4dea4lenti5a5lysta4matisa4m5atoan5est_a4pillaar5adisa5ratioar5ativar4chanar5dinear5inat5a5si4ta5ternaat5omizbad5gerban5dagbina5r43bi3tio3bit5uabuf4fercall5incast5ercas5tigccompa55chanic5chine_5cific_5cratic4c3retacul4tiscur5a4b4c5utivdel5i5qdem5ic_de4monsdenti5fdern5izdi4latodrag5on5drupliec5essaec5ifiee4compee4f3ereefor5ese4fuse_el5ativel5ebrae4l5ic_el5igibe4l3ingem5igraem3i3niemoni5oench4erent5age4enthesep5recaep5ti5b4erati_er5encee4sage_e4sagese4sert_e4sertse4servaes5idenes5ignaesis4tees5piraes4si4bestruc5e5titioet5itiv4f3ical4ficatefill5ingani5za4g3o3na5graph_4graphy4gress_hang5erh5a5nizharp5enhar5terhel4lishith5erhro5niziam5eteia4tricic4t3uainer4ari5nite_5initioinsur5aion4eryiphras4iq3ui3t5i5r2izis5itiviso5mer4istral5i5ticki2t5o5mi4v3er_i4vers_iv3o3ro4jestiek5iness4latelilev4er_lev4eralev4ersliar5iz5ligatelink5er5liticalloqui5l3o3nizlo4ratol5ties_5lumnia4matizam4b3ing5metricme5triem5i5liemin5glim5inglymis4er_m5istrymo5lestmon4ismmon4istmpa5rabmula5r4nag5er_ncour5and5est_nge4n4en5o5mizno4rarynov3el3nsta5bln4t3ingo5a5lesoctor5aod5uct_od5uctso2g5a5rog5ativoint5eroist5eno5litiool5ogizom5atizom5erseom5etry5ommend4operagor5alizor5angeor5est_4oscopios5itivo5statiotele4goth5esiounc5erover4nepara5blpar5age5pathicpa4tricpera5blperi5stper4mal5phistipi4grappref5acpre5tenprin4t3prof5itput4tedput4tinration4rb5ing_r5ebratrec5ollre5fer_r4en4tare4posiress5ibre5stalre4ti4zre5versre5vertrev5olurip5licri3ta3br5ited_rit5er_rit5ersr4ming_rom5etero5n4isros5perrtroph45sa3tioscan4t55scin4dscour5asmol5d45sophics5ophizsqual4lsspend4stern5i5stratuta5blestal4listen4tagter5iesteri5za5ternit5thodicthor5ittho5riztill5intion5eeto5cratton4alitrac4ittrac4tetra5ventri5ces5triciatro5pheuar5antu4b5inguiv4er_ul4li4bu4m3ingun4ter_upport5uri4ficus5tereuti5lizution5avar5iedver5encvermi4n4v3idenv3i3lizwea5riewill5inxe4cutoxpecto5ylla5bl', - 8 : '_chill5i_cor5ner_dictio5_eq5ui5t_for5mer_re5stat_trib5utab5it5abab5o5lizap5illara5rameteation5arces5si5bch5a5nisch5inesse4q3ui3sg5rapher5graphicimenta5rin5dlingin5glinglem5aticl5i5tics5losophyma5chinema5rine_mpos5itenato5mizneg5ativni5ficat5nologisntrol5lioc5ratizonspir5appo5siterec5omper5ev5er_5taboliz5tisticatrav5es5url5ing_', - 9 : '_ratio5nac5laratioec5ificatef5i5niteep5etitio5losophiz5mocratiz5nop5o5liuto5matic' - } -}; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/es.js b/resources/viewer/hyphenate/patterns/es.js index bf1d3450ff..d4da9206f7 100644 --- a/resources/viewer/hyphenate/patterns/es.js +++ b/resources/viewer/hyphenate/patterns/es.js @@ -1,27 +1,27 @@ // For questions about the spanish hyphenation patterns // ask Luis Pabon (lpabon at metagrama dot es) -Hyphenator.languages.es = { +Hyphenator.languages['es'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 13, - specialChars : 'áéíóúñ', + specialChars : "áéíóúñ", patterns : { - 2 : '1b1c1d1f1g1j1k1l1m1n1ñ1p1q1r1s1t1v1w1x1y1z', - 3 : '_a22bb2bc2bd2bf2bg2bj2bkb2l2bm2bn2bp2bqb2r2bs2bt2bv2bw2bx2by2bz2cb2cc2cd2cf2cgc4h2cjc2kc2l2cm2cn2cp2cqc2r2cs2ct2cv2cw2cx2cy2cz2db2dc2dd2df2dg2dj2dk2dl2dm2dn2dp2dqd2r2ds2dt2dv2dw2dx2dy2dz4e_4é_4és2fb2fc2fd2ff2fg2fj2fkf2l2fm2fn2fp2fqf2r2fs2ft2fv2fw2fx2fy2fz2gb2gc2gd2gf2gg2gj2gkg2l2gm2gn2gp2gqg2r2gs2gt2gv2gw2gx2gy2gz2hb2hc2hd2hf2hg2hj2hk2hl2hm2hn2hp2hq2hr2hs2ht2hv2hw2hx2hy2hz4í_2jb2jc2jd2jf2jg2jj2jk2jl2jm2jn2jp2jq2jr2js2jt2jv2jw2jx2jy2jz2kb2kc2kd2kf2kg2kj2kkk2l2km2kn2kp2kqk2r2ks2kt2kv2kw2kx2ky2kz2lb2lc2ld2lf2lg2lj2lkl4l2lm2ln2lp2lq2lr2ls2lt2lv2lw2lx2ly2lz2mb2mc2md2mf2mg2mj2mk2ml2mm2mn2mp2mq2mr2ms2mt2mv2mw2mx2my2mz2nb2nc2nd2nf2ng2nj2nk2nl2nm2nn2np2nq2nr2ns2nt2nv2nw2nx2ny2nz2o_2pb2pc2pd2pf2pg2pj2pkp2l2pm2pn2pp2pqp2r2ps2pt2pv2pw2px2py2pz2qb2qc2qd2qf2qg2qj2qk2ql2qm2qn2qp2qq2qr2qs2qt2qv2qw2qx2qy2qz2rb2rc2rd2rf2rg2rj2rk2rl2rm2rn2rp2rqr2r2rs2rt2rv2rw2rx2ry2rz2sb2sc2sd2sf2sg2sj2sk2sl2sm2sn2sp2sq2sr2ss2st2sv2sw2sx2sy2sz2tb2tc2td2tf2tg2tj2tk2tm2tn2tp2tqt2r2ts2tt2tv2twt2x2ty2tz2vb2vc2vd2vf2vg2vj2vkv2l2vm2vn2vp2vqv2r2vs2vt2vv2vw2vx2vy2vz2wb2wc2wd2wf2wg2wj2wkw2l2wm2wn2wp2wqw2r2ws2wt2wv2ww2wx2wy2wz2xb2xc2xd2xf2xg2xj2xk2xl2xm2xn2xp2xq2xr2xs2xt2xv2xw2xx2xy2xz2yb2yc2yd2yf2yg2yj2yk2yl2ym2yn2yp2yq2yr2ys2yt2yv2yw2yx2yy2yz2zb2zc2zd2zf2zg2zj2zk2zl2zm2zn2zp2zq2zr2zs2zt2zv2zw2zx2zy2zz', - 4 : '4ad_2al_4an_4ar_4as_4ás_2b1h2bl_2br_2ch_2cl_4cn_2cr_4ct_4cz_2d1h2dr_4ed_4en_4er_4es_2f1h2fl_2fr_4ft_2g2h2gl_4gn_2gr_2h1hi2a_4ía_i2o_2j1h2k2h2kl_2kr_2l1h2ll_mal22m1h4mn_2n1h2no_4ón_2os_4pc_2p1h2pl_4pn_2pr_4pt_2q1h2r1h2rr_3sa_2s1h2t1h2t2l2tr_4ts_4tz_2v1h2vl_2vr_2w1h2wl_2wr_2x1h2y1h2z1h', - 5 : '_an3h4áis_4ando4aos_bien2bio1heco1h4éis_4eos_geo1h4ían_i2as_4ías_i2os_iso1hmal3bmal3cmal3dmal3fmal3gmal3mmal3pmal3qmal3smal3tmal3v4meo_neo1ho2os_2ótic3sas_s3te_', - 6 : '_an2a2_an2á2_an2e2_an2é2_an2i2_an2í2_ani3m_aniña_ani3q_an2o2_an2ó2_an2u2_anu3l_bi1ox_bi1un_co2a2_co2á2_co2e2_co2é2_co2i2_co2í2_co3o4_co2ó2_co2u2_co2ú2_en2a2_en2á2_en2e2_en2é2_en1ej_en2i2_en2í2_en2o2_en2ó2_en2u2_en2ú2_in2a2_in2á2_in2e2_in2é2_in2i2_in2í2_in2o2_in2ó2_in2u2_in2ú2_re2a2_re2á2_re3e4_re2é2_re2i2_re2í2_re2o2_re2ó2_re1oc_re1oj_re2u2_re2ú24a3ba_acto1h4a3da_4adle_4adlo_4adme_4a3do_4adte_aero1hafro1haí5so_2ales_ana3líanfi1hante1h4a3ra_4a3rá_4a3re_4a3ré_a3rio_4a3se_4aste_asu3b24ates_auto1h2b3c2n2b3c2t2b3c2z2b3f2t2b3g2nbien3hbien3mbien3qbien3tbien3vbio1a2bio1á2bio1e2bio1é2bio1i2bio1í2bio1o2bio1ó2bio1u2bio1ú22b3m2n2b3p2n2b3p2s2b3p2t2b3t2s2b3t2z4caca44caga44cago42c3c2n2c3c2t2c3c2z2c3f2t2c3g2ncito1h2c3m2nco4artco4ártco4ercco4erzco4optco4ord2c3p2n2c3p2s2c3p2t2c3t2s2c3t2z4culo42d3c2n2d3c2t2d3c2zdeca1hde3seo2d3f2t2d3g2n2d3m2n2d3p2n2d3p2s2d3p2t2d3t2s2d3t2zeco1a2eco1á2eco1e2eco1é2eco1i2eco1í2eco1o2eco1ó2eco1u2eco1ú24edle_4edlo_4edme_4edte_emi2o2endo1hento1h4e3rá_4e3ré_4erla_4erle_4erlo_4erme_4erse_4erte_euco1heuro1hfono1hfoto1hgeo1a2geo1á2geo1e2geo1é2geo1i2geo1í2geo1o2geo1ó2geo1u2geo1ú2hemi1hhemo1hhexa1hhomo1h4íais_2i3ca_2i3co_4í3da_4í3do_4i4er_4i3ga_4i3go_4ísmo_iso1a2iso1á2iso1e2iso1é2iso1i2iso1í2iso1o2iso1ó2iso1u2iso1ú24ísta_kilo1h2l3c2n2l3c2t2l3c2z2l3f2t2l3g2n2l3m2n2l3p2n2l3p2s2l3p2t2l3t2s2l3t2zma4l3hmaxi1h2m3c2n2m3c2t2m3c2zmega1h2m3f2t2m3g2nmili1hmini1h2m3m2nmono1h2m3p2n2m3p2s2m3p2t2m3t2s2m3t2znamo1h2n3c2n2n3c2t2n3c2zneo1a2neo1á2neo1e2neo1é2neo1i2neo1í2neo1o2neo1ó2neo1u2neo1ú2neto1h2n3f2t2n3g2n2n3m2n2n3p2n2n3p2s2n3p2t2n3t2s2n3t2zocta1hocto1homni1h4ones_2o3sa_2o3so_para1h4pedo4poli1h3p2sic3p2siq4puta44puto42r3c2n2r3c2t2r3c2z2r3f2t2r3g2n2r3m2nromo1h2r3p2n2r3p2s2r3p2t2r3t2s2r3t2z2s3c2n2s3c2t2s3c2zsemi1h2s3f2t2s3g2n2s3m2n2s3p2n2s3p2s2s3p2ts3tal_s3tes_s3tor_2s3t2s2s3t2zsup6ra2t3c2n2t3c2t2t3c2ztele1h4teta_2t3f2t2t3g2n2t3m2ntopo1h2t3p2n2t3p2s2t3p2t2t3t2s2t3t2zu4teriwa3s4h2x3c2n2x3c2t2x3c2zxeno1h2x3f2t2x3g2n2x3m2n2x3p2n2x3p2s2x3p2t2x3t2s2x3t2z2y3c2n2y3c2t2y3c2z2y3f2t2y3g2n2y3m2n2y3p2n2y3p2s2y3p2t2y3t2s2y3t2z', - 7 : '_ana3li_aná3li_ane3xa_ane3xá_ane3xe_ane3xé_ani3ll_ano5ta_ano3tá_anti1h_an2ú2__anua3l_anu3bl_anu3da_bi1aur_bi1ó2x_en1apa_en1arb_en1art_he4mee_hu4mea_hu4meo_mala1e_pre2a2_pre2á2_pre2e2_pre2é2_pre2h2_pre2i2_pre2í2_pre2o2_pre2ó2_pre2u2_pre2ú2_pro2a2_pro2á2_pro2e2_pro2é2_pro2h2_pro2i2_pro2í2_pro2o2_pro2ó2_pro2u2_pro2ú2_re3abr_re3ábr_re3a2q_re3a2z_re3i2m_re3inc_re3ing_re3ins_re3int_re3o2b_re1unt_so3a4s4a3ban_4a3bas_acante2acto1a2acto1á2acto1e2acto1é2acto1i2acto1í2acto1o2acto1ó2acto1u2acto1ú24a3das_4adlas_4adles_4adlos_4adnos_4a3dor_4a3dos_aero1a2aero1á2aero1e2aero1é2aero1i2aero1í2aero1o2aero1ó2aero1u2aero1ú2afro1a2afro1á2afro1e2afro1é2afro1i2afro1í2afro1o2afro1ó2afro1u2afro1ú2aí5sos_4a3mos_anfi1a2anfi1á2anfi1e2anfi1é2anfi1i2anfi1í2anfi1o2anfi1ó2anfi1u2anfi1ú2anglo1hante1a2ante1á2ante1e2ante1é2ante1i2ante1í2ante1o2ante1ó2ante1u2ante1ú24áosla_4áosle_4áoslo_4a3ran_4a3rán_4a3ras_4a3rás_archi1h4a3ren_4a3res_4a3rés_4a3ría_a3rios_4a3rís_4a4rme_4a3ron_4a3ros_4a3sen_4a3ses_4astes_auto1a2auto1á2auto1e2auto1é2auto1i2auto1í2auto1o2auto1ó2auto1u2auto1ú2bi1u2ní4cagas_centi1hciclo1hcito1a2cito1á2cito1e2cito1é2cito1i2cito1í2cito1o2cito1ó2cito1u2cito1ú23c2neorcnico1hco4accico4actico4adjuco4adyuco3agenco4e3táco3exisco4imbrco4incico4i3tocon1urbcrono1hdeca1a2deca1á2deca1e2deca1é2deca1i2deca1í2deca1o2deca1ó2deca1u2deca1ú2decimo1desa3fidesa3fídesa3güde4s3eqde3signde3sollea3cia_ea3cio_4eadla_ecano1hectro1h4edlas_4edles_4edlos_4ednos_4e3dro_4eedla_4emboca4e3mos_endo1a2endo1á2endo1e2endo1é2endo1i2endo1í2endo1o2endo1ó2endo1u2endo1ú2ento1a2ento1á2ento1e2ento1é2ento1i2ento1í2ento1o2ento1ó2ento1u2ento1ú2entre1h4éosla_4éosle_4éoslo_e5r4ad_e5r4an_4e3rán_e5r4as_4e3rás_4e3rés_4e3ría_4e3rís_4erlas_4erles_4erlos_4ernos_4e3ros_euco1a2euco1á2euco1e2euco1é2euco1i2euco1í2euco1o2euco1ó2euco1u2euco1ú2euro1a2euro1á2euro1e2euro1é2euro1i2euro1í2euro1o2euro1ó2euro1u2euro1ú2expoli4extra1hfono1a2fono1á2fono1e2fono1é2fono1i2fono1í2fono1o2fono1ó2fono1u2fono1ú2foto1a2foto1á2foto1e2foto1é2foto1i2foto1í2foto1o2foto1ó2foto1u2foto1ú2gluco1hhecto1hhelio1hhemi1a2hemi1á2hemi1e2hemi1é2hemi1i2hemi1í2hemi1o2hemi1ó2hemi1u2hemi1ú2hemo1a2hemo1á2hemo1e2hemo1é2hemo1i2hemo1í2hemo1o2hemo1ó2hemo1u2hemo1ú2hexa1a2hexa1á2hexa1e2hexa1é2hexa1i2hexa1í2hexa1o2hexa1ó2hexa1u2hexa1ú2hidro1hhisto1hhomo1a2homo1á2homo1e2homo1é2homo1i2homo1í2homo1o2homo1ó2homo1u2homo1ú2ia5res_2i3cas_icono1h2i3cos_4i2dal_4í3das_4i3deo_4í3dos_4i3gas_4i3gás_4í3mos_infra1hintra1h4ísmos_4ístas_4í3tes_kilo1a2kilo1á2kilo1e2kilo1é2kilo1i2kilo1í2kilo1o2kilo1ó2kilo1u2kilo1ú2li5áreamacro1hmante4amaxi1a2maxi1á2maxi1e2maxi1é2maxi1i2maxi1í2maxi1o2maxi1ó2maxi1u2maxi1ú2mega1a2mega1á2mega1e2mega1é2mega1i2mega1í2mega1o2mega1ó2mega1u2mega1ú23mente_micro1hmili1a2mili1á2mili4armili1e2mili1é2mili1i2mili1í2mili1o2mili1ó2mili1u2mili1ú2mini1a2mini1á2mini1e2mini1é2mini1i2mini1í2mini1o2mini1ó2mini1u2mini1ú2miria1hmono1a2mono1á2mono1e2mono1é2mono1i2mono1í2mono1o2mono1ó2mono1u2mono1ú2multi1hnamo1a2namo1á2namo1e2namo1é2namo1i2namo1í2namo1o2namo1ó2namo1u2namo1ú2necro1hneto1a2neto1á2neto1e2neto1é2neto1i2neto1í2neto1o2neto1ó2neto1u2neto1ú2norte1hocta1a2octa1á2octa1e2octa1é2octa1i2octa1í2octa1o2octa1ó2octa1u2octa1ú2octo1a2octo1á2octo1e2octo1é2octo1i2octo1í2octo1o2octo1ó2octo1u2octo1ú24o2ica_4o2ico_oligo1homni1a2omni1á2omni1e2omni1é2omni1i2omni1í2omni1o2omni1ó2omni1u2omni1ú22o3sas_2o3sos_4ósteo_paleo1hpara1a2para1á2para1e2para1é2para1i2para1í2para1o2para1ó2para1u2para1ú2penta1hpiezo1hpluri1hpoi3de_poli1a2poli1á2poli1e2poli1é2poli1i2poli1í2poli1o2poli1ó2poli1u2poli1ú2pos3ta_pre3olíproto1hradio1hranco1hretro1hrmano1hromo1a2romo1á2romo1e2romo1é2romo1i2romo1í2romo1o2romo1ó2romo1u2romo1ú2san4c5tsemi1a2semi1á2semi1e2semi1é2semi1i2semi1í2semi1o2semi1ó2semi1u2semi1ú2seudo1hsobre1hsocio1hs3tora_supra1htalmo1htele1a2tele1á2tele1e2tele1é2tele1i2tele1í2tele1o2tele1ó2tele1u2tele1ú2termo1h4tetas_tetra1hti2o3coti2o3qutopo1a2topo1á2topo1e2topo1é2topo1i2topo1í2topo1o2topo1ó2topo1u2topo1ú2tropo1hultra1hxeno1a2xeno1á2xeno1e2xeno1é2xeno1i2xeno1í2xeno1o2xeno1ó2xeno1u2xeno1ú2', - 8 : '_an3aero_ane3xio_ane3xió_ani3dar_ani3mad_ani3mád_an3i2so_an3i2só_ani3vel_ano5che_ano5din_ano5mal_anó5mal_ano5nad_ano5nim_anó3nim_anti1a2_anti1á2_anti1e2_anti1é2_anti1i2_anti1í2_anti1o2_anti1ó2_anti1u2_anti1ú2_anua4lm_de2s2a2_de2s2á2_de2s2e2_de2s2é2_de2s2i2_de2s2í2_de2s2o2_de2s2ó2_de2s2u2_de2s2ú2_en1aciy_en1anch_en2artr_eno3jar_hepta1e_ina3nic_in3anim_iná3nim_in3apel_iné3dit_in3efic_ini3cia_ini3ciá_ini3cie_ino3cua_ino3cuo_intra1o_intra1u_inú3til_mal1est_mal1int_pos3tin_pos3tín_re3a2eg_re3alim_re3anim_re3aním_re3orga_retro1a_re3unir_re3unír_re3usar_re3usár_su2b2a2_su2b2á2_sub3arr_su2b2e2_su2b2é2_su2b2i2_su2b2í2_sub3ími_sub3índ_su2b2o2_su2b2ó2_su2b2u2_su2b2ú2_sur1est_sur1oes_tra2s1a_tra2s1o_tri1ó2x4a3bais_4a3ción_4ádmele_4ádmelo_4a3dora_4ádsela_4ádsele_4ádselo_4ádtele_4ádtelo_4ándola_4ándole_4ándolo_4ándome_4ándoos_4ándose_4ándote_anglo1a2anglo1á2anglo1e2anglo1é2anglo1i2anglo1í2anglo1o2anglo1ó2anglo1u2anglo1ú24áoslas_4áosles_4áoslos_4a3rais_archi1a2archi1á2archi1e2archi1é2archi1i2archi1í2archi1o2archi1ó2archi1u2archi1ú24a3reis_4a3réis_4a3ríais4a3rían_4a3rías_4a4r3la_4a4r3le_4a4r3lo_4árosla_4árosle_4ároslo_4a4r3se_4a4r3te_4a3seis_4asteis_biblio1hcardio1hcefalo1hcenti1a2centi1á2centi1e2centi1é2centi1i2centi1í2centi1o2centi1ó2centi1u2centi1ú2ciclo1a2ciclo1á2ciclo1e2ciclo1é2ciclo1i2ciclo1í2ciclo1o2ciclo1ó2ciclo1u2ciclo1ú2cnico1a2cnico1á2cnico1e2cnico1é2cnico1i2cnico1í2cnico1o2cnico1ó2cnico1u2cnico1ú2co4a3dunco4a3gulco4á3gulco4a3licco4aptacco4e3ficcon1imbrcontra1hco4o3perco4o3pércripto1hcrono1a2crono1á2crono1e2crono1é2crono1i2crono1í2crono1o2crono1ó2crono1u2crono1ú2de4s3abrde4s3agudesa3lindesa3livde4s3almdesa3lojde4s3anddesa3pañdesa3pegde4s3armdes4armede4s3asndesa3tindesa3yundesa3zondesa3zónde3semejde4s3endde4s3enjde4s3enmde4s3enrde4s3ensde3s4ertde3s4értde3siderde3sidiade3sidiode3siertde3socupde3solacde3soladde3soncede4s3ovade4s3ovide4s3oxide4s3oyede4s3oyéde3suelldodeca1hea3cias_ea3cios_ecano1a2ecano1á2ecano1e2ecano1é2ecano1i2ecano1í2ecano1o2ecano1ó2ecano1u2ecano1ú2ectro1a2ectro1á2ectro1e2ectro1é2ectro1i2ectro1í2ectro1o2ectro1ó2ectro1u2ectro1ú24édmele_4édmelo_4e3dros_4édsela_4édsele_4édselo_4édtele_4édtelo_entre1a2entre1á2entre1e2entre1é2entre1i2entre1í2entre1o2entre1ó2entre1u2entre1ú24éoslas_4éosles_4éoslos_e5r4áis_4e3réis_4e3rían_4e3rías_4e3rior_4érmele_4érmelo_4érsela_4érsele_4érselo_4értele_4értelo_extra1a2extra1á2extra1e2extra1é2extra1i2extra1í2extra1o2extra1ó2extra1u2extra1ú2gastro1hgluco1a2gluco1á2gluco1e2gluco1é2gluco1i2gluco1í2gluco1o2gluco1ó2gluco1u2gluco1ú2hecto1a2hecto1á2hecto1e2hecto1é2hecto1i2hecto1í2hecto1o2hecto1ó2hecto1u2hecto1ú2helio1a2helio1á2helio1e2helio1é2helio1i2helio1í2helio1o2helio1ó2helio1u2helio1ú2hemato1hhidro1a2hidro1á2hidro1e2hidro1é2hidro1i2hidro1í2hidro1o2hidro1ó2hidro1u2hidro1ú2hipe2r3rhisto1a2histo1á2histo1e2histo1é2histo1i2histo1í2histo1o2histo1ó2histo1u2histo1ú24ía3mos_icono1a2icono1á2icono1e2icono1é2icono1i2icono1í2icono1o2icono1ó2icono1u2icono1ú24i3deos_4i3gáis_infra1a2infra1á2infra1e2infra1é2infra1i2infra1í2infra1o2infra1ó2infra1u2infra1ú2inter4ésinter4inintra1a2intra1á2intra1e2intra1é2intra1i2intra1í2intra1o2intra1ó2intra1u2intra1ú24í4s3te_4ística_4ístico_macro1a2macro1á2macro1e2macro1é2macro1i2macro1í2macro1o2macro1ó2macro1u2macro1ú24meable_megalo1hmelano1hmicro1a2micro1á2micro1e2micro1é2micro1i2micro1í2micro1o2micro1ó2micro1u2micro1ú2miria1a2miria1á2miria1e2miria1é2miria1i2miria1í2miria1o2miria1ó2miria1u2miria1ú2multi1a2multi1á2multi1e2multi1é2multi1i2multi1í2multi1o2multi1ó2multi1u2multi1ú2necro1a2necro1á2necro1e2necro1é2necro1i2necro1í2necro1o2necro1ó2necro1u2necro1ú2norte1a2norte1á2norte1e2norte1é2norte1i2norte1í2norte1o2norte1ó2norte1u2norte1ú24o2icas_4o2icos_o4i3dal_4o2i3de_o4i3dea_oligo1a2oligo1á2oligo1e2oligo1é2oligo1i2oligo1í2oligo1o2oligo1ó2oligo1u2oligo1ú24ó3loga_4ó3logo_4ósteos_paleo1a2paleo1á2paleo1e2paleo1é2paleo1i2paleo1í2paleo1o2paleo1ó2paleo1u2paleo1ú2para2is_para4ísopenta1a2penta1á2penta1e2penta1é2penta1i2penta1í2penta1o2penta1ó2penta1u2penta1ú2piezo1a2piezo1á2piezo1e2piezo1é2piezo1i2piezo1í2piezo1o2piezo1ó2piezo1u2piezo1ú2plan4c5tpluri1a2pluri1á2pluri1e2pluri1é2pluri1i2pluri1í2pluri1o2pluri1ó2pluri1u2pluri1ú2poi3des_poli4arqpoli4árqpoli4u3rpos3tas_pre3eligpre3elijpre3eminpre3exispreo3cuppreo2cúppre3opinproto1a2proto1á2proto1e2proto1é2proto1i2proto1í2proto1o2proto1ó2proto1u2proto1ú2radio1a2radio1á2radio1e2radio1é2radio1i2radio1í2radio1o2radio1ó2radio1u2radio1ú2ranco1a2ranco1á2ranco1e2ranco1é2ranco1i2ranco1í2ranco1o2ranco1ó2ranco1u2ranco1ú2retro1a2retro1á2retro1e2retro1é2retro1i2retro1í2retro1o2retro1ó2retro1u2retro1ú2rmano1a2rmano1á2rmano1e2rmano1é2rmano1i2rmano1í2rmano1o2rmano1ó2rmano1u2rmano1ú2seudo1a2seudo1á2seudo1e2seudo1é2seudo1i2seudo1í2seudo1o2seudo1ó2seudo1u2seudo1ú2sobre1a2sobre1á2sobre1e2sobre1é2sobre1i2sobre1í2sobre1o2sobre1ó2sobre1u2sobre1ú2socio1a2socio1á2socio1e2socio1é2socio1i2socio1í2socio1o2socio1ó2socio1u2socio1ú2s3toras_s3tores_su4d3oessupe2r3rsupra1a2supra1á2supra1e2supra1é2supra1i2supra1í2supra1o2supra1ó2supra1u2supra1ú2talmo1a2talmo1á2talmo1e2talmo1é2talmo1i2talmo1í2talmo1o2talmo1ó2talmo1u2talmo1ú23te3ri3ntermo1a2termo1á2termo1e2termo1é2termo1i2termo1í2termo1o2termo1ó2termo1u2termo1ú2tetra1a2tetra1á2tetra1e2tetra1é2tetra1i2tetra1í2tetra1o2tetra1ó2tetra1u2tetra1ú2trans4artrans4ittropo1a2tropo1á2tropo1e2tropo1é2tropo1i2tropo1í2tropo1o2tropo1ó2tropo1u2tropo1ú2ultra1a2ultra1á2ultra1e2ultra1é2ultra1i2ultra1í2ultra1o2ultra1ó2ultra1u2ultra1ú2', - 9 : '_bi1anual_bien1and_bien1apa_bien1ave_bien1est_bien1int_dieci1o2_en1aceit_en1aguaz_enu3mera_enu3merá_enu3mere_in3abarc_in3abord_in3acent_in3adapt_in3aplic_in3arrug_in3asist_in3efici_in3eludi_ine3narr_ino3cula_ino3culá_ino3cule_inte2r3r_mal1acon_mal1acos_pos2t2a2_pos2t2á2_pos2t2e2_pos2t2é2_pos3terg_pos2t2i2_pos2t2í2_post3ind_pos2t2o2_pos2t2ó2_post3ope_post3rev_pos2t2u2_pos2t2ú2_re3afirm_re3afírm_re3ajust_rea3júst_rea3lism_rea3list_rea3liza_rea3lizá_rea3líza_re3ubica_re3ubíca_reu3mati_reu3máti_su3b4ien_sub2i3ll_su4b3ray_sub3urba_su2d1est_sur1a2me_tele1imp_tele1obj_tra2s2oñ4á3bamos_4ád3mela_4ádmeles_4ádmelos_4ádnosla_4ádnosle_4ádnoslo_4a3doras_4a3dores_4ádselas_4ádseles_4ádselos_4ád3tela_4ádteles_4ádtelos_4a4i3gan_4ándolas_4ándoles_4ándolos_4ándonos_4á3ramos_4a3remos_4á3remos_4a4r3las_4a4r3les_4a4r3los_4á4rmele_4á4rmelo_4a4r3nos_4ároslas_4árosles_4ároslos_4á3semos_biblio1a2biblio1á2biblio1e2biblio1é2biblio1i2biblio1í2biblio1o2biblio1ó2biblio1u2biblio1ú2b4ien3do_cardio1a2cardio1á2cardio1e2cardio1é2cardio1i2cardio1í2cardio1o2cardio1ó2cardio1u2cardio1ú2cefalo1a2cefalo1á2cefalo1e2cefalo1é2cefalo1i2cefalo1í2cefalo1o2cefalo1ó2cefalo1u2cefalo1ú2contra1a2contra1á2contra1e2contra1é2contra1i2contra1í2contra1o2contra1ó2contra1u2contra1ú2cripto1a2cripto1á2cripto1e2cripto1é2cripto1i2cripto1í2cripto1o2cripto1ó2cripto1u2cripto1ú2desa3briddesa3certde4s3acotde4s3aficde4s3afilde4s3afinde4s3afordesa3garrde4s3ahijde4s3aliñdesa3marrdesa3moblde4s3anidde4s3animde4s3anímde4s3anudde4s3apoyde4s3arende4s3avisde4s3empéde4s3enamde4s3enchde4s3enclde4s3encode4s3encrde4s3encude3senfadde3senfádde4s3enfide4s3enfode4s3enfóde3sengañde3sengáñde4s3enlode4s3entade4s3entode4s3entrde4s3entude3s4ercide4s3espade3sesperde3sigualde3siluside4s3imande3sinencde3sinfecde4s3inflde3sistende4s3odorde4s3ordede4s3órdede4s3orejde3s4osegde3su3dande3su3darde3su3dasde4s3unimde4s3unirdodeca1a2dodeca1á2dodeca1e2dodeca1é2dodeca1i2dodeca1í2dodeca1o2dodeca1ó2dodeca1u2dodeca1ú24éd3mela_4édmeles_4édmelos_4édnosla_4édnosle_4édnoslo_4é3drica_4é3drico_4édselas_4édseles_4édselos_4éd3tela_4édteles_4édtelos_e5r4a3ba_e5r4a3da_e5r4a3do_e5r4a3ra_e5r4a3rá_e5r4a3re_e5r4a3ré_e5r4a3se_e5r4aste_e5r4ates_4e3ríais_4e3riora_4ér3mela_4érmeles_4érmelos_4érnosla_4érnosle_4érnoslo_4é3rosla_4é3rosle_4é3roslo_4érselas_4érseles_4érselos_4ér3tela_4érteles_4értelos_gastro1a2gastro1á2gastro1e2gastro1é2gastro1i2gastro1í2gastro1o2gastro1ó2gastro1u2gastro1ú2hemato1a2hemato1á2hemato1e2hemato1é2hemato1i2hemato1í2hemato1o2hemato1ó2hemato1u2hemato1ú2hipe2r1a2hipe2r1á2hipe2r1e2hipe2r1é2hipe2r1i2hipe2r1í2hipe2r1o2hipe2r1ó2hipe2r1u2hipe2r1ú24i2dales_4i3gamos_inter4inointer4ior4ís3teis_4í4s3tes_4ísticas_4ísticos_4meables_megalo1a2megalo1á2megalo1e2megalo1é2megalo1i2megalo1í2megalo1o2megalo1ó2megalo1u2megalo1ú2melano1a2melano1á2melano1e2melano1é2melano1i2melano1í2melano1o2melano1ó2melano1u2melano1ú2mili4arioo4i3deas_4o2i3des_4ó3logas_4o3logía_4ó3logos_pe5r4antepoli4andrpoli4éstes3ta3les_s3ti3lla_supe2r1a2supe2r1á2supe2r1e2supe2r1é2supe2r1i2supe2r1í2super4iorsupe2r1o2supe2r1ó2supe2r1u2supe2r1ú2t4eo3nes_tran4sacctrans4ido', - 10 : '_an3e2pigr_ante2o3je_en1aguach_in3aguant_ina3movib_in3analiz_in3apreci_in3aprens_inte2r1a2_inte2r1á2_inte2r1e2_inte2r1é2_inte2r1i2_inte2r1í2_inte2r1o2_inte2r1ó2_inte2r1u2_inte2r1ú2_inu3tiliz_ma4l3e4du_pa4n1afri_pa4n1ópti_post3elec_pos3te3ri_pos3ti3go_pos3ti3la_post3impr_pos3ti3ne_pos3ti3za_pos3ti3zo_pos3tó3ni_pos3tu3la_pos3tu3lá_pos3tu3le_pos3tu3lé_pos3tu3ra_re3a2grup_re3aparec_re3utiliz_re3utilíz_sub3aflue_sub3enten_sub3estim_sub3estím_sub3ofici_su2d1a2fr_su2d1a2me_tran2s1ur4a3ciones_4ád3melas_4ádnoslas_4ádnosles_4ádnoslos_4ád3telas_4ándomela_4ándomele_4ándomelo_4ándosela_4ándosele_4ándoselo_4ándoseme_4ándotela_4ándotele_4ándotelo_4ándoteme_4a3ríamos_4á4r3mela_4á4r3sela_4á4r3sele_4á4r3selo_4á4r3tela_4á4r3tele_4á4r3telo_b4ien3das_centi5áreaco3n4imbride4s3abastde4s3abollde4s3abotode4s3aceitdesa3ciertde4s3acompde4s3aconsde4s3acoplde4s3acorrde4s3activde4s3adeudde4s3adornde4s3aferrde4s3agradde4s3agregde4s3agrupde4s3aherrde4s3ajustde4s3alentde4s3alfomde4s3alforde4s3aliende4s3alinede4s3almidde4s3alterde4s3amoldde4s3amortde4s3angeldesa3pacibde4s3apadrde4s3aparedesa3parecdesa3paricde4s3aplicde4s3apretde4s3aprobde4s3arbolde4s3arrimdesa3rrollde4s3arropde4s3arrugde4s3asentde4s3asistdesa3sosegde4s3atencde4s3atendde4s3atentde4s3atornde4s3autorde4s3embalde4s3embálde4s3embarde4s3embárde4s3embotde4s3empacde4s3empañde4s3empáñde4s3empatde4s3empegde4s3emplede4s3empozde4s3encabde4s3encadde4s3encajde4s3encájde4s3encamde3sencantde4s3encapde4s3encarde4s3encárde3senfrende4s3enfurde4s3engarde4s3engasde4s3engomde4s3engozde4s3engrade4s3enladde4s3enlazde3sentendde4s3enterde3sentiende3sentiénde4s3estimde4s3imponde4s3inhibde3s4interde4s3intoxde4s3inverde4s3obligde4s3obstrde4s3ub4icde4s3unierde3s4ustane4a3miento4éd3melas_4édnoslas_4édnosles_4édnoslos_4é3dricas_4é3dricos_4éd3telas_e5r4a3ban_e5r4a3bas_4e3ra3ble_e5r4a3das_e5r4a3dor_e5r4a3dos_e5r4a3mos_e5r4a3ran_e5r4a3rán_e5r4a3ras_e5r4a3rás_e5r4a3ren_e5r4a3res_e5r4a3rés_e5r4a3ría_e5r4a3rís_e5r4a3ron_e5r4a3sen_e5r4a3ses_e5r4astes_4e3re3mos_4e3ríamos_4e3rioras_4e3riores_4ér3melas_4érnoslas_4érnosles_4érnoslos_4é3roslas_4é3rosles_4é3roslos_4ér3telas_familia3riinter4esarmini4a5turo4i3dales_4o3logías_4o3lógica_4o3lógico_para4ulatape3r4e3miaperpon5d6rpoli4anteapoli4o5mies3ti3llas_s3ti3llón_super4ablesupe4r4a3rsupe4r4á3rtrans4ibertrans4igentrans4igirtrans4itabultra4ísmo', - 11 : '_mal1andant_mal1andanz_pa4n1europ_sub2i3mien_tran2s1alp_tran2s1and_tran2s1atl_tran2s1oce4ándomelas_4ándomeles_4ándomelos_4ándoselas_4ándoseles_4ándoselos_4ándosenos_4ándotelas_4ándoteles_4ándotelos_4ándotenos_4á4r3melas_4á4r3meles_4á4r3melos_4á4r3nosla_4á4r3nosle_4á4r3noslo_4á4r3selas_4á4r3seles_4á4r3selos_4á4r3telas_4á4r3teles_4á4r3telos_de4s3abrochde4s3acelerde4s3acobarde4s3acomoddesa3cralizde4s3acuartde4s3aderezde4s3adorarde4s3advertde4s3agracide4s3agravide4s3alagarde4s3alquilde4s3alumbrde4s3amuebldesa3percibde4s3aprenddesa3prenside4s3aprietde4s3apropide4s3arraigde4s3arreglde4s3arrenddesa3sosiegde4s3atiendde4s3atrancde4s3embargde4s3embolsde4s3emborrde4s3emboscde4s3embragde4s3embrágde4s3embrujde4s3embrújde4s3empedrde4s3empeorde4s3empernde4s3empolvde4s3empotrde4s3encallde4s3encállde4s3enfundde4s3enhebrde4s3entierde4s3entiérde4s3envainde3sesperacde4s3imaginde4s3impresde4s3incentde4s3inclinde4s3incorpde4s3inflamde4s3informde4s3insectde4s3instalde3s4integrde4s3obedecde3s4ubstane5r4a3bais_4e3ra3bles_e5r4a3dora_e5r4a3rais_e5r4a3reis_e5r4a3réis_e5r4a3ríaise5r4a3rían_e5r4a3rías_e5r4a3seis_e5r4asteis_4i3gá3moos_4o3lógicas_4o3lógicos_2o3samente_super4ación4te4r5i4nsutrans4eúntetrans4icióntrans4istortrans4ubsta', - 12 : '_in3ter2e3sa_in3ter2e3sá_in3ter2e3se_in3ter2e3sé_in3ter2e3so_in3ter2e3só_in3te3r4rog_pa4n1a4meri4á4r3noslas_4á4r3nosles_4á4r3noslos_deca2i3mientde4s3acostumde4s3acreditde4s3adormecdesa3guisadode4s3apolillde4s3articulde4s3embravede4s3embrávede4s3embrollde4s3embróllde4s3emparejde4s3emparéjde4s3emperezde4s3enganchde3senvolvimde4s3estabilde4s3impresXde4s3incruste5r4á3bamos_e5r4a3doras_e5r4a3dores_e5r4á3ramos_e5r4a3remos_e5r4á3remos_e5r4á3semos_4e3rioridad_4i3gá3monos_4i3gá3mosla_4i3gá3mosle_4i3gá3moslo_4i3gá3mosme_4i3gá3moste_s3ti3llones_trans4itorio', - 13 : '_in3te3r4rump_in3te3r4rupc_in3te3r4ruptde4s3aprovechde4s3empaquetde4s3empaquétde4s3emparentde4s3esperanze5r4a3ríamos_4e3riormente_4i3gá3moosla_4i3gá3moosle_4i3gá3mooslo_4i3gá3mosela_4i3gá3mosele_4i3gá3moselo_4i3gá3moslas_4i3gá3mosles_4i3gá3moslos_supe3r4á3vit_', - 14 : '4e3rioridades_4i3gá3monosla_4i3gá3monosle_4i3gá3monoslo_4i3gá3mooslas_4i3gá3moosles_4i3gá3mooslos_4i3gá3moselas_4i3gá3moseles_4i3gá3moselos_4i3gá3mosmele_4i3gá3mosmelo_4i3gá3mostele_4i3gá3mostelo_supe3r4á3vits_', - 15 : '4e3ra3blemente_4i3gá3monoslas_4i3gá3monosles_4i3gá3monoslos_4i3gá3mos3mela_4i3gá3mosmeles_4i3gá3mosmelos_4i3gá3mos3tela_4i3gá3mosteles_4i3gá3mostelos_4o3lógicamente_', - 16 : '4i3gá3mos3melas_4i3gá3mos3telas_', - 17 : '_de3s4in3ter2e3sa_de3s4in3ter2e3sá_de3s4in3ter2e3se_de3s4in3ter2e3sé_de3s4in3ter2e3so_de3s4in3ter2e3só' + 2 : "1b1c1d1f1g1j1k1l1m1n1ñ1p1q1r1s1t1v1w1x1y1z", + 3 : "_a22bb2bc2bd2bf2bg2bj2bkb2l2bm2bn2bp2bqb2r2bs2bt2bv2bw2bx2by2bz2cb2cc2cd2cf2cgc4h2cjc2kc2l2cm2cn2cp2cqc2r2cs2ct2cv2cw2cx2cy2cz2db2dc2dd2df2dg2dj2dk2dl2dm2dn2dp2dqd2r2ds2dt2dv2dw2dx2dy2dz4e_4é_4és2fb2fc2fd2ff2fg2fj2fkf2l2fm2fn2fp2fqf2r2fs2ft2fv2fw2fx2fy2fz2gb2gc2gd2gf2gg2gj2gkg2l2gm2gn2gp2gqg2r2gs2gt2gv2gw2gx2gy2gz2hb2hc2hd2hf2hg2hj2hk2hl2hm2hn2hp2hq2hr2hs2ht2hv2hw2hx2hy2hz4í_2jb2jc2jd2jf2jg2jj2jk2jl2jm2jn2jp2jq2jr2js2jt2jv2jw2jx2jy2jz2kb2kc2kd2kf2kg2kj2kkk2l2km2kn2kp2kqk2r2ks2kt2kv2kw2kx2ky2kz2lb2lc2ld2lf2lg2lj2lkl4l2lm2ln2lp2lq2lr2ls2lt2lv2lw2lx2ly2lz2mb2mc2md2mf2mg2mj2mk2ml2mm2mn2mp2mq2mr2ms2mt2mv2mw2mx2my2mz2nb2nc2nd2nf2ng2nj2nk2nl2nm2nn2np2nq2nr2ns2nt2nv2nw2nx2ny2nz2o_2pb2pc2pd2pf2pg2pj2pkp2l2pm2pn2pp2pqp2r2ps2pt2pv2pw2px2py2pz2qb2qc2qd2qf2qg2qj2qk2ql2qm2qn2qp2qq2qr2qs2qt2qv2qw2qx2qy2qz2rb2rc2rd2rf2rg2rj2rk2rl2rm2rn2rp2rqr2r2rs2rt2rv2rw2rx2ry2rz2sb2sc2sd2sf2sg2sj2sk2sl2sm2sn2sp2sq2sr2ss2st2sv2sw2sx2sy2sz2tb2tc2td2tf2tg2tj2tk2tm2tn2tp2tqt2r2ts2tt2tv2twt2x2ty2tz2vb2vc2vd2vf2vg2vj2vkv2l2vm2vn2vp2vqv2r2vs2vt2vv2vw2vx2vy2vz2wb2wc2wd2wf2wg2wj2wkw2l2wm2wn2wp2wqw2r2ws2wt2wv2ww2wx2wy2wz2xb2xc2xd2xf2xg2xj2xk2xl2xm2xn2xp2xq2xr2xs2xt2xv2xw2xx2xy2xz2yb2yc2yd2yf2yg2yj2yk2yl2ym2yn2yp2yq2yr2ys2yt2yv2yw2yx2yy2yz2zb2zc2zd2zf2zg2zj2zk2zl2zm2zn2zp2zq2zr2zs2zt2zv2zw2zx2zy2zz", + 4 : "4ad_2al_4an_4ar_4as_4ás_2b1h2bl_2br_2ch_2cl_4cn_2cr_4ct_4cz_2d1h2dr_4ed_4en_4er_4es_2f1h2fl_2fr_4ft_2g2h2gl_4gn_2gr_2h1hi2a_4ía_i2o_2j1h2k2h2kl_2kr_2l1h2ll_mal22m1h4mn_2n1h2no_4ón_2os_4pc_2p1h2pl_4pn_2pr_4pt_2q1h2r1h2rr_3sa_2s1h2t1h2t2l2tr_4ts_4tz_2v1h2vl_2vr_2w1h2wl_2wr_2x1h2y1h2z1h", + 5 : "_an3h4áis_4ando4aos_bien2bio1heco1h4éis_4eos_geo1h4ían_i2as_4ías_i2os_iso1hmal3bmal3cmal3dmal3fmal3gmal3mmal3pmal3qmal3smal3tmal3v4meo_neo1ho2os_2ótic3sas_s3te_", + 6 : "_an2a2_an2á2_an2e2_an2é2_an2i2_an2í2_ani3m_aniña_ani3q_an2o2_an2ó2_an2u2_anu3l_bi1ox_bi1un_co2a2_co2á2_co2e2_co2é2_co2i2_co2í2_co3o4_co2ó2_co2u2_co2ú2_en2a2_en2á2_en2e2_en2é2_en1ej_en2i2_en2í2_en2o2_en2ó2_en2u2_en2ú2_in2a2_in2á2_in2e2_in2é2_in2i2_in2í2_in2o2_in2ó2_in2u2_in2ú2_re2a2_re2á2_re3e4_re2é2_re2i2_re2í2_re2o2_re2ó2_re1oc_re1oj_re2u2_re2ú24a3ba_acto1h4a3da_4adle_4adlo_4adme_4a3do_4adte_aero1hafro1haí5so_2ales_ana3líanfi1hante1h4a3ra_4a3rá_4a3re_4a3ré_a3rio_4a3se_4aste_asu3b24ates_auto1h2b3c2n2b3c2t2b3c2z2b3f2t2b3g2nbien3hbien3mbien3qbien3tbien3vbio1a2bio1á2bio1e2bio1é2bio1i2bio1í2bio1o2bio1ó2bio1u2bio1ú22b3m2n2b3p2n2b3p2s2b3p2t2b3t2s2b3t2z4caca44caga44cago42c3c2n2c3c2t2c3c2z2c3f2t2c3g2ncito1h2c3m2nco4artco4ártco4ercco4erzco4optco4ord2c3p2n2c3p2s2c3p2t2c3t2s2c3t2z4culo42d3c2n2d3c2t2d3c2zdeca1hde3seo2d3f2t2d3g2n2d3m2n2d3p2n2d3p2s2d3p2t2d3t2s2d3t2zeco1a2eco1á2eco1e2eco1é2eco1i2eco1í2eco1o2eco1ó2eco1u2eco1ú24edle_4edlo_4edme_4edte_emi2o2endo1hento1h4e3rá_4e3ré_4erla_4erle_4erlo_4erme_4erse_4erte_euco1heuro1hfono1hfoto1hgeo1a2geo1á2geo1e2geo1é2geo1i2geo1í2geo1o2geo1ó2geo1u2geo1ú2hemi1hhemo1hhexa1hhomo1h4íais_2i3ca_2i3co_4í3da_4í3do_4i4er_4i3ga_4i3go_4ísmo_iso1a2iso1á2iso1e2iso1é2iso1i2iso1í2iso1o2iso1ó2iso1u2iso1ú24ísta_kilo1h2l3c2n2l3c2t2l3c2z2l3f2t2l3g2n2l3m2n2l3p2n2l3p2s2l3p2t2l3t2s2l3t2zma4l3hmaxi1h2m3c2n2m3c2t2m3c2zmega1h2m3f2t2m3g2nmili1hmini1h2m3m2nmono1h2m3p2n2m3p2s2m3p2t2m3t2s2m3t2znamo1h2n3c2n2n3c2t2n3c2zneo1a2neo1á2neo1e2neo1é2neo1i2neo1í2neo1o2neo1ó2neo1u2neo1ú2neto1h2n3f2t2n3g2n2n3m2n2n3p2n2n3p2s2n3p2t2n3t2s2n3t2zocta1hocto1homni1h4ones_2o3sa_2o3so_para1h4pedo4poli1h3p2sic3p2siq4puta44puto42r3c2n2r3c2t2r3c2z2r3f2t2r3g2n2r3m2nromo1h2r3p2n2r3p2s2r3p2t2r3t2s2r3t2z2s3c2n2s3c2t2s3c2zsemi1h2s3f2t2s3g2n2s3m2n2s3p2n2s3p2s2s3p2ts3tal_s3tes_s3tor_2s3t2s2s3t2zsup6ra2t3c2n2t3c2t2t3c2ztele1h4teta_2t3f2t2t3g2n2t3m2ntopo1h2t3p2n2t3p2s2t3p2t2t3t2s2t3t2zu4teriwa3s4h2x3c2n2x3c2t2x3c2zxeno1h2x3f2t2x3g2n2x3m2n2x3p2n2x3p2s2x3p2t2x3t2s2x3t2z2y3c2n2y3c2t2y3c2z2y3f2t2y3g2n2y3m2n2y3p2n2y3p2s2y3p2t2y3t2s2y3t2z", + 7 : "_ana3li_aná3li_ane3xa_ane3xá_ane3xe_ane3xé_ani3ll_ano5ta_ano3tá_anti1h_an2ú2__anua3l_anu3bl_anu3da_bi1aur_bi1ó2x_en1apa_en1arb_en1art_he4mee_hu4mea_hu4meo_mala1e_pre2a2_pre2á2_pre2e2_pre2é2_pre2h2_pre2i2_pre2í2_pre2o2_pre2ó2_pre2u2_pre2ú2_pro2a2_pro2á2_pro2e2_pro2é2_pro2h2_pro2i2_pro2í2_pro2o2_pro2ó2_pro2u2_pro2ú2_re3abr_re3ábr_re3a2q_re3a2z_re3i2m_re3inc_re3ing_re3ins_re3int_re3o2b_re1unt_so3a4s4a3ban_4a3bas_acante2acto1a2acto1á2acto1e2acto1é2acto1i2acto1í2acto1o2acto1ó2acto1u2acto1ú24a3das_4adlas_4adles_4adlos_4adnos_4a3dor_4a3dos_aero1a2aero1á2aero1e2aero1é2aero1i2aero1í2aero1o2aero1ó2aero1u2aero1ú2afro1a2afro1á2afro1e2afro1é2afro1i2afro1í2afro1o2afro1ó2afro1u2afro1ú2aí5sos_4a3mos_anfi1a2anfi1á2anfi1e2anfi1é2anfi1i2anfi1í2anfi1o2anfi1ó2anfi1u2anfi1ú2anglo1hante1a2ante1á2ante1e2ante1é2ante1i2ante1í2ante1o2ante1ó2ante1u2ante1ú24áosla_4áosle_4áoslo_4a3ran_4a3rán_4a3ras_4a3rás_archi1h4a3ren_4a3res_4a3rés_4a3ría_a3rios_4a3rís_4a4rme_4a3ron_4a3ros_4a3sen_4a3ses_4astes_auto1a2auto1á2auto1e2auto1é2auto1i2auto1í2auto1o2auto1ó2auto1u2auto1ú2bi1u2ní4cagas_centi1hciclo1hcito1a2cito1á2cito1e2cito1é2cito1i2cito1í2cito1o2cito1ó2cito1u2cito1ú23c2neorcnico1hco4accico4actico4adjuco4adyuco3agenco4e3táco3exisco4imbrco4incico4i3tocon1urbcrono1hdeca1a2deca1á2deca1e2deca1é2deca1i2deca1í2deca1o2deca1ó2deca1u2deca1ú2decimo1desa3fidesa3fídesa3güde4s3eqde3signde3sollea3cia_ea3cio_4eadla_ecano1hectro1h4edlas_4edles_4edlos_4ednos_4e3dro_4eedla_4emboca4e3mos_endo1a2endo1á2endo1e2endo1é2endo1i2endo1í2endo1o2endo1ó2endo1u2endo1ú2ento1a2ento1á2ento1e2ento1é2ento1i2ento1í2ento1o2ento1ó2ento1u2ento1ú2entre1h4éosla_4éosle_4éoslo_e5r4ad_e5r4an_4e3rán_e5r4as_4e3rás_4e3rés_4e3ría_4e3rís_4erlas_4erles_4erlos_4ernos_4e3ros_euco1a2euco1á2euco1e2euco1é2euco1i2euco1í2euco1o2euco1ó2euco1u2euco1ú2euro1a2euro1á2euro1e2euro1é2euro1i2euro1í2euro1o2euro1ó2euro1u2euro1ú2expoli4extra1hfono1a2fono1á2fono1e2fono1é2fono1i2fono1í2fono1o2fono1ó2fono1u2fono1ú2foto1a2foto1á2foto1e2foto1é2foto1i2foto1í2foto1o2foto1ó2foto1u2foto1ú2gluco1hhecto1hhelio1hhemi1a2hemi1á2hemi1e2hemi1é2hemi1i2hemi1í2hemi1o2hemi1ó2hemi1u2hemi1ú2hemo1a2hemo1á2hemo1e2hemo1é2hemo1i2hemo1í2hemo1o2hemo1ó2hemo1u2hemo1ú2hexa1a2hexa1á2hexa1e2hexa1é2hexa1i2hexa1í2hexa1o2hexa1ó2hexa1u2hexa1ú2hidro1hhisto1hhomo1a2homo1á2homo1e2homo1é2homo1i2homo1í2homo1o2homo1ó2homo1u2homo1ú2ia5res_2i3cas_icono1h2i3cos_4i2dal_4í3das_4i3deo_4í3dos_4i3gas_4i3gás_4í3mos_infra1hintra1h4ísmos_4ístas_4í3tes_kilo1a2kilo1á2kilo1e2kilo1é2kilo1i2kilo1í2kilo1o2kilo1ó2kilo1u2kilo1ú2li5áreamacro1hmante4amaxi1a2maxi1á2maxi1e2maxi1é2maxi1i2maxi1í2maxi1o2maxi1ó2maxi1u2maxi1ú2mega1a2mega1á2mega1e2mega1é2mega1i2mega1í2mega1o2mega1ó2mega1u2mega1ú23mente_micro1hmili1a2mili1á2mili4armili1e2mili1é2mili1i2mili1í2mili1o2mili1ó2mili1u2mili1ú2mini1a2mini1á2mini1e2mini1é2mini1i2mini1í2mini1o2mini1ó2mini1u2mini1ú2miria1hmono1a2mono1á2mono1e2mono1é2mono1i2mono1í2mono1o2mono1ó2mono1u2mono1ú2multi1hnamo1a2namo1á2namo1e2namo1é2namo1i2namo1í2namo1o2namo1ó2namo1u2namo1ú2necro1hneto1a2neto1á2neto1e2neto1é2neto1i2neto1í2neto1o2neto1ó2neto1u2neto1ú2norte1hocta1a2octa1á2octa1e2octa1é2octa1i2octa1í2octa1o2octa1ó2octa1u2octa1ú2octo1a2octo1á2octo1e2octo1é2octo1i2octo1í2octo1o2octo1ó2octo1u2octo1ú24o2ica_4o2ico_oligo1homni1a2omni1á2omni1e2omni1é2omni1i2omni1í2omni1o2omni1ó2omni1u2omni1ú22o3sas_2o3sos_4ósteo_paleo1hpara1a2para1á2para1e2para1é2para1i2para1í2para1o2para1ó2para1u2para1ú2penta1hpiezo1hpluri1hpoi3de_poli1a2poli1á2poli1e2poli1é2poli1i2poli1í2poli1o2poli1ó2poli1u2poli1ú2pos3ta_pre3olíproto1hradio1hranco1hretro1hrmano1hromo1a2romo1á2romo1e2romo1é2romo1i2romo1í2romo1o2romo1ó2romo1u2romo1ú2san4c5tsemi1a2semi1á2semi1e2semi1é2semi1i2semi1í2semi1o2semi1ó2semi1u2semi1ú2seudo1hsobre1hsocio1hs3tora_supra1htalmo1htele1a2tele1á2tele1e2tele1é2tele1i2tele1í2tele1o2tele1ó2tele1u2tele1ú2termo1h4tetas_tetra1hti2o3coti2o3qutopo1a2topo1á2topo1e2topo1é2topo1i2topo1í2topo1o2topo1ó2topo1u2topo1ú2tropo1hultra1hxeno1a2xeno1á2xeno1e2xeno1é2xeno1i2xeno1í2xeno1o2xeno1ó2xeno1u2xeno1ú2", + 8 : "_an3aero_ane3xio_ane3xió_ani3dar_ani3mad_ani3mád_an3i2so_an3i2só_ani3vel_ano5che_ano5din_ano5mal_anó5mal_ano5nad_ano5nim_anó3nim_anti1a2_anti1á2_anti1e2_anti1é2_anti1i2_anti1í2_anti1o2_anti1ó2_anti1u2_anti1ú2_anua4lm_de2s2a2_de2s2á2_de2s2e2_de2s2é2_de2s2i2_de2s2í2_de2s2o2_de2s2ó2_de2s2u2_de2s2ú2_en1aciy_en1anch_en2artr_eno3jar_hepta1e_ina3nic_in3anim_iná3nim_in3apel_iné3dit_in3efic_ini3cia_ini3ciá_ini3cie_ino3cua_ino3cuo_intra1o_intra1u_inú3til_mal1est_mal1int_pos3tin_pos3tín_re3a2eg_re3alim_re3anim_re3aním_re3orga_retro1a_re3unir_re3unír_re3usar_re3usár_su2b2a2_su2b2á2_sub3arr_su2b2e2_su2b2é2_su2b2i2_su2b2í2_sub3ími_sub3índ_su2b2o2_su2b2ó2_su2b2u2_su2b2ú2_sur1est_sur1oes_tra2s1a_tra2s1o_tri1ó2x4a3bais_4a3ción_4ádmele_4ádmelo_4a3dora_4ádsela_4ádsele_4ádselo_4ádtele_4ádtelo_4ándola_4ándole_4ándolo_4ándome_4ándoos_4ándose_4ándote_anglo1a2anglo1á2anglo1e2anglo1é2anglo1i2anglo1í2anglo1o2anglo1ó2anglo1u2anglo1ú24áoslas_4áosles_4áoslos_4a3rais_archi1a2archi1á2archi1e2archi1é2archi1i2archi1í2archi1o2archi1ó2archi1u2archi1ú24a3reis_4a3réis_4a3ríais4a3rían_4a3rías_4a4r3la_4a4r3le_4a4r3lo_4árosla_4árosle_4ároslo_4a4r3se_4a4r3te_4a3seis_4asteis_biblio1hcardio1hcefalo1hcenti1a2centi1á2centi1e2centi1é2centi1i2centi1í2centi1o2centi1ó2centi1u2centi1ú2ciclo1a2ciclo1á2ciclo1e2ciclo1é2ciclo1i2ciclo1í2ciclo1o2ciclo1ó2ciclo1u2ciclo1ú2cnico1a2cnico1á2cnico1e2cnico1é2cnico1i2cnico1í2cnico1o2cnico1ó2cnico1u2cnico1ú2co4a3dunco4a3gulco4á3gulco4a3licco4aptacco4e3ficcon1imbrcontra1hco4o3perco4o3pércripto1hcrono1a2crono1á2crono1e2crono1é2crono1i2crono1í2crono1o2crono1ó2crono1u2crono1ú2de4s3abrde4s3agudesa3lindesa3livde4s3almdesa3lojde4s3anddesa3pañdesa3pegde4s3armdes4armede4s3asndesa3tindesa3yundesa3zondesa3zónde3semejde4s3endde4s3enjde4s3enmde4s3enrde4s3ensde3s4ertde3s4értde3siderde3sidiade3sidiode3siertde3socupde3solacde3soladde3soncede4s3ovade4s3ovide4s3oxide4s3oyede4s3oyéde3suelldodeca1hea3cias_ea3cios_ecano1a2ecano1á2ecano1e2ecano1é2ecano1i2ecano1í2ecano1o2ecano1ó2ecano1u2ecano1ú2ectro1a2ectro1á2ectro1e2ectro1é2ectro1i2ectro1í2ectro1o2ectro1ó2ectro1u2ectro1ú24édmele_4édmelo_4e3dros_4édsela_4édsele_4édselo_4édtele_4édtelo_entre1a2entre1á2entre1e2entre1é2entre1i2entre1í2entre1o2entre1ó2entre1u2entre1ú24éoslas_4éosles_4éoslos_e5r4áis_4e3réis_4e3rían_4e3rías_4e3rior_4érmele_4érmelo_4érsela_4érsele_4érselo_4értele_4értelo_extra1a2extra1á2extra1e2extra1é2extra1i2extra1í2extra1o2extra1ó2extra1u2extra1ú2gastro1hgluco1a2gluco1á2gluco1e2gluco1é2gluco1i2gluco1í2gluco1o2gluco1ó2gluco1u2gluco1ú2hecto1a2hecto1á2hecto1e2hecto1é2hecto1i2hecto1í2hecto1o2hecto1ó2hecto1u2hecto1ú2helio1a2helio1á2helio1e2helio1é2helio1i2helio1í2helio1o2helio1ó2helio1u2helio1ú2hemato1hhidro1a2hidro1á2hidro1e2hidro1é2hidro1i2hidro1í2hidro1o2hidro1ó2hidro1u2hidro1ú2hipe2r3rhisto1a2histo1á2histo1e2histo1é2histo1i2histo1í2histo1o2histo1ó2histo1u2histo1ú24ía3mos_icono1a2icono1á2icono1e2icono1é2icono1i2icono1í2icono1o2icono1ó2icono1u2icono1ú24i3deos_4i3gáis_infra1a2infra1á2infra1e2infra1é2infra1i2infra1í2infra1o2infra1ó2infra1u2infra1ú2inter4ésinter4inintra1a2intra1á2intra1e2intra1é2intra1i2intra1í2intra1o2intra1ó2intra1u2intra1ú24í4s3te_4ística_4ístico_macro1a2macro1á2macro1e2macro1é2macro1i2macro1í2macro1o2macro1ó2macro1u2macro1ú24meable_megalo1hmelano1hmicro1a2micro1á2micro1e2micro1é2micro1i2micro1í2micro1o2micro1ó2micro1u2micro1ú2miria1a2miria1á2miria1e2miria1é2miria1i2miria1í2miria1o2miria1ó2miria1u2miria1ú2multi1a2multi1á2multi1e2multi1é2multi1i2multi1í2multi1o2multi1ó2multi1u2multi1ú2necro1a2necro1á2necro1e2necro1é2necro1i2necro1í2necro1o2necro1ó2necro1u2necro1ú2norte1a2norte1á2norte1e2norte1é2norte1i2norte1í2norte1o2norte1ó2norte1u2norte1ú24o2icas_4o2icos_o4i3dal_4o2i3de_o4i3dea_oligo1a2oligo1á2oligo1e2oligo1é2oligo1i2oligo1í2oligo1o2oligo1ó2oligo1u2oligo1ú24ó3loga_4ó3logo_4ósteos_paleo1a2paleo1á2paleo1e2paleo1é2paleo1i2paleo1í2paleo1o2paleo1ó2paleo1u2paleo1ú2para2is_para4ísopenta1a2penta1á2penta1e2penta1é2penta1i2penta1í2penta1o2penta1ó2penta1u2penta1ú2piezo1a2piezo1á2piezo1e2piezo1é2piezo1i2piezo1í2piezo1o2piezo1ó2piezo1u2piezo1ú2plan4c5tpluri1a2pluri1á2pluri1e2pluri1é2pluri1i2pluri1í2pluri1o2pluri1ó2pluri1u2pluri1ú2poi3des_poli4arqpoli4árqpoli4u3rpos3tas_pre3eligpre3elijpre3eminpre3exispreo3cuppreo2cúppre3opinproto1a2proto1á2proto1e2proto1é2proto1i2proto1í2proto1o2proto1ó2proto1u2proto1ú2radio1a2radio1á2radio1e2radio1é2radio1i2radio1í2radio1o2radio1ó2radio1u2radio1ú2ranco1a2ranco1á2ranco1e2ranco1é2ranco1i2ranco1í2ranco1o2ranco1ó2ranco1u2ranco1ú2retro1a2retro1á2retro1e2retro1é2retro1i2retro1í2retro1o2retro1ó2retro1u2retro1ú2rmano1a2rmano1á2rmano1e2rmano1é2rmano1i2rmano1í2rmano1o2rmano1ó2rmano1u2rmano1ú2seudo1a2seudo1á2seudo1e2seudo1é2seudo1i2seudo1í2seudo1o2seudo1ó2seudo1u2seudo1ú2sobre1a2sobre1á2sobre1e2sobre1é2sobre1i2sobre1í2sobre1o2sobre1ó2sobre1u2sobre1ú2socio1a2socio1á2socio1e2socio1é2socio1i2socio1í2socio1o2socio1ó2socio1u2socio1ú2s3toras_s3tores_su4d3oessupe2r3rsupra1a2supra1á2supra1e2supra1é2supra1i2supra1í2supra1o2supra1ó2supra1u2supra1ú2talmo1a2talmo1á2talmo1e2talmo1é2talmo1i2talmo1í2talmo1o2talmo1ó2talmo1u2talmo1ú23te3ri3ntermo1a2termo1á2termo1e2termo1é2termo1i2termo1í2termo1o2termo1ó2termo1u2termo1ú2tetra1a2tetra1á2tetra1e2tetra1é2tetra1i2tetra1í2tetra1o2tetra1ó2tetra1u2tetra1ú2trans4artrans4ittropo1a2tropo1á2tropo1e2tropo1é2tropo1i2tropo1í2tropo1o2tropo1ó2tropo1u2tropo1ú2ultra1a2ultra1á2ultra1e2ultra1é2ultra1i2ultra1í2ultra1o2ultra1ó2ultra1u2ultra1ú2", + 9 : "_bi1anual_bien1and_bien1apa_bien1ave_bien1est_bien1int_dieci1o2_en1aceit_en1aguaz_enu3mera_enu3merá_enu3mere_in3abarc_in3abord_in3acent_in3adapt_in3aplic_in3arrug_in3asist_in3efici_in3eludi_ine3narr_ino3cula_ino3culá_ino3cule_inte2r3r_mal1acon_mal1acos_pos2t2a2_pos2t2á2_pos2t2e2_pos2t2é2_pos3terg_pos2t2i2_pos2t2í2_post3ind_pos2t2o2_pos2t2ó2_post3ope_post3rev_pos2t2u2_pos2t2ú2_re3afirm_re3afírm_re3ajust_rea3júst_rea3lism_rea3list_rea3liza_rea3lizá_rea3líza_re3ubica_re3ubíca_reu3mati_reu3máti_su3b4ien_sub2i3ll_su4b3ray_sub3urba_su2d1est_sur1a2me_tele1imp_tele1obj_tra2s2oñ4á3bamos_4ád3mela_4ádmeles_4ádmelos_4ádnosla_4ádnosle_4ádnoslo_4a3doras_4a3dores_4ádselas_4ádseles_4ádselos_4ád3tela_4ádteles_4ádtelos_4a4i3gan_4ándolas_4ándoles_4ándolos_4ándonos_4á3ramos_4a3remos_4á3remos_4a4r3las_4a4r3les_4a4r3los_4á4rmele_4á4rmelo_4a4r3nos_4ároslas_4árosles_4ároslos_4á3semos_biblio1a2biblio1á2biblio1e2biblio1é2biblio1i2biblio1í2biblio1o2biblio1ó2biblio1u2biblio1ú2b4ien3do_cardio1a2cardio1á2cardio1e2cardio1é2cardio1i2cardio1í2cardio1o2cardio1ó2cardio1u2cardio1ú2cefalo1a2cefalo1á2cefalo1e2cefalo1é2cefalo1i2cefalo1í2cefalo1o2cefalo1ó2cefalo1u2cefalo1ú2contra1a2contra1á2contra1e2contra1é2contra1i2contra1í2contra1o2contra1ó2contra1u2contra1ú2cripto1a2cripto1á2cripto1e2cripto1é2cripto1i2cripto1í2cripto1o2cripto1ó2cripto1u2cripto1ú2desa3briddesa3certde4s3acotde4s3aficde4s3afilde4s3afinde4s3afordesa3garrde4s3ahijde4s3aliñdesa3marrdesa3moblde4s3anidde4s3animde4s3anímde4s3anudde4s3apoyde4s3arende4s3avisde4s3empéde4s3enamde4s3enchde4s3enclde4s3encode4s3encrde4s3encude3senfadde3senfádde4s3enfide4s3enfode4s3enfóde3sengañde3sengáñde4s3enlode4s3entade4s3entode4s3entrde4s3entude3s4ercide4s3espade3sesperde3sigualde3siluside4s3imande3sinencde3sinfecde4s3inflde3sistende4s3odorde4s3ordede4s3órdede4s3orejde3s4osegde3su3dande3su3darde3su3dasde4s3unimde4s3unirdodeca1a2dodeca1á2dodeca1e2dodeca1é2dodeca1i2dodeca1í2dodeca1o2dodeca1ó2dodeca1u2dodeca1ú24éd3mela_4édmeles_4édmelos_4édnosla_4édnosle_4édnoslo_4é3drica_4é3drico_4édselas_4édseles_4édselos_4éd3tela_4édteles_4édtelos_e5r4a3ba_e5r4a3da_e5r4a3do_e5r4a3ra_e5r4a3rá_e5r4a3re_e5r4a3ré_e5r4a3se_e5r4aste_e5r4ates_4e3ríais_4e3riora_4ér3mela_4érmeles_4érmelos_4érnosla_4érnosle_4érnoslo_4é3rosla_4é3rosle_4é3roslo_4érselas_4érseles_4érselos_4ér3tela_4érteles_4értelos_gastro1a2gastro1á2gastro1e2gastro1é2gastro1i2gastro1í2gastro1o2gastro1ó2gastro1u2gastro1ú2hemato1a2hemato1á2hemato1e2hemato1é2hemato1i2hemato1í2hemato1o2hemato1ó2hemato1u2hemato1ú2hipe2r1a2hipe2r1á2hipe2r1e2hipe2r1é2hipe2r1i2hipe2r1í2hipe2r1o2hipe2r1ó2hipe2r1u2hipe2r1ú24i2dales_4i3gamos_inter4inointer4ior4ís3teis_4í4s3tes_4ísticas_4ísticos_4meables_megalo1a2megalo1á2megalo1e2megalo1é2megalo1i2megalo1í2megalo1o2megalo1ó2megalo1u2megalo1ú2melano1a2melano1á2melano1e2melano1é2melano1i2melano1í2melano1o2melano1ó2melano1u2melano1ú2mili4arioo4i3deas_4o2i3des_4ó3logas_4o3logía_4ó3logos_pe5r4antepoli4andrpoli4éstes3ta3les_s3ti3lla_supe2r1a2supe2r1á2supe2r1e2supe2r1é2supe2r1i2supe2r1í2super4iorsupe2r1o2supe2r1ó2supe2r1u2supe2r1ú2t4eo3nes_tran4sacctrans4ido", + 10 : "_an3e2pigr_ante2o3je_en1aguach_in3aguant_ina3movib_in3analiz_in3apreci_in3aprens_inte2r1a2_inte2r1á2_inte2r1e2_inte2r1é2_inte2r1i2_inte2r1í2_inte2r1o2_inte2r1ó2_inte2r1u2_inte2r1ú2_inu3tiliz_ma4l3e4du_pa4n1afri_pa4n1ópti_post3elec_pos3te3ri_pos3ti3go_pos3ti3la_post3impr_pos3ti3ne_pos3ti3za_pos3ti3zo_pos3tó3ni_pos3tu3la_pos3tu3lá_pos3tu3le_pos3tu3lé_pos3tu3ra_re3a2grup_re3aparec_re3utiliz_re3utilíz_sub3aflue_sub3enten_sub3estim_sub3estím_sub3ofici_su2d1a2fr_su2d1a2me_tran2s1ur4a3ciones_4ád3melas_4ádnoslas_4ádnosles_4ádnoslos_4ád3telas_4ándomela_4ándomele_4ándomelo_4ándosela_4ándosele_4ándoselo_4ándoseme_4ándotela_4ándotele_4ándotelo_4ándoteme_4a3ríamos_4á4r3mela_4á4r3sela_4á4r3sele_4á4r3selo_4á4r3tela_4á4r3tele_4á4r3telo_b4ien3das_centi5áreaco3n4imbride4s3abastde4s3abollde4s3abotode4s3aceitdesa3ciertde4s3acompde4s3aconsde4s3acoplde4s3acorrde4s3activde4s3adeudde4s3adornde4s3aferrde4s3agradde4s3agregde4s3agrupde4s3aherrde4s3ajustde4s3alentde4s3alfomde4s3alforde4s3aliende4s3alinede4s3almidde4s3alterde4s3amoldde4s3amortde4s3angeldesa3pacibde4s3apadrde4s3aparedesa3parecdesa3paricde4s3aplicde4s3apretde4s3aprobde4s3arbolde4s3arrimdesa3rrollde4s3arropde4s3arrugde4s3asentde4s3asistdesa3sosegde4s3atencde4s3atendde4s3atentde4s3atornde4s3autorde4s3embalde4s3embálde4s3embarde4s3embárde4s3embotde4s3empacde4s3empañde4s3empáñde4s3empatde4s3empegde4s3emplede4s3empozde4s3encabde4s3encadde4s3encajde4s3encájde4s3encamde3sencantde4s3encapde4s3encarde4s3encárde3senfrende4s3enfurde4s3engarde4s3engasde4s3engomde4s3engozde4s3engrade4s3enladde4s3enlazde3sentendde4s3enterde3sentiende3sentiénde4s3estimde4s3imponde4s3inhibde3s4interde4s3intoxde4s3inverde4s3obligde4s3obstrde4s3ub4icde4s3unierde3s4ustane4a3miento4éd3melas_4édnoslas_4édnosles_4édnoslos_4é3dricas_4é3dricos_4éd3telas_e5r4a3ban_e5r4a3bas_4e3ra3ble_e5r4a3das_e5r4a3dor_e5r4a3dos_e5r4a3mos_e5r4a3ran_e5r4a3rán_e5r4a3ras_e5r4a3rás_e5r4a3ren_e5r4a3res_e5r4a3rés_e5r4a3ría_e5r4a3rís_e5r4a3ron_e5r4a3sen_e5r4a3ses_e5r4astes_4e3re3mos_4e3ríamos_4e3rioras_4e3riores_4ér3melas_4érnoslas_4érnosles_4érnoslos_4é3roslas_4é3rosles_4é3roslos_4ér3telas_familia3riinter4esarmini4a5turo4i3dales_4o3logías_4o3lógica_4o3lógico_para4ulatape3r4e3miaperpon5d6rpoli4anteapoli4o5mies3ti3llas_s3ti3llón_super4ablesupe4r4a3rsupe4r4á3rtrans4ibertrans4igentrans4igirtrans4itabultra4ísmo", + 11 : "_mal1andant_mal1andanz_pa4n1europ_sub2i3mien_tran2s1alp_tran2s1and_tran2s1atl_tran2s1oce4ándomelas_4ándomeles_4ándomelos_4ándoselas_4ándoseles_4ándoselos_4ándosenos_4ándotelas_4ándoteles_4ándotelos_4ándotenos_4á4r3melas_4á4r3meles_4á4r3melos_4á4r3nosla_4á4r3nosle_4á4r3noslo_4á4r3selas_4á4r3seles_4á4r3selos_4á4r3telas_4á4r3teles_4á4r3telos_de4s3abrochde4s3acelerde4s3acobarde4s3acomoddesa3cralizde4s3acuartde4s3aderezde4s3adorarde4s3advertde4s3agracide4s3agravide4s3alagarde4s3alquilde4s3alumbrde4s3amuebldesa3percibde4s3aprenddesa3prenside4s3aprietde4s3apropide4s3arraigde4s3arreglde4s3arrenddesa3sosiegde4s3atiendde4s3atrancde4s3embargde4s3embolsde4s3emborrde4s3emboscde4s3embragde4s3embrágde4s3embrujde4s3embrújde4s3empedrde4s3empeorde4s3empernde4s3empolvde4s3empotrde4s3encallde4s3encállde4s3enfundde4s3enhebrde4s3entierde4s3entiérde4s3envainde3sesperacde4s3imaginde4s3impresde4s3incentde4s3inclinde4s3incorpde4s3inflamde4s3informde4s3insectde4s3instalde3s4integrde4s3obedecde3s4ubstane5r4a3bais_4e3ra3bles_e5r4a3dora_e5r4a3rais_e5r4a3reis_e5r4a3réis_e5r4a3ríaise5r4a3rían_e5r4a3rías_e5r4a3seis_e5r4asteis_4i3gá3moos_4o3lógicas_4o3lógicos_2o3samente_super4ación4te4r5i4nsutrans4eúntetrans4icióntrans4istortrans4ubsta", + 12 : "_in3ter2e3sa_in3ter2e3sá_in3ter2e3se_in3ter2e3sé_in3ter2e3so_in3ter2e3só_in3te3r4rog_pa4n1a4meri4á4r3noslas_4á4r3nosles_4á4r3noslos_deca2i3mientde4s3acostumde4s3acreditde4s3adormecdesa3guisadode4s3apolillde4s3articulde4s3embravede4s3embrávede4s3embrollde4s3embróllde4s3emparejde4s3emparéjde4s3emperezde4s3enganchde3senvolvimde4s3estabilde4s3impresXde4s3incruste5r4á3bamos_e5r4a3doras_e5r4a3dores_e5r4á3ramos_e5r4a3remos_e5r4á3remos_e5r4á3semos_4e3rioridad_4i3gá3monos_4i3gá3mosla_4i3gá3mosle_4i3gá3moslo_4i3gá3mosme_4i3gá3moste_s3ti3llones_trans4itorio", + 13 : "_in3te3r4rump_in3te3r4rupc_in3te3r4ruptde4s3aprovechde4s3empaquetde4s3empaquétde4s3emparentde4s3esperanze5r4a3ríamos_4e3riormente_4i3gá3moosla_4i3gá3moosle_4i3gá3mooslo_4i3gá3mosela_4i3gá3mosele_4i3gá3moselo_4i3gá3moslas_4i3gá3mosles_4i3gá3moslos_supe3r4á3vit_", + 14 : "4e3rioridades_4i3gá3monosla_4i3gá3monosle_4i3gá3monoslo_4i3gá3mooslas_4i3gá3moosles_4i3gá3mooslos_4i3gá3moselas_4i3gá3moseles_4i3gá3moselos_4i3gá3mosmele_4i3gá3mosmelo_4i3gá3mostele_4i3gá3mostelo_supe3r4á3vits_", + 15 : "4e3ra3blemente_4i3gá3monoslas_4i3gá3monosles_4i3gá3monoslos_4i3gá3mos3mela_4i3gá3mosmeles_4i3gá3mosmelos_4i3gá3mos3tela_4i3gá3mosteles_4i3gá3mostelos_4o3lógicamente_", + 16 : "4i3gá3mos3melas_4i3gá3mos3telas_", + 17 : "_de3s4in3ter2e3sa_de3s4in3ter2e3sá_de3s4in3ter2e3se_de3s4in3ter2e3sé_de3s4in3ter2e3so_de3s4in3ter2e3só" } }; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/fi.js b/resources/viewer/hyphenate/patterns/fi.js index 2310cd5eed..4cb7147ca8 100644 --- a/resources/viewer/hyphenate/patterns/fi.js +++ b/resources/viewer/hyphenate/patterns/fi.js @@ -1,17 +1,17 @@ -Hyphenator.languages.fi = { +Hyphenator.languages['fi'] = { leftmin : 2, rightmin : 2, shortestPattern : 2, longestPattern : 7, - specialChars : 'öäå', + specialChars : "öäå", patterns : { - 3 : '1ba1be1bi1bo1bu1by1da1de1di1do1du1dy1dä1dö1fa1fe1fi1fo1fu1fy1ga1ge1gi1go1gu1gy1gä1gö1ha1he1hi1ho1hu1hy1hä1hö1ja1je1ji1jo1ju1jy1jä1jö1ka1ke1ki1ko1ku1ky1kä1kö1la1le1li1lo1lu1ly1lä1lö1ma1me1mi1mo1mu1my1mä1mö1na1ne1ni1no1nu1ny1nä1nö1pa1pe1pi1po1pu1py1pä1pö1ra1re1ri1ro1ru1ry1rä1rö1sa1se1si1so1su1sy1sä1sö1ta1te1ti1to1tu1ty1tä1tö1va1ve1vi1vo1vu1vy1vä1vöä2yo1yö2ya1äa1öo1äo1öä2äö2öä2öö2ä_ä2u2sb2lb2rd2rf2lf2rg2lg2rk2lp2lp2rc2lq2v', - 4 : 'y1a2y1o2u1y2y1u2ö3a2ö3o2ä3a2ä3o2ä1u2ö1u2u1ä2u1ö2e1aai1aao1aau1aau1eea1uui1uue1uuo1uuää1iää1eää3yi1ääe1ääy1ääi1ööa1eia1oie1aii1auy1eiai1aai1eai1oai1uau1aau1eeu1aie1aie1oie1yiu1aiu1eiu1ooi1aoi1eoi1ooi1uo1uiou1eou1oue1aui1euo1auo1ue1ö2ö1e2r2asl2as1k2vsc2hts2h', - 5 : '1st2raa1i2aa1e2aa1o2aa1u2ee1a2ee1i2ee1u2ee1y2ii1a2ii1e2ii1o2uu1a2uu1e2uu1o2uu1i2io1a2io1e2keus11b2lo1b2ri1b2ro1b2ru1d2ra1f2la1f2ra1f2re1g2lo1g2ra1k2ra1k2re1k2ri1k2va1p2ro1q2vich2r', - 6 : '1sp2lialous1rtaus1perus12s1ase2s1apuulo2s1bib3li', - 7 : 'yli1o2pali1a2v2s1ohje1a2sian1a2siat1a2sioi2s1o2sa2n1o2sa_ydi2n12n1otto2n1oton2n1anto2n1anno2n1aika2n1a2jo2s1a2jo', - 8 : '2s1a2sia2n1o2pet2s1a2loialkei2s12n1e2dus2s1ajatu2s1y2rit2s1y2hti2n1a2jan2n1o2mai2n1y2lit2s1a2len2n1a2len', - 9 : '2s1o2pisk2n1o2pist2s1o2pist2s1i2dea_2s1i2dean2s1e2sity_suu2r1a2', - 11 : '1a2siaka2s1' + 3 : "1ba1be1bi1bo1bu1by1da1de1di1do1du1dy1dä1dö1fa1fe1fi1fo1fu1fy1ga1ge1gi1go1gu1gy1gä1gö1ha1he1hi1ho1hu1hy1hä1hö1ja1je1ji1jo1ju1jy1jä1jö1ka1ke1ki1ko1ku1ky1kä1kö1la1le1li1lo1lu1ly1lä1lö1ma1me1mi1mo1mu1my1mä1mö1na1ne1ni1no1nu1ny1nä1nö1pa1pe1pi1po1pu1py1pä1pö1ra1re1ri1ro1ru1ry1rä1rö1sa1se1si1so1su1sy1sä1sö1ta1te1ti1to1tu1ty1tä1tö1va1ve1vi1vo1vu1vy1vä1vöä2yo1yö2ya1äa1öo1äo1öä2äö2öä2öö2ä_ä2u2sb2lb2rd2rf2lf2rg2lg2rk2lp2lp2rc2lq2v", + 4 : "y1a2y1o2u1y2y1u2ö3a2ö3o2ä3a2ä3o2ä1u2ö1u2u1ä2u1ö2e1aai1aao1aau1aau1eea1uui1uue1uuo1uuää1iää1eää3yi1ääe1ääy1ääi1ööa1eia1oie1aii1auy1eiai1aai1eai1oai1uau1aau1eeu1aie1aie1oie1yiu1aiu1eiu1ooi1aoi1eoi1ooi1uo1uiou1eou1oue1aui1euo1auo1ue1ö2ö1e2r2asl2as1k2vsc2hts2h", + 5 : "1st2raa1i2aa1e2aa1o2aa1u2ee1a2ee1i2ee1u2ee1y2ii1a2ii1e2ii1o2uu1a2uu1e2uu1o2uu1i2io1a2io1e2keus11b2lo1b2ri1b2ro1b2ru1d2ra1f2la1f2ra1f2re1g2lo1g2ra1k2ra1k2re1k2ri1k2va1p2ro1q2vich2r", + 6 : "1sp2lialous1rtaus1perus12s1ase2s1apuulo2s1bib3li", + 7 : "yli1o2pali1a2v2s1ohje1a2sian1a2siat1a2sioi2s1o2sa2n1o2sa_ydi2n12n1otto2n1oton2n1anto2n1anno2n1aika2n1a2jo2s1a2jo", + 8 : "2s1a2sia2n1o2pet2s1a2loialkei2s12n1e2dus2s1ajatu2s1y2rit2s1y2hti2n1a2jan2n1o2mai2n1y2lit2s1a2len2n1a2len", + 9 : "2s1o2pisk2n1o2pist2s1o2pist2s1i2dea_2s1i2dean2s1e2sity_suu2r1a2", + 11 : "1a2siaka2s1" } }; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/fr.js b/resources/viewer/hyphenate/patterns/fr.js index 16d9b18235..a596f88e2f 100644 --- a/resources/viewer/hyphenate/patterns/fr.js +++ b/resources/viewer/hyphenate/patterns/fr.js @@ -1,27 +1,26 @@ -Hyphenator.languages.fr = { +// The french hyphenation patterns are retrieved from +// http://tug_org/svn/texhyphen/trunk/collaboration/repository/hyphenator/ +Hyphenator.languages['fr'] = { leftmin : 2, - rightmin : 2, + rightmin : 3, shortestPattern : 1, longestPattern : 14, - specialChars : 'âêîôûçœéèàî', - //The french hyphenation patterns are retrieved from http://extensions.services.openoffice.org/project/french-dictionary-reform1990 - //They are under LGPL + specialChars : "àâçèéêîïôûœ’'", patterns : { - 2 : "1j1q1ç", - 3 : "'a4'e4'i4'o4'u4'y4'â4'è4'é4'ê4'î4'ô4'û4_a4_e4_i4_o4_u4_y4_â4_è4_é4_ê4_î4_ô4_û41ba1be1bi1bo1bu1by1bâ1bè1bé1bê1bî1bô1bû1ca1ce1ci1co1cu1cy1câ1cè1cé1cê1cî1cô1cû1da1de1di1do1du1dy1dâ1dè1dé1dê1dî1dô1dû1fa1fe1fi1fo1fu1fy1fâ1fè1fé1fê1fî1fô1fû1ga1ge1gi1go1gu1gy1gâ1gè1gé1gê1gî1gô1gû1ha1he1hi1ho1hu1hy1hâ1hè1hé1hê1hî1hô1hû1ka1ke1ki1ko1ku1ky1kâ1kè1ké1kê1kî1kô1kû1la1le1li1lo1lu1ly1là1lâ1lè1lé1lê1lî1lô1lû1ma1me1mi1mo1mu1my1mâ1mè1mé1mê1mî1mô1mû1na1ne1ni1no1nu1ny1nâ1nè1né1nê1nî1nô1nû1pa1pe1pi1po1pu1py1pâ1pè1pé1pê1pî1pô1pû1ra1re1ri1ro1ru1ry1râ1rè1ré1rê1rî1rô1rû1sa1se1si1so1su1sy1sâ1sè1sé1sê1sî1sô1sû1ta1te1ti1to1tu1ty1tà1tâ1tè1té1tê1tî1tô1tû1va1ve1vi1vo1vu1vy1vâ1vè1vé1vê1vî1vô1vû1wa1we1wi1wo1wu1za1ze1zi1zo1zu1zy1zè1zé2'22jkn1xé1q", - 4 : "_1ba_1bi_1ci_1co_1cu_1da_1di_1do_1dy_1dé_1ge_1la_1ma_1mi_1mo_1mé_1no_1pa_1pe_1po_1pu_1pé_1re_1ré_1sa_1se_1so_1su_1sy_1ta1b2l1b2r1c2h1c2k1c2l1c2r1c½01d2r1f2l1f2r1g2l1g2n1g2r1k2h1k2r1m½01n½01p2h1p2l1p2r1r2h1s2h1s½01t2h1t2r1v2r1w2r2chb2chg2chm2chn2chp2chs2cht2chw2ckb2ckf2ckg2ckp2cks2ckt2phn2phs2pht2shm2shr2shs2thl2thm2thn2ths4be_4ce_4ch_4ck_4de_4fe_4ge_4he_4je_4ke_4kh_4le_4me_4ne_4pe_4ph_4re_4se_4sh_4te_4th_4ve_4we_4ze_a1bîa1laa1maa1nea1nia1poa1viab2hac1qad2har1cb1leb1reb1ruc1cic1kec1lac1lec1rec2hac2hec2hic2hoc2huc2hyc2hâc2hèc2héc2hêc2hîc2hôc2hûch2lch2rd1had1hod1led1red1s2e1nif1laf1lef1ref1rif1s2g1leg1neg1rag1reg1s2i1vail2ll1lil1lul1mem1nèm1ném1s2n1sao1pup1hep1hop1lep1lup1nep1rep1rip1rop1rup1rép1syp1tèp1téph2lph2rr1cir1her1hyr1mis1cas1cos1hes1hos1las1los1pas1pes1pis1pos1tas1tes1tis1tos1tys1tét1het1rat1ret1rit1ruth2ru1ciu1niu1viv1reâ1meè1meé1ceé1cié1cué1deé1leé1lié1loé1léé1mié1neé1nié1pié1reô1me", - 5 : "'a1mi'a1na'a1po'o1vi_1p2l_1p2r_1t2r_a1mi_a1na_a1po_c2hè_con4_cul4_dé2s_o1vi_p1ha_p1lu_p1ro_p1ré_p1sy_pe4r_réu2_s1ta_s1ti_t1ri_é1mi1d2'21g2ha1g2he1g2hi1g2ho1g2hy1p2né4bes_4ces_4des_4fes_4ges_4gue_4hes_4jes_4kes_4les_4mes_4nes_4pes_4que_4res_4ses_4tes_4ves_4wes_4zes_ab1seac1ceai1meal1coan1tiap1paar1mear1mias1meau1meca1pica1rêch1lech1loch1rech1rocil3lco1apco1arco1auco1axco1efco1enco1exco1nuco1é2cy1rid1d2hda1medi1lidé1caer1mees1cees1coes1tifa1mefu1mefé1cugil3lhil3lhu1mehy1pehy1pohé1mihé1moi1b2ri1oxyib1riim1maim1miim1poim1puin1ciin1diin1doin1duin1foin1noin1soin1tein1tiis1ceis1taja1cel1s2tlil3lmi1memil3lmo1nomu1nimé1coo1b2lo1d2lo1g2nob1looc1teog1noom1buom1meom1nior1meos1taos1tios1toos1tépa1lépa1piph1leph1reph1taph1tipi1ripo1lypu1pipu1sipé1nupé1réra1dira1mere1lere1lire1peri1meru1leré1geré1maré1suré1tis1c2ls1p2hs1t2rsc1lésc2hese1mises1qsp1hèsp1hést1rost1rusu1mesu1pesu1rasu1rét1c2ht1t2lta1metc2hith1reth1rito1metu1meté1léue1viva1civa1nive1nivi1divil3lvé1loxil3lys1toé1d2réd1riéd2hiélo1q", - 6 : "'a1b2r'a1g2n'ab1ré'ag1na'an1ti'ar1ge'ar1pe'as2ta'i1g2n'in1te'in2er'on1gu_1c2h4_1k2h4_1p2h4_1s2h4_1t2h4_a1b2r_a1g2n_ab1ré_ag1na_an1ti_ar1de_ar1ge_ar1pe_as2ta_bi1au_bi1u2_ci1sa_co1o2_cons4_do1le_dy2s3_dé1a2_dé1io_dé1o2_dé1sa_dé1se_dé1so_dé1su_i1g2n_in1te_in2er_la1te_ma1la_ma1le_ma1li_ma1lo_mil3l_mo1no_mé1go_mé1se_mé1su_mé1ta_mé2sa_no1no_on1gu_pa1na_pa1ni_pa1no_pa1ra_pa1re_pa1te_pé1ri_re1s2_res1q_ré1a2_ré1e2_ré1i2_ré1o2_ré1é2_ré2el_ré2er_ré2èr_su1bi_su1bu_su1ri_su1ro_ta1le1m2nès1octet1p2neu1p2tèr1p2tér1s2c2h1s2cop1s2lav1s2lov1s2por2bent_2c1k3h2cent_2dent_2fent_2gent_2jent_2kent_2lent_2nent_2pent_2rent_2s2chs2s3hom2sent_2tent_2vent_2went_2xent_2zent_3d2hal4b4le_4b4re_4c4he_4c4ke_4c4le_4c4re_4d4re_4f4le_4f4re_4g4le_4g4ne_4g4re_4gues_4p4he_4p4le_4p4re_4ques_4r4he_4s4ch_4s4he_4t4he_4t4re_4v4re_abs1tiabî1meani1mear1c2harc2hias1t2ravil4laè1d2rbou1mebou1tibru1mecci1deche1vicla1meco1a2dco1accco1g2ncog1nicom1pécon1ficon1nicon1ticor1pucur1redis1codis1sidis1tidé1t2rdét1rien1t2rent1reeus1taex1t2rfi1c2hfic2hufir1mefri1tihémi1éins1tiisc2hiiva1leiè1d2rl3lionla1w2rllu1memil1lemit1tenu1t2rnut1riopu1leos1t2rost1raost1rioxy1a2oè1d2rpe1r3hper1maper1tipho1toplu1mepri1vapru1depré1sepu1g2npug1napé2nulqua1merai1mercil4lrin1germil4lry1t2hry2thmser1geser1pesla1lospa1tispi1rospo1rusto1mosté1résu1b2lsub1lisub1s2suc1cuta1c2htac2hytan1getem1péter1getes1tator1retri1detru1cutur1buucil4luvil4lvol1tawa2g3néci1meécu1meédri1qéli1meélé1meémil4léni1te", - 7 : "'ab3réa'ami1no'e1n1a2'e1n1o2'i1n1a2'i1n1e2'i1n1i2'i1n1o2'i1n1u2'i1n1é2'i2g3ni'i2g3né'i2g4no'in2ept'in2i3q'in2i3t'in2ond'in2u3l'in2uit'ina1ni'ini1mi'ino1cu'ins1ta'iné1lu'iné1na'oua1ou_ab3réa_ami1no_bai1se_bi1a2c_bi1a2t_bio1a2_com1me_coo1li_da1c2r_dac1ry_di1ald_di1e2n_di2s3h_dia1ci_dia1to_dé2s1½_dé3s2c_dé3s2p_dé3s2t_e1n1a2_e1n1o2_gem1me_i1n1a2_i1n1e2_i1n1i2_i1n1o2_i1n1u2_i1n1é2_i2g3ni_i2g3né_i2g4no_in2ept_in2i3q_in2i3t_in2ond_in2u3l_in2uit_ina1ni_ini1mi_ino1cu_ins1ta_iné1lu_iné1na_ma1c2r_ma1g2n_ma2c3k_ma2r1x_mac1ro_mag1ni_mag1nu_mil1li_mé2s1i_mé3san_oua1ou_pa1r2h_pen2ta_pha1la_plu1ri_pon1te_pos1ti_pro1é2_pré1a2_pré1e2_pré1i2_pré1o2_pré1s2_pré1u2_pré1é2_pré2au_re2s3s_re2s3t_res1ca_res1ci_res1co_res1pe_res1pi_res1po_res1se_res1ta_res1ti_res1to_res1té_ré1t2r_ré2aux_ré2uss_réa1li_rét1ro_sar1me_ser1me_seu2le_sou1ve_stil3l_su1b2l_su2r3h_sub1li_émi1ne1alcool1s2clér1s2perm1s2phèr1s2phér1s2piel1s2tein1s2tigm1é2drie1é2nerg2chent_2guent_2phent_2quent_2r3heur2shent_2t3heur3d2houd3ph2tis4b4les_4b4res_4c4hes_4c4kes_4c4les_4c4res_4ch4le_4ch4re_4d4res_4f4les_4f4res_4g4les_4g4nes_4g4res_4p4hes_4p4les_4p4res_4ph4le_4ph4re_4r4hes_4s4hes_4t4hes_4t4res_4th4re_4v4res_amal1gaanti1feappa1rearmil5lcapil3lcarê1mechlo1rachlo1réchro1meco1ac1qco2nurbcoas1socoas1sucyril3ldia1p2hdiaph2rdili1gedéca1dee2s3c2he2s3copesti1meext1ra1extra2cextra2iflam1mefécu1legram1megran1dihype4r1hypers2hypo1a2hypo1e2hypo1i2hypo1o2hypo1s2hypo1u2hypo1é2i1al1gii1s2c2hi1s2tatiar1t2hibril3limma1neimmi1neimpo1teimpu1deinci1deindi1geindo1leinno1ceinso1leinti1meio1a2ctl2ment_la2w3remil4letmon1t2rmono1vamont1rémoye1nâmuni1fin3s2at_o1io1nio1s2taso1s2tato1s2timo1s2tomogno1moomni1poomni1s2papil2lpiril3lpoly1a2poly1e2poly1i2poly1o2poly1s2poly1u2poly1vapoly1è2poly1é2pros1taproé1mipréé1mipupil3lpusil3lreli1meryth1meréma1neréti1cesemil4lstan1dasu3r2ahsupe4r1supers2suré1mither1mothril3ltung2s3télé1e2télé1i2télé1s2u2s3t2ruevil4luni1a2xuni1o2vvacil4lvanil2lven1t2rveni1mevent1rividi1mey1al1giy1s2tomâ2ment_è2ment_é3cent_é3dent_é3rent_épis1coéqui1poéqui1vaô2ment_", - 8 : "'a2g3nat'anti1a2'anti1e2'anti1s2'anti1é2'eu2r1a2'inau1gu'inef1fa'inte4r3'inters2'ovi1s2c_1s2c2h4_a2g3nat_anti1a2_anti1e2_anti1s2_anti1é2_bi2s1a2_chè1v2r_chèv1re_con1t2r_cont1re_di1a2cé_di1a2mi_dy2s1a2_dy2s1i2_dy2s1o2_dy2s1u2_dé2s1i2_dé2s1é2_dés2a3m_désa1te_dési1ne_déso1pi_eu2r1a2_inau1gu_inef1fa_inte4r3_inters2_ma2l1ap_ma2l1en_ma2l1oc_mono1a2_mono1e2_mono1i2_mono1o2_mono1s2_mono1u2_mono1é2_mé2g1oh_mé2s1es_ovi1s2c_pa2n1is_pa2r3hé_para1s2_pe1r1a2_pe1r1e2_pe1r1i2_pe1r1o2_pe1r1u2_pe1r1é2_pluri1a_pon2tet_pos2t3h_pos2t3r_post1s2_pro1g2n_prog1na_psyc2ho_pud1d2l_péri1os_péri1s2_péri1u2_re3s4tu_re3s4ty_res1c2r_res1p2l_resp1le_rest1re_rest1ri_ré2a3le_ré2i3fi_sta2g3n_su2b1a2_su2b1in_su2b1ur_su2b1é2_su2b3lu_su2r1a2_su2r1e2_su2r1of_su2r1ox_su2r1é2_su3r2et_syn1g2n_syng1na_tri1a2c_tri1a2n_tri1a2t_tri1o2n1m2né1mo1m2né1si1s2patia1s2piros1s2tomos1s2ty1le2b2lent_2b2rent_2c2kent_2c2lent_2c2rent_2d2lent_2d2rent_2f2lent_2f2rent_2g2lent_2g2nent_2g2rent_2p2lent_2p2rent_2t2rent_2v2rent_4ch4les_4ch4res_4ph4les_4ph4res_4s4c4he_4th4res_a1è2d1rea2s3t1roab3sent_absti1neac3cent_ai2ment_anes1t2hanest1héar2ment_as2ment_au2ment_boutil3lca3ou3t2chevil4lchien1deco1assocco1assurcompé1teconfi1deconni1veconti1necorpu1leda2ment_di2s3copdiaph1radissi1dedistil3ldétri1meentre1geer2ment_es3cent_eu1s2tatfa2ment_fichu1mefritil3lfu2ment_hu2ment_hype1ra2hype1re2hype1ri2hype1ro2hype1ru2hype1ré2hémo1p2ti1arth2ri1è2d1rei2s3c2héi2s3chiai2s3chioimmis1ceindul1geinfor1mainstil3lintel1liis3cent_ja3cent_mi2ment_mécon1ten3s2ats_nutri1meo1s2trado1è2d1reo2b3longom2ment_ombud2s3or2ment_paléo1é2papil1lopapil3lapapil3lepapil3liperma1neperti1nephoto1s2poas1t2rpu2g3nacpé1r2é2qra2ment_radio1a2re3lent_re3pent_ri2ment_ru3lent_ré3gent_résur1geslalo1mesporu1lesu2ment_subli1mesuccu1lesupe1ro2ta2ment_tachy1a2tchin3t2tempé1ratesta1meto2ment_tran2s3htran2s3ptrans1patrucu1letu2ment_turbu1letélé1o2btélé1o2pvanil1liy1as1t2hé3quent_", - 9 : "'ae3s4c2h'apo2s3ta'ar3gent_'ar3pent_'in1s2tab'in2a3nit'in2augur'in2effab'in2o3cul'inte1ra2'inte1re2'inte1ri2'inte1ro2'inte1ru2'inte1ré2_ae3s4c2h_apo2s3ta_ar3dent__ar3gent__ar3pent__baise1ma_ci2s1alp_co2o3lie_di1a2cid_di1a2tom_do3lent__dé2s1u2n_dé3s2ert_dé3s2exu_dé3s2i3d_dé3s2i3r_dé3s2ist_dé3s2o3l_dé3s2orm_dé3s2orp_désen1si_in1s2tab_in2a3nit_in2augur_in2effab_in2o3cul_inte1ra2_inte1re2_inte1ri2_inte1ro2_inte1ru2_inte1ré2_la3tent__ma2g3num_ma2l1a2v_ma2l1int_ma2l1o2d_magni1ci_magni1fi_mala1d2r_malad1re_milli1am_mé2s1u2s_no2n1obs_pa2n1a2f_pa2n1opt_pa3rent__pa3tent__para1c2h_pos2t1in_pos2t1o2_pro1s2cé_prou3d2h_pré2a3la_péri2s3s_re2s3cap_re2s3cou_re2s3pir_re3s4t2r_re3s4tab_re3s4tag_re3s4tat_re3s4tim_re3s4tip_re3s4toc_re3s4top_re3s4tén_re3s4tér_ré2a3lis_ré2a3lit_rétro1a2_su2b3lin_su2r1i2m_su2r1inf_su2r1int_su3b2alt_su3b2é3r_su3r2a3t_su3r2eau_su3r2ell_subli1mi_ta3lent_1informat1p2sy1c2h1s2ca1p2h1s2to1c2k1é2drique1é2lément2r3hy1d2r3ph2ta1lé4s4c4hes_a2l1al1giabî2ment_amalga1meani2ment_apo2s3t2rarchié1pibou2ment_bru2ment_cci3dent_cla2ment_contin1gecur3rent_e2n1i2v2rfir2ment_grandi1loiva3lent_llu2ment_mit3tent_monova1lemunifi1ceo1s2té1roo2g3no1siomnipo1teopu3lent_ostric1tipapil3lomplu2ment_po1ast1repolyva1leprivat1dopro2s3tatproémi1nepru3dent_pré3sent_préémi1nepugna1b2lqua2ment_rai3ment_rin3gent_ser3gent_ser3pent_sesqui1a2stéréo1s2surémi1netan3gent_ter3gent_thermo1s2tor3rent_tran2s1a2tran2s1o2tran2s1u2tri3dent_vanil3linvanil3lisventri1povol2t1ampvélo1s2kiéci2ment_écu2ment_éli2ment_éni3tent_épi2s3copéquipo1teéquiva1le", - 10 : "'amino1a2c'ana3s4t2r'in2exo1ra'on3guent__1p2sy1c2h_amino1a2c_ana3s4t2r_chèvre1fe_com3ment__contre1ma_dacryo1a2_dé3s2i3li_gem2ment__in2exo1ra_macro1s2c_mono1ï2dé_on3guent__pa2n1a2mé_pa2n1a2ra_péri2s3ta_re2s3c1ri_re2s3pect_re2s3pons_re2s3quil_re3s4tand_re4s5trin_res3sent__sar3ment__ser3ment__sou3vent__émi3nent_1s2tandard1s2tro1p2h1s2truc1tu1é2lec1t2racquies1ceantifer1meappa3rent_carê2ment_chlo2r3a2cchlo2r3é2tchro2ment_co2g3ni1tidili3gent_déca3dent_esti2ment_flam2ment_fécu3lent_gram2ment_grandilo1qimma3nent_immi3nent_impo3tent_impu3dent_inci3dent_indi3gent_indo3lent_inno3cent_inso3lent_intelli1geinti2ment_mon2t3réalmoye2n1â2go1s2tra1tureli2ment_ryth2ment_réma3nent_réti3cent_tempéra1metran3s2acttran3s2atstranspa1reveni2ment_vidi2ment_élo3quent_", - 11 : "'anti2en1ne'in2i3mi1ti_1dé3s2o3dé_anti2en1ne_contre1s2c_dé3s2a3c2r_dé3s2ensib_dé3s2i3g2n_dé3s2i3nen_dé3s2in1vo_dé3s2o3pil_dé3s2é3g2r_in2i3mi1ti_ma2l1ai1sé_magnifi1ca_mé1ta1s2ta_pa2n1o2p2h_phalan3s2t_psycho1a2n_re2s3ci1si_re2s3ci1so_re2s3plend_re4s5trein_re4s5trict_su2b3liminabsti3nent_archi1é2pischien3dent_compé3tent_confi3dent_conni3vent_conti3nent_corpu3lent_diaphrag1medissi3dent_détri3ment_entre3gent_fichu3ment_immis4cent_indul3gent_mécon3tent_nutri3ment_o2g3nomo1niperma3nent_perti3nent_privatdo1ceprivatdo1zepu2g3nab1lerésur3gent_slalo2ment_sporu4lent_subli2ment_succu3lent_testa3ment_trucu3lent_turbu3lent_ventripo1teépi3s4co1pe", - 12 : "'in2é3luc1ta'in2é3nar1ra_bai2se3main_dé3s2a3tell_dé3s2as1t2r_dé3s2ou1f2r_in2é3luc1ta_in2é3nar1ra_ma2l1a2d1ro_ma2l1a2dres_pa2r1a2c2he_pa2r1a2c2hè1a2nesthé1siamalga2ment_contin3gent_monova3lent_munifi3cent_o1s2trictionomnipo3tent_polyva3lent_proémi3nent_préémi3nent_surémi3nent_équipo3tent_équiva4lent_", - 13 : "_ma2g3nici1de_ma2g3nificat_pro2g3na1t2h_syn2g3na1t2hacquies4cent_antifer3ment_intelli3gent_tempéra3ment_transpa3rent_", - 14 : "_chèvrefeuil2l_contremaî1t2rdiaphrag2ment_privatdo3cent_privatdo3zent_ventripo3tent_", + 2 : "1ç1j1q", + 3 : "1gè’â41zu1zo1zi1zè1zé1ze1za’y4_y41wu1wo1wi1we1wa1vy1vû1vu1vô1vo1vî1vi1vê1vè1vé1ve1vâ1va’û4_û4’u4_u41ba1bâ1ty1be1bé1bè1bê1tû1tu1tô1bi1bî1to1tî1ti1tê1tè1té1te1tà1tâ1ta1bo1bô1sy1sû1su1sÅ“1bu1bû1by2’21ca1câ1sô1ce1cé1cè1cê1so1sî1si1sê1sè1sé1se1sâ1sa1ry1rû1ru1rô1ro1rî1ri1rê1rè1ré1re1râ1ra’a41py1pû1pu1pô1po1pî1pi1pê1pè1pé1pe1pâ1pa_ô41ci1cî’ô4’o4_o41nyn1x1nû1nu1nÅ“1nô1no1nî1ni1nê1nè1né1ne1nâ1co1cô1na1my1mû1mu1mÅ“1mô1mo1mî1mi1cÅ“1mê1mè1mé1me1mâ1ma1ly1lû1lu1lô1lo1lî1li1lê1lè1cu1cû1cy1lé1d’1da1dâ1le1là1de1dé1dè1dê1lâ1la1ky1kû1ku1kô1ko1kî1ki1kê1kè1ké1ke1kâ1ka2jk_a4’î4_î4’i4_i41hy1hû1hu1hô1ho1hî1hi1hê1hè1hé1he1hâ1ha1gy1gû1gu1gô1go1gî1gi1gê_â41gé1ge1gâ1ga1fy1di1dî1fû1fu1fô1fo’e41fî1fi1fê1fè1do1dô1fé1fe1fâ1fa’è41du1dû1dy_è4’é4_é4’ê4_ê4_e41zy", + 4 : "1f2lab2h2ckg2ckp2cksd1s22ckb4ck_1c2k2chw4ze_4ne_2ckt1c2lad2hm1s22cht2chsch2r2chp4pe_1t2r1p2h_ph44ph_ph2l2phnph2r2phs1d2r2pht2chn4fe_2chm1p2l1p2r4me_1w2rch2l2chg1c2r2chb4ch_1f2r4le_4re_4de_f1s21k2r4we_1r2h_kh44kh_1k2h4ke_1c2h_ch44ge_4je_4se_1v2r_sh41s2h4ve_4sh_2shm2shr2shs4ce_il2l1b2r4be_1b2l4he_4te__th41t2h4th_g1s21g2r2thl1g2l2thm2thnth2r1g2n2ths2ckf", + 5 : "2ck3h4rhe_4kes_4wes_4res_4cke_éd2hi4vre_4jes_4tre_4zes_4ges_4des_i1oxy4gle_d1d2h_cul44gne_4fre_o1d2l_sch44nes_4les_4gre_1s2ch_réu24sch_4the_1g2hy4gue_2schs4cle_1g2ho1g2hi1g2he4ses_4tes_1g2ha4ves_4she_4che_4cre_4ces_t1t2l4hes_l1s2t4bes_4ble__con4xil3lco1ap4que_vil3l4fle_co1arco1exco1enco1auco1axco1ef4pes_co1é2per3h4mes__pe4r4bre_4pre_4phe_1p2né4ple__dé2smil3llil3lhil3l4dre_cil3lgil3l4fes_", + 6 : "’in1o2rcil4l4phre_4dres_l3lioni1algi2fent_émil4l4phle_rmil4l4ples_4phes_1p2neuextra14pres_y1asthpé2nul2xent__mé2sa2pent_y1algi4chre_1m2nès4bres_1p2tèr1p2tér4chle_’en1o24fles_oxy1a2avil4l_en1o24ques_uvil4lco1a2d4bles__in1a2’in1a21s2por_cons4_bi1u2’as2ta_in1e2’in1e2_in1é2’in1é21s2lov1s2lavco1acq2cent__as2ta_co1o24ches_hémi1é_in2er’in2er2s3homo1ioni_in1i2’in1i22went_4shes__ré1a2_ré1é2_ré1e2_ré2el_in1o2ucil4lco1accu2s3tr_ré2er_ré2èr4cles_2vent__ré1i22sent_2tent_2gent__ré1o24gues__re1s24sche_4thes_’en1a2e2s3ch4gres_1s2cop2lent__en1a22nent__in1u2’in1u24gnes_4cres_wa2g3n4fres_4tres_4gles_1octet_dé1o2_dé1io4thre__bi1au2jent__dé1a22zent_4vres_2dent_4ckes_4rhes__dy2s3sub1s22kent_2rent_2bent_3d2hal", + 7 : "a2g3nos3d2houdé3rent__dé3s2t_dé3s2pé3dent_2r3heur2r3hydri1s2tat2frent_io1a2ctla2w3re’in2u3l_in2u3l2crent_’in2uit_in2uit1s2caph1s2clér_ré2ussi2s3ché_re2s3t_re2s3s4sches_é3cent__seu2le’in2ond_in2ond’in2i3t_in2i3t’in2i3q_ré2aux_in2i3q2shent__di1alduni1a2x’in2ept2flent__in2eptuni1o2v2brent_co2nurb2chent_2quent_1s2perm1s2phèr_ma2c3kuevil4l1s2phér1s2piel1s2tein1s2tigm4chles_1s2tock1s2tyle1p2sych_pro1é2_ma2r1x_stil3lpusil3libril3lcyril3l_pré1s2thril3l_mé3san_pré1u2_mé2s1i_pré1o2_pré1i2piril3lpupil3lâ2ment__pré1e2_pré1é2_pré2au_pré1a22prent_2vrent_supero2_di1e2npoly1u2è2ment_poly1s2poly1o2poly1i2poly1è2poly1é2poly1e2poly1a2supe4r1capil3l2plent_armil5lsemil4lmil4letvacil4l_di2s3h3ph2tis2dlent_a2s3tro4phres_l2ment_i1è2drei1arthr2drent_4phles_supers2ô2ment_extra2i2phent_su3r2ah_su2r3hextra2chypo1u21alcool_per1u2_per1o2_per1i2_per1é2hypo1s2_per1a2hypo1o2hypo1i2hypo1é2_pen2tahypo1e2hypo1a2y1s2tome2s3cophyperu2hype4r1hypers2hypero21m2némohyperi21m2nési4chres_a1è2drehyperé2hypere2hypera2’oua1ou_oua1ouo1s2tomo1s2timo1s2tato1s2tasomni1s2tung2s3_dé3s2c2blent__bio1a2télé1e2télé1i22clent_télé1s22guent_1é2nerg2grent_2trent__dé2s1Å“2t3heuro1è2dre2gnent_2glent_4thres__bi1a2t1é2drie_bi1a2c_i2g3nin3s2at_’i2g3ni2ckent__i2g3né’ab3réa’i2g3né_ab3réa_per1e2", + 8 : "_ma2l1ap_dy2s1u2_dy2s1o2_dy2s1i2n3s2ats__dy2s1a2distil3l1é2lectrinstil3l1s2trophe2n1i2vro2b3long1s2tomos_ae3s4ch’ae3s4ch_eu2r1a2ombud2s3’eu2r1a2_mono1s2_mono1u2o1s2téro_mono1o2eu1s2tato1s2tradfritil3la2l1algi_mono1i2_mono1é2_ovi1s2c’ovi1s2c_mono1e2_mono1a2co1assocpaléo1é2boutil3l1s2piros_ré2i3fi_pa2n1ischevil4l1s2patiaca3ou3t2_di1a2cé_para1s2_pa2r3héco1assur_su2b1é2tu2ment_su2ment__su2b1in_su2b3lupapil3lire3pent_’inte4r3_su2b1urab3sent__su2b1a2di2s3cophu2ment_fu2ment__intera2au2ment_as2ment_or2ment_’intera2_intere2pé1r2é2q_péri1os_péri1s2ja3cent__anti1a2_péri1u2’anti1a2er2ment__anti1e2ac3cent_ar2ment_to2ment_’intere2ré3gent_papil3leom2ment_’anti1e2photo1s2_anti1é2_interé2’anti1é2_anti1s2’anti1s23ph2talé’interé2ri2ment__interi2’interi2mi2ment_apo2s3tri2s3chio_pluri1ai2s3chia_intero2’intero2_inte4r3po1astre_interu2’interu2_inters2ai2ment_’inters2papil3la_tri1o2n_su2r1a2_pon2tet_pos2t3h_dés2a3mes3cent__pos2t3r_post1s2_tri1a2tta2ment__tri1a2nra2ment_is3cent__su2r1e2_tri1a2cfa2ment_da2ment__su3r2et_su2r1é2_mé2s1es_mé2g1oh_su2r1of_su2r1ox_re3s4ty_re3s4tu_ma2l1oc’a2g3nat_dé2s1é2_ma2l1entachy1a2_pud1d2ltchin3t2_re3s4trtran2s3p_bi2s1a2tran2s3hhémo1p2té3quent__a2g3nat_dé2s1i2télé1o2bo2g3nosiradio1a2télé1o2ppu2g3nacru3lent__sta2g3nre3lent__ré2a3le_di1a2mi", + 9 : "_ré2a3lit_dé3s2o3lthermo1s2_dé3s2ist_dé3s2i3rmit3tent_éni3tent__do3lent__ré2a3lisopu3lent__pa3tent__re2s3cap_la3tent__co2o3lie_re2s3cou_re2s3cri_ma2g3num_re2s3pir_dé3s2i3dco2g3nititran2s1a2tran2s1o2_dé3s2exu_re3s4tab_re3s4tag_dé3s2ert_re3s4tat_re3s4tén_re3s4tér_re3s4tim_re3s4tip_re3s4toc_re3s4toptran2s1u2_no2n1obs_ma2l1a2v_ma2l1int_prou3d2hpro2s3tativa3lent__ta3lent__rétro1a2_pro1s2cé_ma2l1o2dcci3dent__pa3rent__su2r1int_su2r1inf_su2r1i2mtor3rent_cur3rent__mé2s1u2stri3dent__dé3s2orm_su3r2ell_ar3dent__su3r2eaupru3dent__pré2a3lacla2ment__su3r2a3t_pos2t1o2_pos2t1inqua2ment_ter3gent_ser3gent_rai3ment_abî2ment_éci2ment_’ar3gent__ar3gent_rin3gent_tan3gent_éli2ment_ani2ment_’apo2s3ta_apo2s3tavélo1s2kivol2t1amp_dé3s2orp_dé2s1u2n_péri2s3ssesqui1a2’ana3s4trfir2ment_écu2ment_ser3pent_pré3sent_’ar3pent__ar3pent_’in1s2tab_in1s2tab’in2o3cul_in2o3culplu2ment_bou2ment_’in2exora_in2exora_su2b3linbru2ment__su3b2é3r_milli1am’in2effab_in2effab’in2augur_di1a2cid_in2augur_pa2n1opt’in2a3nit_in2a3nit1informat_ana3s4trvanil3lis_di1a2tom_su3b2altvanil3linstéréo1s2_pa2n1a2fo1s2tratuépi2s3cop_ci2s1alp1s2tructu1é2lément1é2driquepapil3lomllu2ment_", + 10 : "1s2tandardimmi3nent__émi3nent_imma3nent_réma3nent_épi3s4cope_in2i3miti’in2i3miti_res3sent_moye2n1â2gréti3cent__dé3s2a3crmon2t3réalinno3cent__mono1ï2dé_pa2n1a2méimpu3dent__pa2n1a2ra_amino1a2c’amino1a2c_pa2n1o2phinci3dent__ser3ment_appa3rent_déca3dent__dacryo1a2_dé3s2astr_re4s5trin_dé3s2é3gr_péri2s3ta_sar3ment__dé3s2oufr_re3s4tandchro2ment__com3ment__re2s3quil_re2s3pons_gem2ment__re2s3pect_re2s3ciso_dé3s2i3gn_dé3s2i3ligram2ment__dé3s2invo_re2s3cisitran3s2act’anti2enneindo3lent__sou3vent_indi3gent_dili3gent_flam2ment_impo3tent_inso3lent_esti2ment_’on3guent__on3guent_inti2ment__dé3s2o3défécu3lent_veni2ment_reli2ment_vidi2ment_chlo2r3é2tpu2g3nablechlo2r3a2cryth2ment_o2g3nomonicarê2ment__méta1s2ta_ma2l1aisé_macro1s2célo3quent_tran3s2ats_anti2enne", + 11 : "_contre1s2cperti3nent_conti3nent__ma2l1a2dro_in2é3lucta_psycho1a2n_dé3s2o3pil’in2é3luctaperma3nent__in2é3narratesta3ment__su2b3liminrésur3gent_’in2é3narraimmis4cent__pro2g3nathchien3dent_sporu4lent_dissi3dent_corpu3lent_archi1é2pissubli2ment_indul3gent_confi3dent__syn2g3nathtrucu3lent_détri3ment_nutri3ment_succu3lent_turbu3lent__pa2r1a2che_pa2r1a2chèfichu3ment_entre3gent_conni3vent_mécon3tent_compé3tent__re4s5trict_dé3s2i3nen_re2s3plend1a2nesthésislalo2ment__dé3s2ensib_re4s5trein_phalan3s2tabsti3nent_", + 12 : "polyva3lent_équiva4lent_monova3lent_amalga2ment_omnipo3tent__ma2l1a2dreséquipo3tent__dé3s2a3tellproémi3nent_contin3gent_munifi3cent__ma2g3nicideo1s2trictionsurémi3nent_préémi3nent__bai2se3main", + 13 : "acquies4cent_intelli3gent_tempéra3ment_transpa3rent__ma2g3nificatantifer3ment_", + 14 : "privatdo3cent_diaphrag2ment_privatdo3zent_ventripo3tent__contre3maître", 15 : "grandilo3quent_", - 16 : "_cont1re3maît1re", - 17 : "_chè2vre3feuil1le" + 16 : "_chè2vre3feuille" } }; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/grc.js b/resources/viewer/hyphenate/patterns/grc.js new file mode 100644 index 0000000000..dd409f6d7a --- /dev/null +++ b/resources/viewer/hyphenate/patterns/grc.js @@ -0,0 +1,28 @@ +// Hyphenation patterns for Ancient Greek. +// Created by Dimitrios Filippou with some ideas borrowed from +// Yannis Haralambous, Kostis Dryllerakis and Claudio Beccari. +// From http://tug.org/svn/texhyphen/branches/ptex/hyph-utf8/tex/generic/hyph-utf8/patterns/tex/hyph-grc.tex +// Converted by Pablo Rodríguez (hyphenator at pragmata dot tk) +Hyphenator.languages['grc'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 1, + longestPattern : 16, + specialChars : "αεηιουωϊϋἀá¼á¼‚ἃἄἅἆἇá¼á¼‘ἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀá½á½‚ὃὄὅá½á½‘ὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰὲὴὶὸὺὼᾀá¾á¾‚ᾃᾄᾅᾆᾇá¾á¾‘ᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾲᾳᾴᾶᾷῂῃῄῆῇῒῖῗῢῦῧῲῳῴῶῷάέήίόÏÏŽÎΰάέήίόύώΐΰβγδζθκλμνξπÏσϲςτφχψ'ʼ᾿ῤῥ’᾽", + patterns : { + 2 : "α1ε1η1ι1ο1Ï…1ω1ÏŠ1Ï‹1á¼€1á¼1ἂ1ἃ1ἄ1á¼…1ἆ1ἇ1á¼1ἑ1á¼’1ἓ1á¼”1ἕ1á¼ 1ἡ1á¼¢1á¼£1ἤ1á¼¥1ἦ1á¼§1á¼°1á¼±1á¼²1á¼³1á¼´1á¼µ1á¼¶1á¼·1á½€1á½1ὂ1ὃ1ὄ1á½…1á½1ὑ1á½’1ὓ1á½”1ὕ1á½–1á½—1á½ 1ὡ1á½¢1á½£1ὤ1á½¥1ὦ1á½§1á½°1á½²1á½´1á½¶1ὸ1ὺ1á½¼1á¾€1á¾1ᾂ1ᾃ1ᾄ1á¾…1ᾆ1ᾇ1á¾1ᾑ1á¾’1ᾓ1á¾”1ᾕ1á¾–1á¾—1á¾ 1ᾡ1á¾¢1á¾£1ᾤ1á¾¥1ᾦ1á¾§1á¾²1á¾³1á¾´1á¾¶1á¾·1á¿‚1ῃ1á¿„1ῆ1ῇ1á¿’1á¿–1á¿—1á¿¢1ῦ1á¿§1ῲ1ῳ1á¿´1á¿¶1á¿·1ά1έ1ή1ί1ÏŒ1Ï1ÏŽ1Î1ΰ1á½±1á½³1á½µ1á½·1á½¹1á½»1á½½1á¿“1á¿£14'4ʼ4᾿", + 3 : "α2ια2ία2ία2ὶα2ῖα2ἰα2ἴα2ἲα2ἶα2ἱα2ἵα2ἳα2ἷά3ιά3ιᾶ3ιἀ3ιá¼3ια2υα2Ïα2ύα2ὺα2ῦα2á½Î±2ὔα2ὒα2ὖα2ὑα2ὕα2ὓα2ὗά3Ï…á½±3Ï…á¾¶3Ï…á¼€3Ï…á¼3υε2ιε2ίε2ίε2ὶε2ῖε2ἰε2ἴε2ἲε2ἶε2ἱε2ἵε2ἳε2ἷέ3ιέ3ιá¼3ιἑ3ιε2υε2Ïε2ύε2ὺε2ῦε2á½Îµ2ὔε2ὒε2ὖε2ὑε2ὕε2ὓε2ὗέ3Ï…á½³3υἑ3Ï…á¼3υη2υη2Ïη2ύη2ὺη2ῦη2á½Î·2ὔη2ὒη2ὖη2ὑη2ὕη2ὓη2ὗή3Ï…á½µ3υῆ3Ï…á¼ 3υἡ3υο2ιο2ίο2ίο2ὶο2ῖο2ἰο2ἴο2ἲο2ἶο2ἱο2ἵο2ἳο2á¼·ÏŒ3ιό3ιὀ3ιá½3ιο2υο2Ïο2ύο2ὺο2ῦο2á½Î¿2ὔο2ὒο2ὖο2ὑο2ὕο2ὓο2á½—ÏŒ3Ï…á½¹3Ï…á½€3Ï…á½3Ï…Ï…2ιυ2ίυ2á½·Ï…2á½¶Ï…2á¿–Ï…2á¼°Ï…2á¼´Ï…2ἲυ2á¼¶Ï…2ἱυ2ἵυ2ἳυ2á¼·Ï3ιύ3ιῦ3ιá½3ιὑ3ι4β_4γ_4δ_4ζ_4θ_4κ_4λ_4μ_4ν_4ξ_4Ï€_4Ï_4σ_4ϲ_4Ï‚_4Ï„_4φ_4χ_4ψ_4β'4βʼ4β᾿4γ'4γʼ4γ᾿4δ'4δʼ4δ᾿4ζ'4ζʼ4ζ᾿4θ'4θʼ4θ᾿4κ'4κʼ4κ᾿4λ'4λʼ4λ᾿4μ'4μʼ4μ᾿4ν'4νʼ4ν᾿4ξ'4ξʼ4ξ᾿4Ï€'4πʼ4π᾿4Ï'4Ïʼ4Ï᾿4σ'4σʼ4σ᾿4ϲ'4ϲʼ4ϲ᾿4Ï„'4τʼ4τ᾿4φ'4φʼ4φ᾿4χ'4χʼ4χ᾿4ψ'4ψʼ4ψ᾿_β4_γ4_δ4_ζ4_θ4_κ4_λ4_μ4_ν4_ξ4_Ï€4_Ï4_σ4_ϲ4_Ï„4_φ4_χ4_ψ4", + 4 : "ου3ιόυ4ιόυ4ιὀυ4ιá½Ï…4ιο3υίο3υίο3Ï…á¿–2β1β2γ1γ2δ1δ2ζ1ζ2θ1θ2κ1κ2λ1λ2μ1μ2ν1ν2Ï€1Ï€2Ï1Ï2ῤ1á¿¥2σ1σ2ϲ1ϲ2Ï„1Ï„2φ1φ2χ1χ2ψ1ψ2β1γ2β1ζ2β1θ2β1κ2β1ξ2β1Ï€2β1σ2β1ϲ2β1Ï„2β1φ2β1χ2β1ψ2γ1β2γ1ζ2γ1θ2γ1κ2γ1ξ2γ1Ï€2γ1σ2γ1ϲ2γ1Ï„2γ1φ2γ1χ2γ1ψ2δ1β2δ1γ2δ1ζ2δ1θ2δ1κ2δ1λ2δ1ξ2δ1Ï€2δ1σ2δ1ϲ2δ1Ï„2δ1φ2δ1χ2δ1ψ2ζ1β2ζ1γ2ζ1δ2ζ1θ2ζ1κ2ζ1λ2ζ1μ2ζ1ν2ζ1ξ2ζ1Ï€2ζ1Ï2ζ1σ2ζ1ϲ2ζ1Ï„2ζ1φ2ζ1χ2ζ1ψ2θ1β2θ1γ2θ1δ2θ1ζ2θ1κ2θ1ξ2θ1Ï€2θ1σ2θ1ϲ2θ1Ï„2θ1φ2θ1χ2θ1ψ2κ1β2κ1γ2κ1δ2κ1ζ2κ1θ2κ1ξ2κ1Ï€2κ1σ2κ1ϲ2κ1φ2κ1χ2κ1ψ2λ1β2λ1γ2λ1δ2λ1ζ2λ1θ2λ1κ2λ1μ2λ1ν2λ1ξ2λ1Ï€2λ1Ï2λ1σ2λ1ϲ2λ1Ï„2λ1φ2λ1χ2λ1ψ2μ1β2μ1γ2μ1δ2μ1ζ2μ1θ2μ1κ2μ1λ2μ1ξ2μ1Ï€2μ1Ï2μ1σ2μ1ϲ2μ1Ï„2μ1φ2μ1χ2μ1ψ2ν1β2ν1γ2ν1δ2ν1ζ2ν1θ2ν1κ2ν1λ2ν1μ2ν1ξ2ν1Ï€2ν1Ï2ν1σ2ν1ϲ2νς_2νϲ_2ν1Ï„2ν1φ2ν1χ2ν1ψ2ξ1β2ξ1γ2ξ1δ2ξ1ζ2ξ1θ2ξ1κ2ξ1λ2ξ1μ2ξ1ν2ξ1Ï€2ξ1Ï2ξ1σ2ξ1ϲ2ξ1Ï„2ξ1φ2ξ1χ2ξ1ψ2Ï€1β2Ï€1γ2Ï€1δ2Ï€1ζ2Ï€1θ2Ï€1κ2Ï€1ξ2Ï€1σ2Ï€1ϲ2Ï€1φ2Ï€1χ2Ï€1ψ2Ï1β2Ï1γ2Ï1δ2Ï1ζ2Ï1θ2Ï1κ2Ï1λ2Ï1μ2Ï1ν2Ï1ξ2Ï1Ï€2Ï1σ2Ï1ϲ2Ï1Ï„2Ï1φ2Ï1χ2Ï1ψ2σ1δ2ϲ1δ2σ1ζ2ϲ1ζ2σ1λ2ϲ1λ2σ1ν2ϲ1ν2σ1ξ2ϲ1ξ2σ1Ï2ϲ1Ï2σ1ψ2ϲ1ψ2Ï„1β2Ï„1γ2Ï„1δ2Ï„1ζ2Ï„1θ2Ï„1κ2Ï„1ξ2Ï„1Ï€2Ï„1σ2Ï„1ϲ2Ï„1φ2Ï„1χ2Ï„1ψ2φ1β2φ1γ2φ1δ2φ1ζ2φ1κ2φ1ξ2φ1Ï€2φ1σ2φ1ϲ2φ1Ï„2φ1χ2φ1ψ2χ1β2χ1γ2χ1δ2χ1ζ2χ1κ2χ1ξ2χ1Ï€2χ1σ2χ1ϲ2χ1Ï„2χ1φ2χ1ψ2ψ1β2ψ1γ2ψ1δ2ψ1ζ2ψ1θ2ψ1κ2ψ1λ2ψ1μ2ψ1ν2ψ1ξ2ψ1Ï€2ψ1Ï2ψ1σ2ψ1ϲ2ψ1Ï„2ψ1φ2ψ1χ4βδ'4βδ’4βδʼ4βδ᾽4βδ᾿4βλ'4βλ’4βλʼ4βλ᾽4βλ᾿4βμ'4βμ’4βμʼ4βμ᾽4βμ᾿4βν'4βν’4βνʼ4βν᾽4βν᾿4βÏ'4βÏ’4βÏʼ4βÏá¾½4βÏ᾿4γδ'4γδ’4γδʼ4γδ᾽4γδ᾿4γλ'4γλ’4γλʼ4γλ᾽4γλ᾿4γμ'4γμ’4γμʼ4γμ᾽4γμ᾿4γν'4γν’4γνʼ4γν᾽4γν᾿4γÏ'4γÏ’4γÏʼ4γÏá¾½4γÏ᾿4δμ'4δμ’4δμʼ4δμ᾽4δμ᾿4δν'4δν’4δνʼ4δν᾽4δν᾿4δÏ'4δÏ’4δÏʼ4δÏá¾½4δÏ᾿4ζβ'4ζβ’4ζβʼ4ζβ᾽4ζβ᾿4θλ'4θλ’4θλʼ4θλ᾽4θλ᾿4λμ'4λμ’4λμʼ4λμ᾽4λμ᾿4θν'4θν’4θνʼ4θν᾽4θν᾿4θÏ'4θÏ’4θÏʼ4θÏá¾½4θÏ᾿4κλ'4κλ’4κλʼ4κλ᾽4κλ᾿4κμ'4κμ’4κμʼ4κμ᾽4κμ᾿4κν'4κν’4κνʼ4κν᾽4κν᾿4κÏ'4κÏ’4κÏʼ4κÏá¾½4κÏ᾿4κτ'4κτ’4κτʼ4κτ᾽4κτ᾿4μν'4μν’4μνʼ4μν᾽4μν᾿4πλ'4πλ’4πλʼ4πλ᾽4πλ᾿4πμ'4πμ’4πμʼ4πμ᾽4πμ᾿4πν'4πν’4πνʼ4πν᾽4πν᾿4Ï€Ï'4πϒ4Ï€Ïʼ4Ï€Ïá¾½4Ï€Ï᾿4πτ'4πτ’4πτʼ4πτ᾽4πτ᾿4σβ'4σβ’4σβʼ4σβ᾽4σβ᾿4ϲβ'4ϲβ’4ϲβʼ4ϲβ᾽4ϲβ᾿4σγ'4σγ’4σγʼ4σγ᾽4σγ᾿4ϲγ'4ϲγ’4ϲγʼ4ϲγ᾽4ϲγ᾿4σδ'4σδ’4σδʼ4σδ᾽4σδ᾿4ϲδ'4ϲδ’4ϲδʼ4ϲδ᾽4ϲδ᾿4σθ'4σθ’4σθʼ4σθ᾽4σθ᾿4ϲθ'4ϲθ’4ϲθʼ4ϲθ᾽4ϲθ᾿4σκ'4σκ’4σκʼ4σκ᾽4σκ᾿4ϲκ'4ϲκ’4ϲκʼ4ϲκ᾽4ϲκ᾿4σμ'4σμ’4σμʼ4σμ᾽4σμ᾿4ϲμ'4ϲμ’4ϲμʼ4ϲμ᾽4ϲμ᾿4σπ'4σπ’4σπʼ4σπ᾽4σπ᾿4ϲπ'4ϲπ’4ϲπʼ4ϲπ᾽4ϲπ᾿4στ'4στ’4στʼ4στ᾽4στ᾿4ϲτ'4ϲτ’4ϲτʼ4ϲτ᾽4ϲτ᾿4σφ'4σφ’4σφʼ4σφ᾽4σφ᾿4ϲφ'4ϲφ’4ϲφʼ4ϲφ᾽4ϲφ᾿4σχ'4σχ’4σχʼ4σχ᾽4σχ᾿4ϲχ'4ϲχ’4ϲχʼ4ϲχ᾽4ϲχ᾿4φθ'4φθ’4φθʼ4φθ᾽4φθ᾿4φλ'4φλ’4φλʼ4φλ᾽4φλ᾿4φμ'4φμ’4φμʼ4φμ᾽4φμ᾿4φν'4φν’4φνʼ4φν᾽4φν᾿4φÏ'4φÏ’4φÏʼ4φÏá¾½4φÏ᾿4χθ'4χθ’4χθʼ4χθ᾽4χθ᾿4χλ'4χλ’4χλʼ4χλ᾽4χλ᾿4χμ'4χμ’4χμʼ4χμ᾽4χμ᾿4χν'4χν’4χνʼ4χν᾽4χν᾿4χÏ'4χÏ’4χÏʼ4χÏá¾½4χÏ᾿á¼2ν1á¼”2ν1á¼2ξ1á¼”2ξ1á¼2σ1á¼2ϲ1", + 5 : "á¼€2ν1Ïá¼€2ν1ύἀ2ν1υεἰ2σ1εἰ2ϲ1εἴ2σ1εἴ2ϲ1á¼2κ1λá¼2κ1μἔ2κ1μá¼2κ1νἔ2κ1νá¼2κ1Ïá¼”2κ1Ïá¼3νηέá¼3νηέá¼3ν2ίá¼3ν2á½·á¼3ν2ιἔ3ν2ιἔ3ν2ωá¼3σ2θá¼3ϲ2θá¼3σ2κá¼3ϲ2κá¼3σ2Ï„á¼3ϲ2Ï„á¼3σ2Ï…á¼3ϲ2Ï…á¼3σ2Ïá¼3σ2á½»á¼3ϲ2Ïá¼3ϲ2á½»á¼3σ2χá¼3ϲ2χá¼3σ2ÏŽá¼3σ2á½½á¼3ϲ2ÏŽá¼3ϲ2á½½á¼3σ2ωá¼3ϲ2ω", + 6 : "á¼Î»ÏŒ2σ1á¼Î»á½¹2σ1á¼Î»ÏŒ2ϲ1á¼Î»á½¹2ϲ1á¼Î»Î¿2σ1á¼Î»Î¿2ϲ1á¼€2ν1άÏá¼€2ν1á½±Ïá¼€2ν1αÏἄ2ν1αÏá¼€2ν1έκἀ2ν1έκἀ2ν1εκἀ2ν1ένἀ2ν1ένἀ2ν1ενἀ2ν1επἀ2ν1έφἀ2ν1έφἀ2ν1εφἀ2ν1ήδἀ2ν1ήδἀ2ν1ηδἀ2ν1ήμἀ2ν1ήμἀ2ν1ημἀ2ν1ίκἀ2ν1ίκἀ2ν1ικἄ2ν1ικἀ2ν1ίλἀ2ν1ίλἀ2ν1ιλἀ2ν1ισἀ2ν1ιϲἄ2ν1ισἄ2ν1ιϲἀ2ν1ίσἀ2ν1ίσἀ2ν1ίϲἀ2ν1ίϲἄ2ν1ιχἀ2ν1ίχἀ2ν1ίχἀ2ν1ίψἀ2ν1ίψἀ2ν1ιψἄ2ν1οζἀ2ν1όζἀ2ν1όζἀ2ν1όλἀ2ν1όλἀ2ν1ολἄ2ν1ολἀ2ν1όνἀ2ν1όνἀ2ν1ονἄ2ν1οπἀ2ν1όπἀ2ν1όπἀ2ν1ÏŒÏá¼€2ν1á½¹Ïá¼€2ν1οÏἄ2ν1οÏá¼€2ν1οψἄ2ν1οψἀ2ν1όψἀ2ν1όψἀ3ν2υμἀ3ν2Ïσἀ3ν2ύσἀ3ν2Ïϲἀ3ν2ύϲἀ3ν2υσἀ3ν2υϲἄ2ν1ῳδἀ2ν1ῴδἀ2ν1ώιἀ2ν1ώιἀ2ν1ωίἀ2ν1ωίἀ2ν1ώλἀ2ν1ώλἀ2ν1ωλἀ2ν1ώμἀ2ν1ώμἀ2ν1ωμἀ2ν1ώνἀ2ν1ώνἀ2ν1ωνἀ2ν1ωÏἄ2ν1ωÏá¼€2ν1ÏŽÏá¼€2ν1á½½Ïá¼Ï€Î±2ξ1á¼Ï€Îµ2Ï1ἀσÏ2ν1ἀσύ2ν1ἀϲÏ2ν1ἀϲύ2ν1ἀσυ2ν1ἀϲυ2ν1ἀξÏ2ν1ἀξύ2ν1ἀξυ2ν1ἀω2σ1φἀω2ϲ1φ_δÏ2σ1_δύ2σ1_δÏ2ϲ1_δύ2ϲ1_δυ2σ1_δυ2ϲ1δÏ3σ2ῃδύ3σ2ῃδÏ3ϲ2ῃδύ3ϲ2ῃεἴσει_εἴϲει_εἴ3σ2ωεἴ3ϲ2ωá¼3κ2λῄá¼3κ2λÏá¼3κ2λύá¼3κ2νυá¼2κ1τεá¼2κ1τέá¼2κ1τέá¼2κ1τιἔ2κ1τιá¼2κ1τίá¼2κ1τίá¼2κ1τόá¼2κ1τόá¼2κ1τοἔ2κ1τοá¼2κ1Ï„Ïá¼2κ1τυἔ3ν2ατá¼3ν2άτá¼3ν2άτá¼3ν2εόá¼3ν2εόá¼3ν2εὸá¼3ν2εοá¼3ν2εῶá¼3ν2εάá¼3ν2εάá¼3ν2εὰá¼3ν2εᾶἔ3ν2ησἔ3ν2ηϲá¼3ν2ήσá¼3ν2ήσá¼3ν2ήϲá¼3ν2ήϲá¼3ν2ηήá¼3ν2ηήá¼3ν2ηὴá¼3ν2ηοá¼3ν2ηῶá¼4ν3ίζá¼4ν3ίζá¼4ν3ίηá¼4ν3ίηá¼4ν3ίψá¼4ν3ίψἔ3ν2ῃ_á¼”3ν2η_á¼”3ν2υξá¼3ν2υξá¼3ν2Ïξá¼3ν2ύξá¼3ν2Ïσá¼3ν2ύσá¼3ν2Ïϲá¼3ν2ύϲá¼3ν2υσá¼3ν2υϲá¼3ν2Ï…ÏŽá¼3ν2Ï…á½½á¼3ν2Ï…á½¼á¼3ξ2ήÏá¼3ξ2á½µÏá¼3ξ2ηÏá¼3ξ2Ï…Ïá¼3ξ2ÏÏá¼3ξ2á½»Ïá¼”3ξ2υσἔ3ξ2υϲἔ3ξ2ω_á¼Ï€Îµ2ξ1á¼3σ2άωá¼3σ2άωá¼3ϲ2άωá¼3ϲ2άωá¼3σ2ημá¼3ϲ2ημá¼3σ2ιγá¼3ϲ2ιγá¼4σ3κάá¼4σ3κάá¼4ϲ3κάá¼4ϲ3κάá¼4σ3καá¼4ϲ3καá¼3σ2όμá¼3σ2όμá¼3ϲ2όμá¼3ϲ2όμá¼3σ2ομá¼3ϲ2ομá¼3σ2οῦá¼3ϲ2οῦá¼3σ2οÏá¼3σ2ούá¼3ϲ2οÏá¼3ϲ2ούá¼3σ2ουá¼3ϲ2ουá¼ÏƒÏ2ν1á¼Ïƒá½»2ν1á¼Ï²Ï2ν1á¼Ï²á½»2ν1á¼ÏƒÏ…2ν1á¼Ï²Ï…2ν1á¼4σ3χέá¼4σ3χέá¼4ϲ3χέá¼4ϲ3χέἔ2σ1οπἔ2ϲ1οπεá½Îµ2ξ1á¼Ï‰2σ1φá¼Ï‰2ϲ1φἤ2ν1οπἠ2ν1όπἠ2ν1όποἱό2σ1οἱό2σ1οἱό2ϲ1οἱό2ϲ1á½Ï€Ï‰2σ1á½Ï€Ï‰2ϲ1_πα2ν1_πά2ν1_πά2ν1_πάνα__πάνα__συ2ν1_ϲυ2ν1_σÏ2ν1_σύ2ν1_ϲÏ2ν1_ϲύ2ν1ὑο2σ1κὑο2ϲ1κὑπε2ν1ὑπε2ξ1ὑπε2Ï1ὑπέ2Ï1ὑπέ2Ï1ὕ2σ1Ï„Ïὕ2ϲ1Ï„Ïὑ2σ1Ï„Ïὑ2ϲ1Ï„Ïá½¥2σ1τεὥ2ϲ1τε", + 7 : "ἀδιέ2ξ1ἀδιέ2ξ1ἀδιε2ξ1ἀδυ2σ1ώἀδυ2σ1ώἀδυ2ϲ1ώἀδυ2ϲ1ώἀδυ2σ1ωἀδυ2ϲ1ωἀ2ν1αγοἀ2ν1αγῆἄ2ν1αγνἀ2ν1άγνἀ2ν1άγνἀ2ν1αγνἄ2ν1αθλἀ2ν1άθλἀ2ν1άθλἀ2ν1αίδἀ2ν1αίδἀ2ν1αιδἄ2ν1αιμἀ2ν1αίμἀ2ν1αίμἀ2ν1αιμἀ2ν1αίτἀ2ν1αίτἀ2ν1αιτἀ2ν1αλγἀ2ν1αλδἀ2ν1άλθἀ2ν1άλθἀ2ν1αλθἀ2ν1αλκἄ2ν1αλκἀ2ν1άλκἀ2ν1άλκἀ2ν1άλλἀ2ν1άλλἀ2ν1αλλἄ2ν1αλμἀ2ν1άλμἀ2ν1άλμἀ2ν1αλμἄ2ν1αλοἄ2ν1αλτἀ2ν1άλτἀ2ν1άλτἀ2ν1αμπἀ2ν1άμπἀ2ν1άμπἀ2ν1αμφἄ2ν1ανδἀ2ν1άνδἀ2ν1άνδἀ2ν1ανθἀ2ν1αÏάἀ2ν1αÏάἀ2ν1αÏαἀ3ν2αÏπἀ3ν2άÏÏá¼€3ν2á½±ÏÏá¼€3ν2αÏÏá¼€3ν2αÏτἀ2ν1άτωἀ2ν1άτωἄ2ν1ατεἀ2ν1άττἀ2ν1άττἀ2ν1αττἀ2ν1αÏγἀ2ν1αύγἀ2ν1αυγἀ2ν1αÏδἀ2ν1αύδἀ2ν1αυδἄ2ν1αυδἄ2ν1αυλἀ2ν1αÏλἀ2ν1αύλἀ2ν1αÏξἀ2ν1αύξἀ2ν1αυξἀ2ν1αÏχἀ2ν1αύχἀ2ν1αυχἀ2ν1αφήἀ2ν1αφήἀ2ν1αφὴἀ2ν1αφῆἀ2ν1αφέἀ2ν1αφέἀ2ν1αφὲἄ2ν1αφÏá¼€2ν1άφÏá¼€2ν1άφÏá¼€2ν1έγγἀ2ν1έγγἀ2ν1εγγἀ2ν1εγκἀ2ν1έγκἀ2ν1έγκἀ2ν1εγχἀ2ν1εδάἀ2ν1εδάἀ2ν1εδαἀ2ν1εέÏá¼€2ν1εέÏá¼€2ν1εεÏá¼€2ν1έθιἀ2ν1έθιἀ2ν1εθίἀ2ν1εθίἀ3ν2έκαἀ3ν2έκαἀ3ν2εκτἀ2ν1έλλἀ2ν1έλλἀ2ν1έμβἀ2ν1έμβἀ2ν1εμβἀ2ν1έμπἀ2ν1έμπἀ2ν1εμπἀ2ν1έμφἀ2ν1έμφἀ2ν1εμφἀ3ν2ενήἀ3ν2ενήἀ2ν1έοÏá¼€2ν1έοÏá¼€2ν1εόÏá¼€2ν1εόÏá¼€3ν2επνἀ3ν2επτἀ2ν1εÏγἄ2ν1εÏγἀ2ν1έÏγἀ2ν1á½³Ïγἀ2ν1εÏίἀ2ν1εÏá½·á¼€2ν1εÏιἀ2ν1ετυἀ2ν1έτυἀ2ν1έτυἀ2ν1ετÏá¼€2ν1ετύἀ2ν1εÏθἀ2ν1εύθἀ2ν1ευθἄ2ν1ευκἀ2ν1εÏκἀ2ν1εύκἀ2ν1ευλἀ2ν1εÏχἀ2ν1εύχἀ2ν1ευχἀ2ν1εÏξἀ2ν1εύξἀ2ν1ευξἀ2ν1ηυξἀ2ν1ηῦγἀ2ν1ηυγἀ2ν1εχέἀ2ν1εχέἀ2ν1εχεἀ2ν1έψαἀ2ν1έψαἀ2ν1εψάἀ2ν1εψάἀ2ν1ήκοἀ2ν1ήκοἀ2ν1ηκόἀ2ν1ηκόἀ2ν1ηκοἀ2ν1ηλήἀ2ν1ηλήἀ2ν1ηλὴἀ2ν1ηλῆἀ2ν1ηλέἀ2ν1ηλέἀ2ν1ηλὲἀ2ν1ηλῶἀ2ν1ήνυἀ2ν1ήνυἀ2ν1ηνÏá¼€2ν1ηνύἀ2ν1ήÏιἀ2ν1á½µÏιἀ2ν1ηÏίἀ2ν1ηÏá½·á¼€2ν1ήσσἀ2ν1ήσσἀ2ν1ήϲϲἀ2ν1ήϲϲἀ2ν1ησσἀ2ν1ηϲϲἀ2ν1ήττἀ2ν1ήττἀ2ν1ηττἀ2ν1ήφαἀ2ν1ήφαἀ2ν1ηφαἀ2ν1ίατἀ2ν1ίατἀ2ν1ιάτἀ2ν1ιάτἀ2ν1ίεÏá¼€2ν1ίεÏá¼€2ν1ιέÏá¼€2ν1ιέÏá¼€3ν2ίκηἀ3ν2ίκηἀ3ν2ικήἀ3ν2ικήἀ2ν1ίουἀ2ν1ίουἀ2ν1ιοÏá¼€2ν1ιούἄ2ν1ιππἀ2ν1ίππἀ2ν1ίππἀ3ν2ίστἀ3ν2ίστἀ3ν2ίϲτἀ3ν2ίϲτἀ3ν2ιστἀ3ν2ιϲτἀ3ν2ίσχἀ3ν2ίσχἀ3ν2ίϲχἀ3ν2ίϲχἀ2ν1όδεἀ2ν1όδεἀ2ν1οδέἀ2ν1οδέἄ2ν1οικἀ2ν1οίκἀ2ν1οίκἀ2ν1οινἄ2ν1οινἀ2ν1οίνἀ2ν1οίνἀ3ν2ολκἀ3ν2ολοἀ2ν1όμοἀ2ν1όμοἀ2ν1ομόἀ2ν1ομόἀ2ν1ομοἄ3ν2οÏθἀ3ν2ÏŒÏθἀ3ν2á½¹Ïθἀ3ν2οÏτἀ3ν2οÏÏá¼€3ν2οÏύἀ2ν1όσιἀ2ν1όσιἀ2ν1όϲιἀ2ν1όϲιἀ2ν1οσίἀ2ν1οσίἀ2ν1οϲίἀ2ν1οϲίἀ2ν1οσιἀ2ν1οϲιἄ2ν1οσμἄ2ν1οϲμἀ2ν1όσμἀ2ν1όσμἀ2ν1όϲμἀ2ν1όϲμἀ2ν1οÏαἀ2ν1ούαἀ2ν1ουάἀ2ν1ουάἀ2ν1οÏτἀ2ν1ούτἀ2ν1ουτἀ2ν1οφθἄ2ν1οχλἀ2ν1όχλἀ2ν1όχλἀντε2κ1ἀντε2ν1ἀντε2ξ1á¼€2ν1ώδυἀ2ν1ώδυἀ2ν1ωδÏá¼€2ν1ωδύἄ2ν1ωτοἀ2ν1ώτοἀ2ν1ώτοἀ2ν1ώχυἀ2ν1ώχυἀ2ν1ωχÏá¼€2ν1ωχύἀπε2κ1λἀπÏÏŒ2σ1ἀπÏá½¹2σ1ἀπÏÏŒ2ϲ1ἀπÏá½¹2ϲ1ἀπÏο2σ1ἀπÏο2ϲ1á¼Ïπα2ξ1αá½Ï„ε2ξ1_δα2σ1Ï€_δα2ϲ1Ï€_διέ2ξ1_διέ2ξ1_διε2ξ1_δί2σ1α_δί2σ1α_δί2ϲ1α_δί2ϲ1α_δι2σ1ά_δι2σ1á½±_δι2ϲ1ά_δι2ϲ1á½±_δί2σ1η_δί2σ1η_δί2ϲ1η_δί2ϲ1η_δι2σ1ή_δι2σ1á½µ_δι2ϲ1ή_δι2ϲ1á½µ_δί2σ1ε_δί2σ1ε_δί2ϲ1ε_δί2ϲ1ε_δι2σ1ε_δι2ϲ1ε_δι2σ1θ_δι2ϲ1θδÏ3σ2ω_δύ3σ2ω_δÏ3ϲ2ω_δύ3ϲ2ω_δÏ3σ2ονδύ3σ2ονδÏ3ϲ2ονδύ3ϲ2ονδυ3σ2όνδυ3σ2όνδυ3ϲ2όνδυ3ϲ2όνδÏ3σ2ασδύ3σ2ασδÏ3ϲ2αϲδύ3ϲ2αϲδυ3σ2άσδυ3σ2άσδυ3ϲ2άϲδυ3ϲ2άϲδÏ3σ2εωδύ3σ2εωδÏ3ϲ2εωδύ3ϲ2εωδÏ3σ2ι_δύ3σ2ι_δÏ3ϲ2ι_δύ3ϲ2ι_á¼Î´Ï…2σ1Ï„á¼Î´Ï…2ϲ1τεἰ2ν1όδεἰ2ν1όδεἰ2ν1οδεἰ3σ2ί_εἰ3σ2á½·_εἰ3ϲ2ί_εἰ3ϲ2á½·_εἰ3σ2á½¶_εἰ3ϲ2á½¶_εἰ3σ2ι_εἰ3ϲ2ι_εἴ3σ2ομεἴ3ϲ2ομεἴ3σ2ῃ_εἴ3ϲ2ῃ_εἰ3σ2όμεἰ3σ2όμεἰ3ϲ2όμεἰ3ϲ2όμá¼3κ2λάζá¼3κ2λάζá¼3κ2λάγá¼3κ2λάγá¼3κ2λάοá¼3κ2λάοá¼3κ2λάσá¼3κ2λάσá¼3κ2λάϲá¼3κ2λάϲá¼3κ2λαίá¼3κ2λαίá¼3κ2λαÏá¼3κ2λαύá¼3κ2λείá¼3κ2λείá¼3κ2λάπá¼3κ2λάπá¼3κ2λαπá¼3κ2λέφá¼3κ2λέφá¼3κ2λεφá¼3κ2λήÏá¼3κ2λήÏá¼3κ2ληÏá¼3κ2λίνá¼3κ2λίνá¼3κ2λινá¼3κ2λόμá¼3κ2λόμἔ2κ1λειἔ2κ1λυσἔ2κ1λυϲἔ3κ2ναιá¼3κ2ναίá¼3κ2ναίἔ3κ2νησἔ3κ2νηϲá¼3κ2νήσá¼3κ2νήσá¼3κ2νήϲá¼3κ2νήϲá¼3κ2Ïάδá¼3κ2Ïάδá¼3κ2Ïαδἔ3κ2Ïαζá¼3κ2Ïάζá¼3κ2Ïάζἔ3κ2Ïαγá¼3κ2Ïάγá¼3κ2Ïάγá¼3κ2Ïάτá¼3κ2Ïάτá¼3κ2Ïατἔ3κ2Ïαιá¼3κ2Ïαίá¼3κ2Ïαίἔ3κ2Ïανá¼3κ2Ïάνá¼3κ2Ïάνá¼3κ2Ïήηá¼3κ2Ïήηá¼3κ2Ïάαá¼3κ2Ïάαá¼3κ2Ïαάá¼3κ2Ïαάá¼3κ2Ïάθá¼3κ2Ïάθá¼3κ2Ïαθἔ3κ2Ïεκá¼3κ2Ïέκá¼3κ2Ïέκἔ3κ2Ïεξá¼3κ2Ïέξá¼3κ2Ïέξá¼3κ2Ïέμá¼3κ2Ïέμá¼3κ2Ïεμá¼3κ2Ïήμá¼3κ2Ïήμá¼3κ2Ïημἔ3κ2Ïινá¼3κ2Ïίνá¼3κ2Ïίνá¼3κ2Ïίθá¼3κ2Ïίθá¼3κ2Ïότá¼3κ2Ïότá¼3κ2Ïοτἔ3κ2Ïουá¼3κ2ÏοÏá¼3κ2Ïούἔ3κ2ÏÏ…Ï€á¼3κ2ÏÏÏ€á¼3κ2Ïύπἔ3κ2Ïυψá¼3κ2ÏÏψá¼3κ2Ïύψá¼3κ2ÏÏβá¼3κ2Ïύβá¼3κ2ÏÏφá¼3κ2Ïύφá¼3κ2Ïυσá¼3κ2Ïυϲἔ3κ2Ïωζá¼3κ2Ïώζá¼3κ2Ïώζἔ3κ2Ïωξá¼3κ2Ïώξá¼3κ2Ïώξá¼2κ1ταθá¼2κ1τανá¼2κ1ταÏá¼2κ1τάσá¼2κ1τάσá¼2κ1τάϲá¼2κ1τάϲá¼2κ1τήκá¼2κ1τήκἔ3κ2τιζá¼3κ2τίζá¼3κ2τίζἔ3ν2ασσἔ3ν2αϲϲá¼3ν2άσσá¼3ν2άσσá¼3ν2άϲϲá¼3ν2άϲϲá¼3ν2άσθá¼3ν2άσθá¼3ν2άϲθá¼3ν2άϲθá¼3ν2ασθá¼3ν2αϲθá¼3ν2έγκá¼3ν2έγκá¼3ν2εγκἔ3ν2εικá¼3ν2εῖκá¼3ν2εικá¼3ν2είκá¼3ν2είκἔ3ν2ειμá¼3ν2είμá¼3ν2είμá¼3ν2ενήá¼3ν2ενήἔ3ν2ευσἔ3ν2ευϲá¼3ν2εÏσá¼3ν2εύσá¼3ν2εÏϲá¼3ν2εύϲá¼3ν2έχθá¼3ν2έχθá¼3ν2εχθἔ3ν2ην_á¼3ν2ηείá¼3ν2ηείá¼3ν2ήνοá¼3ν2ήνοá¼4ν3ιαÏá¼4ν3ιαύá¼4ν3ιδÏá¼4ν3ίδÏá¼4ν3ίδÏá¼4ν3ίω_á¼4ν3ίω_á¼4ν3ιππá¼4ν3ίππá¼4ν3ίππá¼4ν3ίπτá¼4ν3ίπτá¼4ν3ίσσá¼4ν3ίσσá¼4ν3ίϲϲá¼4ν3ίϲϲá¼4ν3ίστá¼4ν3ίστá¼4ν3ίϲτá¼4ν3ίϲτá¼4ν3ιστá¼4ν3ιϲτá¼4ν3ισχá¼4ν3ιϲχá¼4ν3ίσχá¼4ν3ίσχá¼4ν3ίϲχá¼4ν3ίϲχἔ3ν2ος_á¼”3ν2οϲ_á¼”3ν2οσ_á¼”3ν2ου_á¼”3ν2ον_á¼”3ν2οι_á¼”3ν2ης_á¼”3ν2ηϲ_á¼”3ν2ησ_á¼”3ν2οσιἔ3ν2οϲιá¼3ν2όσεá¼3ν2όσεá¼3ν2όϲεá¼3ν2όϲεá¼3ν2υάλá¼3ν2υάλá¼3ν2υαλá¼3ν2υόοá¼3ν2υόοá¼Ï€ÎµÎ¯2σ1á¼Ï€Îµá½·2σ1á¼Ï€ÎµÎ¯2ϲ1á¼Ï€Îµá½·2ϲ1á¼Ï€ÎµÎ¹2σ1á¼Ï€ÎµÎ¹2ϲ1á¼Ï€Îµ2σ1βá¼Ï€Îµ2ϲ1βá¼4σ3θέσá¼4σ3θέσá¼4ϲ3θέϲá¼4ϲ3θέϲεá½Îµ3ξ2ίεá½Îµ3ξ2ίεá½Îµ3ξ2ιεá½ÏƒÏ2ν1εá½Ïƒá½»2ν1εá½Ï²Ï2ν1εá½Ï²á½»2ν1εá½ÏƒÏ…2ν1εá½Ï²Ï…2ν1εá½Î¾Ï2ν1εá½Î¾á½»2ν1εá½Î¾Ï…2ν1ἤ2ν1οψ__μυ2σ1Ï€_μυ2ϲ1Ï€_ξυ2ν1ε_ξυ2ν1έ_ξυ2ν1á½³_ξÏ2ν1ε_ξύ2ν1ε_ξÏ2ν1ι_ξύ2ν1ι_ξυ2ν1ί_ξυ2ν1á½·á½…2σ1γε_á½…2ϲ1γε_á½…2σ1τιςὅ2ϲ1τιϲ_Ï€Ïο2σ1_Ï€Ïο2ϲ1_Ï„Ïι2σ1_Ï„Ïι2ϲ1ὑπεί2σ1ὑπεί2σ1ὑπεί2ϲ1ὑπεί2ϲ1ὑπει2σ1ὑπει2ϲ1ὑπε2κ1τὑπε3Ï2ῶὑπε3Ï2ώὑπε3Ï2ώὑπε3Ï2ω_φω2σ1φ_φω2ϲ1φὡ2σ1εί_ὡ2σ1εί_ὡ2ϲ1εί_ὡ2ϲ1εί_ὡ2σ1εὶ_ὡ2ϲ1εὶ_", + 8 : "ἀγω2ν1άÏἀγω2ν1á½±Ïἀγω2ν1αÏἀμφί2σ1βἀμφί2σ1βἀμφί2ϲ1βἀμφί2ϲ1βἀμφι2σ1βἀμφι2ϲ1βἀμφί2σ1ωἀμφί2σ1ωἀμφί2ϲ1ωἀμφί2ϲ1ωἀμφι2σ1ώἀμφι2σ1ώἀμφι2ϲ1ώἀμφι2ϲ1ώἀ2ν1αγῆ_á¼€2ν1άγκυἀ2ν1άγκυἀ2ν1αγκÏá¼€2ν1αγκύἀ3ν2αγνάἀ3ν2αγνάἀ3ν2αγνωἀ3ν2άγνωἀ3ν2άγνωἀ3ν2αγνώἀ3ν2αγνώἀ2ν1αγÏίἀ2ν1αγÏá½·á¼€2ν1αγÏá¿–á¼€2ν1αγÏιἀ2ν1άγωγἀ2ν1άγωγἀ2ν1αγώγἀ2ν1αγώγἀ2ν1άδελἀ2ν1άδελἀ2ν1αδέλἀ2ν1αδέλἀ2ν1άελπἀ2ν1άελπἀ2ν1αέλπἀ2ν1αέλπἀ2ν1αίσθἀ2ν1αίσθἀ2ν1αίϲθἀ2ν1αίϲθἀ2ν1αισθἀ2ν1αιϲθἀ2ν1αισιἀ2ν1αιϲιἀ2ν1αισίἀ2ν1αισίἀ2ν1αιϲίἀ2ν1αιϲίἀ2ν1αίσχἀ2ν1αίσχἀ2ν1αίϲχἀ2ν1αίϲχἀ2ν1αισχἀ2ν1αιϲχἀ2ν1άκανἀ2ν1άκανἀ2ν1ακάνἀ2ν1ακάνἀ3ν2αλδαἀ2ν1αλήθἀ2ν1αλήθἀ2ν1αληθἀ2ν1άλιπἀ2ν1άλιπἀ2ν1αλίπἀ2ν1αλίπἀ3ν2άλλοἀ3ν2άλλοἀ3ν2άλλεἀ3ν2άλλεἀ2ν1άλουἀ2ν1άλουἀ2ν1άλῳ_á¼€2ν1άλῳ_ἄ2ν1αλε_á¼€2ν1άλοιἀ2ν1άλοιἀ2ν1αμάξἀ2ν1αμάξἀ2ν1αμαξἀ3ν2ανθέἀ3ν2ανθέἀ2ν1άνιοἀ2ν1άνιοἀ2ν1ανίοἀ2ν1ανίοἀ2ν1ανίωἀ2ν1ανίωἀ2ν1αντίἀ2ν1αντίἀ2ν1αντιἀνα2ξ1αγἀνά2ξ1ανἀνά2ξ1ανἀνα2ξ1άνἀνα2ξ1άνἀνα2ξ1ανἀνά2ξ1αÏἀνά2ξ1αÏἀνα2ξ1άÏἀνα2ξ1á½±Ïἀνά2ξ1ιπἀνά2ξ1ιπἀνα2ξ1ίπἀνα2ξ1ίπἀ2ν1άξιοἀ2ν1άξιοἀ2ν1αξίοἀ2ν1αξίοἀ2ν1αξίωἀ2ν1αξίωἀ2ν1αξίαἀ2ν1αξίαἀ2ν1αξῖαἀ2ν1απόβἀ2ν1απόβἀ2ν1αποβἀ2ν1απόγἀ2ν1απόγἀ2ν1απογἀ2ν1απόνἀ2ν1απόνἀ2ν1απονἀ2ν1απόπἀ2ν1απόπἀ2ν1αποπἀ2ν1απόσἀ2ν1απόσἀ2ν1απόϲἀ2ν1απόϲἀ2ν1αποσἀ2ν1αποϲἀ3ν2αÏίτἀ3ν2αÏίτἀ3ν2αÏῖτἀ3ν2αÏιτἀ3ν2αÏÏτἀ3ν2αÏύτἀ2ν1άσκηἀ2ν1άσκηἀ2ν1άϲκηἀ2ν1άϲκηἀ2ν1ασκήἀ2ν1ασκήἀ2ν1αϲκήἀ2ν1αϲκήἄ2ν1ασπιἄ2ν1αϲπιἀ2ν1ασπίἀ2ν1ασπίἀ2ν1αϲπίἀ2ν1αϲπίἀ2ν1ατὶ_á¼€2ν1ατί_á¼€2ν1ατί_á¼€3ν2αυδίἀ3ν2αυδίἀ3ν2αυδιἀ2ν1αφοῦἀ2ν1αφεῖἀ2ν1αφοῖἀ3ν2αφῆνἀ2ν1αχÏÏá¼€2ν1αχύÏá¼€2ν1αχυÏá¼€2ν1έδεσἀ2ν1έδεσἀ2ν1έδεϲἀ2ν1έδεϲἀ2ν1εδέσἀ2ν1εδέσἀ2ν1εδέϲἀ2ν1εδέϲἀ2ν1εθέλἀ2ν1εθέλἀ2ν1εθελἀ2ν1είδεἀ2ν1είδεἀ2ν1ειδέἀ2ν1ειδέἀ2ν1είδωἀ2ν1είδωἀ2ν1ειδώἀ2ν1ειδώἀ2ν1είκαἀ2ν1είκαἀ2ν1εικάἀ2ν1εικάἀ2ν1εικόἀ2ν1εικόἀ2ν1εικοἀ2ν1είμαἀ2ν1είμαἀνε2κ1λόἀνε2κ1λόἀνε2κ1λοἀ2ν1έλαιἀ2ν1έλαιἀ2ν1ελαιἀ2ν1ελάτἀ2ν1ελάτἀ2ν1ελατἀ2ν1ελέηἀ2ν1ελέηἀ2ν1ελεήἀ2ν1ελεήἀ2ν1έλεοἀ2ν1έλεοἀ2ν1ελέοἀ2ν1ελέοἀ2ν1ελέωἀ2ν1ελέωἀ2ν1έλεεἀ2ν1έλεεἀ2ν1ελκήἀ2ν1ελκήἀ2ν1ελκὴἀ2ν1ελκοἀ2ν1ελκῆἀ2ν1ελκεἀ2ν1ελκῶἄ2ν1ελκτἀ2ν1έλκτἀ2ν1έλκτἀ2ν1έλκωἀ2ν1έλκωἀ2ν1ελκώἀ2ν1ελκώἀ2ν1έλπιἀ2ν1έλπιἀ2ν1ελπίἀ2ν1ελπίἀ2ν1έμετἀ2ν1έμετἀ2ν1εμέτἀ2ν1εμέτἀ3ν2ένειἀ3ν2ένειἀ2ν1ε2ξ1á¼€2ν1έστιἀ2ν1έστιἀ2ν1έϲτιἀ2ν1έϲτιἀ2ν1εστίἀ2ν1εστίἀ2ν1εϲτίἀ2ν1εϲτίἀ2ν1έταιἀ2ν1έταιἀ2ν1εταίἀ2ν1εταίἀ2ν1έτοιἀ2ν1έτοιἀ2ν1ετοίἀ2ν1ετοίἀ2ν1ευκτἀ3ν2εφάλἀ3ν2εφάλἀ3ν2έφελἀ3ν2έφελἀ3ν2εφέλἀ3ν2εφέλἀ2ν1ηγεμἀ2ν1ήκεσἀ2ν1ήκεσἀ2ν1ήκεϲἀ2ν1ήκεϲἀ2ν1ηκέσἀ2ν1ηκέσἀ2ν1ηκέϲἀ2ν1ηκέϲἀ2ν1ηλάκἀ2ν1ηλάκἀ2ν1ηλακἀ2ν1ηλεγἀ2ν1ηλεήἀ2ν1ηλεήἀ2ν1ηλεὴἀ2ν1ηλεοἀ2ν1ηλεεἀ2ν1ηλεῶἀ2ν1ηλεέἀ2ν1ηλεέἀ2ν1ηλεὲἀ2ν1ηλεῆἀ2ν1ηλέηἀ2ν1ηλέηἀ2ν1ηλοῦἀ2ν1ηλεῖἀ2ν1ηλοῖἀ2ν1ήλικἀ2ν1ήλικἀ2ν1ηλίκἀ2ν1ηλίκἀ2ν1ήλιοἀ2ν1ήλιοἀ2ν1ηλίοἀ2ν1ηλίοἀ2ν1ηλίωἀ2ν1ηλίωἀ2ν1ήλιαἀ2ν1ήλιαἀ2ν1ήλιπἀ2ν1ήλιπἀ2ν1ηλίπἀ2ν1ηλίπἀ2ν1ηλιφἀ2ν1ήÏειἀ2ν1á½µÏειἀ2ν1ηÏείἀ2ν1ηÏείἀ2ν1ηÏέμἀ2ν1ηÏέμἀ2ν1ηÏεμἀ2ν1ηÏεφἀ2ν1ήÏοτἀ2ν1á½µÏοτἀ2ν1ηÏότἀ2ν1ηÏότἀ2ν1ίδιοἀ2ν1ίδιοἀ2ν1ιδίοἀ2ν1ιδίοἀ2ν1ιδίωἀ2ν1ιδίωἀ2ν1ίδιαἀ2ν1ίδιαἀ2ν1ιδιτἀ2ν1ίδÏωἀ2ν1ίδÏωἄ2ν1ιδÏεἀ3ν2ιέÏωἀ3ν2ιέÏωἀ3ν2ισᾶτἀ3ν2ιϲᾶτἀ3ν2ισάτἀ3ν2ισάτἀ3ν2ιϲάτἀ3ν2ιϲάτἀ4ν3ίσχυἀ4ν3ίσχυἀ4ν3ίϲχυἀ4ν3ίϲχυἀ2ν1οικεἄ2ν1οικτἀ2ν1οίκτἀ2ν1οίκτἀ2ν1ομήλἀ2ν1ομήλἀ2ν1ομηλἀ2ν1ομίλἀ2ν1ομίλἀ2ν1ομιλἀ2ν1όμιχἀ2ν1όμιχἀ2ν1ομιχἀ3ν2ομοθἀ3ν2όμῳ_á¼€3ν2όμῳ_á¼€3ν2όμω_á¼€3ν2όμω_á¼€3ν2οÏμάἀ3ν2οÏμάἀ2ν1όσφÏá¼€2ν1όσφÏá¼€2ν1όϲφÏá¼€2ν1όϲφÏá¼€2ν1οσφÏá¼€2ν1οϲφÏá¼€2ν1οÏσιἀ2ν1ούσιἀ2ν1οÏϲιἀ2ν1ούϲιἀ2ν1ουσίἀ2ν1ουσίἀ2ν1ουϲίἀ2ν1ουϲίἀντει2σ1ἀντει2ϲ1á¼€2ν1ωφέλἀ2ν1ωφέλἀ2ν1ωφελἀπα2ν1αιἀπά2ν1ουἀπά2ν1ουἀποσυ2ν1ἀποϲυ2ν1ἀπÏο3σ2τἀπÏο3ϲ2τἀÏÏε2ν1ωἀστε2Ï1ωἀϲτε2Ï1ωαá½Ï„έ2κ1μαá½Ï„á½³2κ1μαá½Ï„ε2κ1μ_διό2σ1κ_διό2σ1κ_διό2ϲ1κ_διό2ϲ1κ_διο2σ1κ_διο2ϲ1κ_διό2σ1Ï€_διό2σ1Ï€_διό2ϲ1Ï€_διό2ϲ1Ï€_διο2σ1Ï€_διο2ϲ1πδÏ3σ2ει_δύ3σ2ει_δÏ3ϲ2ει_δύ3ϲ2ει__δÏ3σ2ετ_δύ3σ2ετ_δÏ3ϲ2ετ_δύ3ϲ2ετδÏ3σ2οι_δύ3σ2οι_δÏ3ϲ2οι_δύ3ϲ2οι_δÏ3σ2ων_δύ3σ2ων_δÏ3ϲ2ων_δύ3ϲ2ων_δÏ3σ2ουσδύ3σ2ουσδÏ3ϲ2ουϲδύ3ϲ2ουϲδυ3σ2οÏσδυ3σ2ούσδυ3ϲ2οÏϲδυ3ϲ2ούϲδÏ3σ2αι_δύ3σ2αι_δÏ3ϲ2αι_δύ3ϲ2αι_δÏ3σ2ον_δύ3σ2ον_δÏ3ϲ2ον_δύ3ϲ2ον_δÏ3σ2ας_δύ3σ2ας_δÏ3ϲ2αϲ_δύ3ϲ2αϲ_δÏ3σ2αν_δύ3σ2αν_δÏ3ϲ2αν_δύ3ϲ2αν_δÏ3σ2αντδύ3σ2αντδÏ3ϲ2αντδύ3ϲ2αντδυ3σ2άντδυ3σ2άντδυ3ϲ2άντδυ3ϲ2άντ_δÏ3σ2εσ_δύ3σ2εσ_δÏ3ϲ2εϲ_δύ3ϲ2εϲδÏ3σ2εο_δύ3σ2εο_δÏ3ϲ2εο_δύ3ϲ2εο__δυσέ2κ1_δυσέ2κ1_δυϲέ2κ1_δυϲέ2κ1_δυσε2κ1_δυϲε2κ1_δυσέ2ξ1_δυσέ2ξ1_δυϲέ2ξ1_δυϲέ2ξ1_δυσε2ξ1_δυϲε2ξ1_δυ3σ2ιθ_δυ3ϲ2ιθδÏ3σ2ις_δύ3σ2ις_δÏ3ϲ2ιϲ_δύ3ϲ2ιϲ_δÏ3σ2ισ_δύ3σ2ισ_δÏ3σ2ιν_δύ3σ2ιν_δÏ3ϲ2ιν_δύ3ϲ2ιν__δÏ3σ2κε_δύ3σ2κε_δÏ3ϲ2κε_δύ3ϲ2κε_δυ3σ2μῇ_δυ3ϲ2μῇ_δυ3σ2μᾶ_δυ3ϲ2μᾶ_δυ3σ2μα_δυ3ϲ2μα_δυ3σ2μῶ_δυ3ϲ2μῶεἰ3σ2ίν_εἰ3σ2ίν_εἰ3ϲ2ίν_εἰ3ϲ2ίν_εἰ3σ2ὶν_εἰ3ϲ2ὶν_εἰ3σ2ιν_εἰ3ϲ2ιν_εἴ3σ2οιοεἴ3ϲ2οιοεἴ3σ2ατοεἴ3ϲ2ατοεἴ3σ2αιοεἴ3ϲ2αιοá¼3κ2λήθηá¼3κ2λήθηá¼4κ3λείπá¼4κ3λείπá¼4κ3λείψá¼4κ3λείψá¼3κ2κλέπá¼3κ2κλέπá¼3κ2κλέψá¼3κ2κλέψá¼4κ3λάπτá¼4κ3λάπτá¼4κ3λαπτá¼3κ2κλώσá¼3κ2κλώσá¼3κ2κλώϲá¼3κ2κλώϲἔ3κ2λεισἔ3κ2λειϲá¼3κ2ÏαÏγá¼3κ2Ïαύγá¼3κ2Ïαυγá¼2κ1τάμνá¼2κ1τάμνá¼3κ2τείνá¼3κ2τείνἔ3κ2τισαἔ3κ2τιϲαá¼3κ2τίσαá¼3κ2τίσαá¼3κ2τίϲαá¼3κ2τίϲαá¼3κ2τός_á¼3κ2τός_á¼3κ2τόϲ_á¼3κ2τόϲ_á¼3κ2τὸς_á¼3κ2τὸϲ_á¼3κ2τόσ_á¼3κ2τόσ_á¼3κ2τὸσ_á¼”2κ1τυποἑλλή2σ1πἑλλή2σ1πἑλλή2ϲ1πἑλλή2ϲ1πἑλλη2σ1πἑλλη2ϲ1Ï€á¼3ν2άκιςá¼3ν2άκιςá¼3ν2άκιϲá¼3ν2άκιϲá¼3ν2ακισá¼3ν2ακιϲá¼3ν2ακόσá¼3ν2ακόσá¼3ν2ακόϲá¼3ν2ακόϲá¼3ν2ακοσá¼3ν2ακοϲἔ3ν2αÏα_á¼3ν2αÏηφá¼4ν3αÏαÏá¼3ν2άÏεεá¼3ν2á½±Ïεεá¼3ν2αÏέωá¼3ν2αÏέωá¼3ν2αÏέαá¼3ν2αÏέαá¼3ν2αÏεάá¼3ν2αÏεάá¼3ν2άÏιεá¼3ν2á½±Ïιεá¼3ν2αÏίωá¼3ν2αÏίωá¼3ν2αÏίαá¼3ν2αÏίαá¼3ν2αÏιάá¼3ν2αÏιάá¼Î½Î´Ï…2σ1Ï„á¼Î½Î´Ï…2ϲ1Ï„á¼3ν2εμήθá¼3ν2εμήθá¼3ν2έπειá¼3ν2έπειἔ3ν2εÏθεá¼5ν4ιαÏσá¼5ν4ιαύσá¼5ν4ιαÏϲá¼5ν4ιαύϲá¼5ν4ιαυσá¼5ν4ιαυϲἔ3ν2οις_á¼”3ν2οιϲ_á¼”3ν2οισ_á¼3ν2υοῦςá¼3ν2υοῦϲá¼3ξ2Ï…2ν1á¼Ï€ÎµÎ¯3σ2θá¼Ï€Îµá½·3σ2θá¼Ï€ÎµÎ¯3ϲ2θá¼Ï€Îµá½·3ϲ2θá¼Ï€ÎµÎ¹3σ2θá¼Ï€ÎµÎ¹3ϲ2θá¼Ï€Îµ2κ1Ï„Ïá¼Ï€Î­2κ1Ï„Ïá¼Ï€á½³2κ1Ï„Ïá¼Ï€Î¹ÏƒÏ…2ν1á¼Ï€Î¹Ï²Ï…2ν1á¼3σ2μὲν_á¼3ϲ2μὲν_á¼3σ2μέν_á¼3σ2μέν_á¼3ϲ2μέν_á¼3ϲ2μέν_εá½Ï€ÏÏŒ2σ1εá½Ï€Ïá½¹2σ1εá½Ï€ÏÏŒ2ϲ1εá½Ï€Ïá½¹2ϲ1εá½Ï€Ïο2σ1εá½Ï€Ïο2ϲ1_θεό2σ1δ_θεό2σ1δ_θεό2ϲ1δ_θεό2ϲ1δ_θεο2σ1δ_θεο2ϲ1δ_θυο2σ1κ_θυο2ϲ1κ_κα2ν1εν_κα2ν1έν_κα2ν1έν_κÏά2σ1Ï€_κÏá½±2σ1Ï€_κÏά2ϲ1Ï€_κÏá½±2ϲ1Ï€_κÏα2σ1Ï€_κÏα2ϲ1Ï€_μογι2σ1_μογι2ϲ1_μυ2σ1επ_μυ2ϲ1επ_νου2ν1ε_ξυ2ν1αγ_ξυ3ν2εώ_ξυ3ν2εώ_ξυ3ν2εῶ_ξυ2ν1ῆκοἰ2σ1πώτοἰ2σ1πώτοἰ2ϲ1πώτοἰ2ϲ1πώτοἰ2σ1πωτοἰ2ϲ1πωτὅ2σ1πεÏ_á½…2ϲ1πεÏ__παλι2ν1_παλί2ν1_παλί2ν1_πα3ν2ί__πα3ν2á½·__πα3ν2á½¶__πα3ν2ικ_πα3ν2á¿·__πα3ν2ÏŒ__πα3ν2á½¹__πα3ν2ὸ__πα3ν2έ__πα3ν2á½³__πα3ν2á½²__παÏε2ξ1_παÏέ2ξ1_παÏá½³2ξ1παÏέ3ξ2ῃπαÏá½³3ξ2ῃ_Ï€Ïοε2κ1_Ï€Ïοε2ν1_Ï€Ïοε2ξ1_Ï€Ïοέ2ξ1_Ï€Ïοέ2ξ1_πυ2Ï1άγ_πυ2Ï1άγ_πυ2Ï1αγ_πυ2Ï1ῆθ_πυ2Ï1ηθ_πυ2Ï1ήθ_πυ2Ï1ήθ_πυ2Ï1ακ_Ï€Ï2Ï1αυ_πύ2Ï1αυ_πυ2Ï1αÏ_πυ2Ï1αύ_πυ2Ï1αυ_πυ2Ï1ωπ_συνε2ξ1_ϲυνε2ξ1_Ï„Ïι3σ2Ï€_Ï„Ïι3ϲ2Ï€_Ï„Ïί3σ2Ï„_Ï„Ïá½·3σ2Ï„_Ï„Ïί3ϲ2Ï„_Ï„Ïá½·3ϲ2Ï„_Ï„Ïι3σ2Ï„_Ï„Ïι3ϲ2Ï„_Ï„Ïι3σ2ÏŽ_Ï„Ïι3σ2á½½_Ï„Ïι3ϲ2ÏŽ_Ï„Ïι3ϲ2á½½_Ï„Ïι3σ2ω_Ï„Ïι3ϲ2ωὑπέ3Ï2α_ὑπέ3Ï2α_ὑπέ3Ï2á¾³_ὑπέ3Ï2á¾³_ὑπε3Ï2εθὑπε3Ï2έθὑπε3Ï2έθὑπε3Ï2είὑπε3Ï2είὑπέ3Ï2υθὑπέ3Ï2υθὑπε3Ï2Ïθὑπε3Ï2ύθὑπε3Ï2υθὑπε3Ï2έψὑπε3Ï2έψὑπε3Ï2εψὑπε3Ï2έωὑπε3Ï2έωὑπε3Ï2έεὑπε3Ï2έεὑπε3Ï2έοὑπε3Ï2έοὑπε3Ï2οῦ_φαε2σ1φ_φαε2ϲ1φὥ2σ1πεÏ_á½¥2ϲ1πεÏ_", + 9 : "ἀμπαλί2ν1ἀμπαλί2ν1ἀμπαλι2ν1á¼€2ν1αγής_á¼€2ν1αγής_á¼€2ν1αγήϲ_á¼€2ν1αγήϲ_á¼€2ν1αγὴς_á¼€2ν1αγὴϲ_á¼€2ν1αγήσ_á¼€2ν1αγήσ_á¼€2ν1αγὴσ_á¼€2ν1αγεῖ_á¼€2ν1αγές_á¼€2ν1αγές_á¼€2ν1αγέϲ_á¼€2ν1αγέϲ_á¼€2ν1αγὲς_á¼€2ν1αγὲϲ_á¼€2ν1αγέσ_á¼€2ν1αγέσ_á¼€2ν1αγὲσ_á¼€2ν1αγῶν_á¼€2ν1αγέσιἀ2ν1αγέσιἀ2ν1αγέϲιἀ2ν1αγέϲιἀ3ν2αγώγιἀ3ν2αγώγιἀ3ν2αγωγίἀ3ν2αγωγίἀ2ν1ακόλοἀ2ν1ακόλοἀ2ν1ακολοἀ2ν1άλειπἀ2ν1άλειπἀ2ν1αλείπἀ2ν1αλείπἀ2ν1αλειφἀ2ν1άλειφἀ2ν1άλειφἀ2ν1αλείφἀ2ν1αλείφἀ2ν1άλιστἀ2ν1άλιστἀ2ν1άλιϲτἀ2ν1άλιϲτἀ2ν1αλίστἀ2ν1αλίστἀ2ν1αλίϲτἀ2ν1αλίϲτἀ2ν1άλων_á¼€2ν1άλων_á¼€2ν1αμάÏτἀ2ν1αμάÏτἀ2ν1αμαÏτἀ2ν1αμέλγἀ2ν1αμέλγἀ2ν1αμελγἀναμφι2σ1ἀναμφι2ϲ1á¼€2ν1ανάγκἀ2ν1ανάγκἀ2ν1αναγκἀ2ν1ανταγἀ2ν1ανταπἀ2ν1αξιόλἀ2ν1αξιόλἀ2ν1αξιολἀ2ν1αξιόπἀ2ν1αξιόπἀ2ν1αξιοπἀ2ν1απάÏτἀ2ν1απάÏτἀ2ν1απαÏτἀ2ν1απαÏδἀ2ν1απαύδἀ2ν1απαυδἀ2ν1αποδήἀ2ν1αποδήἀ2ν1αποδηἀ2ν1απόδοἀ2ν1απόδοἀ2ν1αποδόἀ2ν1αποδόἀ2ν1απόδÏá¼€2ν1απόδÏá¼€2ν1αποδÏá¼€2ν1απολόἀ2ν1απολόἀ2ν1απολοἀ2ν1απόλυἀ2ν1απόλυἀ2ν1απολÏá¼€2ν1απολύἀ2ν1απότεἀ2ν1απότεἀ2ν1αποτεἀ2ν1απότμἀ2ν1απότμἀ2ν1αποτμἀ2ν1απότÏá¼€2ν1απότÏá¼€2ν1αποτÏá¼€4ν3αÏÏαγἀ2ν1άσσατἀ2ν1άσσατἀ2ν1άϲϲατἀ2ν1άϲϲατἀ2ν1ασσάτἀ2ν1ασσάτἀ2ν1αϲϲάτἀ2ν1αϲϲάτἀ2ν1άστειἀ2ν1άστειἀ2ν1άϲτειἀ2ν1άϲτειἀ2ν1αστείἀ2ν1αστείἀ2ν1αϲτείἀ2ν1αϲτείἀ2ν1ατεὶ_á¼€2ν1ατεί_á¼€2ν1ατεί_ἄ2ν1ατος_ἄ2ν1ατοϲ_ἄ2ν1ατοσ_á¼€2ν1άτου_á¼€2ν1άτου_ἄ2ν1ατον_ἄ2ν1ατοι_á¼€2ν1αφαίÏá¼€2ν1αφαίÏá¼€2ν1αφαιÏá¼€2ν1εφῶν_á¼€2ν1αφÏόδἀ2ν1αφÏόδἀ2ν1αφÏοδἀνδÏÏŒ2σ1αἀνδÏá½¹2σ1αἀνδÏÏŒ2ϲ1αἀνδÏá½¹2ϲ1αἀνδÏο2σ1αἀνδÏο2ϲ1αἀ2ν1έγεÏτἀ2ν1έγεÏτἀ2ν1εγέÏτἀ2ν1εγέÏτἀ2ν1έδÏασἀ2ν1έδÏασἀ2ν1έδÏαϲἀ2ν1έδÏαϲἀ2ν1εδÏάσἀ2ν1εδÏάσἀ2ν1εδÏάϲἀ2ν1εδÏάϲἀ2ν1ειλείἀ2ν1ειλείἀ2ν1ειλειἀ3ν2εκάς_á¼€3ν2εκάς_á¼€3ν2εκάϲ_á¼€3ν2εκάϲ_á¼€3ν2εκὰς_á¼€3ν2εκὰϲ_á¼€3ν2εκάσ_á¼€3ν2εκάσ_á¼€3ν2εκὰσ_ἀνε2κ1λιπἀ2ν1έλεγκἀ2ν1έλεγκἀ2ν1ελέγκἀ2ν1ελέγκἀ2ν1ελεγξἀ2ν1ελκέσἀ2ν1ελκέσἀ2ν1ελκέϲἀ2ν1ελκέϲἀ2ν1έλυτÏá¼€2ν1έλυτÏá¼€2ν1ελÏÏ„Ïá¼€2ν1ελύτÏá¼€2ν1εÏαστἀ2ν1εÏαϲτἀ2ν1έÏαστἀ2ν1á½³Ïαστἀ2ν1έÏαϲτἀ2ν1á½³Ïαϲτἀ2ν1εÏάστἀ2ν1εÏάστἀ2ν1εÏάϲτἀ2ν1εÏάϲτἀ2ν1έÏεικἀ2ν1á½³Ïεικἀ2ν1εÏείκἀ2ν1εÏείκἀ2ν1έÏεισἀ2ν1á½³Ïεισἀ2ν1έÏειϲἀ2ν1á½³Ïειϲἀ2ν1εÏείσἀ2ν1εÏείσἀ2ν1εÏείϲἀ2ν1εÏείϲἀ2ν1εÏÏετἀ2ν1εύÏετἀ2ν1ευÏέτἀ2ν1ευÏέτἀ2ν1ηλάτωἀ2ν1ηλάτωἀ2ν1ήλαταἀ2ν1ήλαταἀ2ν1ήλειπἀ2ν1ήλειπἀ2ν1ηλείπἀ2ν1ηλείπἄ2ν1ιδÏοςἄ2ν1ιδÏοϲἄ2ν1ιδÏοσἀ2ν1ίδÏουἀ2ν1ίδÏουἄ2ν1ιδÏονἀ2ν1ίδÏοιἀ2ν1ίδÏοιἄ2ν1ιδÏοιἀ2ν1ίδÏυτἀ2ν1ίδÏυτἀ2ν1ιδÏÏτἀ2ν1ιδÏύτἀ2ν1ιδÏωτἀ2ν1ιδÏώτἀ2ν1ιδÏώτἀ2ν1ιεÏάτἀ2ν1ιεÏάτἀ2ν1ίμαστἀ2ν1ίμαστἀ2ν1ίμαϲτἀ2ν1ίμαϲτἀ2ν1ιμάστἀ2ν1ιμάστἀ2ν1ιμάϲτἀ2ν1ιμάϲτἀ2ν1οικονἀ2ν1οικτίἀ2ν1οικτίἀ2ν1οίμωκἀ2ν1οίμωκἀ2ν1οιμώκἀ2ν1οιμώκἀ2ν1οιμωκἄ2ν1οιστÏἄ2ν1οιϲτÏá¼€2ν1οίστÏá¼€2ν1οίστÏá¼€2ν1οίϲτÏá¼€2ν1οίϲτÏá¼€2ν1ομβÏίἀ2ν1ομβÏá½·á¼€2ν1ομβÏῖἄ2ν1ομβÏοἀ2ν1όμβÏοἀ2ν1όμβÏοἀ2ν1όμβÏωἀ2ν1όμβÏωἄ2ν1ομβÏαἀ3ν2όμου_á¼€3ν2όμου_á¼€3ν2όμων_á¼€3ν2όμων_á¼€3ν2οÏγάζἀ3ν2οÏγάζἀ2ν1όχευτἀ2ν1όχευτἀ2ν1οχεÏτἀ2ν1οχεύτἀντα2ν1ισἀντα2ν1ιϲἀντα2ν1ίσἀντα2ν1ίσἀντα2ν1ίϲἀντα2ν1ίϲἀντιδυ2σ1ἀντιδυ2ϲ1ἀντισÏ2ν1ἀντισύ2ν1ἀντιϲÏ2ν1ἀντιϲύ2ν1ἀντισυ2ν1ἀντιϲυ2ν1ἀπα2ν1οÏÏἀπα2ν1ούÏἀπÏÏŒ3σ2κεἀπÏá½¹3σ2κεἀπÏÏŒ3ϲ2κεἀπÏá½¹3ϲ2κεἀπÏο3σ2κέἀπÏο3σ2κέἀπÏο3ϲ2κέἀπÏο3ϲ2κέἀπÏÏŒ3σ2κοἀπÏá½¹3σ2κοἀπÏÏŒ3ϲ2κοἀπÏá½¹3ϲ2κοἀπÏο3σ2κόἀπÏο3σ2κόἀπÏο3ϲ2κόἀπÏο3ϲ2κόἀÏχισυ2ν1á¼€Ïχιϲυ2ν1_γεÏα2σ1φ_γεÏα2ϲ1φ_διέ2κ1Ïο_διέ2κ1Ïο_διε2κ1ÏÏŒ_διε2κ1Ïá½¹_δικα2σ1Ï€_δικα2ϲ1πδÏ3σ2εις_δύ3σ2εις_δÏ3ϲ2ειϲ_δύ3ϲ2ειϲ_δÏ3σ2εισ_δύ3σ2εισ_δÏ3σ2οις_δύ3σ2οις_δÏ3ϲ2οιϲ_δύ3ϲ2οιϲ_δÏ3σ2οισ_δύ3σ2οισ_δÏ3σ2ειν_δύ3σ2ειν_δÏ3ϲ2ειν_δύ3ϲ2ειν_δÏ3σ2ωσι_δύ3σ2ωσι_δÏ3ϲ2ωϲι_δύ3ϲ2ωϲι_δÏ3σ2αις_δύ3σ2αις_δÏ3ϲ2αιϲ_δύ3ϲ2αιϲ_δÏ3σ2αισ_δύ3σ2αισ_δÏ3σ2ειε_δύ3σ2ειε_δÏ3ϲ2ειε_δύ3ϲ2ειε_δÏ3σ2αιενδύ3σ2αιενδÏ3ϲ2αιενδύ3ϲ2αιενδυ3σ2άτω_δυ3σ2άτω_δυ3ϲ2άτω_δυ3ϲ2άτω_δÏ3σ2ατε_δύ3σ2ατε_δÏ3ϲ2ατε_δύ3ϲ2ατε_δÏ3σ2οιο_δύ3σ2οιο_δÏ3ϲ2οιο_δύ3ϲ2οιο_δÏ3σ2αιο_δύ3σ2αιο_δÏ3ϲ2αιο_δύ3ϲ2αιο_δυ3σ2άμενδυ3σ2άμενδυ3ϲ2άμενδυ3ϲ2άμενδÏ3σ2ατο_δύ3σ2ατο_δÏ3ϲ2ατο_δύ3ϲ2ατο_δÏ3σ2ετο_δύ3σ2ετο_δÏ3ϲ2ετο_δύ3ϲ2ετο_δÏ3σ2εσι_δύ3σ2εσι_δÏ3ϲ2εϲι_δύ3ϲ2εϲι__δυ3σ2μή__δυ3σ2μή__δυ3ϲ2μή__δυ3ϲ2μή__δυ3σ2μὴ__δυ3ϲ2μὴ__δυ3σ2μῆ__δυ3ϲ2μῆ__δυσξÏ2ν1_δυσξύ2ν1_δυϲξÏ2ν1_δυϲξύ2ν1_δυσξυ2ν1_δυϲξυ2ν1_δÏ3σ2ταν_δύ3σ2ταν_δÏ3ϲ2ταν_δύ3ϲ2ταν_δυ3σ2τάν_δυ3σ2τάν_δυ3ϲ2τάν_δυ3ϲ2τάν_δυ3σ2την_δυ3ϲ2την_δυ3σ2τήν_δυ3σ2τήν_δυ3ϲ2τήν_δυ3ϲ2τήνεἴ3σ2οιτοεἴ3ϲ2οιτοεἰ3σ2όμενεἰ3σ2όμενεἰ3ϲ2όμενεἰ3ϲ2όμενεἰ3σ2ομένεἰ3σ2ομένεἰ3ϲ2ομένεἰ3ϲ2ομένεἴ3σ2ασθεεἴ3ϲ2αϲθεεἴ3σ2αντοεἴ3ϲ2αντοεἴ3σ2ωμαιεἴ3ϲ2ωμαιεἴ3σ2ησθεεἴ3ϲ2ηϲθεεἴ3σ2αιτοεἴ3ϲ2αιτοεἰ3σ2άσθωεἰ3σ2άσθωεἰ3ϲ2άϲθωεἰ3ϲ2άϲθωεἰ3σ2άμενεἰ3σ2άμενεἰ3ϲ2άμενεἰ3ϲ2άμενεἰ3σ2αμένεἰ3σ2αμένεἰ3ϲ2αμένεἰ3ϲ2αμένá¼4κ3λÏσεωá¼4κ3λύσεωá¼4κ3λÏϲεωá¼4κ3λύϲεωá¼4κ3λÏσειá¼4κ3λύσειá¼4κ3λÏϲειá¼4κ3λύϲειἔ2κ1ταμε_á¼2κ1Ï„Ïπῳ_á¼2κ1τύπῳ_á¼”2κ1τυπε_á¼2κ1Ï„Ïπω_á¼2κ1τύπω_á¼2κτÏποι_á¼2κτύποι_á¼”2κ1τυπα_á¼3ν2άÏων_á¼3ν2á½±Ïων_á¼3ν2εμέσσá¼3ν2εμέσσá¼3ν2εμέϲϲá¼3ν2εμέϲϲἑ2ξ1ήÏετμἑ2ξ1á½µÏετμἑ2ξ1ηÏέτμἑ2ξ1ηÏέτμá¼Ï€ÎµÎ¯3σ2ω_á¼Ï€Îµá½·3σ2ω_á¼Ï€ÎµÎ¯3ϲ2ω_á¼Ï€Îµá½·3ϲ2ω_á¼Ï€Îµ2κ1τείá¼Ï€Îµ2κ1τείá¼Ï€Î­2κ1τειá¼Ï€á½³2κ1τειá¼3σ2όμεθαá¼3σ2όμεθαá¼3ϲ2όμεθαá¼3ϲ2όμεθαá¼3σ2οίμηνá¼3σ2οίμηνá¼3ϲ2οίμηνá¼3ϲ2οίμην_θη2Ï1αγÏ_κατει2σ1_κατει2ϲ1_κατε2ν1ή_κατε2ν1á½µ_κεÏα2σ1φ_κεÏα2ϲ1φ_κυνό2σ1α_κυνό2σ1α_κυνό2ϲ1α_κυνό2ϲ1α_κυνό2σ1β_κυνό2σ1β_κυνό2ϲ1β_κυνό2ϲ1β_κυνο2σ1β_κυνο2ϲ1β_κυνό2σ1ο_κυνό2σ1ο_κυνό2ϲ1ο_κυνό2ϲ1ο_κυνο2σ1ο_κυνο2ϲ1ο_κυνο2σ1φ_κυνο2ϲ1φ_μελά2ν1Ï…_μελά2ν1Ï…_μελα2ν1Ï_μελα2ν1á½»_μετε2ξ1α_μετε2ξ1έ_μετε2ξ1á½³_μετε2ξ1ε_μογο2σ1Ï„_μογο2ϲ1τοἱο2ν1εί_οἱο2ν1εί_οἱο2ν1εὶ_á½Î»Î¿2ν1έν_á½Î»Î¿2ν1έν_á½Î»Î¿2ν1ὲν_á½ÏƒÎ¿2ν1ῶν_á½Ï²Î¿2ν1ῶν_οἷ2σ1τισιοἷ2ϲ1τιϲιἧ2σ1τινοςἧ2ϲ1τινοϲαἷ2σ1τισιαἷ2ϲ1τιϲιἅ2σ1τιναςἅ2ϲ1τιναϲ_πα3ν2ός__πα3ν2ός__πα3ν2όϲ__πα3ν2όϲ__πα3ν2ὸς__πα3ν2ὸϲ__πα3ν2όσ__πα3ν2όσ__πα3ν2ὸσ__πα3ν2ῶν__πα3ν2ίσδ_πα3ν2ίσδ_πα3ν2ίϲδ_πα3ν2ίϲδ_πα3ν2ισδ_πα3ν2ιϲδ_πα3ν2οῦ__πα3ν2όν__πα3ν2όν__πα3ν2ὸν__πα3ν2οί__πα3ν2οί__πα3ν2οὶ__παÏεί2σ1_παÏεί2σ1_παÏεί2ϲ1_παÏεί2ϲ1_παÏει2σ1_παÏει2ϲ1_παÏε2κ1λ_παÏε2ν1οπαÏέ3ξ2ω_παÏá½³3ξ2ω__πλεο2ν1έ_πλεο2ν1á½³_πλεο2ν1ε_Ï€Ïοει2σ1_Ï€Ïοει2ϲ1_Ï€Ïο3σ2άβ_Ï€Ïο3σ2άβ_Ï€Ïο3ϲ2άβ_Ï€Ïο3ϲ2άβ_Ï€Ïο3σ2αβ_Ï€Ïο3ϲ2αβ_Ï€Ïο3σ2εί_Ï€Ïο3σ2εί_Ï€Ïο3ϲ2εί_Ï€Ïο3ϲ2εί_Ï€Ïοσε2ν1_Ï€Ïοϲε2ν1_Ï€Ïοσε2ξ1_Ï€Ïοϲε2ξ1_Ï€ÏÏŒ3σ2θι_Ï€Ïá½¹3σ2θι_Ï€ÏÏŒ3ϲ2θι_Ï€Ïá½¹3ϲ2θι_Ï€Ïο3σ2θί_Ï€Ïο3σ2θί_Ï€Ïο3ϲ2θί_Ï€Ïο3ϲ2θί_Ï€ÏÏŒ3σ2τῳ_Ï€Ïá½¹3σ2τῳ_Ï€ÏÏŒ3ϲ2τῳ_Ï€Ïá½¹3ϲ2τῳ_Ï€Ïο3σ2τῴ_Ï€Ïο3ϲ2τῴ_Ï€Ïο3σ2υγ_Ï€Ïο3ϲ2υγ_Ï€Ïο3σ2υμ_Ï€Ïο3ϲ2υμ_Ï€ÏÏŒ3σ2ω__Ï€Ïá½¹3σ2ω__Ï€ÏÏŒ3ϲ2ω__Ï€Ïá½¹3ϲ2ω__Ï€Ïο3σ2ÏŽÏ„_Ï€Ïο3σ2ώτ_Ï€Ïο3ϲ2ÏŽÏ„_Ï€Ïο3ϲ2ώτ_Ï€Ïο3σ2ωτ_Ï€Ïο3ϲ2ωτ_πυ2Ï1αίθ_πυ2Ï1αίθ_πυ2Ï1αιθ_συνδυ2σ1_ϲυνδυ2ϲ1_Ï„Ïει2σ1κ_Ï„Ïει2ϲ1κ_Ï„Ïι3σ2μό_Ï„Ïι3σ2μό_Ï„Ïι3ϲ2μό_Ï„Ïι3ϲ2μό_Ï„Ïι3σ2μο_Ï„Ïι3ϲ2μο_Ï„Ïι3σ2μῶ_Ï„Ïι3ϲ2μῶὑπεί3σ2αςὑπεί3σ2αςὑπεί3ϲ2αϲὑπεί3ϲ2αϲὑπεί3σ2ασὑπεί3σ2ασὑπεί3σ2ανὑπεί3σ2ανὑπεί3ϲ2ανὑπεί3ϲ2ανὑπει3σ2άνὑπει3σ2άνὑπει3ϲ2άνὑπει3ϲ2άνὑπει3σ2άσὑπει3σ2άσὑπει3ϲ2άϲὑπει3ϲ2άϲὑπε2κ1λαμὑπε2κ1λήψὑπε2κ1λήψὑπέ3Ï2ης_ὑπέ3Ï2ης_ὑπέ3Ï2ηϲ_ὑπέ3Ï2ηϲ_ὑπέ3Ï2ησ_ὑπέ3Ï2ησ_ὑπέ3Ï2αν_ὑπέ3Ï2αν_ὑπέ3Ï2αι_ὑπέ3Ï2αι_ὑπε3Ï2ῶν_ὑπέ3Ï2ας_ὑπέ3Ï2ας_ὑπέ3Ï2αϲ_ὑπέ3Ï2αϲ_ὑπέ3Ï2ασ_ὑπέ3Ï2ασ_ὑπε3Ï2έπτὑπε3Ï2έπτὑπε3Ï2επτὑπε3Ï2εῖ_ὑπε3Ï2εῖτ_χει2Ï1άγ_χει2Ï1άγ_χει2Ï1αγ_χει2Ï1απ_χει2Ï1αψ_χει2Ï1ου_χει2Ï1ῶν_χει2Ï1άν_χει2Ï1άν_χει2Ï1αν_χη2ν1ναλ", + 10 : "á¼€2ν1αγεῖς_á¼€2ν1αγεῖϲ_á¼€2ν1αγεῖσ_á¼€4ν3αγωγίαἀ4ν3αγωγίαἀ3ν2αλδήσκἀ3ν2αλδήσκἀ3ν2αλδήϲκἀ3ν2αλδήϲκἀ4ν3ανθές_á¼€4ν3ανθές_á¼€4ν3ανθέϲ_á¼€4ν3ανθέϲ_á¼€4ν3ανθὲς_á¼€4ν3ανθὲϲ_á¼€4ν3ανθέσ_á¼€4ν3ανθέσ_á¼€4ν3ανθὲσ_á¼€4ν3ανθέσιἀ4ν3ανθέσιἀ4ν3ανθέϲιἀ4ν3ανθέϲιἀ2ν1απάλλαἀ2ν1απάλλαἀ2ν1απαλλάἀ2ν1απαλλάἀ2ν1απόλαυἀ2ν1απόλαυἀ2ν1απολαÏá¼€2ν1απολαύἀ3ν2αστείβἀ3ν2αστείβἀ3ν2αϲτείβἀ3ν2αϲτείβἀ3ν2άστειÏá¼€3ν2άστειÏá¼€3ν2άϲτειÏá¼€3ν2άϲτειÏá¼€3ν2αστείÏá¼€3ν2αστείÏá¼€3ν2αϲτείÏá¼€3ν2αϲτείÏá¼€3ν2άστειχἀ3ν2άστειχἀ3ν2άϲτειχἀ3ν2άϲτειχἀ3ν2αστείχἀ3ν2αστείχἀ3ν2αϲτείχἀ3ν2αϲτείχἀ2ν1άτοις_á¼€2ν1άτοις_á¼€2ν1άτοιϲ_á¼€2ν1άτοιϲ_á¼€2ν1άτοισ_á¼€2ν1άτοισ_á¼€2ν1εί2σ1οἀ2ν1εί2σ1οἀ2ν1εί2ϲ1οἀ2ν1εί2ϲ1οἀ2ν1ει2σ1όἀ2ν1ει2σ1όἀ2ν1ει2ϲ1όἀ2ν1ει2ϲ1όἀ2ν1ελκές_á¼€2ν1ελκές_á¼€2ν1ελκέϲ_á¼€2ν1ελκέϲ_á¼€2ν1ελκὲς_á¼€2ν1ελκὲϲ_á¼€2ν1ελκέσ_á¼€2ν1ελκέσ_á¼€2ν1ελκὲσ_á¼€3ν2έντες_á¼€3ν2έντες_á¼€3ν2έντεϲ_á¼€3ν2έντεϲ_á¼€3ν2έντεσ_á¼€3ν2έντεσ_á¼€2ν1ηλάτουἀ2ν1ηλάτουἀ2ν1ήλατε_á¼€2ν1ήλατε_á¼€2ν1ηλάτοιἀ2ν1ηλάτοιἀ2ν1ήλατοιἀ2ν1ήλατοιἀ4ν3ιστοÏηἀ4ν3ιϲτοÏηἀ4ν3ιστόÏηἀ4ν3ιστόÏηἀ4ν3ιϲτόÏηἀ4ν3ιϲτόÏηἀ4ν3ιστοÏήἀ4ν3ιστοÏήἀ4ν3ιϲτοÏήἀ4ν3ιϲτοÏήἀ2ν1ιχνεÏτἀ2ν1ιχνεύτἀ2ν2όμοιν_á¼€2ν2όμοιν_á¼€3ν2όμοις_á¼€3ν2όμοις_á¼€3ν2όμοιϲ_á¼€3ν2όμοιϲ_á¼€3ν2όμοισ_á¼€3ν2όμοισ_á¼€3ν2όμους_á¼€3ν2όμους_á¼€3ν2όμουϲ_á¼€3ν2όμουϲ_á¼€3ν2όμουσ_á¼€3ν2όμουσ_ἀντιπÏο2σ1ἀντιπÏο2ϲ1á¼€2ν1υπέ2Ï1á¼€2ν1υπέ2Ï1á¼€2ν1υπε2Ï1δÏ3σ2ομεν_δύ3σ2ομεν_δÏ3ϲ2ομεν_δύ3ϲ2ομεν_δÏ3σ2οιμι_δύ3σ2οιμι_δÏ3ϲ2οιμι_δύ3ϲ2οιμι_δÏ3σ2οιτε_δύ3σ2οιτε_δÏ3ϲ2οιτε_δύ3ϲ2οιτε_δÏ3σ2οιεν_δύ3σ2οιεν_δÏ3ϲ2οιεν_δύ3ϲ2οιεν_δÏ3σ2ητον_δύ3σ2ητον_δÏ3ϲ2ητον_δύ3ϲ2ητον_δÏ3σ2ωμεν_δύ3σ2ωμεν_δÏ3ϲ2ωμεν_δύ3ϲ2ωμεν_δÏ3σ2αιμι_δύ3σ2αιμι_δÏ3ϲ2αιμι_δύ3ϲ2αιμι_δÏ3σ2ειας_δύ3σ2ειας_δÏ3ϲ2ειαϲ_δύ3ϲ2ειαϲ_δÏ3σ2ειασ_δύ3σ2ειασ_δÏ3σ2αιτε_δύ3σ2αιτε_δÏ3ϲ2αιτε_δύ3ϲ2αιτε_δÏ3σ2ειαν_δύ3σ2ειαν_δÏ3ϲ2ειαν_δύ3ϲ2ειαν_δÏ3σ2ατον_δύ3σ2ατον_δÏ3ϲ2ατον_δύ3ϲ2ατον_δυ3σ2άτων_δυ3σ2άτων_δυ3ϲ2άτων_δυ3ϲ2άτων_δÏ3σ2ομαι_δύ3σ2ομαι_δÏ3ϲ2ομαι_δύ3ϲ2ομαι_δÏ3σ2οιτο_δύ3σ2οιτο_δÏ3ϲ2οιτο_δύ3ϲ2οιτο__δυ3σ2όμεν_δυ3σ2όμεν_δυ3ϲ2όμεν_δυ3ϲ2όμεν_δυ3σ2ομέν_δυ3σ2ομέν_δυ3ϲ2ομέν_δυ3ϲ2ομένδÏ3σ2ωμαι_δύ3σ2ωμαι_δÏ3ϲ2ωμαι_δύ3ϲ2ωμαι_δÏ3σ2ηται_δύ3σ2ηται_δÏ3ϲ2ηται_δύ3ϲ2ηται_δυ3σ2ώμεθαδυ3σ2ώμεθαδυ3ϲ2ώμεθαδυ3ϲ2ώμεθαδÏ3σ2ησθε_δύ3σ2ησθε_δÏ3ϲ2ηϲθε_δύ3ϲ2ηϲθε_δÏ3σ2αιτο_δύ3σ2αιτο_δÏ3ϲ2αιτο_δύ3ϲ2αιτο_δυ3σ2άσθω_δυ3σ2άσθω_δυ3ϲ2άϲθω_δυ3ϲ2άϲθω_δÏ3σ2ασθε_δύ3σ2ασθε_δÏ3ϲ2αϲθε_δύ3ϲ2αϲθε_δυσ3σ2αμένδυσ3σ2αμένδυϲ3ϲ2αμένδυϲ3ϲ2αμένδÏ3σ2αντο_δύ3σ2αντο_δÏ3ϲ2αντο_δύ3ϲ2αντο__δυσεί2σ1β_δυσεί2σ1β_δυϲεί2ϲ1β_δυϲεί2ϲ1β_δυσει2σ1β_δυϲει2ϲ1βδυ3σ2έοιν_δυ3σ2έοιν_δυ3ϲ2έοιν_δυ3ϲ2έοιν_δÏ3σ2εσιν_δύ3σ2εσιν_δÏ3ϲ2εϲιν_δύ3ϲ2εϲιν__δυ3σ2μῆς__δυ3ϲ2μῆϲ__δυ3σ2μῆσ_εἴ3σ2εται_εἴ3ϲ2εται_εἴ3σ2εσθε_εἴ3ϲ2εϲθε_εἴ3σ2ονταιεἴ3ϲ2ονταιεἰ3σ2οίμηνεἰ3σ2οίμηνεἰ3ϲ2οίμηνεἰ3ϲ2οίμηνεἴ3σ2οισθεεἴ3ϲ2οιϲθεεἴ3σ2οιντοεἴ3ϲ2οιντοεἴ3σ2εσθαιεἴ3ϲ2εϲθαιεἴ3σ2άμην_εἴ3σ2άμην_εἴ3ϲ2άμην_εἴ3ϲ2άμην_εἴ3σ2ασθονεἴ3ϲ2αϲθονεἰ3σ2άσθηνεἰ3σ2άσθηνεἰ3ϲ2άϲθηνεἰ3ϲ2άϲθηνεἰ3σ2άμεθαεἰ3σ2άμεθαεἰ3ϲ2άμεθαεἰ3ϲ2άμεθαεἴ3σ2ησθονεἴ3ϲ2ηϲθονεἰ3σ2ώμεθαεἰ3σ2ώμεθαεἰ3ϲ2ώμεθαεἰ3ϲ2ώμεθαεἴ3σ2ωνταιεἴ3ϲ2ωνταιεἰ3σ2αίμηνεἰ3σ2αίμηνεἰ3ϲ2αίμηνεἰ3ϲ2αίμηνεἴ3σ2αισθεεἴ3ϲ2αιϲθεεἴ3σ2αιντοεἴ3ϲ2αιντοεἰ3σ2άσθωνεἰ3σ2άσθωνεἰ3ϲ2άϲθωνεἰ3ϲ2άϲθωνεἴ3σ2ασθαιεἴ3ϲ2αϲθαιá¼4κ3λÏσεοιá¼4κ3λύσεοιá¼4κ3λÏϲεοιá¼4κ3λύϲεοιá¼4κ3λÏσεσιá¼4κ3λύσεσιá¼4κ3λÏϲεϲιá¼4κ3λύϲεϲιá¼2κ1Ï„Ïπου_á¼2κ1τύπου_á¼2κ1Ï„Ïπων_á¼2κ1τύπων_á¼3ν2άÏοις_á¼3ν2á½±Ïοις_á¼3ν2άÏοιϲ_á¼3ν2á½±Ïοιϲ_á¼3ν2άÏοισ_á¼3ν2á½±Ïοισ_á¼4ν3ιέτον_á¼4ν3ιέτον_á¼4ν3ίεμεν_á¼4ν3ίεμεν_á¼Ï€ÎµÎ¯3σ2ατεá¼Ï€Îµá½·3σ2ατεá¼Ï€ÎµÎ¯3ϲ2ατεá¼Ï€Îµá½·3ϲ2ατεá¼Ï€ÎµÎ¯3σ2ατοá¼Ï€Îµá½·3σ2ατοá¼Ï€ÎµÎ¯3ϲ2ατοá¼Ï€Îµá½·3ϲ2ατοá¼Ï€Î¹Ï€ÏÏŒ2σ1θá¼Ï€Î¹Ï€Ïá½¹2σ1θá¼Ï€Î¹Ï€ÏÏŒ2ϲ1θá¼Ï€Î¹Ï€Ïá½¹2ϲ1θá¼Ï€Î¹Ï€Ïο2σ1θá¼Ï€Î¹Ï€Ïο2ϲ1θ_θεμι2σ1κÏ_θεμι2ϲ1κÏ_καθυπε2Ï1_καλω2σ1οÏ_καλω2ϲ1οÏ_καλω2σ1ÏŒÏ_καλω2σ1á½¹Ï_καλω2ϲ1ÏŒÏ_καλω2ϲ1á½¹Ï_κα2ν1είς__κα2ν1είς__κα2ν1είϲ__κα2ν1είϲ__κα2ν1εὶς__κα2ν1εὶϲ__κα2ν1είσ__κα2ν1είσ__κα2ν1εὶσ__κατε2ν1αί_κατε2ν1αί_μελα2ν1άγ_μελα2ν1άγ_μελα2ν1αγ_μελα2ν1άε_μελα2ν1άε_μελα2ν1αέ_μελα2ν1αέ_μελα2ν1αθ_νεώ2σ1οικ_νεώ2σ1οικ_νεώ2ϲ1οικ_νεώ2ϲ1οικ_νεω2σ1οίκ_νεω2σ1οίκ_νεω2ϲ1οίκ_νεω2ϲ1οίκοὕ2σ1τιναςοὕ2ϲ1τιναϲἡτι2σ1οῦν_ἡτι2ϲ1οῦν_οá½Î´ÎµÎ½ÏŒ2σ1ωοá½Î´ÎµÎ½á½¹2σ1ωοá½Î´ÎµÎ½ÏŒ2ϲ1ωοá½Î´ÎµÎ½á½¹2ϲ1ωοá½Î´ÎµÎ½Î¿2σ1ώοá½Î´ÎµÎ½Î¿2σ1ώοá½Î´ÎµÎ½Î¿2ϲ1ώοá½Î´ÎµÎ½Î¿2ϲ1á½½_πα3ν2οῖς__πα3ν2οῖϲ__πα3ν2οῖσ__πα3ν2οÏÏ‚__πα3ν2ούς__πα3ν2οÏϲ__πα3ν2ούϲ__πα3ν2οὺς__πα3ν2οὺϲ__πα3ν2οÏσ__πα3ν2ούσ__πα3ν2οὺσ__παÏε2κ1Ï„Ï_παÏε2ν1εῖπαÏέ3ξ2ει_παÏá½³3ξ2ει__Ï€Ïοσει2σ1_Ï€Ïοϲει2ϲ1_Ï€Ïο4σ3θιγ_Ï€Ïο4ϲ3θιγ_Ï€ÏÏŒ3σ2κοπ_Ï€Ïá½¹3σ2κοπ_Ï€ÏÏŒ3ϲ2κοπ_Ï€Ïá½¹3ϲ2κοπ_Ï€Ïο3σ2κόπ_Ï€Ïο3σ2κόπ_Ï€Ïο3ϲ2κόπ_Ï€Ïο3ϲ2κόπ_Ï€Ïο3σ2τασ_Ï€Ïο3ϲ2ταϲ_Ï€Ïο3σ2τάτ_Ï€Ïο3σ2τάτ_Ï€Ïο3ϲ2τάτ_Ï€Ïο3ϲ2τάτ_Ï€Ïο3σ2τατ_Ï€Ïο3ϲ2τατ_Ï€Ïο3σ2ταυ_Ï€Ïο3ϲ2ταυ_Ï€Ïο3σ2τεί_Ï€Ïο3σ2τεί_Ï€Ïο3ϲ2τεί_Ï€Ïο3ϲ2τεί_Ï€Ïο3σ2τεν_Ï€Ïο3ϲ2τεν_Ï€Ïο3σ2τέν_Ï€Ïο3σ2τέν_Ï€Ïο3ϲ2τέν_Ï€Ïο3ϲ2τέν_Ï€Ïο3σ2τήσ_Ï€Ïο3σ2τήσ_Ï€Ïο3ϲ2τήϲ_Ï€Ïο3ϲ2τήϲ_Ï€Ïο3σ2τόμ_Ï€Ïο3σ2τόμ_Ï€Ïο3ϲ2τόμ_Ï€Ïο3ϲ2τόμ_Ï€Ïο3σ2τομ_Ï€Ïο3ϲ2τομ_Ï€Ïο3σ2φάζ_Ï€Ïο3σ2φάζ_Ï€Ïο3ϲ2φάζ_Ï€Ïο3ϲ2φάζ_Ï€ÏÏŒ3σ2χημ_Ï€Ïá½¹3σ2χημ_Ï€ÏÏŒ3ϲ2χημ_Ï€Ïá½¹3ϲ2χημ_Ï€Ïο3σ2χήμ_Ï€Ïο3σ2χήμ_Ï€Ïο3ϲ2χήμ_Ï€Ïο3ϲ2χήμ_Ï€Ïοϋπε2ξ1_πυ2Ï1ήνεμ_πυ2Ï1ήνεμ_πυ2Ï1ηνέμ_πυ2Ï1ηνέμ_σελα2σ1φό_σελα2σ1φό_ϲελα2ϲ1φό_ϲελα2ϲ1φό_σελα2σ1φο_ϲελα2ϲ1φο_συνδιέ2ξ1_συνδιέ2ξ1_ϲυνδιέ2ξ1_ϲυνδιέ2ξ1_συνδιε2ξ1_ϲυνδιε2ξ1ὑπέ3Ï2αις_ὑπέ3Ï2αις_ὑπέ3Ï2αιϲ_ὑπέ3Ï2αιϲ_ὑπέ3Ï2αισ_ὑπέ3Ï2αισ_ὑπεÏε2κ1τεὑπεÏε2κ1τίὑπεÏε2κ1τίὑπε3Ï2εῖς_ὑπε3Ï2εῖϲ_ὑπε3Ï2εῖσ_ὡ2σ1αÏτως_ὡ2σ1αύτως_ὡ2ϲ1αÏτωϲ_ὡ2ϲ1αύτωϲ_ὡ2σ1αÏτωσ_ὡ2σ1αύτωσ_ι2σ1χίλια_ι2σ1χίλια_ι2ϲ1χίλια_ι2ϲ1χίλια_ι2σ1μÏÏια_ι2σ1μύÏια_ι2ϲ1μÏÏια_ι2ϲ1μύÏια_", + 11 : "á¼€2ν1εί2σ1ακἀ2ν1εί2σ1ακἀ2ν1εί2ϲ1ακἀ2ν1εί2ϲ1ακἀ2ν1ει2σ1άκἀ2ν1ει2σ1άκἀ2ν1ει2ϲ1άκἀ2ν1ει2ϲ1άκἀ4ν3έ2κ1τιτἀ4ν3á½³2κ1τιτἀ4ν3ε2κ1τίτἀ4ν3ε2κ1τίτἀ3ν2ε3ξ2ίκαἀ3ν2ε3ξ2ίκαἀ3ν2ε3ξ2ικάἀ3ν2ε3ξ2ικάἀ2ν1εÏεÏνητἀ2ν1εÏεύνητἀ2ν1εÏευνήτἀ2ν1εÏευνήτἀ2ν1ευφήμητἀ2ν1ευφήμητἀ2ν1ευφημήτἀ2ν1ευφημήτἀ2ν1ήλατος_á¼€2ν1ήλατος_á¼€2ν1ήλατοϲ_á¼€2ν1ήλατοϲ_á¼€2ν1ήλατοσ_á¼€2ν1ήλατοσ_á¼€2ν1ήλατον_á¼€2ν1ήλατον_ἀντιπαÏε2κ1ἀντιπαÏε2ξ1_διαμφι2σ1β_διαμφι2ϲ1βδÏ3σ2ουσιν_δύ3σ2ουσιν_δÏ3ϲ2ουϲιν_δύ3ϲ2ουϲιν_δÏ3σ2οιτον_δύ3σ2οιτον_δÏ3ϲ2οιτον_δύ3ϲ2οιτον_δυ3σ2οίτην_δυ3σ2οίτην_δυ3ϲ2οίτην_δυ3ϲ2οίτην_δÏ3σ2οιμεν_δύ3σ2οιμεν_δÏ3ϲ2οιμεν_δύ3ϲ2οιμεν_δÏ3σ2αιτον_δύ3σ2αιτον_δÏ3ϲ2αιτον_δύ3ϲ2αιτον_δυ3σ2αίτην_δυ3σ2αίτην_δυ3ϲ2αίτην_δυ3ϲ2αίτην_δÏ3σ2αιμεν_δύ3σ2αιμεν_δÏ3ϲ2αιμεν_δύ3ϲ2αιμεν_δυ3σ2άντων_δυ3σ2άντων_δυ3ϲ2άντων_δυ3ϲ2άντων_δυ3σ2όμεθα_δυ3σ2όμεθα_δυ3ϲ2όμεθα_δυ3ϲ2όμεθα_δÏ3σ2ονται_δύ3σ2ονται_δÏ3ϲ2ονται_δύ3ϲ2ονται_δυ3σ2οίμην_δυ3σ2οίμην_δυ3ϲ2οίμην_δυ3ϲ2οίμην_δÏ3σ2οισθε_δύ3σ2οισθε_δÏ3ϲ2οιϲθε_δύ3ϲ2οιϲθε_δÏ3σ2οιντο_δύ3σ2οιντο_δÏ3ϲ2οιντο_δύ3ϲ2οιντο_δÏ3σ2εσθαι_δύ3σ2εσθαι_δÏ3ϲ2εϲθαι_δύ3ϲ2εϲθαι_δυ3σ2αίμην_δυ3σ2αίμην_δυ3ϲ2αίμην_δυ3ϲ2αίμην_δÏ3σ2αιντο_δύ3σ2αιντο_δÏ3ϲ2αιντο_δύ3ϲ2αιντο_δÏ3σ2ασθον_δύ3σ2ασθον_δÏ3ϲ2αϲθον_δύ3ϲ2αϲθον_δυ3σ2άσθων_δυ3σ2άσθων_δυ3ϲ2άϲθων_δυ3ϲ2άϲθων_δÏ3σ2ασθαι_δύ3σ2ασθαι_δÏ3ϲ2αϲθαι_δύ3ϲ2αϲθαι_εἴ3σ2εσθον_εἴ3ϲ2εϲθον_εἴ3σ2οισθονεἴ3ϲ2οιϲθονεἰ3σ2οίσθηνεἰ3σ2οίσθηνεἰ3ϲ2οίϲθηνεἰ3ϲ2οίϲθηνεἰ3σ2οίμεθαεἰ3σ2οίμεθαεἰ3ϲ2οίμεθαεἰ3ϲ2οίμεθαεἴ3σ2αισθονεἴ3ϲ2αιϲθονεἴ3σ2αίσθηνεἴ3σ2αίσθηνεἴ3ϲ2αίϲθηνεἴ3ϲ2αίϲθηνεἰ3σ2αίμεθαεἰ3σ2αίμεθαεἰ3ϲ2αίμεθαεἰ3ϲ2αίμεθαá¼2κ1Ï„Ïποις_á¼2κ1τύποις_á¼2κ1Ï„Ïποιϲ_á¼2κ1τύποιϲ_á¼2κ1Ï„Ïποισ_á¼2κ1τύποισ_á¼2κ1Ï„Ïπους_á¼2κ1τύπους_á¼2κ1Ï„Ïπουϲ_á¼2κ1τύπουϲ_á¼2κ1Ï„Ïπουσ_á¼2κ1τύπουσ__μελα2ν1αιγ_μελα2ν1αυγ_μελα2ν1είμ_μελα2ν1είμ_μελα2ν1εῖμ_μελά2ν1ιππ_μελά2ν1ιππ_μελα2ν1ίππ_μελα2ν1ίππ_μελα2ν1όμμ_μελα2ν1όμμ_μελα2ν1ομμ_μελά2ν1οσσ_μελά2ν1οσσ_μελά2ν1οϲϲ_μελά2ν1οϲϲ_μελα2ν1όσσ_μελα2ν1όσσ_μελα2ν1όϲϲ_μελα2ν1όϲϲ_μελά2ν1οστ_μελά2ν1οστ_μελά2ν1οϲτ_μελά2ν1οϲτ_μελα2ν1όστ_μελα2ν1όστ_μελα2ν1όϲτ_μελα2ν1όϲτ_μελά2ν1ουÏ_μελά2ν1ουÏ_μελα2ν1οÏÏ_μελα2ν1ούÏ_μελα2ν1ουÏ_παÏα2ν1ίσχ_παÏα2ν1ίσχ_παÏα2ν1ίϲχ_παÏα2ν1ίϲχπαÏέ3ξ2εις_παÏá½³3ξ2εις_παÏέ3ξ2ειϲ_παÏá½³3ξ2ειϲ_παÏέ3ξ2εισ_παÏá½³3ξ2εισ_παÏέ3ξ2ετε_παÏá½³3ξ2ετε_παÏέ3ξ2ομαιπαÏá½³3ξ2ομαι_Ï€Ïο3σ2έσει_Ï€Ïο3σ2έσει_Ï€Ïο3ϲ2έϲει_Ï€Ïο3ϲ2έϲει_Ï€Ïο3σ2εσεί_Ï€Ïο3σ2εσεί_Ï€Ïο3ϲ2εϲεί_Ï€Ïο3ϲ2εϲεί_Ï€Ïο3σ2τεÏν_Ï€Ïο3ϲ2τεÏν_Ï€ÏÏŒ3σ2τεÏν_Ï€Ïá½¹3σ2τεÏν_Ï€ÏÏŒ3ϲ2τεÏν_Ï€Ïá½¹3ϲ2τεÏν_Ï€Ïο3σ2τέÏν_Ï€Ïο3σ2τέÏν_Ï€Ïο3ϲ2τέÏν_Ï€Ïο3ϲ2τέÏν_Ï€Ïο3σ2Ï…2ν1_Ï€Ïο3ϲ2Ï…2ν1_Ï€ÏÏŒ3σ2φαγμ_Ï€Ïá½¹3σ2φαγμ_Ï€ÏÏŒ3ϲ2φαγμ_Ï€Ïá½¹3ϲ2φαγμ_Ï€Ïο3σ2φάγμ_Ï€Ïο3σ2φάγμ_Ï€Ïο3ϲ2φάγμ_Ï€Ïο3ϲ2φάγμ_Ï€Ïο3σ2φάττ_Ï€Ïο3σ2φάττ_Ï€Ïο3ϲ2φάττ_Ï€Ïο3ϲ2φάττὡ2σ1α2ν1εί_ὡ2σ1α2ν1εί_ὡ2ϲ1α2ν1εί_ὡ2ϲ1α2ν1εί_ὡ2σ1α2ν1εὶ_ὡ2ϲ1α2ν1εὶ_ι2σ1χίλιοι_ι2σ1χίλιοι_ι2ϲ1χίλιοι_ι2ϲ1χίλιοι_ι2σ1χιλίων_ι2σ1χιλίων_ι2ϲ1χιλίων_ι2ϲ1χιλίων_ι2σ1χίλιαι_ι2σ1χίλιαι_ι2ϲ1χίλιαι_ι2ϲ1χίλιαι_ι2σ1χιλίας_ι2σ1χιλίας_ι2ϲ1χιλίαϲ_ι2ϲ1χιλίαϲ_ι2σ1χιλίασ_ι2σ1χιλίασ_ι2σ1μÏÏιοι_ι2σ1μύÏιοι_ι2ϲ1μÏÏιοι_ι2ϲ1μύÏιοι_ι2σ1μυÏίων_ι2σ1μυÏίων_ι2ϲ1μυÏίων_ι2ϲ1μυÏίων_ι2σ1μÏÏιαι_ι2σ1μύÏιαι_ι2ϲ1μÏÏιαι_ι2ϲ1μύÏιαι_ι2σ1μυÏίας_ι2σ1μυÏίας_ι2ϲ1μυÏίαϲ_ι2ϲ1μυÏίαϲ_ι2σ1μυÏίασ_ι2σ1μυÏίασ_ι2σ1χιλιοστι2ϲ1χιλιοϲτι2σ1μυÏιοστι2ϲ1μυÏιοϲτ", + 12 : "á¼€2ν1ει2σ1φοÏá¼€2ν1ει2ϲ1φοÏá¼€2ν1εί2σ1φοÏá¼€2ν1εί2σ1φοÏá¼€2ν1εί2ϲ1φοÏá¼€2ν1εί2ϲ1φοÏá¼€2ν1ει2σ1φόÏá¼€2ν1ει2σ1φόÏá¼€2ν1ει2ϲ1φόÏá¼€2ν1ει2ϲ1φόÏἀντιπÏοσ3κ2υἀντιπÏοϲ3κ2υδÏ3σ2οισθον_δύ3σ2οισθον_δÏ3ϲ2οιϲθον_δύ3ϲ2οιϲθον_δυ3σ2οίσθην_δυ3σ2οίσθην_δυ3ϲ2οίϲθην_δυ3ϲ2οίϲθην_δυ3σ2οίμεθα_δυ3σ2οίμεθα_δυ3ϲ2οίμεθα_δυ3ϲ2οίμεθα_δÏ3σ2αισθον_δύ3σ2αισθον_δÏ3ϲ2αιϲθον_δύ3ϲ2αιϲθον_δυ3σ2αίσθην_δυ3σ2αίσθην_δυ3ϲ2αίϲθην_δυ3ϲ2αίϲθην_δυ3σ2αίμεθα_δυ3σ2αίμεθα_δυ3ϲ2αίμεθα_δυ3ϲ2αίμεθα_δÏ3σ2αισθαι_δύ3σ2αισθαι_δÏ3ϲ2αιϲθαι_δύ3ϲ2αιϲθαι_á¼Ï€ÎµÎ¯3σ2ατον_á¼Ï€Îµá½·3σ2ατον_á¼Ï€ÎµÎ¯3ϲ2ατον_á¼Ï€Îµá½·3ϲ2ατον_á¼Ï€ÎµÎ¹3σ2άτην_á¼Ï€ÎµÎ¹3σ2άτην_á¼Ï€ÎµÎ¹3ϲ2άτην_á¼Ï€ÎµÎ¹3ϲ2άτην_á¼Ï€ÎµÎ¯3σ2αμεν_á¼Ï€Îµá½·3σ2αμεν_á¼Ï€ÎµÎ¯3ϲ2αμεν_á¼Ï€Îµá½·3ϲ2αμεν_á¼Ï€ÎµÎ¹3σ2άμην_á¼Ï€ÎµÎ¹3σ2άμην_á¼Ï€ÎµÎ¹3ϲ2άμην_á¼Ï€ÎµÎ¹3ϲ2άμην_á¼Ï€ÎµÎ¯3σ2ασθε_á¼Ï€Îµá½·3σ2ασθε_á¼Ï€ÎµÎ¯3ϲ2αϲθε_á¼Ï€Îµá½·3ϲ2αϲθε_á¼Ï€ÎµÎ¯3σ2αντο_á¼Ï€Îµá½·3σ2αντο_á¼Ï€ÎµÎ¯3ϲ2αντο_á¼Ï€Îµá½·3ϲ2αντο__θεοι2σ1εχθÏ_θεοι2ϲ1εχθÏ_καταδυ2σ1ωπ_καταδυ2ϲ1ωπ_κατεδυ2σ1ÏŽÏ€_κατεδυ2σ1ώπ_κατεδυ2ϲ1ÏŽÏ€_κατεδυ2ϲ1ώππαÏέ3ξ2ετον_παÏá½³3ξ2ετον_παÏε3ξ2έτην_παÏε3ξ2έτην_παÏέ3ξ2ομεν_παÏá½³3ξ2ομεν_παÏέ3ξ2ουσι_παÏá½³3ξ2ουσι_παÏέ3ξ2ουϲι_παÏá½³3ξ2ουϲι_παÏέ3ξ2εται_παÏá½³3ξ2εται_παÏέ3ξ2εσθε_παÏá½³3ξ2εσθε_παÏέ3ξ2εϲθε_παÏá½³3ξ2εϲθε__Ï€ÏÏŒ3σ2ωθεν__Ï€Ïá½¹3σ2ωθεν__Ï€ÏÏŒ3ϲ2ωθεν__Ï€Ïá½¹3ϲ2ωθεν__συμπαÏει2σ1_ϲυμπαÏει2ϲ1_τεσσαÏε2σ1κ_τεϲϲαÏε2ϲ1κ_χαÏι2σ1ανδÏ_χαÏι2ϲ1ανδÏ_χαÏι2σ1άνδÏ_χαÏι2σ1άνδÏ_χαÏι2ϲ1άνδÏ_χαÏι2ϲ1άνδÏὡ2σ1πε2Ï1εί_ὡ2σ1πε2Ï1εί_ὡ2ϲ1πε2Ï1εί_ὡ2ϲ1πε2Ï1εί_ὡ2σ1πε2Ï1εὶ_ὡ2ϲ1πε2Ï1εὶ_ι2σ1χιλίοις_ι2σ1χιλίοις_ι2ϲ1χιλίοιϲ_ι2ϲ1χιλίοιϲ_ι2σ1χιλίοισ_ι2σ1χιλίοισ_ι2σ1χιλίους_ι2σ1χιλίους_ι2ϲ1χιλίουϲ_ι2ϲ1χιλίουϲ_ι2σ1χιλίουσ_ι2σ1χιλίουσ_ι2σ1χιλίαις_ι2σ1χιλίαις_ι2ϲ1χιλίαιϲ_ι2ϲ1χιλίαιϲ_ι2σ1χιλίαισ_ι2σ1χιλίαισ_ι2σ1μυÏίοις_ι2σ1μυÏίοις_ι2ϲ1μυÏίοιϲ_ι2ϲ1μυÏίοιϲ_ι2σ1μυÏίοισ_ι2σ1μυÏίοισ_ι2σ1μυÏίους_ι2σ1μυÏίους_ι2ϲ1μυÏίουϲ_ι2ϲ1μυÏίουϲ_ι2σ1μυÏίουσ_ι2σ1μυÏίουσ_ι2σ1μυÏίαις_ι2σ1μυÏίαις_ι2ϲ1μυÏίαιϲ_ι2ϲ1μυÏίαιϲ_ι2σ1μυÏίαισ_ι2σ1μυÏίαισ_", + 13 : "á¼€2ν1εÏυθÏίαστἀ2ν1εÏυθÏίαστἀ2ν1εÏυθÏίαϲτἀ2ν1εÏυθÏίαϲτἀ2ν1εÏυθÏιάστἀ2ν1εÏυθÏιάστἀ2ν1εÏυθÏιάϲτἀ2ν1εÏυθÏιάϲτá¼Ï€ÎµÎ¯3σ2ασθον_á¼Ï€Îµá½·3σ2ασθον_á¼Ï€ÎµÎ¯3ϲ2αϲθον_á¼Ï€Îµá½·3ϲ2αϲθον_á¼Ï€ÎµÎ¹3σ2άμεθα_á¼Ï€ÎµÎ¹3σ2άμεθα_á¼Ï€ÎµÎ¹3ϲ2άμεθα_á¼Ï€ÎµÎ¹3ϲ2άμεθα__κατε2ξ1α2ν1ί_κατε2ξ1α2ν1á½·á½2σ1τι2σ1οῦν_á½2ϲ1τι2ϲ1οῦν_παÏέ3ξ2εσθον_παÏá½³3ξ2εσθον_παÏέ3ξ2εϲθον_παÏá½³3ξ2εϲθον_παÏε3ξ2όμεθα_παÏε3ξ2όμεθα_παÏέ3ξ2ονται_παÏá½³3ξ2ονται_ι2σ1χιλιάκις_ι2σ1χιλιάκις_ι2ϲ1χιλιάκιϲ_ι2ϲ1χιλιάκιϲ_ι2σ1χιλιάκισ_ι2σ1χιλιάκισ_ι2σ1μυÏιάκις_ι2σ1μυÏιάκις_ι2ϲ1μυÏιάκιϲ_ι2ϲ1μυÏιάκιϲ_ι2σ1μυÏιάκισ_ι2σ1μυÏιάκισ_", + 14 : "_κατε2ξ1α2ν1έσ_κατε2ξ1α2ν1έσ_κατε2ξ1α2ν1έϲ_κατε2ξ1α2ν1έϲ", + 20 : "á½Ï€Î¿Î¹Î¿Ï…2σ1τινα2σ1οῦν_á½Ï€Î¿Î¹Î¿Ï…2ϲ1τινα2ϲ1οῦν_" + } +}; diff --git a/resources/viewer/hyphenate/patterns/gu.js b/resources/viewer/hyphenate/patterns/gu.js index 3bdf3ca7f2..8af78414fb 100644 --- a/resources/viewer/hyphenate/patterns/gu.js +++ b/resources/viewer/hyphenate/patterns/gu.js @@ -1,12 +1,12 @@ -// For questions about the Gujarati hyphenation patterns +// For questions about the Gujarati hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.gu = { +Hyphenator.languages['gu'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 1, - specialChars : unescape('આઅઇઈઉઊઋàªàªàª”કગખઘઙચછજàªàªžàªŸàª àª¡àª¢àª£àª¤àª¥àª¦àª§àª¨àªªàª«àª¬àª­àª®àª¯àª°àª²àªµàª¶àª·àª¸àª¹àª³àª¿à«€àª¾à«à«‚ૃેાોૈૌà«àªƒàª‚%u200D'), + specialChars : unescape("આઅઇઈઉઊઋàªàªàª”કગખઘઙચછજàªàªžàªŸàª àª¡àª¢àª£àª¤àª¥àª¦àª§àª¨àªªàª«àª¬àª­àª®àª¯àª°àª²àªµàª¶àª·àª¸àª¹àª³àª¿à«€àª¾à«à«‚ૃેાોૈૌà«àªƒàª‚%u200D"), patterns : { - 2 : 'અ1આ1ઇ1ઈ1ઉ1ઊ1ઋ1àª1àª1ઔ1િ1ા1à«€1à«1à«‚1ૃ1ે1à«‹1ૌ1à«2ઃ1ં11ક1ગ1ખ1ઘ1ઙ1ચ1છ1જ1àª1ઞ1ટ1ઠ1ડ1ઢ1ણ1ત1થ1દ1ધ1ન1પ1ફ1બ1ભ1મ1ય1ર1લ1વ1શ1ષ1સ1હ1ળ' + 2 : "અ1આ1ઇ1ઈ1ઉ1ઊ1ઋ1àª1àª1ઔ1િ1ા1à«€1à«1à«‚1ૃ1ે1à«‹1ૌ1à«2ઃ1ં11ક1ગ1ખ1ઘ1ઙ1ચ1છ1જ1àª1ઞ1ટ1ઠ1ડ1ઢ1ણ1ત1થ1દ1ધ1ન1પ1ફ1બ1ભ1મ1ય1ર1લ1વ1શ1ષ1સ1હ1ળ" } }; diff --git a/resources/viewer/hyphenate/patterns/hi.js b/resources/viewer/hyphenate/patterns/hi.js index f92332c9ac..84068a936a 100644 --- a/resources/viewer/hyphenate/patterns/hi.js +++ b/resources/viewer/hyphenate/patterns/hi.js @@ -1,12 +1,12 @@ -// For questions about the Hindi hyphenation patterns +// For questions about the Hindi hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.hi = { +Hyphenator.languages['hi'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 1, - specialChars : unescape('आअइईउऊऋऎà¤à¤à¤’औकगखघङचछजà¤à¤žà¤Ÿà¤ à¤¡à¤¢à¤£à¤¤à¤¥à¤¦à¤§à¤¨à¤ªà¤«à¤¬à¤­à¤®à¤¯à¤°à¤²à¤µà¤¶à¤·à¤¸à¤¹à¤³à¤´à¤±à¤¿à¥€à¤¾à¥à¥‚ृॆेॊाोैौà¥à¤ƒà¤‚%u200D'), + specialChars : unescape("आअइईउऊऋऎà¤à¤à¤’औकगखघङचछजà¤à¤žà¤Ÿà¤ à¤¡à¤¢à¤£à¤¤à¤¥à¤¦à¤§à¤¨à¤ªà¤«à¤¬à¤­à¤®à¤¯à¤°à¤²à¤µà¤¶à¤·à¤¸à¤¹à¤³à¤´à¤±à¤¿à¥€à¤¾à¥à¥‚ृॆेॊाोैौà¥à¤ƒà¤‚%u200D"), patterns : { - 2 : 'अ1आ1इ1ई1उ1ऊ1ऋ1ऎ1à¤1à¤1ऒ1औ1ि1ा1ी1à¥1ू1ृ1ॆ1े1ॊ1ो1ौ1à¥2ः1ं11क1ग1ख1घ1ङ1च1छ1ज1à¤1ञ1ट1ठ1ड1ढ1ण1त1थ1द1ध1न1प1फ1ब1भ1म1य1र1ल1व1श1ष1स1ह1ळ1ऴ1ऱ' + 2 : "अ1आ1इ1ई1उ1ऊ1ऋ1ऎ1à¤1à¤1ऒ1औ1ि1ा1ी1à¥1ू1ृ1ॆ1े1ॊ1ो1ौ1à¥2ः1ं11क1ग1ख1घ1ङ1च1छ1ज1à¤1ञ1ट1ठ1ड1ढ1ण1त1थ1द1ध1न1प1फ1ब1भ1म1य1र1ल1व1श1ष1स1ह1ळ1ऴ1ऱ" } }; diff --git a/resources/viewer/hyphenate/patterns/hu.js b/resources/viewer/hyphenate/patterns/hu.js index a9853ecdde..10b2017a79 100644 --- a/resources/viewer/hyphenate/patterns/hu.js +++ b/resources/viewer/hyphenate/patterns/hu.js @@ -1,12 +1,12 @@ -// For questions about the hungarian hyphenation patterns +// For questions about the hungarian hyphenation patterns // ask Nagy Péter (nagy dot pite at gmail dot com) -Hyphenator.languages.hu = { - 'leftmin' : 2, - 'rightmin' : 2, - 'shortestPattern' : 2, - 'longestPattern' : 14, - 'specialChars' : 'áéíóöőúüű', - 'patterns' : { +Hyphenator.languages['hu'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 2, + longestPattern : 14, + specialChars : "áéíóöőúüű", + patterns : { 3 : "_a2_á2_b2_c2_d2_e2_é2_f2_g2_h2_i2_í2_j2_k2_l2_m2_n2_o2_ó2_ö2_Å‘2_p2_q2_r2_s2_t2_u2_ú2_ü2_ű2_v2_w2_x2_y2_z22a_a1aa1áa1ea1éa1ia1ía1oa1óa1öa1Å‘a1ua1úa1üa1ű2á_á1aá1áá1eá1éá1iá1íá1oá1óá1öá1őá1uá1úá1üá1ű2b_1ba1bá1be1bé1bi1bí1bo1bó1bö1bÅ‘1bu1bú1bü1bű2c_1ca1cá1ce1céc2h1ci1cí1co1có1cö1cÅ‘c2s1cu1cú1cü1cűc2z2d_1da1dá1de1dé1di1dí1do1dó1dö1dÅ‘1du1dú1dü1dűd2z2e_e1ae1áe1ee1ée1ie1íe1oe1óe1öe1Å‘e1ue1úe1üe1ű2é_é1aé1áé1eé1éé1ié1íé1oé1óé1öé1őé1ué1úé1üé1ű2f_1fa1fá1fe1fé1fi1fí1fo1fó1fö1fÅ‘1fu1fú1fü1fű1fy2g_1ga1gá1ge1gé1gi1gí1go1gó1gö1gÅ‘1gu1gú1gü1gűg2y2h_1ha1há1he1hé1hi1hí1ho1hó1hö1hÅ‘1hu1hú1hü1hű2i_i1ai1ái1ei1éi1ii1íi1oi1ói1öi1Å‘i1ui1úi1üi1ű2í_í1aí1áí1eí1éí1ií1íí1oí1óí1öí1őí1uí1úí1üí1ű2j_1ja1já1je1jé1ji1jí1jo1jó1jö1jÅ‘1ju1jú1jü1jű2k_1ka1ká1ke1ké1ki1kí1ko1kó1kö1kÅ‘1ku1kú1kü1kű1ky2l_1la1lá1le1lé1li1lí1lo1ló1lö1lÅ‘1lu1lú1lü1lűl2y2m_1ma1má1me1mé1mi1mí1mo1mó1mö1mÅ‘1mu1mú1mü1mű2n_1na1ná1ne1né1ni1ní1no1nó1nö1nÅ‘1nu1nú1nü1nűn2y2o_o1ao1áo1eo1éo1io1ío1oo1óo1öo1Å‘o1uo1úo1üo1ű2ó_ó1aó1áó1eó1éó1ió1íó1oó1óó1öó1őó1uó1úó1üó1ű2ö_ö1aö1áö1eö1éö1iö1íö1oö1óö1öö1őö1uö1úö1üö1ű2Å‘_Å‘1aÅ‘1áő1eÅ‘1éő1iÅ‘1íő1oÅ‘1óő1öő1őő1uÅ‘1úő1üő1ű2p_1pa1pá1pe1pé1pi1pí1po1pó1pö1pÅ‘1pu1pú1pü1pű2q_1qa1qá1qe1qé1qi1qí1qo1qó1qö1qÅ‘1qu1qú1qü1qű2r_1ra1rá1re1ré1ri1rí1ro1ró1rö1rÅ‘1ru1rú1rü1rű2s_1sa1sá1se1sé1si1sí1so1só1sö1sÅ‘1su1sú1sü1sűs2z2t_1ta1tá1te1té1ti1tí1to1tó1tö1tÅ‘1tu1tú1tü1tűt2y2u_u1au1áu1eu1éu1iu1íu1ou1óu1öu1Å‘u1uu1úu1üu1ű2ú_ú1aú1áú1eú1éú1iú1íú1oú1óú1öú1őú1uú1úú1üú1ű2ü_ü1aü1áü1eü1éü1iü1íü1oü1óü1öü1őü1uü1úü1üü1ű2ű_ű1aű1áű1eű1éű1iű1íű1oű1óű1öű1őű1uű1úű1üű1ű2v_1va1vá1ve1vé1vi1ví1vo1vó1vö1vÅ‘1vu1vú1vü1vű2w_1wa1wá1we1wé1wi1wí1wo1wó1wö1wÅ‘1wu1wú1wü1wű2x_1xa1xá1xe1xé1xi1xí1xo1xó1xö1xÅ‘1xu1xú1xü1xű2y_2z_1za1zá1ze1zé1zi1zí1zo1zó1zö1zÅ‘z2s1zu1zú1zü1zű", 4 : "_cs2_kr2_sc2_sk2_sp2_st2_sz2_zs2c2cs1cha1chá1che1ché1chi1chí1cho1chó1chö1chÅ‘1chu1chú1chü1chű1csa1csá1cse1csé1csi1csí1cso1csó1csö1csÅ‘1csu1csú1csü1csű1cza1czá1cze1czé1czi1czí1czo1czó1czö1czÅ‘1czu1czú1czü1czű1czyd2dz1dza1dzá1dze1dzé1dzi1dzí1dzo1dzó1dzö1dzÅ‘1dzu1dzú1dzü1dzűg2gy1ghy1gya1gyá1gye1gyé1gyi1gyí1gyo1gyó1gyö1gyÅ‘1gyu1gyú1gyü1gyűl2ly1lya1lyá1lye1lyé1lyi1lyí1lyo1lyó1lyö1lyÅ‘1lyu1lyú1lyü1lyűn2ny1nya1nyá1nye1nyé1nyi1nyí1nyo1nyó1nyö1nyÅ‘1nyu1nyú1nyü1nyűs2sz1sza1szá1sze1szé1szi1szí1szo1szó1szö1szÅ‘1szu1szú1szü1szű1thyt2ty1tya1tyá1tye1tyé1tyi1tyí1tyo1tyó1työ1tyÅ‘1tyu1tyú1tyü1tyű1zsa1zsá1zse1zsé1zsi1zsí1zso1zsó1zsö1zsÅ‘1zsu1zsú1zsü1zsűz2zs", 5 : "_ak2h_ako2_at2h_aze2_ál1é_ál1ú_áre2_áré2_átó2_át1u_át1ű_ba2u_bei2_da2i_da2u_eb1í_eg2é_el1í_elo2_elö2_el1u_elü2_et2h_ez1á_éj1u_ék1á_ék1o_érü2_fas2_fat2_gu2i_he2i_ín1e_íz1a_kás2_kiá2_kió2_kiű2_leü2_ly1o_ma2e_me2i_műi2_mű1s_oda1_öni2_ön1í_ön3n_ön1o_ön1Å‘_ön1s_ön1ü_öte2_Å‘a3l_Å‘i3r_Å‘r1o_Å‘s1o_Å‘s1p_Å‘s1ú_Å‘z1Å‘_Å‘z3s_Å‘z1u_pa2i_pe2s_rái2_rát2_s3gr_szk2_szt2_tbc1_té3k_tÅ‘a2_tÅ‘e2_uto2_új1e_úr1e_út1Å‘_űri2_űr1s_űrt2_zai2_ze2iaa2beaa2céaa2chaa2daaa2dóaa2duaa2foaa2gaaa2giaa2góaa2gyaa2jáaa2kaaa2káaa2koaa2kua2al_aa2laaa2láaa2léaa2loaa2luaa2maaa2naaa2neaa2niaa2noa2ansaa2nyaa2paaa2páaa2poaa2puaa2raaa2ráaa2réaa2ria2arlaa2roaa2szaa2toaa2tyaa2uraa2utaa2vaa2avoaa2zoaá2béaá2csaá2fáaá2gaaá2gáaá2géaá2giaá2goaá2guaá2gyaá2híaá2jua2ál_aá2laaá2loaá2poaá2raaá2ráaá2réaá2riaá2roaá2ruaá2rúaá2saaá2sáaá2soaá2sóaá2taaá2téaá2tíaá2toaá2tuaá2túaá2tüaá2záaá2zó2abab2abal2aban2abar2abáb2abád2abán2abázabb2a2abeaabeá22abec2abeé2abef2abeh2abei2abej2abem2abev2abék2abél2abén2abérab1flab1fr2abic2abie2abir2abit2abizab1kr2ablo2abog2aboh2abok2abom2abotabö2lab1pr2abri2abróab1stab1üsab1üvac2cöa2ce_ace2l2acenac1fra2cháac3híac3hóac1ívac2kűac2luac1ösac1Å‘rac1plac1pr2acsi2acsíacs1sac1trac1újac1ügac1ürac1üzac3zaac3záac3zeac3zsac3zu2adarade2gade2ia2deuadé2sad1flad1gr1adhé2adia2adid2adin2adip2adis2adivad2jiad1kr2adob2adoc2adolad1plad1pr2adrá2adroad1spad1st2adug2adum2adupadú2tad1üzad1űzae2béae2ceae2csae2déae2dzae2geae2géae2gyae2heae2keae2kéae2laae2leae2loae2lÅ‘ae2luae2meae2méae2miae2muae2neae2peae2péae2piae2poae2réae2róae2rÅ‘ae2seae2séae2siae2sÅ‘ae2süae2szae2taae2táae2teae2tiae2tűae2vaae2veae2véae2viae2voae2vÅ‘ae2xeae2züaé2geaé2géaé2gÅ‘aé2heaé2jeaé2keaé2kíaé2leaé2léaé2liaé2lÅ‘aé2lüaé2lűaé2neaé2píaé2püaé2riaé2teaé2vaaé2veaé2véaé2viaé2vü2afa_2afak2afal2afam2afao2afar2afas2afék2afén2afér2afés1afféaf2le2afoc2afog2afok2afol2afon2afos2afotaf2rí2afroaf3tá2agala2gap2agazagá2cag1bla2ge_age2lage2sag1flag1fr1agg_1agglagi3aagi2óag1ínag1ívag1klag1kr2agomag1plag1pr2agráag1skag1spag1srag1stagsz2ag1trag1űrag1űz2agyűai2boa2iékai2gaai2gáai2geai2géai2gyai2iaai2ibai2ihai2ijai2inai2irai2itai2jeaika2aiki2ai2kÅ‘ai2küa2ilba2ile2aill2aimi2aimpainá22aindai2ne2ainf2aing2ainp2ains2aintai2nüai2paa2ir_ai2réai2ri2airoai2si2aisk2aism2aist2aiszai2zéaí2géaí2jaaí2jáaí2juaí2raaí2ráaí2roaí2róaí2ruaí2téaí2váaí2veaí2véaí2viaí2vóaí2vüaí2vűaí2zeaí2zéaí2züaí2zűajá2c2ajárajá2zaj1blaj1brajé2raj1flaj1fraj1íraj1ízaj1klaj1öbaj1Å‘raj1plaj1praj1shaj1skaj1spaj1ügaj1ülaj1üsaj1üzaj1űzaj2zíaj2zü2akab2akal2akam2akan2akao2akap2akau2akav2akazak1bla2ke_2akém2akés2akézak1flak1frak1gr2akia2akib2akic2akid2akié2akif2akih2akií2akij2akil2akim2akin2akir2akis2akit2akiv2akiz2akoa2akoc2akof2akom2akoo2akop2akosak1plak1prak1ps2akre2akré2akri2akríak1sp2akunak1yaal1blal1bra2le_2alea2aleb2alec2aleh2alej2alem2alen2alep2alesaleü22alev2alex2aléc2alég2alén2alétal1gr2alic2alik2alimal1íj1aljb1aljc1aljd1aljf1aljg1aljhal2jí1aljj1aljk1aljl1aljm1aljn1aljr1aljs1aljt1aljú1aljv1aljzal2líal2lü1allű2alob2alop2alovalóó2al1shal1skal1slal1smal1spalsz2al1tyalu1pal1ügal1ülal1ünal1üral1üsal1ütal1üval1űral1űz1alvóa2lyö2amad2amag2amajamaó22amap2amasam1dra2me_2amegamé2kam1fram1grami2gamió2a2mígam1klam1kr2amod2amos2amot2amozam1ösam1ötam1Å‘sam1skam1spam1sram1st2amunam1ügam1ütam1üz2anad2anai2anap2anav2anátan1brance2an2dűan1dy2anem2aneu2anevane2zan1flan2gían2güan2gűani2g2anip2anív2anor2anosan1plan1pran2sö2anukanü2lan1űran1űzany1d2anye2anyi2anyí2anyoany1sanyt22anyú2anyüao2ázao2beao2csao2daao2dúao2kaao2káao2laao2moao2páao2peao2raao2roao2soao2utao2veao2viao2xiaóá2ra2óbáa2óbia2óboaó2ceaó2dáa2ódia2ófáa2ófea2ófoa2ófÅ‘a2ófüa2óhéa2óhia2óhüa2óila2óisa2ókáa2ókea2ókuaó2laa2ólea2óléa2óliaó2loaó2lua2ómea2ómia2ómoa2ónéa2ónöa2ónÅ‘aó2ráa2óréaó2ria2ósía2ósűa2ótaa2ótea2ótéaó2voaó2vóaö2böaö2csaö2déaö2koaö2köaö2leaö2léaö2lÅ‘aö2náaö2röaö2veaö2viaö2vöaö2zöaÅ‘2reaÅ‘2réaÅ‘2riaÅ‘2röaÅ‘2rüaÅ‘2seaÅ‘2söaÅ‘2sz2apal2apap2apavap1blap1dra2pe_ape2mape2sap1flap1grap1ívap1klap1krap1kvapmű1ap1ölap1önap1övap1phap1py2aproapuá2ap1űrap1wh2arad2arag2araj2arak2arác2arámar2cóar2cÅ‘ar2cüar2cűar2döar2düare2ia2rewaréé22arémaré1p2ari_2aria2arip2arizar2müaró1par1Å‘rar1Å‘sar1plar1prar1ry2art_ar1üzasag22asaj2asal2asap2asar2asav2asám2asávas1blase2kase2t2asém2aséras1fras1glas1gr2asiv2asík2asín2asír2askáas1kl2asoras1Å‘rasp2r2asta2astá2asti2astí2asto2astr2astú2asugasu2ras1űz2aszí2aszÅ‘2aszü2aszűasz1z2atab2atag2atak2atan2atap2atar2atáb2atág2atáj2atál2atám2atár2atás2atávat1blat1brat1clat1dr2atég2atél2atém2atér2atétat1fjat1flat1frat1glat1gr2ati_ati2g2atin2atip2atir2atis2atit2atíp2atír2atki2atko2atkö2atkuat1kv2atoratö2lat1plat1prat1ps2atréat1shat1skat1slat1spat1stattó22atud2atul2atur2atúl2atük2atün2atüz2atűza2udáau2deau2gaau2goaul2lau1phau2röa2ut_2autáa2utia2utóa2utra2uttau2tuau2zíau2zsa2uzúaú2jíaú2joaú2réaú2szaú2tiaú2toaü2díaü2düaü2geaü2gyaü2leaü2léaü2liaü2löaü2lÅ‘aü2lüaü2nÅ‘aü2reaü2ríaü2röaü2rüaü2szaü2teaü2téaü2tiaü2veaü2vöaü2zéaű2riaű2röaű2zeaű2zéaű2ziaű2zöaű2zÅ‘2avad2avak2avád2avárav1bl2aves2avet2avezav1kravo1sav1Å‘sav1Å‘zav1prav1spav1stav1üra2wagaw2hiax1blax1egax1elax1írax1ösax1özax1prax1újax1üzax1űra1ye_a1yeda1yeia1yeka1yena1yesayet2ay1fla1yi_ay1ila1yitayma2az2du2azolazót2az4séaz3spaz3szaz1utaz1üzáa2daáa2dááa2doáa2dóáa2duáa2jááa2kaáa2laáa2luáa2raáa2száa2utáa2vaáá2csáá2gaáá2gyáá2juáá2muáá2raáá2ruáá2sááá2síáá2soáá2sóáá2suáá2zoáá2zuába1páb2bűáb1dráb1frábi2gáb1kláb1kráb1öbáb1öláb1önáb1ösáb1öváb1Å‘ráb1práb1spáb1stáb1tráb1ügáb1üsáb1ütáb1üvác1enác1erác3heác1ívác1órácsí2ács1sá1csyác1úrác1ülác1üráda1pád1drád3dzádéd2ád1ívád1klád1krádós2ádö2bád1övád1prád1psád1stád1trád3zaád3zúáe2csáe2dzáe2geáe2géáe2gyáe2leáe2lőáe2meáe2reáe2rőáe2seáe2séáe2siáe2sőáe2süáe2teáe2veáe2véáe2vőáé2deáé2geáé2géáé2gőáé2heáé2keáé2leáé2neáé2píáé2püáé2reáé2réáé2riáé2rőáé2rüáé2teá2fábá2fátáf1drága2cá2gadága2nág1blág1brág1efág1flág1frág1grági2dági2gág1klág1krág1kvágö2rág1plág1prág1pság1shág1skág1slág1spág1stágsz2ág1trágu2nág1üdág1ünág1üvág1üzág1űzái2dőái2gaái2géái2gyái2haái2jeái2máái2ráái2szái2taái2váái2voái2zéáí2géáí2rááí2veáí2voáj1bláj1bráj2cháj1exájé2ráj1fláj1fráj1íjáj1íráj1íváj1ízáj2küáj2nüáj1ökáj1öláj1Å‘ráj1Å‘sáj1pláj1práj1snáj1spáj1ügáj1üláj1üráj1üváj1üzáj1űrák1blák1flák1fráki2gáki2ták1írákö2lák1prák1spák1srák1stáku2rák1újákú2ták1üdákü2lák1ünák1ürák1űr2ála_2álalál1blál1brál1dyál1ezál1flál1frál1gráli2dáli2gál1ínál1ítál2lüálóa2álóá2álóó2álót2ál1öbál1özál1skál1slál1stálu2nálú2tál1ügál1ünál1ürál1ütál1üvál1üzál1űrál1űzá2lyíá2lyőály1sámaó2ámá2cám1áfám1blám1dráme2tám1frám1grám1ígám1ízám1klám1krám1kvám1ölám1önám1örám1ösám1ötám1övám1Å‘zám1skám1smám1snám1spám1stám1üdám1ügám1ürám1ütám1üvám1üzá3műtánae2ána2pán1blán1brán2cőán2cüán2czáne2dán1esán1ezáng3gán2gíán2güán1ígán1íván1ízá3nomán1ökán1ömán1plán1pránst2án1úránú2tán1űzáo2csáo2kááo2koáo2moáo2peáo2soáó2haáó2vaáö2leáö2möáö2reáö2röáő2száp1dráp1egápe2nápi2táp1Å‘ráp2roáp1ügáp1üzárá2cárá2gár1blár1bráre2áár1ejáre2nár1flár1glári2gá2rioár1ívár1öcár1ökár1örár1övár1plárs3sáruá2á2rudá2rujá2rurá2rutár1ünár1ürár1ütár1üzár1űrása2bása2nás1blás1brás1exás1ezás1flás1frás1glás1grási2gás1ígásí2rás1klás1kv1ásnuá2sórá2sósá2sóvás1önásp2rás1psás1srássz2ásu2tás1üdás1űrászt2ász1zátá2cát1álátá2pát1blát1br1átbuát1drát1eját1exátée2áté2gáté2pát1frát1gráti2dáti2gát1ígát1klát1oját1opát1öbátö2lát1önát1ötát1plát1prát1psát1skát1slát1smát1spát1srát1státu2nát1úját1ülát1űráu2gaáu2goáu2nááu2noáu2nóáu2nuáu2száu2taáu2tááú2száü2geáü2gyáü2leáü2léáü2löáü2lőáü2lüáü2ríáü2téáü2tiáü2töáü2tőáü2tüáü2vöáv1fráv1íráv1öráv1ösáv1öváv1Å‘ráv1práv1skáv1spáv1stáv1trávú2táv1ügáza2náz1bláz1efáz1epáz1exáz1fláz1frázi2záz1íjáz1öbáz1ödáz1ömáz1önáz1ösáz1özáz1plá2zseá2zsöázs1sá2zsüázü2láz1ürázy1ibaa2dba2bübae2rbaé2rba1flbai2zba2jüba2jű2bakcbak1kba2kybao2kbao2lbaó2rba2udbau2rba1yibá2böbá2jübálé22bálmbá2löbá2lübá2pobá2rí2bárúbá2rübá2sebá2töbá2tübba2tbb1drbbe2gbb1frbb1klbb1krbbö2rbb1plbb1prbb1skbb1spbbu2rbb2víbc3szbdé2nbd2rábd2robd2róbe2acbea2dbea2jbea2kbea2lbea2nbea2rbea2sbea2vbeá2jbeá2sbeá2zbe1blbe2dzbee2lbee2sbeé2rbe1flbe1frbei2gbei2sbeí2r2bejtbe2líbeo2kbeo2lbeo2mbeó2vbeö2rbe2rÅ‘beu2gbeu2tbeü2t2bédé2bédh2bédj2bédlbé2dö2bédr2bédü2bédvbé2gÅ‘bé2lí2béljbé2lóbé2löbélt2bé2lúbé2píbé2pübé2rábé2ríbé2röbér1sbért2bé2rúbfé2nbf2labf2rábf2rebf2ribf2robg2rabg2rábia2dbi2aebi2agbia2vbi1brbi1bybida2bi2edbie2lbi1frbik1sbi2lübin3nbi2nübi1nybi2oabi2oábi2obbi2ocbi2odbi2oebi2oébi2ofbi2okbi2olbi2ombi2orbió2rbi1pr2bismbi2söbis3sbiú2sbí2jabí2vebí2vébí2vűbk2libk2lubk2rabk2rábk2rebk2rébk2ribk2ríbk2robk2róbl2bebles2bleü2bl2hebl2nebl2rebl2rÅ‘bl2tÅ‘bo2aábo2abbo2adbo2aebo2afbo2ahbo2ajbo2ambo2arbo2atbo2avbo2cebo2cébo1dybo2eibo1flbona12bondbo2nübo2ogbo2okbo2ombo2otbo2pebo2rebo2röbo2rÅ‘bo2rübo2tíbo2töbotú2bo2tübo2tűbo2uibo2ulbo2urbo1yabo1yábo1yébo1yibo1yobo1yubo2zíbo2zübo2zűbóa2dbóá2gbóá2rbó2bébó2chbó2cübó1flb1ólm2bórábóró2bó2röbórt2bó2rübó1szbö2chbö2lá2bölb2bölk2bölrbö2lúb1ömlbö2nábö2rabö2robö2ve2bÅ‘rlbÅ‘2rÅ‘bÅ‘2rú2bÅ‘sibp2labp2lábp2lebp2rebp2rébp2ríbp2robp2rób2ricbs2lábs2pebs2pibs2pobs2tabs2tábs2tibs2tíbs2túbsz2fbt2rábt2rébu2chbué2rbu2ilb1urb2burnbu2sebú2jí2búr_2búrt2búszb1útmbü2dübü2gebü2gybü2kubü2ne2bürübü2zebű2nabű2nábűn1nbű2nobű2nóbű2nubű2nűbű2ribű2zoby2teca2chca2escal1pcal1sca2lüca1lycaó2rca2pócast2cau2ncá2gacá2gúcá2gycá2lacá2ne2cárkc1áthcb2locb2racc1blcc1efcc3hecc3hícc3hÅ‘cc3húcc1írcc1klcc1oácc1öncc1öscc1özcc1plcc1prccs1sc3csúc3csűcc1újcc1ürcc3zácc3zecc3zscd2racd2rácea2lce2atce2auceá2rce1blce2chce2guce2gúce1klceo2lceo2r2ceth2cetnceü2tce2vÅ‘cég1gcégo2cé2gócé2göcé2gúcéha2cé2hucé2húcé2lacé2lícé2lócélt2célu2cé2lücé2pícé2pücér1scé2rúcés3scf2lócf2racf2ricf2rocg2racg2ric3had2chamc3házch1bl2chevc3hiúch1prch1scch1spchu2rci2aaci2aáci2acci2aeci2aécia1fci2ahci2aíci2ajci2amci2aoci2aóci2aöci2aÅ‘ci2arci2aúci2aüci2aűci2avci2azci2áócie2r2cinfci2nöci2nüci2odci2ofci2ogci2oici2olci2opcio2vci2óaci2óáci2ócci2óeci2ógci2óíci2ólci2óoci2óóci2óöci2óőci2óúci2óüciÅ‘2rci1tyciu2tcí2jací2jécí2mící2mocí2möcí2mÅ‘cí2mucí2rácí2rócí2vácí2vecí2vécí2zscí2zücke1pck1flck1frck1klck2luck1spck1űrck2vacli2sco2atco2ázco2beco2euco2káco2keco2leco2olco1py2corvcos3sco2ulco2unco2uvco2vicó2vóc1ösvc1öszc1ötbc1ötfc1öthc1ötkc1ötmc1ötnc1ötrc1ötsc1öttc1öv_cö2zöcÅ‘2rücp2lacp2racp2recp2récp2ricp2rocp2ró2csáf2cságcs1blcs1br2cségcs1frcs1glcs1grcsiá2cs1klcs1kv3csÅ‘_3csÅ‘b3csÅ‘vcsp2rcs1pscs1slcst2r2csug2csüdc3széc3szic3szíc3szÅ‘cs3zscsz2tcs3zúc3szüc3szűct2ract2rect2réct2rict2roct2rücu2lücú2jíc1úr_c1úrrcú2tocü2gecü2gycü2lÅ‘c1ünncü2recü2rícü2rücü2tecü2técü2tÅ‘cü2vecü2zecű2zÅ‘c3zéhdaa2ddaát1da2czdae2rdaé2ddaé2rdag3gda1kldal3lda2lüdao2kdaó2rdaó2v2daptda2updau2sdaü2tdaü2zda1yeda1yédá2fádá2gadá2gádá2gúdá2lüdámu2dá2podá2rádá2rídá2rödá2rÅ‘dárt2dá2rüdá2rűdá2södá2sÅ‘dást23dátudb2lodb2lúdb2rodb2ródc2luddí2sdd2rádd2ród3dzsde2aade2aáde2acdea2dde2aede2aéde2ahde2aíde2amdea2nde2aode2apde2atde2epdee2sdeé2rde1frdeg3g2degodegö22degzde2ifdei2gdeí2rdek1s2delödem1pde2odde2ofde2ojde2omde2otde2rÅ‘deru22desgdesú2de2xadexi2de2xíde2xö2dezadé2dudé1fldég3gdé2gídé2gódég1sdé2gúdé2gűdé2kídékó2dé2kÅ‘dé2lodéna2dép2idé2rádé2rídéró2dé2rödé1rydésa2désá2dé2sídé2súdf2lodf2lódf2rádf2redf2ridf2rodf2röd2ge_dg2ledg2lidg2lódg2radg2rádg2ród2gyud2hi_d2hiéd2hihd2hiid2hijd2hikd2hirdi2aadi2aádia1bdi2acdi2aedi2aédi2ahdi2aídi2ajdi2amdi2aodi2aódi2aödi2aÅ‘di2aúdi2aüdi2aűdi2avdi2azdi2eudi1fldi2lödi2lüdi1ly2dinddi2oadi2oidi2okdi2oldi2ovdi2óadi2óádi2óedi2ógdi2óídi2óodi2óódi2óödi2óődi2óudi2óúdi2óüdi2tüdiú2tdí2gédí2jedí2jídí2jödí2jüdíri22dívndí2zidí2zsdí2züdí2zűdj2egdj1isdkia2dkie2dk2ladk2lidk2lodk2ludk2rádk2rédk2ridk2rodk2ródk2vadk2vidleí2dlót2do2ázdobe2do2bído2bödo2büdo2bűdo2güdo2ködo2kü2domí2domldo2mÅ‘2domúdo2müdo2nödon1sdont2do2nüdord2do2rödo2rÅ‘dors2do2rüdo2ugdo2utdo2vido1yedóa2ddóá2gdóá2rdó1bl2dóezdó1fl2dógádói2gdóí2vdó2mÅ‘dóó2rdós3sdósz2d1öbldö2gadö2gádög3gdö2godö2gódö2gudö2kadö2kádö2kídö2radö2rádö2rod1ötldö2vedö2vidÅ‘a2ndőá2gdÅ‘1bldÅ‘1cldÅ‘e2ldÅ‘e2rdőé2ldÅ‘1fldÅ‘1grdÅ‘1kldÅ‘1kvdÅ‘1pldÅ‘1prdÅ‘1svdp2ladp2ledp2lédp2radp2redp2rédp2ridp2rídp2rodp2ródp2szd2ruids2káds2lids2peds2pids2pods2ráds2tads2táds2tídst2rdsz2ed1szndu2cödu2cüdue2l2duitduli2du2lídu2lödu2lűdu2óadu2óádu2óddu2ófdu2óldu2ópdu2sÅ‘du2tudú2cedú2chdú1drdú2jídú2rödú2téd1útldü2düdü2gydü2hadü2hádü2hodü2hÅ‘dü2ládü2rídü2tedü2tédü2tÅ‘dü2vedü2zedü2zédű1prd1űrldű1szdű1trdű2zédű2zÅ‘dv1frdv1ordvö2ldv1Å‘sdv1Å‘zdv1prdv1undy1asd1yébd1yénd1yévdy2jédy2kedyk2kdyk2ndyk2tdy2védzaé2dzak2dzÅ‘a22dzÅ‘d2dzÅ‘j2dzÅ‘r1dzsa1dzsá1dzse1dzsé1dzsi1dzsí1dzsó1dzsö1dzsÅ‘dzs1s1dzsu1dzsú1dzsü1dzsűe2aboe2abÅ‘ea2daea2dáea2dóea2dueaé2de2afáe2afee2afie2afoe2aföe2afÅ‘e2afüe2afűea2gie2agóe2aide2aile2aime2aipe2aisea2jae2ak_e2akáe2akbe2akee2akhe2akie2akíe2akoe2akóe2aköe2akúe2aküea2lue2am_e2amae2amáe2améea2moe2amue2amúe2aműe2anee2anée2anöe2anse2apie2apoe2apóe2ar_ea2ráe2arbe2aree2arhe2arje2arne2aróe2arre2arue2arüe2asoe2asüe2asűe2atae2atáe2atce2atee2atfe2atge2athe2atme2atne2atoe2atóe2atöe2atse2atue2atűe2atze2au_ea2ute2aviea1vyea2zoeá2béeá2cseá2gaeá2gáeá2gieá2goeá2gueá2gyeá2híeála2eálé2eá2löeá2mueáná2eá2poeá2rueá2rúeá2saeá2sáeá2síeá2sóeá2sueá2szeáta2eá2téeá2tíeá2tueá2tüebeá2eb1épeb1greb1kleb1kreb1öbeb1öseb1trebü2leb1üzec1ágec1árec1blec2cúech1uec2leec2luecs1sec3záec3zeed1gr2ediced1pled1predvá2edy1i1edzvee2béee2csee2dzee2geee2géee2gyee2heee2kee2el_ee2laee2lee2elgee2loee2lÅ‘ee2meee2méee2mue2en_e2enbe2enje2ente2enwee2nyee2peee2péee2poee2reee2roee2róee2rÅ‘ee2séee2süee2szee2teee2toee2veee2véee2viee2voee2vÅ‘ee2züeé2deeé2geeé2géeé2gÅ‘eé2güeé2heeé2jeeé2jéeé2keeé2kíeé2leeé2léeé2lieé2lÅ‘eé2lüeé2lűeé2meeé2neeé2píeé2püeé2réeé2rieé2rÅ‘eé2rüeé2szeé2teeé2veeé2véeé2vieé2vüef2luef1plef2röega2ieg1áhegá2meg1bleg1breg1fle3gi_e3gieegi2geg1ijeg1kleg1kreg1kve2goce2goi2egome3gó_eg1óveg1ökeg1öteg1öveg1pleg1preg1pseg1skeg1sleg1smeg1spegsz2eg1treg1udeg1újeg1úreg1úseg1útegyu2eh1szei2ábei2áhei2ájei2ánei2árei2átei2áve2ibnei2dÅ‘e2idpe2ierei2gáei2géei2gyei2haei2máe2imke2imse2imzei2nÅ‘ei2nüei2onei2paei2rie2iróei2tae2itbe2itje2itne2itrei2vaei2váei2voei2vóei2zéei2zoeí2géeí2jáeí2júeí2raeí2ráeí2téeí2váeí2veeí2véeí2vieí2voeí2vóeí2zeeí2züeí2zűej1abe2jakej1arej1auej1ábej1álej1blej1brej1dreje2cej1frej1ígej1ívej1klej1kvej1olej1opej1ócej1ónej1ótej1óvej1plej1prej1spej1újej1úrek1blek1brek1clek1drek1frek1gnek1grekiá2ekii2ek1ízek2kűek3nÅ‘ekö2kek1plek1prek1psek1slek1smek1spek1stekú2tekü2tela2relá2mel2ánelá2sel1blel1br2eld_eleó2eleü2el1flel1glel2ibeliÅ‘2el3kiel1kvel1ojel1osel1öb2előö2előüel1skel1slel1smelu2nel1újel1úsel1ücel2vÅ‘el2vúe2lyÅ‘ema2pemá2lemá2rem1dremé2kem1flem1gremi2gemi2me2míge2mírem1klem1kremo2kemö2kemö2lem1övem1pcem1skem1smem1spe2mude2muge2muje2murem1úrem1zren1ágen1blen2cíen2cuen2dúeneá2eneó22enesenga2eng1gen2núen1öne3növen1pren1ryen1úren1úteny1senyt2eo2áze2oboe2odeeo2dúe2okae2okéeo2köe2olóeo2lye2omee2omée2omieo2nöeo2nüe2opaeo2peeo2röeo2soe2oste2otíe2otoeo2vieóa2de2óböeó2ceeó2dáe2ófae2óhee2ójee2ómie2óműe2ónéeó2noeó1preó2ráe2óree2ósue2ótae2ótáe2ótee2ótée2ótie2ótíe2óvee2óvée2óvíeó2voeó2vóeö2böeö2déeö2köeö2leeö2léeö2lieö2löeö2lÅ‘eö2lüeö2möeö2nöeö2röeö2rüe2ös_eö2veeö2vieö2vüeö2zöeÅ‘2reeÅ‘2röeÅ‘2rüeÅ‘2szepá2sep1blep1brep1dre2péjep1fle2pizep1klep1kreppó2ep2pöep1spep1step1újep1úterco2er2cöer2cúer2cz1erdÅ‘ereá2eree2er1fler1gler1ígern3nerö2ker1ryert1ser2vúer1ya2esa_esa2nesa2p2esán2esátes1bles1bres2ch1esdÅ‘2esé_1esküesná22esone2sÅ‘zestö2es2túesu2resz1zeta2cet1blet1bret2chet1dretea2etéé2et1fret1glet1greti2deti2get1klet1kv2etoretö2letÅ‘a2et1plet1pret1pset1sket1snet1spet1stet3yaeu2boeu2gaeu2míeu2mÅ‘eu2müeu2naeu2náeu2nieu2noeu2nóe2ur_eu2ráe2urteu2tóe2utseu2zseú2jíeú2szeú2tieú2toeü2düeü2geeü2gyeü2leeü2léeü2lieü2löeü2lÅ‘eü2lüeü2reeü2ríeü2rüeü2szeü2teeü2tÅ‘eü2tüeü2veeü2vöeü2zeeű2rieű2zeeű2zéeű2zieű2zöeű2zÅ‘ex1abex1alex1apex1ábex1blex1brex1dre2xegex1opex1önex1örex1ösex1skex1spex1stex1újeza2cez1blez1frez1grezi2gezi2oez1kvez1ösez1pl1ezrűez3slez3szez1utez1újéa2daéa2dáéa2doéa2dóéa2gaéa2giéa2jáéa2kaéa2laéa2naéa2nyéa2rééa2riéa2roéa2ukéá2fáéá2gyéá2juéá2raéá2roéá2ruéá2rúéba2néb1álébá2rébié2éb1ízéb1kréb1pléb1préb1ügéc1ajéc1áléc1áréc1gréc3haéc3háéc3híéc3hoéc1obéc1oséc1Å‘réc1préc3széc3zséd1ápéd1drédé2léd1frédi2géd1ívéd1kléd1öléd1önéd1ötéd1övéd1özédÅ‘s2éd1pléd1préd1skéd1spéd1sréd1stéd1ujéd1úréd3zaéd3záéd3zeéd3zóéd3züée2béée2laée2leée2lőée2meée2piée2rőée2seée2séée2siée2sőée2ufée2véée2vőéé2geéé2leéé2píéé2raéé2teéf1aiéf1klég1améga2zég1ápég1blég1brége1pég1flég1fr1éghüégi2gég1ígég1íjég1ínég1írég1ívég1íz1égj_ég1klég1krég1kv1égniég1öbég1önégö2ré2göv1égÅ‘_1égÅ‘ké2gÅ‘r1égÅ‘t1égÅ‘vég1plég1prég1pség1skég1spégsz2ég1trég1unég1úgég1újég1úrég1úségyi2é2gyíégyo2éha2l2éhegéh1égéh1fléhi2ré2hitéh1ínéh1kréh1öbéh1öséh1pléh1pr1éhsééh1skéh1spéh1udéh1újéi2dőéi2gaéi2gééi2máéi2paéi2ráéi2roéi2taéi2vóéí2ráéí2roéí2róéí2váéí2zeéj1ebéjé2jéj1ödéj1önéj1öréj1pléj1préj1spéj1széj1udéju2té2jülék1blék1brék1dr2ékésék1fjék1flék1frékia2éki2déki2gék1íjék1kvék1ofékö2lék1Å‘sék1plék1prék1psék1shék1skék1slék1spék1stékú2télá2lél1blél1bréle2béle2nélé2déli2mél1íjél1ízél1öbélö2kél1önél1örél1ösélÅ‘e2él1skél1spél1stél1úrél1űzé2lyőély1sélyú2émae2émas2émat2émá2cémá2lém1dréme2céme2gém1flém1frém1grémi2gém1ízém1klém1krém1oxém1öbém1öném1ösém1ötém1övém1ském1slém1spém1ujému2ném1whénas2éná2lénba2én1blén1bréne2néné2l2énézéni2gén1íjén1ínénmű1én1otén1ócén1ökén1ölén1önén1örén1öt2énövénpe2én1plén1prén2súén1útényö2ény1sényt2é2nyuénza2én2zíénzo2én2zúénz1zéo2laéo2peéo2széó2raéó2riép1ápép1blép1brép1dré2peb2épelépe2nép1flép1grép1ínép1klép1krép1kvép1obép1onép1opép1ölép1ömép1önépö2rép1ösép2píép1shép1skép1spépsz2ép1ugépu2népu2sép1újép1úsép1útép1üsér1blér1brérc3c1ércdér2cóér2cőér2cúér2czére2bére2nér1fléri2gér1ígér1íjéro2péró2lér1ötér1övér1plér1slérsz2éru2nérú2tér2vu2érzáésá2césá2sés1blése2bése2nés1flés1frés1grésié2ési2gés1klés1kv2ésorés1ócés1ónés1pséssz2ést2rés1ud2észá2észöész1zétat2étaü2ét1blét1drétea2été2gét1flét1frét1gréti2géti2pét1klét1kr1étkűét1kvétö2kétö2lét1pfét1plét1prét1slét1smét1spét1stétu2nét1üsétű2zéu2niéu2taéu2táéu2zséü2gyéü2leéü2lééü2löéü2lőéü2rüéü2tééü2töéü2tüéü2zeé2vadév1auévá2zév1grévi2gé2vinév1kr1évnyév1okév1osév1ösév1ötév1prév1skév1stév1szév1urév1új1évzáéza2néz1aséz1azéz1ázéz1bléze2céz1frézgé2ézi2dézi2oéz1íréz1ízéz1opéz1öbéz1önéz1öréz1öséz1ötézÅ‘a2éz1plézsó2éz3söézs1séz3széz1ugéz1ujéz1utéz1űrfaát1fae2rfaé2dfai2dfai2sfa2jÅ‘fajt2fa2jüfalö2fa2lüfaó2rfau2rfau2sfaü2tfaü2zfa2xefaxi2fa2xífa2xöfa2xúfa2xüfa2xűfa1yafa1yef1ábrfá2nífá2pofás3sfá2tefc2lufd2rófe2aafe2aáfe2abfe2acfe2adfe2aefe2aéfe2affe2agfe2ahfe2aife2ajfe2amfe2anfe2arfe2asfe2atfe2aúfe2avfe2edfe2elfe2jafe2júfel3lfelt2fe2lúfe2vÅ‘fe2zófe2zsféka2fé2lífé2lófé2mífé2mófé2möfémü2fé2pífé2püfé2zsffli2ff1sh1f2fyfg2lófi2aafi2aáfi2aefi2aéfi2affi2ahfi2aífi2aofi2aófi2aöfia1pfi2aufi2aüfiá2lfie2lfie2nfie2rfie2sfie2tfi1flfi1frfi2löfi2lü2findfint2fi2nú2finxfio2vfi3ókfió2rfiÅ‘2rfist2fiu2tfi2úafi2úáfi2úefi2úffi2úgfi2úífi2úlfi2úofi2úöfi2úőfi2úpfi2úufi2úúfi2úüfi2xöfí2ráfí2rüfk2lifk2lufk2róf2lakf2lanf2lepf2lipf2lotf2lukfo2amfog3gfo2gífo2göfo2güfo2kífond2fo2nífon1kfo2nöfons2fo2nüfo2röfors2fo2rüfo2vifó2ráfö2lafö2láfö2lífö2lofö2lófölt2fö2lufö2lúfö2sáfÅ‘a2nfőá2gfÅ‘1blfÅ‘1brfÅ‘e2lfÅ‘e2rfÅ‘e2sfőé2hfÅ‘1flfÅ‘1glfÅ‘1gnfÅ‘1grfÅ‘i2dfőí2tfÅ‘1klfÅ‘1kvfÅ‘1plfÅ‘1prfÅ‘ri2fÅ‘1sl2fÅ‘söfÅ‘sz2főü2lfp2lafp2rofra1sf2rásf2rigf3ripf2röcf2rusfs2hofs2pofs2tífst2rft1ajft1blfte2mfti2gft1ösft1útft1ütfuga1fú2zsfü2lafü2láfü2lífül3lfü2lo2fülÅ‘fü2mafü2máfü2mofü2mÅ‘fü2múfű1drfű1frfű1prfű1srfű2záfű2zo2gabrga1bygae2rga1flga1klg1akvgaó2rga2rÅ‘gast2ga2ulga2us2gazgga2züg2ábag2ábógáda2gá2dágá2dÅ‘gá2fog2ájag2ájágá2jüg2álig2ám_gá2mügána2gánt2gá2nügá2pogá2rígáró2gá2rögá2rÅ‘gá2rügá2rűg2ás_gá2sígá2sógá2sögá2sÅ‘gást2gá2sűg2át_gátá2gátó2gá2tÅ‘g2ávagá2zígá2zögá2zÅ‘gá2zügbeá2gb2lagb2legb2logb2lúgb2ragb2rigb2rogb2rugda2ugd2regd2rogea2cgea2ggea2lgeá2rg2ebe2gegege2lögena2g2endgent2ge2obge2ocge2ofge2okge2omge2otgeó2r2gepige2róge2rÅ‘geru2g2es_ge1scgesd2g2esrgess2getó2ge2urgeu2s2gevoge1yége2zogéc3cgé2dígé2dögédü2gé2dűgé2gigé2gÅ‘gé2güg2émbgéna2géná2gé2níg2énngé2nógént2gé2núgénü2g2ény3gép_gé2pígé2pógé2pögé2pÅ‘gé2púgéra2gé2rá2gérl2gérmgé2rogé2rögé2sógf2lagf2logf2lógf2lugf2rágf2rígf2rugga2sggó2nggÅ‘s2g2gregg2rogg1spg3gyóg3gyög3gyÅ‘g3gyug3gyűg2hiagi2aagi2aági2acgi2aegi2aégia1fgi2ahgi2aígi2ajgi2amgi2aogi2aógi2aögi2aÅ‘gi2argi2atgi2aúgi2aügi2aűgi2avgi2az2gibrgi1flgi2gégig3ggi2gígi2gúgi2gű3gileg1ill3giné2ginf2ginsgi2otgi2óagi2óági2ócgi2óegi2ófgi2óggi2ólgi2óúgi2óügi2óz2girog1iscg2itágí2gégí2jagí2jágí2mágí2négí2nygí2ragí2rágí2regí2rigí2rogí2rógí2vágí2vegí2végí2vogí2vógí2vügí2zegí2zügí2zűgkiá2gk2lagk2ligk2lígk2logk2lógk2lugk2ragk2rágk2regk2régk2rigk2rígk2rogk2rógk2vagk2vógla3tgleí2gleü2g2lorglóó2glós2gna2dgn1brgne2igné2lgni2gg2nolgn1ökgn1ösgn1prgn1stg2nújgn1üggn1üzgo2ázgo2bego2etgoki2g2onogo2nügo2odgo2págo2rö2gorzgo2sego2sögo2sügo2uago2ubgo2udgo2urgo2utgo2xigo1yago1yágóa2dgóá2ggóá2rgó1blgó2cügóí2vgó1klgó2lígó2lügóó2rgós3sgó2vugö2kugö2negö2nö2göntgö2ra2görvgösé2g1öv_g1övbg1övhg1övng1övrg1övtg1övvgÅ‘a2ngőá2ggÅ‘1brgÅ‘e2lgÅ‘e2rgőé2bgÅ‘1frgÅ‘1glgÅ‘1klgÅ‘1kvgÅ‘1plgÅ‘1prg1Å‘rbg1Å‘rhg1Å‘rkg1Å‘rng1Å‘rsg1Å‘rtgÅ‘1trgÅ‘u2tgőü2lgÅ‘2zúgp2lagp2lágp2legp2lugp2ragp2rágp2regp2régp2rigp2rígp2rogp2rógp2rűgp2szgre2eg2rilg2rízgróa2gróá2gró1pgs2hogs2kags2kágs2kogsk2rgs2lags2lágs2ligs2mágs2migs2mugs2nágs2pags2págs2pegs2pégs2pigs2pogs2pógsp2rgs2rágs2tágs2tegs2tégsto2gst2rgs2tugs2végsz2mgszt2gti2mgt2ragt2rágt2regt2régt2rigt2rogt2rógt2rögt2rugt2rügu2atgu2aygu2elgu2idgu2ingu2irgu2nágu2nógu2nugu2sögu2sÅ‘gust2gu2sügu1yagú2jagú2jígú2jugú2régú2rigú2ro2gúttgú2zigü2csgü2dégü2dígü2dügü2gegü2tegü2tégü2tigü2tögü2tÅ‘gü2tügü2vegü2vögü2zegü2zégűre2g1űrhgű2rigű2rugű2rügű2zegű2zégű2zigű2zögű2zÅ‘3gyámgy1blgy1brgy1dr3gyémgy1flgy1glgy1grgy1ízgy1klgy1kvgy1ou2gyöv3gyÅ‘zgy1plgy1prgy1psgy1scgy1skgy1slgy1smgy1sngy1spgy1sr2gyúd2gyúé2gyúi2gyúm2gyúü2gyüg3gyüm2gyüs2gyüt2gyüv3gyűlgy1zrgzÅ‘a2haa2d3hab_3haboha2büha2dühae2rha1flha2ifha2jöha2jÅ‘haj1sha2jüh1akt3haláha2lí3halmha2lüha2lűhamb23hamuha2mü3hanghaó2rha2rű3hasa3hatáhatt2ha2uehau2nhau2sha2uthaü2z3hábohá2gyháma2hámi2há2möhára2hári23hárí3hárthá2rühá1ryhá2síháté2há2tíhátó2há2töhá2tÅ‘há2tűhá2zöhá2zÅ‘házs2há1zyhb2lehe2adhe2av2hecu3hekt2helf2hema3henghe2olhe2röhe2rű3hety2hevé3heví2hezh2hezi2hezn2hezÅ‘2hezzhé2hé3héi_3héithéje2hé2jö3héknhéne2hén3nhé2nöhént2hé2nuhé2nühé1phhé2pühéra2héta2hé2tíhétó2hé2tuhéze2hézo2hf2ló2hia_hi2aahi2aáhi2achi2adhi2aehi2aéhi2aghi2ahhi2ajhi2alhi2amhi2aphi2arhi2at3hida2hiév3higi2hila2him_2hime2himé2hing2hinkhi2omhi2pa2hise2hisn2hisohi2tahitó2hitö2hi2túhi2zohí2dahí2dáhí2dehí2díhí2döhí2dÅ‘hí2dúhí2dühí2dzhí2jéhí2máhí2mohí2möhí2muhí2ríhí2rÅ‘hír1shí2rúhká2rhk2riho2dúho2efho2iiho2it2hoklhola2ho2löho2lü3homb3homohone2ho2ního2nöho2nÅ‘ho2nüho2re2hoszho1thho2usho2wehozi2ho2zühóa2khóá2ghó1blhóc3chó2cóhó2czhó2döhó2dü2hóráhó1shhóví2hökö1hÅ‘a2nhÅ‘1brhÅ‘e2lhÅ‘e2mhÅ‘e2rhőé2nhÅ‘1flhÅ‘1glhÅ‘1grhÅ‘1kvhÅ‘1prhÅ‘sa2hÅ‘s3shÅ‘sű2hÅ‘1trhőü2lhp2lahp2rahp2réhp2rihp2rohp2róhs2chhs2kahs2pihs2pohsz2lht1clht1klht2ráhu1hy2hurá2hus_2husihú2rehúrt2hú2síhú2söhú2sÅ‘hú2sühü2gyhü2rehü2rühü2tÅ‘hű2réhű2rihű2röhy1érhy1évhy1igiaa2diaát1i2abíi2aböi2abÅ‘i2abui2abúi2abüi2abűiac3ci2acíia2cóia2cöia2cÅ‘ia2cüia2czi2adei2adíi2adöi2adÅ‘i2adúiae2liae2riae2tiaé2ri2afái2afei2afii2afói2aföi2afÅ‘i2afui2afúi2afüi2afűi2agái2agei2agéi2agii2agöi2agÅ‘i2agui2aigi2aipi2ajei2ajoi2akái2akei2akíi2aköi2akÅ‘i2akui2akúi2aküi2alíi2alöi2alyi2amái2amei2amói2amúi2aműi2anéi2anöi2anÅ‘iao2kiaó2ri2apei2apéi2apoi2arei2aroi2arói2aröi2arui2arúi2asei2asii2asói2asöiast2i2asúi2asüi2asűi2atei2atói2atöi2atÅ‘ia2tyi2audiau2siaü2zi2avéi2avii2avíi2avoi2azái2azeia2zoi2azsi2azúiá2csiá2gaiá2gáiá2geiá2giiá2goiá2gyiá2híiáka2iáki2iá2kíiá2kÅ‘iá2kűiála2iá2nöiánt2iá2nüiá2óiiá2poiá2reiá2ruiá2rúiá2síiá2sóiá2söiá2sÅ‘iást2iá2sűiá2taiáti2ibas2ibat2ibau2ibaü2ibe1sibi2oib2loib2róib2ruic2cíic2cúic2czics1sic1üzid1br1iddoid3dz2idelideu2id2geid1krid1ösi2dÅ‘zid1prid1stid1ügie2beie2csie2dzie2fáie2géie2gyie2hei2eldie2loie2maie2nyie2peie2ríie2röie2rÅ‘iert2ie2sÅ‘ie2szietz1ie2urie2veie2véie2viie2vÅ‘i2édoi2éfeié2geié2géié2gÅ‘ié2güi2éhai2éhii2éilié2leié2léié2liié2lÅ‘i2émei2éméi2émoié2píié2püié2réié2riié2rüi2étöi2fe_ifio2if1ír1ifjí1ifjuif2leif2loif2löif2luif2ruif2töif2túig1bri2gegigek2i2gémig1flig1ívig1ízig1klig1krig2nöig2nüigóé2ig1öbig1ölig1prig1skig1slig1smig1spig1stig1szig1trig1ugigu2nigu2tig1úsig1ücig1üdigü2lig1ütig1üvig1űzii2deii2déii2dÅ‘ii2gaii2gáii2géii2gyii2haii2jeii2máii2miii2paii2ráii2roii2szii2taii2váii2voii2vóii2zéii2zoií2géií2raií2ráií2roií2róií2ruií2téií2veií2zeikaó2ikas2ik1drik1flik1frikó1pik1plik1prik1st2iku_2ikub2ikuf2ikuh2ikui2ikuí2ikuj2ikuk2ikur2ikut2ikuvila2nil1blilc3cil2chil2czil1fr1illu1illúil2möil2mÅ‘ilmu2ilót2il1öbil1ösil1shil1sp2ilteil1üril1üvimaó2ima1pim1drime2m1immuimót2im1ös1impé1impuin1blin1brin2cóin2cÅ‘in2cúindö22ine_2iner2inébiné2l2inév1infling3gin2gíin2gú2inie2inié2inir2iniuin1önin1Å‘zin1plin1prin1újin1ürin1üsin1űrin2xa1inzuioá2rio2csio2dúi2ogái2ogyio2ikio2káio2kíio2koio2kui3oldi2olói3olvio2möio2nöions2io2peio2soi2oteióa2dió2apióá2gióá2ri2óbái2óbéi2óbíi2óboi2óböi2óbÅ‘i2óbui2óbúi2óbüi2óbűi2ócei2ócéi2ócii2ócui2ódei2ódéi2ódii2ódíi2ódói2ódöi2ódúi2ódüi2ódzi2óégi2óéki2óéli2óépi2óési2ófái2ófei2ófii2ófói2óföi2ófÅ‘i2ófui2ófüi2ófűi2óhai2óhái2óhei2óhéi2óhii2óhíi2óhói2óhöi2óhÅ‘i2óhui2óhüi2óhűiói2gi2óipi2óisi2óizióí2vi2ójei2ójoi2ójói2ókíi2óköi2ókÅ‘i2ólai2ólái2ólei2óléi2ólii2óloi2ómei2ómói2ómui2ómúi2óműi2ónei2ónói2ónöióo2kióó2ri2órei2óréi2óroi2óröi2óruió2sóiós3si2ósúi2ótei2ótéi2ótii2ótíi2ótöi2ótÅ‘i2ótui2ótúi2ótüi2ótűi2óugi2óuni2óuri2óuti2óvei2óvéi2óvii2óvíi2óvöi2ózei2ózsiö2köiö2leiö2léiö2liiö2löiö2lÅ‘iö2möiö2reiö2röiö2rüiö2töiö2veiö2zöiÅ‘1dri2Å‘hai2Å‘kéi2Å‘kui2Å‘rai2Å‘tei2Å‘téi2Å‘vai2Å‘váipau2ip1flip2fuip1klip1krip1ösip2pöir2chi2rei1irgairke12iro_2irob1irriirs3sir2szirté2isa2nisa2pis1blis1bris1dris1frisi2gisió2is1klis1kv2ismo2isműis1ölis1önisö2ris1ösisp2r1istvisu2tisz3sit1blit1brit1dr2iterité2git1flit1frit1glit1gnit1griti2git1klit1krito2bitóa2itós2it1plit1prit1sp2itteit1újiu2gaiu2goiu2míiu2möiu2mÅ‘iu2müiu2naiu2noiu2raiu2ráiu2ruiu2taiu2tóiu2tuiu2zsi2úbái2úbei2úbéi2úbii2úboi2úböi2úcii2úcíi2údái2údei2údoi2údzi2úéliú1fri2úhai2úhái2úhei2úhii2úhöi2úhÅ‘i2úhui2úhúi2úifi2újeiú2jíi2újói2úkei2úkíi2úkói2úköi2úkui2úmei2úmói2úmui2úműi2únei2únéi2únöi2úreiú2riiú2roi2úrui2úsei2úsoi2útai2útái2úteiú2téi2útíi2útöi2útúi2úvei2úvéi2úvii2úvoi2úzeiü2csiü2geiü2gyiü2leiü2léiü2liiü2löiü2lÅ‘iü2lüiü2reiü2ríiü2rüiü2teiü2téiü2tiiü2töiü2tÅ‘iü2tüiü2veiü2vöiü2zeiű2zeiű2zéiű2zÅ‘i2ve_1ivotivós2ivőé2iv2réix1asix1blix1frixi2tix1ödix1ösix1Å‘rix1Å‘six1plix1prizas2iz1bli2zédi2zéliz1fl1izmúi2zosiz1pliz1prizs1s1izzi1izzíí2bisíd1ágíd1álíd1átíd1blídi2gíd1ívíd1ösíd1príd1stíd1újíd1ügíd1üníd1üzíd3záíd3zsíé2leíge2síg1trígyá2íi2roíj1eníj1épíjé2ríj1fríj1ígíj1íníj1kríj1öníj1ösíj1özíj1plíj1príj1skíj1spíj1ügík1aríka2sík1álík1emík1evík1frík1íník1íríkö2lík1plík1prík1spíl1ajíl1blíl1bríl1kríl1ösíl1stíltá2íma2níma1pím1blím1drími2gím1írím1krím1olím1oním1osím1ökím1ösím1ötím1spím1stína2dín1blín1bríne2nín1égíné2líni2gín1ízín1önín1örín1ösín1ötín1plín1prín1psín1ugín1újíó2voíp3roír1blír1bríre2nír1glíri2gí2risír1ínír1írír1ívír1kv1írogíro2líróá2í2róíírót2ír1önír1örír1shírsz2íru2nírü2lír1ürís2poís2tííszi2ísz3sísz1zítóa2ító1fítót2ít2réíü2düív1blív1dríve2cíve2níve2rív1frívi2gívi2kív1klív1krív1övív1plív1prív1skív1spív1stívsz2ív1trív1újív1útíz1abíz1ajíza2níz1aríz1álíz1blíze2níz1fríz1glízi2gíz1ízíz1klízo2kíz1oníz1oríz1osíz1öbíz1ödíz1ökíz1ömíz1öníz1öríz1ösíz1özíz1pfíz1plíz3síí2zsoí2zsöízs1sí2zsúíz3szíz1úrí2zűeí2zűní2zűv2jakfjakt2ja2urja2xijá2arjáí2r2jánljá2pojáre2já3rójá2rÅ‘já2söjást2já3zsjb2lojb2rijb2rójc3hojcs1sjea2ljea2nje2béjee2njelá2je2luje2lúje2muje2róje2sÅ‘jest2je2sujeu2rjég3gjégi2jé2gójé2göjé2gújé2küjé2lÅ‘jé2nojé2nújé2píjé2püj1évhj1évkj1évtj1évvjf2lejf2lojf2lójf2rajf2rejf2rijf2ríjf2rojf2röjg2ruji2doji2jeji2maji2máji2miji2onji2paji2zéji2zojí2géjí2rájí2rójí2vejí2véjí2vójí2zejí2zéjí2züjí2zűjjá1sjj1ívjj1ízjj1prjj1ügjkau2jkia2jkiá2jkie2jk2lajk2lájkme2jk1pljk1prjk1stjk1ügjk2vajl1bljleí2jli2kjl1prjl1spjl1stjme2gjn1stjog3gjogó2jo2göjo2gÅ‘jo2güjoma2jo2möjo2mÅ‘jo2müjo2műjo2óbjo2pájo2pejo2rüjo2uijo2ukjo2uljo2urjo2utjo2vajóa2kjóá2gjóá2rjó1bljó2cejóde2jódó2jó2düjó1fljó1kljó2söjós3sjö2déjö2kojö2léjö2rejö2röj1ösvj1ötvjö2zöj1Å‘rljÅ‘2röjÅ‘2rüjÅ‘2zejp2lajp2lejp2rejp2réjp2rijp2rojp2rójra1fjrai2jrau2js2hojs2kájs2kijs2nijs2pejs2pijs2pojs2pójsp2rjs2tijsz2kjszt2jt1fljt1frjti2mjti2sjt1kljt1krjtóa2jtÅ‘a2jtÅ‘e2jtőé2jt1pljt1prjt2rijt1spjt1stju2gajugo1ju2hÅ‘ju2hü2jula2julsju2rujú1frjú2jíjú1pljü2gejü2gyjü2lejü2léj1ültjü2rejü2ríjü2rüjü2tajü2vejü2zejű2rijű2zÅ‘jza2jjze2rjz1frjzi2gjz1pljzs1skaa2dkaát1kab2aka2cüka2czkae2lkae2rkaé2rkai2z2kangka2nűka2óaka2óáka2ócka2óeka2ógka2óíka2ópka2óüka2óz2kappkars2kast2ka2udkau2nkau2rkau2skaü2tkaü2z2kábéká2ceká2cóká2cüká2díká2fáká2gaká2jöká2jüká2lüká2röká2rÅ‘kárt2ká2rüká2sóká2söká2sÅ‘kás1pkást2ká2tíkátó2ká2tükb2lakb2lekb2lokb2rákb2rikb2rokb2rókc2lukd2rakd2rákd2rekd2rokd2rókd2rukea2jkea2kkea2lkea2nkea2rkea2skeá2lkeá2rkee2nke2epkee2ske1flkeo2lkeo2rkeó2dkeó2hkeó2lkeó2rkers2ke1tckeu2rkeu2ské2geké2géké2gÅ‘ké2jökéma2ké2míké2moké2möké2mÅ‘kéna2ké2noké2píké2póké2pÅ‘kép1ské2puké2púkéra2ké2roké2rökérü2késa2ké2sóké2suké2tíkétó22kétvké2zíké2zökézs2kf2jokf2lakf2lekf2likf2lokf2lókf2rakf2rákf2rekf2rikf2ríkf2rokf2rökf2rukg2lakg2nókg2rakg2rikg2ríkg2ruk2hilkh2mekia2dki2aéki2afkia2gkia2jkia2nkia2pki2aúkia2vkiá2z2kidikie2lkie2mkie2rkie2tki2ewkié2dkié2k2kiga2kigá2kige2kily2kindkio2lkio2mki3óhki1pf2kirg2kismki2sÅ‘kisp2kist2kiu2skiu2tkiú2skiú2tkí2jakí2rá2kítmkí2zékí2zükí2zűkká2skk1brkke2ckk1frkk1grkkiá2kkie2kkö2lkk1prkk2ríkk1smkk1spkk1stkk1űrkk2vókla1gkleí2klió2k2loák2lubkma1bkmas2knag2knak2ko2ázko2beko2löko2nükonz2ko2ón2kopcko2röko2rÅ‘ko2rüko2seko2süko2utko2xikóa2dkó1blkóc3ckó2chkód1dkó2dökó2dükóé2rkói2gkóí2vkó1kvkópó2kó2pükó2rÅ‘kö2bakö2dakö2dákö2dokö2dókö2dukö2dúkö2dzkö2líkö2rakö2rákö2rokö2rókört2kö2rukö2rúkö2zakö2zákö2zokö2zókö2zukö2zúkÅ‘a2nkÅ‘1blkÅ‘2chkÅ‘e2kkÅ‘e2lkÅ‘e2rkőé2lkÅ‘1gnkÅ‘1grkÅ‘i2tkÅ‘1krkÅ‘1plkÅ‘1prk1Å‘rlkÅ‘2sökÅ‘1trkÅ‘u2tkp2lakp2lekp2lékp2lukpó2tkp2rakp2rekp2rékp2rikp2ríkp2rokp2rókp2szkra1pk2reok2rupks2koks2láks2luks2miks2paks2peks2piks2poks2póksp2rks2ráks2tiks2tokszt2ksz1zkt1frkt1grkti2gkti2mkt1prkt1spkt1stkt1szktü2lkuá2rkue2lkue2rkue2sku2müku2nekun3nku2nü2kupr2kupuku2söku2süku2zskú2jíkü2gekü2gykü2lokü2rükű2rokű2zékű2zÅ‘k2vóckyd2nkyk2kky2seky1üzlaa2dlaát13labd2labrla2cÅ‘la2cúla2cülae2dlae2llae2rlaé2dlaé2r2laffla1flla2gíla2gűlaji2la2jíla2jÅ‘l2ajslakt2la2mölans2la2nülaó2rla2pöla2pÅ‘la2pűla2ubla2ukla2uslaü2zla1yélá2bölá2bÅ‘lá2bülá2dzlá2gÅ‘lág1slá2gülá2gű2láheláí2rlá2lílálö2lá2lülá2lűlá2mílá2mólá2mölá2mÅ‘lá2mülá2műlána2láná2lánt2lá2nülápi2lárt2lá2rülá2selásó2lá2sÅ‘lá2sű2lávi2lávu3lázblázo2lb2lilb2lolb2lúlb2ralb2relb2rilb2rolb2rólb2rulce2zlc1frlc3halc3hálc3holc3hulc3húlc3hülc1ívlc1öklc1öslc1prlcs1slc1trlc1üllc1ütlc3zálc3zoldai2ld1ágld1brld1flld1frld1glld1grldi2pld1krld1kvld1plld1prld1spld1stldu2rld3záld3zóld3zulea2dlea2glea2klea2llea2nlea2plea2vleá2jleá2sleá2zleb2s2lecclee2sleé2rle1frlegg2le2iclei2glei2sl2endlenu2le2oale2ocleo2kleo2mle2ozleó2cleö2r2letyleu2gle2ukleu2rleu2tle2xále2xöle1yélé2calé2cáléc3cléci2lé2colécs2lé2dölée2rléé2r2légílé2gú2légü3légz2léhslé2kÅ‘l1élcléná2lé2nolé2pólé2rílé2rölésa2lé2só2létllétö22lévülfat2lf1cllfe2tlf1kllf2lolf2lólf2lölf2lulf1prlf2rilf2rölf2rÅ‘lf1splgau2lg2lalg2lolg2lólg2rulhai2li2aali2aáli2aeli2aéli2agli2ahli2aíli2ajli2aoli2aóli2aÅ‘li2apli2aüli2avli2azli3beli2cüli1cyli2eclie2d2lienlié2dlié2klié2nli2fíli1fll2ig_2lilllimű1li2oclio2lli2őáli2Å‘dli2Å‘eli2Å‘fli2Å‘gli2Å‘mli2Å‘pli2pöl1ismlitÅ‘2liú2t3lix_lí2gélí2jalí2julíma1l1írdl1írhl1írjl1írll1írs2lív_líva1l2ízilj1írlj1prlj1splj1üzlkiá2lk2lílk1shlk2valk2válk2vóll1blll1brll1cllleí2ll1frlli2pll1kvllóá2llóó2ll1skll1splls3sllsz2lly1öl3lywlmá2llm1bllm1cllm1drlmeó2lm1gllm1grlmi2glm1íglm1írlm1ízlm1kllm1krlm1önlm1öslm1ötlm1sklm1sllm1snlm1splm1stlnak2lo2áz2lobá2lobulo1bylo2chlo1cylo2éclo2éolo2éplo2ézlo2gílo2gölo2gülo2irlo2kílo2külo2mölo2mÅ‘lo2mülo2műlo2nölo2nülo2oilo2ojlo2orlo2óslo2pelo2pílo2pölo2pü2lornl2os_l2osal2osblo2selo2sülo2xálo2xilóa2dlóá2rló1blló1brlóc3cló2chló1fllóg1gló2gílóí2v2lónn2lóno2lónr2lóntló2ríló2rülós3sló1szló2zÅ‘ló2zülö2bölö2calöc3clö2chlö2cÅ‘lö2kalö2kálö2kolö2nalö2nálö2nelö2nélö2nólö2nulö2núlö2palö2pálö2pelöpü2lö2relö2rölö2sülÅ‘a2clÅ‘a2nlőá2glÅ‘1bllÅ‘1brlÅ‘2dálÅ‘e2llÅ‘e2slÅ‘1fl2lÅ‘hű2lőítlÅ‘1kllÅ‘1kv2lÅ‘nnlÅ‘1pllÅ‘1prlÅ‘1pslÅ‘só2lÅ‘2sÅ‘lÅ‘s3slÅ‘1sylÅ‘sz2lÅ‘u2tlőü2l2lÅ‘zl2lÅ‘zmlpé2llpé2rlpo2nl1prdlpu2slrei2lreü2ls2hols2kals2káls2kils2lals2láls2lils2mals2mils2tálszt2lt1bllt1brlté2llt1fllt1gllt1grltig2lt1ítlt1krltó1pltót2ltö2lltÅ‘a2lt1pllt1prlt1sllt1splt1stlua2gluá2rlubó2lu2bölu2bü2ludj2ludvlu1dylue2llui2rlu1kllu2lí2lulr2lumí2lundl1unhl1unjl1unll1unnl1unvlusö2lu2sÅ‘lust2lu2zslú2dálú2delú2galú2gelúg3glú2gilú2julú2rilú2rulú2rülü2cslü2dílü2dülü2gelü2gylü2lálü2lélü2lílü2lúlü2lülü2relü2rílü2rülü2szlü2telü2télü2tilü2tölü2tÅ‘lü2tülü2velü2völü2zelü2zélű2rál1űrllű2zelű2zélű2zilű2zölű2zÅ‘lű2zülv1brlv1frlv1kllv1krlvö2llv1Å‘slv1prlv1pslv1splv1stlv1újly1blly1brly1drly1ejlyé2lly1flly1glly1grlyi2gly1ívly1kl1lyn_lyo2lly1plly1pr1lys_ly1skly1splys2t1lywolzÅ‘a2lzÅ‘e2maa2dmae2rmaé2rm1ahhmai2z2malgm1alr2malv2manámao2k2marmma1rymast2ma2usmá2fá2mágo2mágómá2hímájo2má2jümáka2má2kÅ‘mána2má2nÅ‘má2númá2nümá2pomá2rímá2römá2rÅ‘má2rümá2sömá2sÅ‘mást2máte22mátém1átjmá2zemá2zÅ‘mba1pmbeá2mb1grmb1ízmb1klmb1lymb1plmb1prmb1spmb1szmb1trmb1újmc2lumd2ramd2rámd2romd2rómea2lmea2nme2avmee2sme2etmeg1fmegg2me2gime2gúmek1s2melb2melkme2níme2nöme2núme2omme2óemers2me2túme2ukmeu2tme2vÅ‘me2zume2zúmé2gemé2gémé2gimé2gÅ‘mé2gúmé2höméka2mé2kímé2kÅ‘mént2mé2pímé2pümé2sömé2tömétÅ‘2mé2zímé2zumé2zűmfit2mf2lamf2lómf2lumf2rámg2limg2lómg2ramg2rámi2aami2aámi2acmi2aemi2aémi2agmi2ahmi2aími2aomi2aómi2aömi2aÅ‘mias2mi2aümi2avmi1bl2midÅ‘mie2lmi2éfmi1flmi1frmii2d2miksmi2nümio2rmió2r2mirg2mirhmiu2smi2xömi2xÅ‘mí2jamí2jám1ínsm1ív_mí2vám1ívbmí2vém1ívhm1ívrm1ívvmí2zümí2zűmj1Å‘smke1pmkia2mkiá2mkie2mk2lamk2limk2límk2lomk2lumk2ramk2rámk2remk2rémk2rimk2rímk2romk2rómk2vamk2vómla1fmleí2mmai2mmas2m2me_mo2bemoci1mohu2mo2ismo2kömok1tmoku2mokú2mo2kümo2nömons2mo2nümo2nűmo2or2mopemo2römort2mo2rümo2rűmo2sümo2unmo2vimo2ximóá2gmó1blmó2chmódó2módu2mó1flmóró2mó2römö2bömö2komö2lemö2numö2rom1ötlmö2vemö2vömö2vümö2vűmÅ‘a2nmőá2gmÅ‘e2lmÅ‘e2rmőé2lmÅ‘1klmÅ‘1psmÅ‘2simÅ‘2sümőü2lmÅ‘2zimp2cimp1frmra1pms2kams2káms2kims2koms2láms2mims2nims2pams2pems2pims2poms2póms2ráms2tams2táms2tems2tims2tíms2tomst2rms2túmsz2cmsz2lmsz2mmt2rámt2remt2rémt2rimt2römt2rüm1ujj2mulzmu2mömu2mÅ‘mun1g2mur_mu2sÅ‘muss2mu2tümú2jímú2rim1úthmü2dímü2dümü2gymü2námü2remü2rímü2rümü2temü2témü2tÅ‘mü1tzmü2vemü2vömü2zemű1blmű1brmű1flmű1frmű1grmű1klmű1plmű1pnmű1prmű1spműsú2mű1szmű2zémű2zimű2zömű2zÅ‘mű2zümw2himz2rínaa2dna1clna2einaé2rna2jinalt2na2lünano1nao2lnaó2rna2pínapp22nasknast2na2ucna2ulnau2snaü2zna1whna2zé2nábrná2cíná2dánád1dná2ganá2gáná2giná2guná2gúná2gyná2künále2n2áléná2líná2lüná2míná2munáné2ná2níná2nüná2rínáró2ná2rÅ‘nárt2ná2rünást2ná2tünb2lanb2lonb2lúnb2ranb2ronb2rónca2unc1blnc1brnc1drncea2nc1flnc1frnc1grnc3hínc3hönc1íjnc1klncö2tnc1Å‘rnc1plnc1prncs1snc1trnc1ujnc1útnc1üvnc1yanc3zenc3zönc3zsnc3zünd1blnd1clnd1drnd1frnd1grnd1klndö2bnd1prnd1slnd1spnd1stndu2tnd1újndy2bndy2hndy2nndy2rndy2tndy2vnea2jnea2knea2nnea2rne2béne1blne1dy2neffnei2gneí2r2nekj2nemsne2obne2odne2ofne2ogne2ohne2róner1sne1yé2nédlné2kónékü2népa2népá2né2pÅ‘nép1sné2púnéra2n1érdné2röné2rünéti2né2tönéva2né2vöné2vÅ‘né2vúné2zangá2cng1blng1brng1frngi2gngi2mng1ígng1írng1ívng1ízng1klng1krng1kvngö2rng1prng1psng1shng1skng1spng1trng1ürng1ütng1űrnhe2ini2aani2aáni2acni2adni2aeni2aéni2ahni2aíni2ajni2amni2aoni2aóni2aöni2aÅ‘ni2arnia3uni2aüni2avni2azni1brni2düni2et2nigmnikk22nindni2óani2ódni2óeni2ópni2óüni1pr2niráni2xani2xÅ‘ní2géní2janí2juní2vení2zení2zűnkaó2nk1brnk1drnkia2nkiá2nkká2nk1plnk1prnk1spnk1stnlac1nleí2nműt2nnak2nn1synnü2l2nog_2nogh2nogj2nogn2nogo2nogs2nogt2nogvno2irno2köno2kÅ‘nok1sno2künom1pnona2no2nöno2nÅ‘no1nyno2okno2ríno2rüno2seno1tyno2uino2xinóa2knóá2rnó2cenó2chnó1flnó1frnó2münó2rünó1slnós3snó2vónö2kanö2kánö2konö2kónö2kunö2kúnö2lÅ‘n1ömlnö2rönö2tenö2ténö2tin1ötlnö2tün1övbnÅ‘a2lnÅ‘a2nnőá2gnÅ‘1brnÅ‘2canÅ‘2chnÅ‘e2rnőé2lnÅ‘1klnÅ‘1plnÅ‘1prn1Å‘rsnÅ‘s3snÅ‘u2tnőü2lnpe2snp2lanp2lánp2lenp2lénp2lonp2lünp2ranp2renp2rénp2rinp2ronp2rónp2szns2chns1drns1frnsi2zns1klns1stns1synsu2rns1úrnsz1zntad2ntaü2nt1blnt1brnt1drnt1flnt1frnt1grntió1nt1klnt1krntó1pntót2ntÅ‘a2nt1plnt1prnt1rynt1shnt1sknt1spnt1stntsz2ntu2nn2tyín1uccnu2ganu2gonu2münu2ránuss2nu2ten1újdnú2jínú1pr2nútb2núth2nútj2nútr2núttnü1blnü1frnü1grnü1prnü2rínüst2nü2tinü2tünü2vönü2zénű2zénű2zÅ‘nv1sknx1ar2nyápny1blny1brny1cvnye1pny1flny1glny1gr3nyíl3nyk_1nykkny1kl1nykn1nym_1nymt1nyn_ny1plny1prny1ps3nys_ny1scny1shny1skny1slny1spnys2t2nyud2nyuj3nyul2nyut3nyúlny2vóny2vÅ‘ny2vúnza2cnz1grnzi2anz1ígnz1ínnz1klnz1krnzö2rnz1plnz1prnz3sznz1újnz1üsnz1üvnz3zsoa2céoa1fro2akio2amio2asioá2gaoá2ríoá2zsoba1pobau2ob2böob1ívob1klob1ötob1pr1obstob1ügob1ürob1ütob1űroc1eroci3aocie2oció2oci1poc1procs1socs1toc3zsodas2odat2odáb2od1edode2l2odézodi2god1klod1prod1st1odúnod1ügod1ünod1üzod3zeod3zooe2iroe2leoe2muoe2neoe2uroe2uvo2éfao2éfáo2éfoo2ékeo2ékioéna2oéná2o2észo2éviof2laof2lóof2rí2ogazog1blog1droge2roge2sog1flog1frogi2gog1ínog1írog1ívog1klog1krog1ösog1plog1prog1skog1spog1trog1ülog1ürog1ütog1üzog1űzohas2oh2nioi2aeoi2afoi2anoi2avoida1oina2oi2neoi2reoi2zooj1inoka2uok1blok1brok1dro2ke_oke2doké2pok1flok1frok1grok1íjok1írok1ívok1ízokö2rok1plok1prok1spok1ügok1ünok1ürok1üzok1űzo3la_ol2cíol2cóol2cöol2cüol2czol2dűolfu2ol1gl2oliboll1sol2lüolót2ol1örol1ösol1skol1úsol1ügol1ülol1üvol1üz2olyóo2lyÅ‘oma1fomá2gom1drom1efome2gome2lome2oo2mepome2some2zom1glom1gromi2gom1íjomjó2om2jÅ‘om1klom1krom1ökom1önom1ösom1övom2pÅ‘om1skom1slom1spom1stomu2nom1üdom1ügom1ürom1üsom1ütom1üvom1üzom1űrom1űzom1yaonae22onak2onácon1blon1bron2cúon2cüone2lone2none2s2onéboné2don2güoni2gon1ígon1ízon1öbon1ölon1önon1öron1öson1plon1pron1ps2ons_on1slon1sronsz2onu2nonú2ton1űron1űzon2züoo2iboo2inoo2peoo2reoo2xio2palopa2uo2pálop1blop1emop1esop1gropi2zop1ívop1klop1kr2opolop1ösop2péop1py2oproop1slop1spop1srop1újop1üdop1ügop1ütop1üzoraó2or1blor1bror2cúor2cz2oreao3reáore2lore2nore2sor1ezor1glor3jáor2müor1önor1öror1ösor1ötor1övor1phor1pl1orrb1orrkor2sÅ‘or1üdor1ünor1üror1ütor1üzor1űr1orv_2orváor2vÅ‘1orvvorz1zosa2nos1exos1ezosgé2osi2gos1kl2osokosó1pos1ökos1önos1psossu22ostuoszí2o2szöo2szüotag2ota1kot1blo2tebot1frot1groth2rot1íjot1ínot1kl2otópotót2ot1ösot1plot1prot1psot1spot1srot1st1ottlot1ütot1űrotya1ou2agou2ilou2leovau2ovio2ow1eloy2ceoza2goza2noza2roz1eno2zorozs1so2zsüoz1ünoz1űróa2céóa2dáóa2doóa2dóóa2gaóa2gióa2gyóa2jáóa2káóa2kuóa2laóa2láóa2loóa2luóa2maóa2naóa2nóóa2nyóa2páóa2poóa2póóa2puóa2raóa2ráóa2réóa2rióa2roóa2tyóa2ukóa2uróa2utóa2vaóa2xióa2zoóá2béóá2csóá2gaóá2gióá2goóá2híóá2laóá2loóá2poóá2ráóá2ruóá2rúóá2saóá2sóóá2szóá2taóá2táóá2téóá2tíóá2toóá2tuóá2túóá2tü2óbab2óbaj2óbak2óbalóbas2óbau22óbec2óbef2óbeg2óbeh2óbej2óbek2óbem2óbeo2óber2óbet2óbev2óbezó2bég2óbil2óbio2óbir2óbit2óbiz2óbójób2ráóce2lóc3háóc3heóc3hoóci2móc2luóc1pr2ócsa2ócse2ócsé2ócsi2ócsí2ócso2ócsö2ócsőócs1póc3szóc1tróc1ünóc1üzóc3zaóc3zeóc3zuóda2jód1blód1bród1epód1fród1glódi2pód1klód1kród1kv2ódob2ódok2ódol2ódomód1ösód1Å‘ród1pr2ódráód1spód1st2ódugódu2ród1ügód1üvód1üzóe2béóe2chóe2csóe2déóe2dzóe2geóe2géóe2gyóe2keóe2kéóe2leóe2léóe2loóe2lőóe2lüóe2meóe2méóe2muóe2neóe2péóe2pióe2poóe2reóe2réóe2róóe2rőóe2seóe2séóe2sőóe2szóe2teóe2tióe2tűóe2veóe2véóe2vőóe2züóé2beóé2geóé2géóé2gÅ‘2óéhsóé2keóé2kéóé2kíóé2leóé2léóé2lőóé2píóé2pü2óér_2óérdóé2rióé2rÅ‘2óérzóé2te2óétkóé2veóé2véóé2vióé2vü2ófa_2ófaa2ófaá2ófab2ófac2ófad2ófae2ófaf2ófag2ófah2ófak2ófal2ófao2ófap2ófar2ófas2ófaü2ófav2ófaz2ófék2ófénóf2lóóf2löóf2lu2ófoc2ófog2ófok2ófol2ófos2ófotófu2róga1póg1dróge2oóg3gyóg1íróg2laóg2le2óhal2óhan2óhas2óhat2óhon2óhor2óhos2óidéói2di2óigéóile22óillói2mi2óimp2óind2óinf2óing2óinj2óinp2óint2óinvói2paói2szói2zéói2zoóí2ráóí2rióí2roóí2róóí2téóí2véóí2vüóí2vűóí2zeóí2zéóí2zióí2züóí2zű2ójam2ójav2ójut2ókab2ókav2ókaz2ókem2ókeróke2t2ókev2ókez2ókém2ókésók1gr2ókia2ókiá2ókic2ókié2ókifóki2g2ókií2ókij2ókim2ókio2ókit2ókiv2ókoe2ókoh2ókoo2ókop2ókód2ókór2ókölók1plók1prók1skók1stó2kum2ókup2ókur2ókut2ókúr2ókül2óküsóleí2óli2sól1ínólóá2ólót2ól1ütól1üvóly2á2ómanómas22ómax2ómág2ómáz2óméd2ómélómi2g2ómin2ómis2ómod2ómog2ómoh2ómor2ómos2ómot2ómozóm1ötóm1Å‘róm1próm1ütóm1üzóműt22ónad2ónag2ónap2ónavóná2lón1bróne2dón1ez2óném2ónézóni2g2ónorón1oxón1önón1ötón1prón1ür2ónya2ónye2ónyí2ónyo2ónyu2ónyúóo2dúóo2kaóo2káóo2kuóo2laóo2lióo2peóo2raóo2rióo2roóo2vióo2xióó2laóó2láóó2lióó2loóó2raóó2rióó2sáóó2váóó2voóó2vóóö2böóö2koóö2köóö2léóö2lőóö2röóö2veóö2zöóő2reóő2réóő2rióő2röóő2rüóő2séóő2söóp1üvór1brór1fl2órip2óritóri2zór1klóró1p2órózór1Å‘rór1ünór1üz2ósarós1blós1br2óseb2ósejóse2móse2p2ósém2ósétós1frósi2gósi2p2ósíkós1klós1kv2óslá2ósorós1Å‘rós1pl2óstá2óstí2óstú2ósug2ósül2ósür2ósza2ószá2ószé2ószi2ószí2ószkósz2l2ószó2ószö2ószÅ‘2ószpós3zs2ószt2ószú2ószüósz2v2ótan2ótap2ótarótas22ótat2ótax2ótág2ótápót1fróti2gót1kr2ótoj2ótol2óton2ótor2ótov2ótó_2ótónótÅ‘e2ót1slót1spóu2boóu2gaóu2nióu2noóu2raóu2szóu2taóu2táóu2toóu2tóóu2tuóú2jíóú2réóú2szóú2tióú2toóü2gyóü2leóü2léóü2lőóü2nőóü2reóü2ríóü2rüóü2szóü2teóü2téóü2tőóü2veóü2zeóű2zÅ‘2óvad2óvag2óvaj2óvar2óvasó2vat2óvág2óvák2óvál2óván2óvázóv1inó2vom2óvon2ózajóza1s2ózavóz1bl1ózdióz1emóz1ezóz1flóz1frózós2óz1Å‘róz1próz3sz2ózuhóz1ülöb1álöb1átöb2bíöb2bóöb2bööbbü2öb1fr1öbli1öblööb1oröb1ónöc1ajöc3heöc3hööció2öc1Å‘röcs1óöc3szöd1aröd1áröd1gröd1ízöd1osöd1ócöd1spöd1újöd3záöd3zuög1abög1agög1apög1arög1asög1ábög1ágög1átög1drög1frög1ínög1írög1ívög1krög1opög1osög1prög1skög1spög1trög1udög3yaök1abök1arök1asök1auök1ágök1álök1átök1ázök1dröke2lök1frök1glöki2döki2gök1íjök1ívök1ízök1kl1öklűök1ok1ökonök1óvökőé2ök1pr1ökrü1ökrűök1spök1srök1usök1újök1úrök1útökü2löl1agöl1alöl1apöl1auöl1álöl1átöl1bröldÅ‘2ö2lelölé2döl1fröli2göl1olöl1oröl1sköl1sröl1stöl2tíöl1ujöl1újöl1úsöm1alöm1aröm1auöm1áböm1ágöm1áhöm1álöm1ápöm1ázöm2bíöm2búöme2söm1grömi2göm1klöm1kröm1oröm1osöm1spöm1stöm1tröm1ujön1abön1amön1arön1asön1atön1auön1azön1ábön1ágön1álön1ámön1ázön1blön2chön2cőön2czön2dzöne2nön1exön1iföni2gön1íjönkü2ön1opön1orön1osön1oxön1óvön1öbön1Å‘rön1Å‘zön1plön1prön1psönsz2ön1udön1unön1újön1útön1üdöny1dö2nyíöp1ajöp1álör1abör1ajör1asör1ábör1br2ördí2ördüör2fáöri2göri2kör1obör1opör1os2örögör1udör1ujör1újör1úr1örv_1örvb1örvh1örvn1örvr1örvt1örvü1örvű1örvvörz4sös1alös1árösié2öt1aböt1ajöt1amöt1asöt1áböt1ágöt1álöt1áröt1epöt1esöte2uöt1flöt1fröt1gröt1kr1ötléöt1oköt1olöt1oröt1osö2tösötÅ‘a2ötÅ‘e2ötőé2öt1pröt1scöt1stöt1ujöt1unöv1aböv1akö2vé_öv1égö2vihö2vivöv1oröv1utöz1aböz1atöz1auöz1azöz1álözé2möz1frözi2göz1íröz1ízöz1oböz1olöz1opöz1osöz1ovöz1ónözÅ‘a2öz1plöz3saöz3sáöz3seöz3séöz3soöz3súöz3szöz1ugöz1uröz1utöz1útöz3zsÅ‘a2daÅ‘a2dáőa2doÅ‘a2dóőa2duÅ‘a2gaÅ‘a2gáőa2giÅ‘a2gyÅ‘a2jaÅ‘a2jáőa2kaÅ‘a2káőa2kóőa2laÅ‘a2loÅ‘a2mőőa2naÅ‘a2noÅ‘a2nóőa2paÅ‘a2páőa2poÅ‘a2póőa2puÅ‘a2raÅ‘a2ráőa2riÅ‘a2roÅ‘a2szÅ‘a2toÅ‘a2tyÅ‘a2ulÅ‘a2urÅ‘a2utÅ‘a2vaÅ‘a2xiÅ‘a2zoőá2csőá2gáőá2géőá2giőá2goőá2gúőá2győá2híőá2laőá2loőá2míőá2poőá2raőá2ráőá2riőá2roőá2ruőá2rúőá2saőá2sáőá2soőá2sóőá2suőá2szőá2taőá2téőá2tíőá2tüőá2vóőba1pÅ‘b2leÅ‘b2loÅ‘b2riÅ‘b2roÅ‘b2róőb2ruÅ‘c1apÅ‘c1grÅ‘c3háőc3héőc3höőc2luÅ‘cs1sÅ‘c3szÅ‘d1álÅ‘dea2Å‘di2gÅ‘d1prÅ‘d1stÅ‘e2ceÅ‘e2csÅ‘e2déőe2dzÅ‘e2geÅ‘e2géőe2gyÅ‘e2laÅ‘e2liÅ‘e2loÅ‘e2löőe2lüőe2maÅ‘e2meÅ‘e2méőe2muÅ‘e2neÅ‘e2piÅ‘e2poÅ‘e2reÅ‘e2réőe2rüőe2séőe2siÅ‘e2sőőe2taÅ‘e2teÅ‘e2tiÅ‘e2unÅ‘e2véőe2viÅ‘e2voÅ‘e2vőőe2zeőé2deőé2etőé2geőé2géőé2giőé2gőőé2jiőé2keőé2kéőé2kíőé2léőé2lőőé2lűőé2píőé2püőé2réőé2riőé2vaőé2viÅ‘f2laÅ‘f2leÅ‘f2loÅ‘f2lóőf2löőf2luÅ‘f2raÅ‘f2ráőf2riÅ‘f2röőg2leÅ‘g2lóőg2nóőg2raÅ‘g2ráőg2riÅ‘g2róői2doÅ‘i2dőői2gaÅ‘i2geÅ‘i2géői2gyÅ‘i2koÅ‘i2maÅ‘i2máői2miÅ‘i2onÅ‘i2paÅ‘i2raÅ‘i2ráői2riÅ‘i2roÅ‘2iruÅ‘i2siÅ‘i2szÅ‘i2vaÅ‘i2váői2vóői2zéői2zoőí2géőí2jaőí2raőí2ráőí2roőí2róőí2ruőí2váőí2veőí2véőí2viőí2vűőí2zeőí2züőí2zűőkes2Å‘kiá2Å‘kie2Å‘k2laÅ‘k2leÅ‘k2liÅ‘k2líők2lóők2luÅ‘k2vaÅ‘leí2Å‘lÅ‘t2Å‘műt2Å‘o2ázÅ‘o2beÅ‘o2dúőo2káőo2kíőo2koÅ‘o2laÅ‘o2peÅ‘o2ráőo2riÅ‘o2roÅ‘o2soÅ‘o2veÅ‘o2xiőó2ceőó2haőó2noőó2nuőó2raőó2ráőó2riőó2vaőó2vóőö2böőö2déőö2koőö2köőö2léőö2lőőö2naőö2reőö2röőö2veőö2véőö2viőö2vöőö2zöőő2reőő2réőő2riőő2röőő2seőő2siÅ‘p2laÅ‘p2leÅ‘p2léőp2neÅ‘p2reÅ‘p2réőp2riÅ‘p2roÅ‘p2róőp2szÅ‘ra2nÅ‘r1ap1Å‘rbí2Å‘reaÅ‘ree2Å‘reo2Å‘reu2Å‘reü2Å‘r1fl1Å‘rfőőr1frÅ‘2rimÅ‘r1ír1Å‘rjö1Å‘rlöő3rögÅ‘2rölÅ‘r1pl1Å‘rs_1Å‘rsí1Å‘rsöőrs3sÅ‘r1úrÅ‘sa2nÅ‘sa2pÅ‘s1auÅ‘sá2lÅ‘s1drÅ‘se2nÅ‘se2pÅ‘s1épÅ‘s1flÅ‘s1frÅ‘s1gnÅ‘s1grÅ‘si2gÅ‘s1klÅ‘s1kvÅ‘s1obÅ‘so2kÅ‘s1ócÅ‘sö2rÅ‘s1Å‘rÅ‘sp2rÅ‘s1skÅ‘ssz2Å‘st2rÅ‘s1unÅ‘su2tÅ‘szt2Å‘t2roÅ‘u2goÅ‘u2niÅ‘u2raÅ‘u2ráőu2ruÅ‘u2taÅ‘u2tóőu2tuőú2joőú2réőú2riőú2roőú2szőú2téőú2tiőú2toőü2düőü2geőü2győü2leőü2reőü2ríőü2szőü2teőü2téőü2tiőü2töőü2tőőü2veőü2vöőü2zeőü2zéőű2réőű2riőű2röőű2zéőű2zÅ‘2Å‘vetÅ‘z1blÅ‘2zemÅ‘z1olÅ‘z1osÅ‘zÅ‘a2Å‘z3szÅ‘z1útÅ‘z1ügpa2chpa1clpade2pae2rpaé2rpa1flpans2pa2nüpa2pöpa2pú2parbpa2röpa2rÅ‘2parrpars2pa2rűpast2patü22paurpa1wh2páca2pácápácé2pála2pá2lepá2lüp2ály2pámipá2mupána2pá2nípá2nöpá2nÅ‘pá2nüpá2rÅ‘pá2rüpá2sÅ‘pás3spá2tápá2tüpb2lopb2rapb2ripb2ropd2rapd2rápd2ropd2rópea2ppea2rpeca1pec3cpe2czpe2edpe1fl2pelu3pelypeo2lpeo2ppeó2rpe2ríp2erlpe2rúp2erzpet2ápe2ugpe2vÅ‘pédü22pééb2pééi2péénpéje22pélm2pépüpé2sopéta12pétlp1évkpézi2pé2zupf2lopf2lópf2lupf2rápf2rupf1stpg2rapg2rupg2rüp2hicphó2ipi2aapi2aápi2adpi2aepi2aépi2agpi2ahpi2ajpi2alpi2ampi2aopi2aöpi2appi2atpi2aúpi2aüpi2az2picc2piclpida2pi2egpi2erpi2égpi1fr2pigopil2i2pind2pinjpi2nüpi2óapi2óápi2óepi2ófpi2ógpi2ólpi2óopi2óppi1täpí2gépí2jápí2népí2rápí2rípír1spírt2pí2rüpí2rű2pítmpí2vepí2zepí2zépí2züpí2zűpkia2pkiá2pkie2pk2lapk2lipk2lípk2lupk2rápk2repk2répk2ripk2ropk2rópk2vapk2vópleí2pléé2plót2p2lurpo2bepo2dzpo2inpoki2po2kíponi2pon3n2ponzpo2ol2popcpopi2pop1spo2púpo2püpore2po2röpo2rÅ‘po2rüpo2süpo2töpo2tüpo2vipó2cepó1frpói2gpóre2pó2röpós3spóta2pótü22póünpó2zepö2kapö2kápö2kupö2kú2pöntpö2ra3pörgpö2ropö2rúp1ötlpö2vepÅ‘a2npőá2gpÅ‘1blpÅ‘e2rpőé2hpőé2lpÅ‘1klpÅ‘1plpÅ‘1prp1Å‘rjp1Å‘rlp1Å‘rspÅ‘1szppai2ppa2jppa1spp2hópp1ígpp1klpp1önpp1övpp1spppví22pretp2répp2rofp2rogp2rojps2pips1prps2ráps2tips2tops2tupsz3spta2dpt1klpt2répua2dpue2l2puká2punopuo2rpu1prpu2sípu2söpu2sÅ‘puss2pust2pu2süpú2szpú2tépü2gepü2gypü2kü2pülepü2repü2tépü2vepü2zepű2zÅ‘pw2hipy2bapy2bópy2dopy2hopy2japy2jápy2kapy2képy2kipy2kopy2mapy2napy2nápy2rapy2rópy2tópy2vapy2vápzÅ‘a2pzÅ‘e2pzőé2qu2aequ2atqu2erqu2ezqu2ébqu2iequ2ijqu2ilqu2inqu2isqu2odraa2d2radmrae2rraé2rra1flrai2o2ralkram1bra2möra2mÅ‘ra2müra2óara2óára2ófra2ómra2óp2rapprast22raty2raumrau2nraü2traü2z2ravúra2xüra1yera1yérá2cörá2cúrá2cü2rágírá2güráí2rrá2jürá2lírá2lürá2mörá2nírá2nü2rápo2ráru2rárúrá2sÅ‘rást2rá2tírátú2rb2lúrb2rirb2rorb2rurca1prc1frrc1grrc3hurci2drc1kvrc1ónrc1óvrc1Å‘rrc1plrc1prrcs1prcs1src3szrc1trrc1ügrc1üvrc1üzrc1űzrc3zórc3zsrc3zurc3zúrda1prd1blrd3dzrd1frrd1klrdóa2rd1övrd1prrd1skrd1sprd1strd1ügrd3zord3zórea2drea2jrea2rre2cáre2chre2czre2etre2ew2reffre2gúre2jare2kÅ‘rek1s2relú2relűre2mö2reníre2ofre2óare2ócre2óere2óére2ófre2ólre2óore2óprepö2re2púre2udré2báré2bíré2bü2réfáré2gÅ‘2régtré2kÅ‘réku22rélyré2móré2möré2nörépi2ré2pöré2pürésa2ré2súrévá22révf2révh2révtré2vú2révvrézá2rézó2ré2zörf1álrf1flrfid2rfii2rfik2rfit2rf1klrf1krrf2larf2lorf2lórf2lurf1prrf2rírf1sprf1strge2org2ilrg2larg2lerg2lorg2lórg2ölri2aari2aária1bri2acri2aeri2aéria1fri2ahri2aíri2ajri2amri2aori2aóri2aöri2aÅ‘ri2auri2aúri2aüri2avri2az2ribé2ribürid1dri2duri2ed3rierri1fl2rigirihó22rilórin3nri2om2rioxri2óari2óári2ócri2óeri2ógri2ólri2óori2óü2ripl2rivorixe2ri2xíri2xö2rizarí2gé2ríj_2ríjá2rímárí2morí2mörí2nérí2raríva2rí2virí2vűrí2zarí2zorjet2rka1brke1prkia2rkie2rki2grk1klrk1shrk2vórleí2rleü2rl1grrlóó2rlót2rlÅ‘e2rmaó2rm1clrmi2grm1klrm1skrm1strm1trrm1ügrm1üzrmű1srm1yarna1brnas2rnés2rni2grny1sro2adroa2n2roblr1obsro1flro1frro2görogu2ro2gü3rogyro2hero2höro2is3rojtroke2r2okéro2kÅ‘rokú2ro2küro2lüro2míro2möro2mÅ‘ro2müro2níro2nöro2nÅ‘ro2nüro2omro2os2roperop2srore2rort2ro2rüro2söro2sÅ‘2rotéro2unro2usro1xyro1yaróa2d2róbáróc3cró2czró2dÅ‘ró2dü2rófsrói2gró2mí2rómkró2möró2mü2rónj2rónn2rónr2rónúró2nüróo2króó2r2rótb2róth2rótj2rótk2rótm2rótnró2zúró2zürö2garö2gorö2gó2rökírö2korö2marö2márö2mírö2morö2mórö2mu2römü2röműrö2rerö2rörö2sarö2sárö2sorÅ‘a2nrőát1rÅ‘1blrÅ‘1brrÅ‘2dárÅ‘e2lrÅ‘e2rrÅ‘e2srőé2hrőé2lrőé2rrÅ‘1flrÅ‘1klrÅ‘1kv2rÅ‘ltrÅ‘1plrÅ‘1prr1Å‘rhrÅ‘2rörÅ‘sá2rÅ‘2sÅ‘rÅ‘u2trőü2lrpei2rp2herp2lerp2lérp2lurp2lürré2rrr1flrr1frrró1prr1plrr1prrr1sprry2nrs1blrs1brrs1frrs1glrs1grrsi2drsi2gr1skjrs1klrs2nirs1Å‘rrs1plrsp2rrst2rrsu2rrsu2trsz2mrt1blrt1brrt1clrt1crrt1drrtea2rtei2rte1prt1flrt1frrt1grrtí2zrt1klrt1krrt1kvrtmű1rtó1prt1plrt1prrt1psrt1skrt1slrt1sprt1strtsz2rtu2krty2jrty2srt2zÅ‘ru2acru2czrue2lrue2rru1frru2míru2möru2mÅ‘ru2müru2peru2püru2sÅ‘russ2rust2rúda2rú2durú2dürú1dyrú1grrú2jírú2rorúto22rútsrü2dírü2dürü2harü2larü2lárü2lírü2lórülö2rü2lurü2lúrü2rírü2rürü2terü2térü2törü2tÅ‘rü2vörü2zerü2zérű1grrű1klrű1prrű2rörű1sprv1frrv1klrv1krrv1Å‘srv1prrv1skrv1sprv1strv1trrvü2lry2bery2bóry2bÅ‘ry2hory2nary2nery2rary2rerys2nry2tóry2tÅ‘ry2vary2verzÅ‘a2rzÅ‘e2rzs1s2sabo2sabrsae2r2saga2saggsa2gÅ‘3sah_sa2ig2saja2salf2salms2and2sanesa3nösaó2r2sapp2sapu2sarm2sarzsase23sastsa2sú2satysa2ul2sautsa2uv3sav_sa2vÅ‘sa2vüsa2xisá2bösá2büsá2gísá2gÅ‘ság1ssá2güsá2gűsáka2sá2küs1álc3sámásánt2sá2nüsá2rísá2rösá2rÅ‘sárt2sárú2sá2rüsá2sósá2sösá2sÅ‘2sáta2sáté2sáth2sáti2sátj2sátk2sáts2sátt2sátu2sátv3sáv_3sávb3sávjsá2vö3sávr3sávú3sávvsbeá2sb2losb2lúsb2rasb2risb2rosb2róscar2sc2risdai2sdeá2sdes2sd2rasd2rásd2rosd2rusea2dsea2lsea2nseá2lseá2rsebá2se2böseb1pseb1sse2búsee2lsee2n2seff3segg3segísehü2seí2r2selb2self2selr2selzs1enzseó2rser1kse2róser1ssert2seü2tse1yese1yése1yis1ezrség3gsé2gí3ségkségo2ség1ssé2gusé2gú3ségüs1éjs2séllsé2lű2sély3sémásé2mu2sérb2sérc2sérmsé3ró2sérr2sétksétÅ‘22sétr2sétt2sétv2sévhsf2lesf2losf2lósf2lusf2rasf2rásf2resf2risf2rísf2rosf2rösga1bsga1psge2osg2lesg2lósg2nósg2rásg2risg2rós2hopsi2acsia2dsi2aési3aksia2l2sidési2dusi2egsie2lsi2ensi2eu2siga2sigá2sige2siha3simí2simp2sind2sinf2sinj2sinvsi2óasi2óási2ócsi2óesi2ógsi2óosi2ópsi2óú3sipís1irg2siro2sirtsis3ssist23sitysiú2t3siví2sizésí2gésí2jasí2jusíke2sí2kísí2küsína2sí2nö2sínssí2rísí2rösí1spsí1stsí1trsí2vásí2vésí2vűsí2zas1ízr2sízüskao2skat2skau2skiá2skie2sk2jösk2lask2lisk2lísk2losk2lósk2luskó1psk2rísk2rusk2vask2visk2vósky1is2lágsleí2sléi2sli2dslÅ‘s2s2lussmaó2smas2s1objso2díso2döso2dÅ‘so2dúso2düso2kí2sokl2sokmso2küso2mísom1pso2múso2mü2sond2sonó2sonvso2órso2óss1opcso2röso2rÅ‘so2rüso2rű2soszso2ulso2urso2veso2xisóá2gsóá2rsói2gsóí2vsó2kósómű1só2nisóó2rsó1szsö2bűsö2gasö2gásög3gsö2gosö2gűsö2kasö2kús1ölysö2nasö2násö2nosö2nú3sör_sö2rasö2rá3sörb2sörd3sörksö2rosö2rósör1ssö2ru2sörvs1ösvs1ösz2söves1övvsÅ‘a2csÅ‘a2lsÅ‘a2nsÅ‘1blsÅ‘2dásÅ‘e2lsÅ‘e2rsÅ‘e2ssÅ‘1grsÅ‘1klsÅ‘1plsÅ‘1pnsÅ‘1prs1Å‘rzsÅ‘sü2s2pájsp2lusp2nesp2rasp2szsrau2ss2koss2láss2póss3szss2toss2tússzt2sta3ust1brst1drste2aste2ust1flst1frst1grsti2gs2tírst1krst1kvstÅ‘a2stÅ‘e2st1pfst1plst1prst1scst1stst1szst1útsuá2rsubi1s1udm3suhi2sujjsu2ke3summsu2nosupe22sura2surn2sutó2sutusúdi2súi2ms1újh3súly2súr_2súrb2súré2súrh2súri2súrk3súrl2súrn2súrp2súrr2súrtsú2só2súsz2sútés1úth2sútis1útn2sútosútü2sü2dísü2düsü2küsü2násüne2sü2rí2süst2sütksü2zesü2zésű1pr3sűrísű2zÅ‘sven1s2vunsw2hisy2bÅ‘sy1igszaa2szaé23szax2szápsz1blsz1brsz1cl2szehszeo2sz1flsz1frsz1gl2szio3szof3szovszÅ‘a2szőé22szÅ‘zsz1plsz3sész3shsz3slsz3sósz3süsz3szszu2bszuc12szud2szuh2szúg2szúj2szús2szúz3szűksz3zstaa2dtaa2ltaát1ta1clt1adjt1adl2tadót1adst1advtae2ltae2rtaé2r2tafítai2zta2jéta2lüta2lűta2müta2nüta2nűtao2ltaó2r2tapp2tasc2tasftast22tasvta1sytaü2zta1wh2táb_2tábé2tábj2tábk2tábntá2bö2tábrtá2bütá2fatá2fá2tág_2tágb2tágg2tágj2tágn2tágrtá2hítá2jítá2jÅ‘tále2tá2lötá2lütá2mítá2nítá2nötá2nütá2nű2tánztápá2tá2pÅ‘tá2pütá2rítá2rötá2rÅ‘tá2rütá2rűtá2sótá2sötá2sÅ‘tás3stást2tá2sűtá2vítá2vötá2vÅ‘tá2vütbeá2tb2latb2letb2litb2lotb2lútb2ratb2retb2rotb2rótb2rutca1ktca1stc2lutc2retd2ratd2rátd2retd2rotd2rótd2rute2aate2aáte2abte2acte2aete2aéte2agte2ahteai2te2aíte2ajte2aote2aöte2aÅ‘teas2te2aúte2aüte2avte2azte2díte2gáteg3gte2gútei2gte2jíte2jote2jÅ‘te2júte2kíte2lúte2nöte2núte2octe2ofteo2s2teppte2rÅ‘tert2tesp2té2cÅ‘2tég_2tégb2tégé2tégg2tégj2tégn2tégr2tégttégü2tékó2té2kÅ‘téla2t2éláté2líté2lótélu2té2météna2té2rötésa2té2sóté2sutétó22tévh2tévk2tévtté2vúté2zstf2jotf2latf2letf2litf2lotf2lótf2ratf2rátf2retf2ritf2rítf2rotf2rötf2rutg2lotg2lótg2netg2ratg2rátg2ritg2rótg2rutg2rüth1scti2aati2aeti2aéti2afti2ahti2ajti2amti2aüti2avtie2ntié2bti1flti3kitin3nti2nöti2nűti2oltio2xti2xatí2gétí2jatí2játí2jútí2latí2rÅ‘tí2rütívi2tí2vötí2vÅ‘tív1stí2zatí2zátízi2tí2zí2tízltí2zötí2zutkiá2tkie2tkié2tk2latk2litk2lítk2lótk2lutk2ratk2rátk2rítk2rutk2vatk2vitk2vótleí2tleü2tma1kto2díto2ilto2kíto2kÅ‘tok1sto2küto2kűtom1bto2míto2mötom1s2tomúto2müto2műto2nöto2nÅ‘tont2to2nüto2nű2topcto2pütord2tore2toró2to2röto2rÅ‘tors2tort2to2rüto1ryto2süto2uttova1to1yotóá2rtóát1tó1bltó1cltó1fltó1gltói2gtóí2vtóo2któó2rtö2dítö2do2tödütö2katö2kátö2kítö2kutö2natö2nátö2notön1stö2nutö2nútÅ‘a2ctÅ‘a2ltőá2gtÅ‘1bltÅ‘1brtÅ‘e2rtőé2ltÅ‘1fltÅ‘1grtőí2ttőí2vtÅ‘1kltÅ‘1kvtÅ‘1pltÅ‘1prtÅ‘1ps2tÅ‘rl2tÅ‘rp2tÅ‘sűtÅ‘sz2tÅ‘1trtőü2ltÅ‘zá2tp2fetp2latp2látp2létp2lutp2ratp2retp2rétp2ritp2rotp2rótp2rutp2sztrat2tréé2trii2tr2ost3römts2chts2káts2kots2lats2láts2lets2lits2máts2mits2nitsói2ts2pats2pets2pits2pots2pótsp2rts2ráts2tets2téts2tits2títs2totst2rts2tuts2túttad2ttaü2tt1krttö2ltt1prtt2sittwe2ttyü2tuá2rtu1ck2tudítu2gatu2gotu2hutu2in2tukátulo2tu2lütu2mítu2mötu2mÅ‘tu2mütu2setu2sÅ‘tuss2tu2sü2tutátu2umtú2jatú2jítú2jotú2jutú2lítú2lötúl1stúlt2tú2lútú2lütú2lűtú2rötú2rütú2tátü2getü2gytü2látü2lítü2lutü2lútü2ma2tüsttü2titü2tötü2vötű2dátűé2htű1grtű1kvtű1pltű1prtű1sptű2zítű2zotű2zútyat2tyau2ty1ívtynk2ty1Å‘sty2pety1prty2saty1sptz3scua2chua2daua2dáua2dóua2esua2gáua2jaua2jáua2laua2láua2nyua2szua2tyua2utua1yáua1yéua1yiua1youa2zouá2gauá2gyuá2pouá2szub1drubi2gub1krub1ölub1ösub1övub1plub1prub1slub1spub1üdub1ügub1üzuc2cöuc2cúuc2cüuc2czuc3háuci1puc2kyuc1prucs1suc3szuc1üguc3záuc3zeudi2oue2béue2dzue2géue2gyue2lÅ‘ue2meue2rÅ‘u2es_u2esbu2eshu2esiu2esku2esnue2sÅ‘u2esru2estu2esuue2teue2veué2geué2géué2kéué2leué2píué2püué2teuf2riuf2ruuf2tüuga1pug1águg1elugg2lugi2eugi2tug1írug1klug1ösug1prug1sk2uguiug1ügug1üzug1űruh1emuh1exuh1Å‘ruh1pruh1tru2hu_u2hujuh1üzui2deui2dÅ‘ui2euui2gaui2géui2paui2ráui2zéuí2jauí2juuí2veuí2vű1ujjb1ujjc1ujjd1ujjé1ujjf1ujjg1ujjh1ujjiuj2jí1ujjk1ujjl1ujjm1ujjn1ujjp1ujjr1ujjs1ujjt1ujju1ujjúuj2jü1ujjvuk1bluke2luk1exukós2uk1öbuk1pruk1űrul1blule2iuleí2ule2lulot2ulóó2ulót2ul1ötul1prul1stul1úrul1ütul1űru2lyi2umaé2umaoum1blum1drume2gum1flum1glum1grumia2umig2umit2um1ívum1ízum1klum1krum1kvumna2um1ömum1önum1ösum1ötum1övum1Å‘sum1skum1spum1stum1szumu2rum1ügum1ürum1üsum1ütum1üvum1üzuna1bun2dzun1égung3gu2nodu2notun1pru2nunuo2lauo2liuore2uo2xiu2óbuu2óneu2óréuó2riu2ósou2ószu2óveuö2kouö2köuö2röuö2zöuÅ‘2reuÅ‘2réuÅ‘2riuÅ‘2röuÅ‘2rüupas2upda2up2hiup1üzur2fí1urnáur2neurn2éuro1pur1ölurpi22urulu2rú_us1blus1brus1druse1tus1ezus1frus1grusi2gus1ígusí2rus1klus1kvus1ócus1plus1pnus1prus1ps2uss_us1syusu2sus1üdusü2lus1üzuszü2usz1zuta1putaü22utav2utáb2utáé2utámut1bl1utca1utcáut1fruti2mut1kl2utos2utotut1prut1sput1stut1üguu2möuu2müuu2tauu2táuu2zsuü2gyuü2ríuü2téuü2veuü2zeuv2reuz1íruzki2uzói2uz3szuzü2lúa2daúa2dáúa2dóúa2gyúa2jáúa2laúa2láúa2nyúa2szúa2udúa2vaúá2gaúá2gáúá2giúá2goúá2gyúá2híúá2loúá2poúá2raúá2riúá2ru2úbab2úbarúb2lo2úbódúb2riúb2roúc3heúc3hoúc1pr2úcsa2úcse2úcso2úcsóúcs1púcs1súcs1túda2dúd1ágúd1álúde2lúdé2túdi2gúd1prúd2ráúd2roúd1üvúdy1iúdy2súd3záúe2béúe2géúe2gyúe2laúe2leúe2loúe2löúe2lőúe2meúe2piúe2reúe2réúe2rőúe2rűúe2szúe2taúe2teúe2veúe2vőúé2heúé2leúé2lőúé2pí2úér_úé2reúé2ri2úérzúé2teúé2veúf2löúf2ráúf2riúf2ríúf2roúg1elúgós2úg2ráúgyi2úi2dőúi2gaúi2gé2úillúi2mi2úing2úintúi2paúi2rá2úisk2úism2úistúi2taúí2ráúí2veúí2viúí2vüúj1esúj1ezúj1orúj1plújra11újsáúj1udú2jul2úkab2úkap2úkarúke2lúke2súke2t2úkés2úkézúkia22úkinúk2lu2úkol2úkom2úkosúkö2lúk1prúkü2lúla2núl1brúle2lúl1enúl1exú3lé_úlé2gúl1frúl1glúl1ígúl1kvúlo2kúl1öbúl1ölúl1örúl1skúl1smúl1spúlsz2últi2úl2tíúl1úsúl1ügúl1ülúl1ünúl1ürúl1ütúl1üvúl1üzúl1űzú2lyőúly1s2úmac2úmad2úmag2úmaj2úmar2úmoz2únac2únapúnau2úo2koúo2veúó2raúó2ráúó2sáúó2voúö2leúö2léúö2lőúö2röúö2veúő2röúp1egúpe2lúp1esúp2laúp2léúp2ríúp2ro2úrab2úrajúr1brúr1ezú2rék2úrésú2rieúri2gú2risúr1önúr1ötúr1Å‘súr1prúr1snúsa2núsa2r2úsátús1drús1exús1frúsi2gús1klús1kvús1ösús1Å‘rús2peús1prús1ügús1ünús1üz2úsze2úszé2úszí2úszöúsz1p2úszüút1blút1efú2téhú2ténút1grút1idútie2ú2tiéúti2gút1ígút1íjút1ívút1op2útorút1ösútÅ‘2rút1plút1prút1stútu2r1útvoúu2noúu2raúü2gyúü2léúü2reúü2teúü2veúü2vöúü2zeúű2zÅ‘2úválúv2árúzae2úzaé2úzak2úzót22úzse2úzsiúz3szüa2jáüa2laüá2gaüá2goüá2guüá2raüá2szüb2loü2desüd1ízüdőé2üd2vo1üdvöüd2vőüd2vuüd2vúüe2béüe2geüe2géüe2leüe2meüé2keüé2píüf2roüge3lüg2raü3gyíüh1afüh1atüh1ásüh1orüh1Å‘süi2géüi2koüí2ráüka2pük2káükke2ükko2ül1abül1agül1ajül1atül1auül1álül1br2ülekül1früli2gül1ígül1omül1opül1orülÅ‘e2ülÅ‘t2ül1slül1spül1stül1udül1úsülü2lüm1flüm1frümi2güm1klüm1krüm1orüm1osüm1Å‘rüm1trüm1újün1álün1idüó2ráüő2reüp2riüp2roü2römürtü2üss1süssü2üs2tíüs2túüstű2üszi2üt1abüt1aj1ütköüt2ziüu2taűa2daűa2dóűa2gyűa2kaűa2laűa2loűa2naűa2nyűa2orűa2paűa2páűa2raűa2ráűa2toűa2utűa2vaűa2xiűa2zoűá2béűá2gaűá2gáűá2gyűá2híűá2jeűá2loűá2poűá2raűá2riűá2roűá2ruűá2síűá2téűá2tíűb2loűb2róűd1álűd2roűd1skűe2csűe2geűe2géűe2gyűe2laűe2leűe2léűe2lőűe2lüűe2meűe2piűe2poűe2reűe2rőűe2seűe2séűe2sőűe2teűe2tiűe2véűe2vőűé2leűé2léűé2píűé2teűf2loűf2raűf2riűf2roűg1Å‘sűgÅ‘2zűg2raűg2ráűi2doűi2gaűi2géűi2máűi2miűi2paűi2ráűi2roűi2szűi2taűi2zéűi2zoűí2ráűí2riűí2róűí2téűí2veűí2züűí2zűűkia2űk2laűk2liűk2líűk2loűk2vaűn1alűn1arűn1álűni2gűnme2űn3nyűn1olűn1osűn1prűn1űzűo2dúűo2káűo2koűo2laűo2ráűo2roűó2ceűó2raűó2ráűó2riűö2lőűö2röűö2veűö2zöűő2röűp2laűp2lüűp2neűp2réűp2riűp2ríűp2roűp2róűr1adűr1auűr1ábűr1álűr1ásűr1ázűre2nűr1exűr1épűr1flűr1idűri2gűr1orűr1otűr1ónűr1örűr1plűr1prűr1ujűr1unűr1útűr1ügűr1üzűs1álűs2peűs2piűs2poűsp2rűs2ráűs3szűst2rűsz2kűsz2tűtÅ‘a2űtÅ‘e2űt2riűu2gaűu2raűu2szűu2taűu2táűu2tuűú2riűú2szűú2tiűú2toűü2gyűü2léűü2ríűü2teűü2téűü2töűü2veűü2vöűü2zeűű2zőűz1akűze2sűz1frűz1glűzi2gűz1ínűz1írűz1klűz1krű3zoműz1onűz1opűz1orűz1osűzÅ‘a2űzÅ‘e2űz3saűz3süűz3szűz1úrűz1útűz3zsvaa2dvaát1v1absva2dűvaé2rvag1gva2gúva2jíva2jöva2jü2vangvan3nva2nóva2ríva2rÅ‘vars2va2rűva2sÅ‘vast2va2sűvatÅ‘2vatt2vau2n2vábrváde2vádé2vá2dövá2düvá2gúvá2lúvá2lüváma2vá2mívá2mövá2mÅ‘vámu2vá2müvá2nüvá2povárd2vá2rívá2rövá2rÅ‘várs2várú2vá2rüvásó2vást2vá2sűváta2vá2zívá2zövá2zÅ‘vá2züvb2lovb2ravd2rávea2gvea2lvea2nvea2rveá2l2veceve1clvegg2ve2gíve2gú2velave2növeó2rve2örve2peve2róve2rövest2véá2gvé2dávé2dövé2dúvé2dzvéga2vég3gvé2gövé2gúvé2lívé2lúvé2lűvér1svéru2vé2sóvé3vavf2ravf2revf2rivf2rovge2ovg2ravg2rávhez1vi2aavi2abvi2acvi2aévi2agvia2pvi2dzvi2ewvika2vi2má2vind2vipavisa2vi2sövit2a2vitnvi2zúvídi2ví2geví2nyví2záví2zíví2zöví2zúvízü2víz3zvkiá2vk2livk2lóvk2luvk2rivk2rívk2róvleí2vleü2vo2ilvo2jivo2kívome2vo2odvo2pevo2süvo2ucvo2vávo2xivóa2kvóá2gvóá2rvóó2rvó2sóvó2sövó2sÅ‘vós3svö2bövö2vevö2vévö2zsvÅ‘a2nvőá2gvÅ‘e2lvÅ‘e2rvőé2jvőé2nvÅ‘1flvÅ‘1klvÅ‘o2lvÅ‘1plvÅ‘1prv1Å‘rmvőü2lvÅ‘2zivp2lavp2ravp2revp2révp2rivp2rovp2róvp2szvs2kávs2kivs2kovs2lávs2pevs2tavs2tivs2tívs2tovst2rvs2túvsz2pvt2ravt2révt2rivt2rovu2bovu2mövu2ravu2ruvu2táv1utcvú1frv1újdv1újsvú2revúré2vú2röv1útnvü2gyvü2küvü2lávü1prvü2rívü1stvü2tevü2tévü2zévű2zÅ‘wa2iiwa2lewa2rewa1yewa1yéwe2büwe2edwe2ekwe2igwe2iswe2lewe2örwhi2twi2chwi2czwo2odwri2twsto2xa2dáxaé2dxa1flxa2naxa2rixa2vixá2gyxb2laxb2loxb2raxd2róxé2píxf2rexha2uxia2nxi2av2xidá2xidé2xidl2xidmxi2dö2xids2xidu2xidvxi2el2xilcxina2xine2xi2nöxi2onxi2ócxi2óexi2ógxi2óoxi2óöxi2ópxise2xis1pxis3sxí2jaxí2jáxí2joxí2juxí2róxo2pexö2déxö2röxö2zöxÅ‘2séxp2laxp2rixs2káxs2pexs2taxst2rxusi2xus3sxust2xusú2xu2süxu2taxü2léxü2vexü2zeyaa2dy1absyae2ryae2tyaé2ry1affya2gíya2gÅ‘yag1sy1ajky1ajtya2lüya2lűya2möya2mÅ‘ya2müy1angyaó2ry1appya1slyast2yaü2tyaü2zy1ábryá2gayá2gáyá2géyá2giyá2goyá2guyá2gúyá2gyyá2jÅ‘yáka2yá2küyá2lüyáma2yámi2yá2müyán3nyá2nöyánt2yá2nüyáró2yá2röyá2rÅ‘yá2rüyá2seyá2söy1átby1átfy1áthy1átky1átmy1átny1átpy1átry1átsy1átty1átvybeá2yb2layb2leyb2léyb2liyb2loyb2lúyb2rayb2riyb2royb2róyc2viyd2beyd2niyd2royd2róyea2vyeá2rye1blyee2sy1effyega2ye2gíye2gúyei2gy1ejty1elcyemi2y1enzye2sáy1etnyé2büy1égby1égty1éhsy1éj_y1éjby1éjjy1éjsy1éjtyé2kÅ‘yél3lyéná2yé2noyé2píyé2püyéra2yéró2yéru2y1étly1év_y1évby1évfy1évhy1évky1évmy1évny1évry1évsy1évty1évvyfas2yf1glyf2layf2leyf2liyf2loyf2lóyf2riyf2ríyf2röyg2leyg2lóygót2yg2rayg2ráyg2riyg2róyg2ruyg2rüy1igmy1ihly1impy1incy1indy1infy1injy1insy1invy1irry1irty1ishy1ismy1ispy1isty1izgy1izmyí2géyí2jayí2jáyí2juyí2kayí2káyí2keyí2kíyí2layí2líyí2löyí2rÅ‘yí2váyí2veyí2véyí2vóyí2vüyí2vűyí2züyí2zűy2jévykai2yk2bóyk2hoykiá2ykie2yk2kayk2layk2leyk2liyk2líyk2lóyk2luyk2náyk2rayk2ríyk2royk2róyk2vóylei2yleí2ylóá2ylót2ym2mayn2kaynk2ryo2bey1objyo2geyog3gyogi2yo2gíyo2göyo2güyo2gűyoka2y1okmyo2lúyo2lüyo2míyo2möyo2mÅ‘yo2níyon3nyo2nöyont2y1opty1ordyo2seyos3syo2utyo2veyo2xiyóá2gyóá2ryóí2vyóo2kyóó2ryós3syö2böyö2bűyö2csyö2kayö2káyö2kíyö2koyö2kóyö2kuy1ömly1önky1önzyö2ray1ördyö2royö2ruyö2soy1ösvy1ötly1ötpy1ötty1ötvyö2veyö2véyö2viyÅ‘a2nyÅ‘1blyÅ‘e2lyÅ‘e2ryÅ‘1fryÅ‘1pryÅ‘2ray1Å‘rgy1Å‘rly1Å‘rpy1Å‘rzyÅ‘sz2yp2layp2leyp2léyp2luyp2rayp2reyp2réyp2riyp2ríyp2royp2róy2prÅ‘yp2ruyp2szyrea2yreu2ys2chys2hoys2kays2káys2kiys2lays2láys2leys2luys2miys2nays2niys2peys2piys2poys2póysp2rys2rays2ráys2rÅ‘ys2says2sáys2seys2tüyta2cyt2röy1udvyu2gey1ugryu2gyyu2huy1ujjyu2kÅ‘yu2kűy1undy1urnyus3sy1utcyú1blyú1bryú1gry1újdy1újry1újsyú2kóyú2lüyú2lűyú1ply1úrby1úrky1úrryú2süy1útby1úthyúti2y1útjy1útky1útmy1útny1útpy1útry1útsy1útty1útvyü2düyü2láy1ünnyü2ríy1ütky1üzlyű1blyűé2nyű1klyű1ply1űrby1űrryű2sáyűs1syvai2yv1bryv1dryv1fryv1gryv1klyv1kryv1Å‘ryv1pryv1skyv1slyv1styv1tryv1újyv1útyzÅ‘a2yz2rí2zabsza2ceza2cíza1fl2zagizai2z3zaj_3zajf3zajj3zajú2zakczakü2za2míza2mü2zangzao2kzao2szaó2hzaó2vza2pí2zarc2zarm2zarzzatt22zatyzaü2tzaü2zz1az_z1azhzá2dezá2güzáí2rzá2jízá2jÅ‘zá2jüzá2jűzá2lüzá2mózá2mözá2mÅ‘zá2müzá2műzán3nzá2nüzány22zárfzá2rÅ‘zárs2zá2rüzá2sü2zátbz1átd2záth2zátszázó2zá2zözbeá2zb2lezb2lozb2lúzb2rizb2rózb2rúzc2luzdas2zd2rizea2dzea2gzea2kzea2lzea2szeá2rzeá2z2zebez1ebfz1ebhz1ebk2zecezee2sz1effze1frze2gúze2iazei2gzei2szeí2rze2kÅ‘2zema2zemk2zeml2zemsze2mú2zemü2zemv2zenzzeo2kzeo2mzeö2r2zeprzer1s2zerűzesp2ze2tyzeu2gzeü2tze2xúz1ezrzé2dózédu2zé2dúzé2fáz1ég_z1égbzé2géz1égnz1égrz1égt2zéidz1éj_z1éjszéla22zélézé2lí2zélm2zéltzé2lú2zémezéni2zé2nízé2nözé2nÅ‘zént2zépo2zé2pózé2pözép1szé2púzé2rözér1szé2rúzé2sózés3s2zétkzé2tú2zétvz1évbz1évf2zéviz1évkz1évrz1évsz1évtzf2lazf2lezf2lizf2lozf2lózf2razf2rázf2rezf2rizf2rízf2rozf2rözg2lazg2lózg2rózhán2zi2aazi2aázi2aczi2adzi2aezi2aézi2agzi2ahzi2aízi2ajzi2alzi2amzi2aozi2aözi2arzi2atzi2aúzi2aüzi2av2zicczi1chzie2lzie2mzi2éazi2éázi2épzi2éüz1ifjz2ig_zim1bzi2mözi2nízin3nzi2núzi2olzi2otzi2óazi2óázi2óczi2óezi2ógzi2óízi2ólzi2óozi2óúzi2óüzi2óű2zirá2ziro2zirtzi2sözi2sÅ‘ziss2zist2zitó2ziú2r2zizmzí2gézí2jezí2jözí2jüzí2nízíno2zí2nözí2nuzí2núzí2vúzí2zezí2züzí2zűzk1blzk1drzkia2zkiá2zkie2zki2gzk2lazk2lózk1przk2rázk2rízk2vózky2bzky2hzky2jzky2kzky2nzky2rzky2tzky2vzlei2zleí2zlóó2zmas2zmeá2znie2zni2óz2nobznót2z1objzo2eszoki2zo2lözo2lü2zome2zomé2zomf2zomgzomi22zoml2zomzzone2zo2nözo2nüzo2olzo2omzo2rözo2rü2zote2zotózo2vizo2xizóa2dzóá2gzóá2rzó1blzó1clzó1flzó1glzói2gzóí2vzója12zól_z1ólmzóó2rzó1slzö2bázö2bozö2bóz1öcczö2dézö2dúzö2gazö2gázög3gzö2gízö2gozögö2zö2guzö2gy2zönb2zöne2zöné2zöni2zönl2zönö2zönr2zöntz1ösvzö2tez1öv_zö2zözÅ‘a2czÅ‘a2lzőá2gzÅ‘1blzÅ‘1brzőé2lzÅ‘1flzÅ‘1grzÅ‘1klzÅ‘mű1zÅ‘1plzÅ‘1pr2zÅ‘rk2zÅ‘rl2zÅ‘rm2zÅ‘rü2zÅ‘rzzÅ‘sz2zÅ‘1trzőü2lzp2fezp2lazp2lézp2lozsag2zs1blzs1brzs1drz3sej2zsezz3ség2zsél2zsépzs1flzs1frzs1grzs1íjzs1kl3zsom2zsorzsp2rzs1stzs3szzst2r3zsul2zsumzsu1s2zsúl2zsügzs1üs2zsützs1whz3szézsz2fz3sziz3szízsz2lz3szoz3szóz3szözsz2pzs3zsz3szüz3szűzt1blzt1drzt1flzt1frzt1grzti2pzt1klzt1krzt1kvz2toiztóá2ztö2lztÅ‘a2zt1plzt1przt1pszt1slzt1snzt1spzt1stzt1szz2tye3zubbzu2bu3zug_3zugbzu2gézu2gí3zugozu2gözu2güzu2gű3zuhazule2zu2lúzume2zu2mízu2mÅ‘zu2mü2zundzu2ne2zunizu2rúzu2sÅ‘zuss2zust2zú1drzú1fl3zúgáz1újdz1újsz1úthz1útiz1útjz1útnz1úttzú2tüz1útv3zúzá3zúzd3zúzózü2düzü2ni2zünnzü2ríz1ütkzü2vezü2vöz1üzlzű2razű2rázű2rózű2ruzű2zezű2zozű2zszű2zúzy1akz1yarzy2bezy2jezy2nezy2nézy2rezy2rÅ‘zy2sazy2sozy2tÅ‘zy2vezzát2zz2lezz1lyz3zsiz3zsíz3zso", diff --git a/resources/viewer/hyphenate/patterns/hy.js b/resources/viewer/hyphenate/patterns/hy.js new file mode 100644 index 0000000000..1afae322b7 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/hy.js @@ -0,0 +1,13 @@ +// For questions about the armenian hyphenation patterns +// ask Sahak Petrosyan (sahak at mit dot edu) +Hyphenator.languages['hy'] = { + leftmin : 1, + rightmin : 2, + shortestPattern : 2, + longestPattern : 3, + specialChars : unescape("Õ¡Õ¢Õ£Õ¤Õ¥Õ¦Õ§Õ¨Õ©ÕªÕ«Õ¬Õ­Õ®Õ¯Õ°Õ±Õ²Õ³Õ´ÕµÕ¶Õ·Õ¸Õ¹ÕºÕ»Õ¼Õ½Õ¾Õ¿Ö€ÖÖ‚ÖƒÖ„Ö‡Ö…Ö†Ô±Ô²Ô³Ô´ÔµÔ¶Ô·Ô¸Ô¹ÔºÔ»Ô¼Ô½Ô¾Ô¿Õ€ÕÕ‚ÕƒÕ„Õ…Õ†Õ‡ÕˆÕ‰ÕŠÕ‹ÕŒÕÕŽÕÕÕ‘Õ’Õ“Õ”Õ•Õ–"), + patterns : { + 3 : "Ö‡1Õ¡Ö‡1Õ¥Ö‡1Õ§Ö‡1Õ¨Ö‡1Õ«Ö‡1Õ¸Ö‡1Ö…", + 4 : "Õ¡1Õ¢Õ¡Õ¡1Õ¢Õ¥Õ¡1Õ¢Õ§Õ¡1Õ¢Õ¨Õ¡1Õ¢Õ«Õ¡1Õ¢Õ¸Õ¡1Õ¢Ö…Õ¡1Õ£Õ¡Õ¡1Õ£Õ¥Õ¡1Õ£Õ§Õ¡1Õ£Õ¨Õ¡1Õ£Õ«Õ¡1Õ£Õ¸Õ¡1Õ£Ö…Õ¡1Õ¤Õ¡Õ¡1Õ¤Õ¥Õ¡1Õ¤Õ§Õ¡1Õ¤Õ¨Õ¡1Õ¤Õ«Õ¡1Õ¤Õ¸Õ¡1Õ¤Ö…Õ¡1Õ¦Õ¡Õ¡1Õ¦Õ¥Õ¡1Õ¦Õ§Õ¡1Õ¦Õ¨Õ¡1Õ¦Õ«Õ¡1Õ¦Õ¸Õ¡1Õ¦Ö…Õ¡1Õ©Õ¡Õ¡1Õ©Õ¥Õ¡1Õ©Õ§Õ¡1Õ©Õ¨Õ¡1Õ©Õ«Õ¡1Õ©Õ¸Õ¡1Õ©Ö…Õ¡1ÕªÕ¡Õ¡1ÕªÕ¥Õ¡1ÕªÕ§Õ¡1ÕªÕ¨Õ¡1ÕªÕ«Õ¡1ÕªÕ¸Õ¡1ÕªÖ…Õ¡1Õ¬Õ¡Õ¡1Õ¬Õ¥Õ¡1Õ¬Õ§Õ¡1Õ¬Õ¨Õ¡1Õ¬Õ«Õ¡1Õ¬Õ¸Õ¡1Õ¬Ö…Õ¡1Õ­Õ¡Õ¡1Õ­Õ¥Õ¡1Õ­Õ§Õ¡1Õ­Õ¨Õ¡1Õ­Õ«Õ¡1Õ­Õ¸Õ¡1Õ­Ö…Õ¡1Õ®Õ¡Õ¡1Õ®Õ¥Õ¡1Õ®Õ§Õ¡1Õ®Õ¨Õ¡1Õ®Õ«Õ¡1Õ®Õ¸Õ¡1Õ®Ö…Õ¡1Õ¯Õ¡Õ¡1Õ¯Õ¥Õ¡1Õ¯Õ§Õ¡1Õ¯Õ¨Õ¡1Õ¯Õ«Õ¡1Õ¯Õ¸Õ¡1Õ¯Ö…Õ¡1Õ°Õ¡Õ¡1Õ°Õ¥Õ¡1Õ°Õ§Õ¡1Õ°Õ¨Õ¡1Õ°Õ«Õ¡1Õ°Õ¸Õ¡1Õ°Ö…Õ¡1Õ±Õ¡Õ¡1Õ±Õ¥Õ¡1Õ±Õ§Õ¡1Õ±Õ¨Õ¡1Õ±Õ«Õ¡1Õ±Õ¸Õ¡1Õ±Ö…Õ¡1Õ²Õ¡Õ¡1Õ²Õ¥Õ¡1Õ²Õ§Õ¡1Õ²Õ¨Õ¡1Õ²Õ«Õ¡1Õ²Õ¸Õ¡1Õ²Ö…Õ¡1Õ³Õ¡Õ¡1Õ³Õ¥Õ¡1Õ³Õ§Õ¡1Õ³Õ¨Õ¡1Õ³Õ«Õ¡1Õ³Õ¸Õ¡1Õ³Ö…Õ¡1Õ´Õ¡Õ¡1Õ´Õ¥Õ¡1Õ´Õ§Õ¡1Õ´Õ¨Õ¡1Õ´Õ«Õ¡1Õ´Õ¸Õ¡1Õ´Ö…Õ¡1ÕµÕ¡Õ¡1ÕµÕ¥Õ¡1ÕµÕ§Õ¡1ÕµÕ¨Õ¡1ÕµÕ«Õ¡1ÕµÕ¸Õ¡1ÕµÖ…Õ¡1Õ¶Õ¡Õ¡1Õ¶Õ¥Õ¡1Õ¶Õ§Õ¡1Õ¶Õ¨Õ¡1Õ¶Õ«Õ¡1Õ¶Õ¸Õ¡1Õ¶Ö…Õ¡1Õ·Õ¡Õ¡1Õ·Õ¥Õ¡1Õ·Õ§Õ¡1Õ·Õ¨Õ¡1Õ·Õ«Õ¡1Õ·Õ¸Õ¡1Õ·Ö…Õ¡1Õ¹Õ¡Õ¡1Õ¹Õ¥Õ¡1Õ¹Õ§Õ¡1Õ¹Õ¨Õ¡1Õ¹Õ«Õ¡1Õ¹Õ¸Õ¡1Õ¹Ö…Õ¡1ÕºÕ¡Õ¡1ÕºÕ¥Õ¡1ÕºÕ§Õ¡1ÕºÕ¨Õ¡1ÕºÕ«Õ¡1ÕºÕ¸Õ¡1ÕºÖ…Õ¡1Õ»Õ¡Õ¡1Õ»Õ¥Õ¡1Õ»Õ§Õ¡1Õ»Õ¨Õ¡1Õ»Õ«Õ¡1Õ»Õ¸Õ¡1Õ»Ö…Õ¡1Õ¼Õ¡Õ¡1Õ¼Õ¥Õ¡1Õ¼Õ§Õ¡1Õ¼Õ¨Õ¡1Õ¼Õ«Õ¡1Õ¼Õ¸Õ¡1Õ¼Ö…Õ¡1Õ½Õ¡Õ¡1Õ½Õ¥Õ¡1Õ½Õ§Õ¡1Õ½Õ¨Õ¡1Õ½Õ«Õ¡1Õ½Õ¸Õ¡1Õ½Ö…Õ¡1Õ¾Õ¡Õ¡1Õ¾Õ¥Õ¡1Õ¾Õ§Õ¡1Õ¾Õ¨Õ¡1Õ¾Õ«Õ¡1Õ¾Õ¸Õ¡1Õ¾Ö…Õ¡1Õ¿Õ¡Õ¡1Õ¿Õ¥Õ¡1Õ¿Õ§Õ¡1Õ¿Õ¨Õ¡1Õ¿Õ«Õ¡1Õ¿Õ¸Õ¡1Õ¿Ö…Õ¡1Ö€Õ¡Õ¡1Ö€Õ¥Õ¡1Ö€Õ§Õ¡1Ö€Õ¨Õ¡1Ö€Õ«Õ¡1Ö€Õ¸Õ¡1Ö€Ö…Õ¡1ÖÕ¡Õ¡1ÖÕ¥Õ¡1ÖÕ§Õ¡1ÖÕ¨Õ¡1ÖÕ«Õ¡1ÖÕ¸Õ¡1ÖÖ…Õ¡1ÖƒÕ¡Õ¡1ÖƒÕ¥Õ¡1ÖƒÕ§Õ¡1ÖƒÕ¨Õ¡1ÖƒÕ«Õ¡1ÖƒÕ¸Õ¡1ÖƒÖ…Õ¡1Ö„Õ¡Õ¡1Ö„Õ¥Õ¡1Ö„Õ§Õ¡1Ö„Õ¨Õ¡1Ö„Õ«Õ¡1Ö„Õ¸Õ¡1Ö„Ö…Õ¥1Õ¢Õ¡Õ¥1Õ¢Õ¥Õ¥1Õ¢Õ§Õ¥1Õ¢Õ¨Õ¥1Õ¢Õ«Õ¥1Õ¢Õ¸Õ¥1Õ¢Ö…Õ¥1Õ£Õ¡Õ¥1Õ£Õ¥Õ¥1Õ£Õ§Õ¥1Õ£Õ¨Õ¥1Õ£Õ«Õ¥1Õ£Õ¸Õ¥1Õ£Ö…Õ¥1Õ¤Õ¡Õ¥1Õ¤Õ¥Õ¥1Õ¤Õ§Õ¥1Õ¤Õ¨Õ¥1Õ¤Õ«Õ¥1Õ¤Õ¸Õ¥1Õ¤Ö…Õ¥1Õ¦Õ¡Õ¥1Õ¦Õ¥Õ¥1Õ¦Õ§Õ¥1Õ¦Õ¨Õ¥1Õ¦Õ«Õ¥1Õ¦Õ¸Õ¥1Õ¦Ö…Õ¥1Õ©Õ¡Õ¥1Õ©Õ¥Õ¥1Õ©Õ§Õ¥1Õ©Õ¨Õ¥1Õ©Õ«Õ¥1Õ©Õ¸Õ¥1Õ©Ö…Õ¥1ÕªÕ¡Õ¥1ÕªÕ¥Õ¥1ÕªÕ§Õ¥1ÕªÕ¨Õ¥1ÕªÕ«Õ¥1ÕªÕ¸Õ¥1ÕªÖ…Õ¥1Õ¬Õ¡Õ¥1Õ¬Õ¥Õ¥1Õ¬Õ§Õ¥1Õ¬Õ¨Õ¥1Õ¬Õ«Õ¥1Õ¬Õ¸Õ¥1Õ¬Ö…Õ¥1Õ­Õ¡Õ¥1Õ­Õ¥Õ¥1Õ­Õ§Õ¥1Õ­Õ¨Õ¥1Õ­Õ«Õ¥1Õ­Õ¸Õ¥1Õ­Ö…Õ¥1Õ®Õ¡Õ¥1Õ®Õ¥Õ¥1Õ®Õ§Õ¥1Õ®Õ¨Õ¥1Õ®Õ«Õ¥1Õ®Õ¸Õ¥1Õ®Ö…Õ¥1Õ¯Õ¡Õ¥1Õ¯Õ¥Õ¥1Õ¯Õ§Õ¥1Õ¯Õ¨Õ¥1Õ¯Õ«Õ¥1Õ¯Õ¸Õ¥1Õ¯Ö…Õ¥1Õ°Õ¡Õ¥1Õ°Õ¥Õ¥1Õ°Õ§Õ¥1Õ°Õ¨Õ¥1Õ°Õ«Õ¥1Õ°Õ¸Õ¥1Õ°Ö…Õ¥1Õ±Õ¡Õ¥1Õ±Õ¥Õ¥1Õ±Õ§Õ¥1Õ±Õ¨Õ¥1Õ±Õ«Õ¥1Õ±Õ¸Õ¥1Õ±Ö…Õ¥1Õ²Õ¡Õ¥1Õ²Õ¥Õ¥1Õ²Õ§Õ¥1Õ²Õ¨Õ¥1Õ²Õ«Õ¥1Õ²Õ¸Õ¥1Õ²Ö…Õ¥1Õ³Õ¡Õ¥1Õ³Õ¥Õ¥1Õ³Õ§Õ¥1Õ³Õ¨Õ¥1Õ³Õ«Õ¥1Õ³Õ¸Õ¥1Õ³Ö…Õ¥1Õ´Õ¡Õ¥1Õ´Õ¥Õ¥1Õ´Õ§Õ¥1Õ´Õ¨Õ¥1Õ´Õ«Õ¥1Õ´Õ¸Õ¥1Õ´Ö…Õ¥1ÕµÕ¡Õ¥1ÕµÕ¥Õ¥1ÕµÕ§Õ¥1ÕµÕ¨Õ¥1ÕµÕ«Õ¥1ÕµÕ¸Õ¥1ÕµÖ…Õ¥1Õ¶Õ¡Õ¥1Õ¶Õ¥Õ¥1Õ¶Õ§Õ¥1Õ¶Õ¨Õ¥1Õ¶Õ«Õ¥1Õ¶Õ¸Õ¥1Õ¶Ö…Õ¥1Õ·Õ¡Õ¥1Õ·Õ¥Õ¥1Õ·Õ§Õ¥1Õ·Õ¨Õ¥1Õ·Õ«Õ¥1Õ·Õ¸Õ¥1Õ·Ö…Õ¥1Õ¹Õ¡Õ¥1Õ¹Õ¥Õ¥1Õ¹Õ§Õ¥1Õ¹Õ¨Õ¥1Õ¹Õ«Õ¥1Õ¹Õ¸Õ¥1Õ¹Ö…Õ¥1ÕºÕ¡Õ¥1ÕºÕ¥Õ¥1ÕºÕ§Õ¥1ÕºÕ¨Õ¥1ÕºÕ«Õ¥1ÕºÕ¸Õ¥1ÕºÖ…Õ¥1Õ»Õ¡Õ¥1Õ»Õ¥Õ¥1Õ»Õ§Õ¥1Õ»Õ¨Õ¥1Õ»Õ«Õ¥1Õ»Õ¸Õ¥1Õ»Ö…Õ¥1Õ¼Õ¡Õ¥1Õ¼Õ¥Õ¥1Õ¼Õ§Õ¥1Õ¼Õ¨Õ¥1Õ¼Õ«Õ¥1Õ¼Õ¸Õ¥1Õ¼Ö…Õ¥1Õ½Õ¡Õ¥1Õ½Õ¥Õ¥1Õ½Õ§Õ¥1Õ½Õ¨Õ¥1Õ½Õ«Õ¥1Õ½Õ¸Õ¥1Õ½Ö…Õ¥1Õ¾Õ¡Õ¥1Õ¾Õ¥Õ¥1Õ¾Õ§Õ¥1Õ¾Õ¨Õ¥1Õ¾Õ«Õ¥1Õ¾Õ¸Õ¥1Õ¾Ö…Õ¥1Õ¿Õ¡Õ¥1Õ¿Õ¥Õ¥1Õ¿Õ§Õ¥1Õ¿Õ¨Õ¥1Õ¿Õ«Õ¥1Õ¿Õ¸Õ¥1Õ¿Ö…Õ¥1Ö€Õ¡Õ¥1Ö€Õ¥Õ¥1Ö€Õ§Õ¥1Ö€Õ¨Õ¥1Ö€Õ«Õ¥1Ö€Õ¸Õ¥1Ö€Ö…Õ¥1ÖÕ¡Õ¥1ÖÕ¥Õ¥1ÖÕ§Õ¥1ÖÕ¨Õ¥1ÖÕ«Õ¥1ÖÕ¸Õ¥1ÖÖ…Õ¥1ÖƒÕ¡Õ¥1ÖƒÕ¥Õ¥1ÖƒÕ§Õ¥1ÖƒÕ¨Õ¥1ÖƒÕ«Õ¥1ÖƒÕ¸Õ¥1ÖƒÖ…Õ¥1Ö„Õ¡Õ¥1Ö„Õ¥Õ¥1Ö„Õ§Õ¥1Ö„Õ¨Õ¥1Ö„Õ«Õ¥1Ö„Õ¸Õ¥1Ö„Ö…Õ§1Õ¢Õ¡Õ§1Õ¢Õ¥Õ§1Õ¢Õ§Õ§1Õ¢Õ¨Õ§1Õ¢Õ«Õ§1Õ¢Õ¸Õ§1Õ¢Ö…Õ§1Õ£Õ¡Õ§1Õ£Õ¥Õ§1Õ£Õ§Õ§1Õ£Õ¨Õ§1Õ£Õ«Õ§1Õ£Õ¸Õ§1Õ£Ö…Õ§1Õ¤Õ¡Õ§1Õ¤Õ¥Õ§1Õ¤Õ§Õ§1Õ¤Õ¨Õ§1Õ¤Õ«Õ§1Õ¤Õ¸Õ§1Õ¤Ö…Õ§1Õ¦Õ¡Õ§1Õ¦Õ¥Õ§1Õ¦Õ§Õ§1Õ¦Õ¨Õ§1Õ¦Õ«Õ§1Õ¦Õ¸Õ§1Õ¦Ö…Õ§1Õ©Õ¡Õ§1Õ©Õ¥Õ§1Õ©Õ§Õ§1Õ©Õ¨Õ§1Õ©Õ«Õ§1Õ©Õ¸Õ§1Õ©Ö…Õ§1ÕªÕ¡Õ§1ÕªÕ¥Õ§1ÕªÕ§Õ§1ÕªÕ¨Õ§1ÕªÕ«Õ§1ÕªÕ¸Õ§1ÕªÖ…Õ§1Õ¬Õ¡Õ§1Õ¬Õ¥Õ§1Õ¬Õ§Õ§1Õ¬Õ¨Õ§1Õ¬Õ«Õ§1Õ¬Õ¸Õ§1Õ¬Ö…Õ§1Õ­Õ¡Õ§1Õ­Õ¥Õ§1Õ­Õ§Õ§1Õ­Õ¨Õ§1Õ­Õ«Õ§1Õ­Õ¸Õ§1Õ­Ö…Õ§1Õ®Õ¡Õ§1Õ®Õ¥Õ§1Õ®Õ§Õ§1Õ®Õ¨Õ§1Õ®Õ«Õ§1Õ®Õ¸Õ§1Õ®Ö…Õ§1Õ¯Õ¡Õ§1Õ¯Õ¥Õ§1Õ¯Õ§Õ§1Õ¯Õ¨Õ§1Õ¯Õ«Õ§1Õ¯Õ¸Õ§1Õ¯Ö…Õ§1Õ°Õ¡Õ§1Õ°Õ¥Õ§1Õ°Õ§Õ§1Õ°Õ¨Õ§1Õ°Õ«Õ§1Õ°Õ¸Õ§1Õ°Ö…Õ§1Õ±Õ¡Õ§1Õ±Õ¥Õ§1Õ±Õ§Õ§1Õ±Õ¨Õ§1Õ±Õ«Õ§1Õ±Õ¸Õ§1Õ±Ö…Õ§1Õ²Õ¡Õ§1Õ²Õ¥Õ§1Õ²Õ§Õ§1Õ²Õ¨Õ§1Õ²Õ«Õ§1Õ²Õ¸Õ§1Õ²Ö…Õ§1Õ³Õ¡Õ§1Õ³Õ¥Õ§1Õ³Õ§Õ§1Õ³Õ¨Õ§1Õ³Õ«Õ§1Õ³Õ¸Õ§1Õ³Ö…Õ§1Õ´Õ¡Õ§1Õ´Õ¥Õ§1Õ´Õ§Õ§1Õ´Õ¨Õ§1Õ´Õ«Õ§1Õ´Õ¸Õ§1Õ´Ö…Õ§1ÕµÕ¡Õ§1ÕµÕ¥Õ§1ÕµÕ§Õ§1ÕµÕ¨Õ§1ÕµÕ«Õ§1ÕµÕ¸Õ§1ÕµÖ…Õ§1Õ¶Õ¡Õ§1Õ¶Õ¥Õ§1Õ¶Õ§Õ§1Õ¶Õ¨Õ§1Õ¶Õ«Õ§1Õ¶Õ¸Õ§1Õ¶Ö…Õ§1Õ·Õ¡Õ§1Õ·Õ¥Õ§1Õ·Õ§Õ§1Õ·Õ¨Õ§1Õ·Õ«Õ§1Õ·Õ¸Õ§1Õ·Ö…Õ§1Õ¹Õ¡Õ§1Õ¹Õ¥Õ§1Õ¹Õ§Õ§1Õ¹Õ¨Õ§1Õ¹Õ«Õ§1Õ¹Õ¸Õ§1Õ¹Ö…Õ§1ÕºÕ¡Õ§1ÕºÕ¥Õ§1ÕºÕ§Õ§1ÕºÕ¨Õ§1ÕºÕ«Õ§1ÕºÕ¸Õ§1ÕºÖ…Õ§1Õ»Õ¡Õ§1Õ»Õ¥Õ§1Õ»Õ§Õ§1Õ»Õ¨Õ§1Õ»Õ«Õ§1Õ»Õ¸Õ§1Õ»Ö…Õ§1Õ¼Õ¡Õ§1Õ¼Õ¥Õ§1Õ¼Õ§Õ§1Õ¼Õ¨Õ§1Õ¼Õ«Õ§1Õ¼Õ¸Õ§1Õ¼Ö…Õ§1Õ½Õ¡Õ§1Õ½Õ¥Õ§1Õ½Õ§Õ§1Õ½Õ¨Õ§1Õ½Õ«Õ§1Õ½Õ¸Õ§1Õ½Ö…Õ§1Õ¾Õ¡Õ§1Õ¾Õ¥Õ§1Õ¾Õ§Õ§1Õ¾Õ¨Õ§1Õ¾Õ«Õ§1Õ¾Õ¸Õ§1Õ¾Ö…Õ§1Õ¿Õ¡Õ§1Õ¿Õ¥Õ§1Õ¿Õ§Õ§1Õ¿Õ¨Õ§1Õ¿Õ«Õ§1Õ¿Õ¸Õ§1Õ¿Ö…Õ§1Ö€Õ¡Õ§1Ö€Õ¥Õ§1Ö€Õ§Õ§1Ö€Õ¨Õ§1Ö€Õ«Õ§1Ö€Õ¸Õ§1Ö€Ö…Õ§1ÖÕ¡Õ§1ÖÕ¥Õ§1ÖÕ§Õ§1ÖÕ¨Õ§1ÖÕ«Õ§1ÖÕ¸Õ§1ÖÖ…Õ§1ÖƒÕ¡Õ§1ÖƒÕ¥Õ§1ÖƒÕ§Õ§1ÖƒÕ¨Õ§1ÖƒÕ«Õ§1ÖƒÕ¸Õ§1ÖƒÖ…Õ§1Ö„Õ¡Õ§1Ö„Õ¥Õ§1Ö„Õ§Õ§1Ö„Õ¨Õ§1Ö„Õ«Õ§1Ö„Õ¸Õ§1Ö„Ö…Õ¨1Õ¢Õ¡Õ¨1Õ¢Õ¥Õ¨1Õ¢Õ§Õ¨1Õ¢Õ¨Õ¨1Õ¢Õ«Õ¨1Õ¢Õ¸Õ¨1Õ¢Ö…Õ¨1Õ£Õ¡Õ¨1Õ£Õ¥Õ¨1Õ£Õ§Õ¨1Õ£Õ¨Õ¨1Õ£Õ«Õ¨1Õ£Õ¸Õ¨1Õ£Ö…Õ¨1Õ¤Õ¡Õ¨1Õ¤Õ¥Õ¨1Õ¤Õ§Õ¨1Õ¤Õ¨Õ¨1Õ¤Õ«Õ¨1Õ¤Õ¸Õ¨1Õ¤Ö…Õ¨1Õ¦Õ¡Õ¨1Õ¦Õ¥Õ¨1Õ¦Õ§Õ¨1Õ¦Õ¨Õ¨1Õ¦Õ«Õ¨1Õ¦Õ¸Õ¨1Õ¦Ö…Õ¨1Õ©Õ¡Õ¨1Õ©Õ¥Õ¨1Õ©Õ§Õ¨1Õ©Õ¨Õ¨1Õ©Õ«Õ¨1Õ©Õ¸Õ¨1Õ©Ö…Õ¨1ÕªÕ¡Õ¨1ÕªÕ¥Õ¨1ÕªÕ§Õ¨1ÕªÕ¨Õ¨1ÕªÕ«Õ¨1ÕªÕ¸Õ¨1ÕªÖ…Õ¨1Õ¬Õ¡Õ¨1Õ¬Õ¥Õ¨1Õ¬Õ§Õ¨1Õ¬Õ¨Õ¨1Õ¬Õ«Õ¨1Õ¬Õ¸Õ¨1Õ¬Ö…Õ¨1Õ­Õ¡Õ¨1Õ­Õ¥Õ¨1Õ­Õ§Õ¨1Õ­Õ¨Õ¨1Õ­Õ«Õ¨1Õ­Õ¸Õ¨1Õ­Ö…Õ¨1Õ®Õ¡Õ¨1Õ®Õ¥Õ¨1Õ®Õ§Õ¨1Õ®Õ¨Õ¨1Õ®Õ«Õ¨1Õ®Õ¸Õ¨1Õ®Ö…Õ¨1Õ¯Õ¡Õ¨1Õ¯Õ¥Õ¨1Õ¯Õ§Õ¨1Õ¯Õ¨Õ¨1Õ¯Õ«Õ¨1Õ¯Õ¸Õ¨1Õ¯Ö…Õ¨1Õ°Õ¡Õ¨1Õ°Õ¥Õ¨1Õ°Õ§Õ¨1Õ°Õ¨Õ¨1Õ°Õ«Õ¨1Õ°Õ¸Õ¨1Õ°Ö…Õ¨1Õ±Õ¡Õ¨1Õ±Õ¥Õ¨1Õ±Õ§Õ¨1Õ±Õ¨Õ¨1Õ±Õ«Õ¨1Õ±Õ¸Õ¨1Õ±Ö…Õ¨1Õ²Õ¡Õ¨1Õ²Õ¥Õ¨1Õ²Õ§Õ¨1Õ²Õ¨Õ¨1Õ²Õ«Õ¨1Õ²Õ¸Õ¨1Õ²Ö…Õ¨1Õ³Õ¡Õ¨1Õ³Õ¥Õ¨1Õ³Õ§Õ¨1Õ³Õ¨Õ¨1Õ³Õ«Õ¨1Õ³Õ¸Õ¨1Õ³Ö…Õ¨1Õ´Õ¡Õ¨1Õ´Õ¥Õ¨1Õ´Õ§Õ¨1Õ´Õ¨Õ¨1Õ´Õ«Õ¨1Õ´Õ¸Õ¨1Õ´Ö…Õ¨1ÕµÕ¡Õ¨1ÕµÕ¥Õ¨1ÕµÕ§Õ¨1ÕµÕ¨Õ¨1ÕµÕ«Õ¨1ÕµÕ¸Õ¨1ÕµÖ…Õ¨1Õ¶Õ¡Õ¨1Õ¶Õ¥Õ¨1Õ¶Õ§Õ¨1Õ¶Õ¨Õ¨1Õ¶Õ«Õ¨1Õ¶Õ¸Õ¨1Õ¶Ö…Õ¨1Õ·Õ¡Õ¨1Õ·Õ¥Õ¨1Õ·Õ§Õ¨1Õ·Õ¨Õ¨1Õ·Õ«Õ¨1Õ·Õ¸Õ¨1Õ·Ö…Õ¨1Õ¹Õ¡Õ¨1Õ¹Õ¥Õ¨1Õ¹Õ§Õ¨1Õ¹Õ¨Õ¨1Õ¹Õ«Õ¨1Õ¹Õ¸Õ¨1Õ¹Ö…Õ¨1ÕºÕ¡Õ¨1ÕºÕ¥Õ¨1ÕºÕ§Õ¨1ÕºÕ¨Õ¨1ÕºÕ«Õ¨1ÕºÕ¸Õ¨1ÕºÖ…Õ¨1Õ»Õ¡Õ¨1Õ»Õ¥Õ¨1Õ»Õ§Õ¨1Õ»Õ¨Õ¨1Õ»Õ«Õ¨1Õ»Õ¸Õ¨1Õ»Ö…Õ¨1Õ¼Õ¡Õ¨1Õ¼Õ¥Õ¨1Õ¼Õ§Õ¨1Õ¼Õ¨Õ¨1Õ¼Õ«Õ¨1Õ¼Õ¸Õ¨1Õ¼Ö…Õ¨1Õ½Õ¡Õ¨1Õ½Õ¥Õ¨1Õ½Õ§Õ¨1Õ½Õ¨Õ¨1Õ½Õ«Õ¨1Õ½Õ¸Õ¨1Õ½Ö…Õ¨1Õ¾Õ¡Õ¨1Õ¾Õ¥Õ¨1Õ¾Õ§Õ¨1Õ¾Õ¨Õ¨1Õ¾Õ«Õ¨1Õ¾Õ¸Õ¨1Õ¾Ö…Õ¨1Õ¿Õ¡Õ¨1Õ¿Õ¥Õ¨1Õ¿Õ§Õ¨1Õ¿Õ¨Õ¨1Õ¿Õ«Õ¨1Õ¿Õ¸Õ¨1Õ¿Ö…Õ¨1Ö€Õ¡Õ¨1Ö€Õ¥Õ¨1Ö€Õ§Õ¨1Ö€Õ¨Õ¨1Ö€Õ«Õ¨1Ö€Õ¸Õ¨1Ö€Ö…Õ¨1ÖÕ¡Õ¨1ÖÕ¥Õ¨1ÖÕ§Õ¨1ÖÕ¨Õ¨1ÖÕ«Õ¨1ÖÕ¸Õ¨1ÖÖ…Õ¨1ÖƒÕ¡Õ¨1ÖƒÕ¥Õ¨1ÖƒÕ§Õ¨1ÖƒÕ¨Õ¨1ÖƒÕ«Õ¨1ÖƒÕ¸Õ¨1ÖƒÖ…Õ¨1Ö„Õ¡Õ¨1Ö„Õ¥Õ¨1Ö„Õ§Õ¨1Ö„Õ¨Õ¨1Ö„Õ«Õ¨1Ö„Õ¸Õ¨1Ö„Ö…Õ«1Õ¢Õ¡Õ«1Õ¢Õ¥Õ«1Õ¢Õ§Õ«1Õ¢Õ¨Õ«1Õ¢Õ«Õ«1Õ¢Õ¸Õ«1Õ¢Ö…Õ«1Õ£Õ¡Õ«1Õ£Õ¥Õ«1Õ£Õ§Õ«1Õ£Õ¨Õ«1Õ£Õ«Õ«1Õ£Õ¸Õ«1Õ£Ö…Õ«1Õ¤Õ¡Õ«1Õ¤Õ¥Õ«1Õ¤Õ§Õ«1Õ¤Õ¨Õ«1Õ¤Õ«Õ«1Õ¤Õ¸Õ«1Õ¤Ö…Õ«1Õ¦Õ¡Õ«1Õ¦Õ¥Õ«1Õ¦Õ§Õ«1Õ¦Õ¨Õ«1Õ¦Õ«Õ«1Õ¦Õ¸Õ«1Õ¦Ö…Õ«1Õ©Õ¡Õ«1Õ©Õ¥Õ«1Õ©Õ§Õ«1Õ©Õ¨Õ«1Õ©Õ«Õ«1Õ©Õ¸Õ«1Õ©Ö…Õ«1ÕªÕ¡Õ«1ÕªÕ¥Õ«1ÕªÕ§Õ«1ÕªÕ¨Õ«1ÕªÕ«Õ«1ÕªÕ¸Õ«1ÕªÖ…Õ«1Õ¬Õ¡Õ«1Õ¬Õ¥Õ«1Õ¬Õ§Õ«1Õ¬Õ¨Õ«1Õ¬Õ«Õ«1Õ¬Õ¸Õ«1Õ¬Ö…Õ«1Õ­Õ¡Õ«1Õ­Õ¥Õ«1Õ­Õ§Õ«1Õ­Õ¨Õ«1Õ­Õ«Õ«1Õ­Õ¸Õ«1Õ­Ö…Õ«1Õ®Õ¡Õ«1Õ®Õ¥Õ«1Õ®Õ§Õ«1Õ®Õ¨Õ«1Õ®Õ«Õ«1Õ®Õ¸Õ«1Õ®Ö…Õ«1Õ¯Õ¡Õ«1Õ¯Õ¥Õ«1Õ¯Õ§Õ«1Õ¯Õ¨Õ«1Õ¯Õ«Õ«1Õ¯Õ¸Õ«1Õ¯Ö…Õ«1Õ°Õ¡Õ«1Õ°Õ¥Õ«1Õ°Õ§Õ«1Õ°Õ¨Õ«1Õ°Õ«Õ«1Õ°Õ¸Õ«1Õ°Ö…Õ«1Õ±Õ¡Õ«1Õ±Õ¥Õ«1Õ±Õ§Õ«1Õ±Õ¨Õ«1Õ±Õ«Õ«1Õ±Õ¸Õ«1Õ±Ö…Õ«1Õ²Õ¡Õ«1Õ²Õ¥Õ«1Õ²Õ§Õ«1Õ²Õ¨Õ«1Õ²Õ«Õ«1Õ²Õ¸Õ«1Õ²Ö…Õ«1Õ³Õ¡Õ«1Õ³Õ¥Õ«1Õ³Õ§Õ«1Õ³Õ¨Õ«1Õ³Õ«Õ«1Õ³Õ¸Õ«1Õ³Ö…Õ«1Õ´Õ¡Õ«1Õ´Õ¥Õ«1Õ´Õ§Õ«1Õ´Õ¨Õ«1Õ´Õ«Õ«1Õ´Õ¸Õ«1Õ´Ö…Õ«1ÕµÕ¡Õ«1ÕµÕ¥Õ«1ÕµÕ§Õ«1ÕµÕ¨Õ«1ÕµÕ«Õ«1ÕµÕ¸Õ«1ÕµÖ…Õ«1Õ¶Õ¡Õ«1Õ¶Õ¥Õ«1Õ¶Õ§Õ«1Õ¶Õ¨Õ«1Õ¶Õ«Õ«1Õ¶Õ¸Õ«1Õ¶Ö…Õ«1Õ·Õ¡Õ«1Õ·Õ¥Õ«1Õ·Õ§Õ«1Õ·Õ¨Õ«1Õ·Õ«Õ«1Õ·Õ¸Õ«1Õ·Ö…Õ«1Õ¹Õ¡Õ«1Õ¹Õ¥Õ«1Õ¹Õ§Õ«1Õ¹Õ¨Õ«1Õ¹Õ«Õ«1Õ¹Õ¸Õ«1Õ¹Ö…Õ«1ÕºÕ¡Õ«1ÕºÕ¥Õ«1ÕºÕ§Õ«1ÕºÕ¨Õ«1ÕºÕ«Õ«1ÕºÕ¸Õ«1ÕºÖ…Õ«1Õ»Õ¡Õ«1Õ»Õ¥Õ«1Õ»Õ§Õ«1Õ»Õ¨Õ«1Õ»Õ«Õ«1Õ»Õ¸Õ«1Õ»Ö…Õ«1Õ¼Õ¡Õ«1Õ¼Õ¥Õ«1Õ¼Õ§Õ«1Õ¼Õ¨Õ«1Õ¼Õ«Õ«1Õ¼Õ¸Õ«1Õ¼Ö…Õ«1Õ½Õ¡Õ«1Õ½Õ¥Õ«1Õ½Õ§Õ«1Õ½Õ¨Õ«1Õ½Õ«Õ«1Õ½Õ¸Õ«1Õ½Ö…Õ«1Õ¾Õ¡Õ«1Õ¾Õ¥Õ«1Õ¾Õ§Õ«1Õ¾Õ¨Õ«1Õ¾Õ«Õ«1Õ¾Õ¸Õ«1Õ¾Ö…Õ«1Õ¿Õ¡Õ«1Õ¿Õ¥Õ«1Õ¿Õ§Õ«1Õ¿Õ¨Õ«1Õ¿Õ«Õ«1Õ¿Õ¸Õ«1Õ¿Ö…Õ«1Ö€Õ¡Õ«1Ö€Õ¥Õ«1Ö€Õ§Õ«1Ö€Õ¨Õ«1Ö€Õ«Õ«1Ö€Õ¸Õ«1Ö€Ö…Õ«1ÖÕ¡Õ«1ÖÕ¥Õ«1ÖÕ§Õ«1ÖÕ¨Õ«1ÖÕ«Õ«1ÖÕ¸Õ«1ÖÖ…Õ«1ÖƒÕ¡Õ«1ÖƒÕ¥Õ«1ÖƒÕ§Õ«1ÖƒÕ¨Õ«1ÖƒÕ«Õ«1ÖƒÕ¸Õ«1ÖƒÖ…Õ«1Ö„Õ¡Õ«1Ö„Õ¥Õ«1Ö„Õ§Õ«1Ö„Õ¨Õ«1Ö„Õ«Õ«1Ö„Õ¸Õ«1Ö„Ö…Õ¸1Õ¢Õ¡Õ¸1Õ¢Õ¥Õ¸1Õ¢Õ§Õ¸1Õ¢Õ¨Õ¸1Õ¢Õ«Õ¸1Õ¢Õ¸Õ¸1Õ¢Ö…Õ¸1Õ£Õ¡Õ¸1Õ£Õ¥Õ¸1Õ£Õ§Õ¸1Õ£Õ¨Õ¸1Õ£Õ«Õ¸1Õ£Õ¸Õ¸1Õ£Ö…Õ¸1Õ¤Õ¡Õ¸1Õ¤Õ¥Õ¸1Õ¤Õ§Õ¸1Õ¤Õ¨Õ¸1Õ¤Õ«Õ¸1Õ¤Õ¸Õ¸1Õ¤Ö…Õ¸1Õ¦Õ¡Õ¸1Õ¦Õ¥Õ¸1Õ¦Õ§Õ¸1Õ¦Õ¨Õ¸1Õ¦Õ«Õ¸1Õ¦Õ¸Õ¸1Õ¦Ö…Õ¸1Õ©Õ¡Õ¸1Õ©Õ¥Õ¸1Õ©Õ§Õ¸1Õ©Õ¨Õ¸1Õ©Õ«Õ¸1Õ©Õ¸Õ¸1Õ©Ö…Õ¸1ÕªÕ¡Õ¸1ÕªÕ¥Õ¸1ÕªÕ§Õ¸1ÕªÕ¨Õ¸1ÕªÕ«Õ¸1ÕªÕ¸Õ¸1ÕªÖ…Õ¸1Õ¬Õ¡Õ¸1Õ¬Õ¥Õ¸1Õ¬Õ§Õ¸1Õ¬Õ¨Õ¸1Õ¬Õ«Õ¸1Õ¬Õ¸Õ¸1Õ¬Ö…Õ¸1Õ­Õ¡Õ¸1Õ­Õ¥Õ¸1Õ­Õ§Õ¸1Õ­Õ¨Õ¸1Õ­Õ«Õ¸1Õ­Õ¸Õ¸1Õ­Ö…Õ¸1Õ®Õ¡Õ¸1Õ®Õ¥Õ¸1Õ®Õ§Õ¸1Õ®Õ¨Õ¸1Õ®Õ«Õ¸1Õ®Õ¸Õ¸1Õ®Ö…Õ¸1Õ¯Õ¡Õ¸1Õ¯Õ¥Õ¸1Õ¯Õ§Õ¸1Õ¯Õ¨Õ¸1Õ¯Õ«Õ¸1Õ¯Õ¸Õ¸1Õ¯Ö…Õ¸1Õ°Õ¡Õ¸1Õ°Õ¥Õ¸1Õ°Õ§Õ¸1Õ°Õ¨Õ¸1Õ°Õ«Õ¸1Õ°Õ¸Õ¸1Õ°Ö…Õ¸1Õ±Õ¡Õ¸1Õ±Õ¥Õ¸1Õ±Õ§Õ¸1Õ±Õ¨Õ¸1Õ±Õ«Õ¸1Õ±Õ¸Õ¸1Õ±Ö…Õ¸1Õ²Õ¡Õ¸1Õ²Õ¥Õ¸1Õ²Õ§Õ¸1Õ²Õ¨Õ¸1Õ²Õ«Õ¸1Õ²Õ¸Õ¸1Õ²Ö…Õ¸1Õ³Õ¡Õ¸1Õ³Õ¥Õ¸1Õ³Õ§Õ¸1Õ³Õ¨Õ¸1Õ³Õ«Õ¸1Õ³Õ¸Õ¸1Õ³Ö…Õ¸1Õ´Õ¡Õ¸1Õ´Õ¥Õ¸1Õ´Õ§Õ¸1Õ´Õ¨Õ¸1Õ´Õ«Õ¸1Õ´Õ¸Õ¸1Õ´Ö…Õ¸1ÕµÕ¡Õ¸1ÕµÕ¥Õ¸1ÕµÕ§Õ¸1ÕµÕ¨Õ¸1ÕµÕ«Õ¸1ÕµÕ¸Õ¸1ÕµÖ…Õ¸1Õ¶Õ¡Õ¸1Õ¶Õ¥Õ¸1Õ¶Õ§Õ¸1Õ¶Õ¨Õ¸1Õ¶Õ«Õ¸1Õ¶Õ¸Õ¸1Õ¶Ö…Õ¸1Õ·Õ¡Õ¸1Õ·Õ¥Õ¸1Õ·Õ§Õ¸1Õ·Õ¨Õ¸1Õ·Õ«Õ¸1Õ·Õ¸Õ¸1Õ·Ö…Õ¸1Õ¹Õ¡Õ¸1Õ¹Õ¥Õ¸1Õ¹Õ§Õ¸1Õ¹Õ¨Õ¸1Õ¹Õ«Õ¸1Õ¹Õ¸Õ¸1Õ¹Ö…Õ¸1ÕºÕ¡Õ¸1ÕºÕ¥Õ¸1ÕºÕ§Õ¸1ÕºÕ¨Õ¸1ÕºÕ«Õ¸1ÕºÕ¸Õ¸1ÕºÖ…Õ¸1Õ»Õ¡Õ¸1Õ»Õ¥Õ¸1Õ»Õ§Õ¸1Õ»Õ¨Õ¸1Õ»Õ«Õ¸1Õ»Õ¸Õ¸1Õ»Ö…Õ¸1Õ¼Õ¡Õ¸1Õ¼Õ¥Õ¸1Õ¼Õ§Õ¸1Õ¼Õ¨Õ¸1Õ¼Õ«Õ¸1Õ¼Õ¸Õ¸1Õ¼Ö…Õ¸1Õ½Õ¡Õ¸1Õ½Õ¥Õ¸1Õ½Õ§Õ¸1Õ½Õ¨Õ¸1Õ½Õ«Õ¸1Õ½Õ¸Õ¸1Õ½Ö…Õ¸1Õ¾Õ¡Õ¸1Õ¾Õ¥Õ¸1Õ¾Õ§Õ¸1Õ¾Õ¨Õ¸1Õ¾Õ«Õ¸1Õ¾Õ¸Õ¸1Õ¾Ö…Õ¸1Õ¿Õ¡Õ¸1Õ¿Õ¥Õ¸1Õ¿Õ§Õ¸1Õ¿Õ¨Õ¸1Õ¿Õ«Õ¸1Õ¿Õ¸Õ¸1Õ¿Ö…Õ¸1Ö€Õ¡Õ¸1Ö€Õ¥Õ¸1Ö€Õ§Õ¸1Ö€Õ¨Õ¸1Ö€Õ«Õ¸1Ö€Õ¸Õ¸1Ö€Ö…Õ¸1ÖÕ¡Õ¸1ÖÕ¥Õ¸1ÖÕ§Õ¸1ÖÕ¨Õ¸1ÖÕ«Õ¸1ÖÕ¸Õ¸1ÖÖ…Õ¸1ÖƒÕ¡Õ¸1ÖƒÕ¥Õ¸1ÖƒÕ§Õ¸1ÖƒÕ¨Õ¸1ÖƒÕ«Õ¸1ÖƒÕ¸Õ¸1ÖƒÖ…Õ¸1Ö„Õ¡Õ¸1Ö„Õ¥Õ¸1Ö„Õ§Õ¸1Ö„Õ¨Õ¸1Ö„Õ«Õ¸1Ö„Õ¸Õ¸1Ö„Ö…Ö…1Õ¢Õ¡Ö…1Õ¢Õ¥Ö…1Õ¢Õ§Ö…1Õ¢Õ¨Ö…1Õ¢Õ«Ö…1Õ¢Õ¸Ö…1Õ¢Ö…Ö…1Õ£Õ¡Ö…1Õ£Õ¥Ö…1Õ£Õ§Ö…1Õ£Õ¨Ö…1Õ£Õ«Ö…1Õ£Õ¸Ö…1Õ£Ö…Ö…1Õ¤Õ¡Ö…1Õ¤Õ¥Ö…1Õ¤Õ§Ö…1Õ¤Õ¨Ö…1Õ¤Õ«Ö…1Õ¤Õ¸Ö…1Õ¤Ö…Ö…1Õ¦Õ¡Ö…1Õ¦Õ¥Ö…1Õ¦Õ§Ö…1Õ¦Õ¨Ö…1Õ¦Õ«Ö…1Õ¦Õ¸Ö…1Õ¦Ö…Ö…1Õ©Õ¡Ö…1Õ©Õ¥Ö…1Õ©Õ§Ö…1Õ©Õ¨Ö…1Õ©Õ«Ö…1Õ©Õ¸Ö…1Õ©Ö…Ö…1ÕªÕ¡Ö…1ÕªÕ¥Ö…1ÕªÕ§Ö…1ÕªÕ¨Ö…1ÕªÕ«Ö…1ÕªÕ¸Ö…1ÕªÖ…Ö…1Õ¬Õ¡Ö…1Õ¬Õ¥Ö…1Õ¬Õ§Ö…1Õ¬Õ¨Ö…1Õ¬Õ«Ö…1Õ¬Õ¸Ö…1Õ¬Ö…Ö…1Õ­Õ¡Ö…1Õ­Õ¥Ö…1Õ­Õ§Ö…1Õ­Õ¨Ö…1Õ­Õ«Ö…1Õ­Õ¸Ö…1Õ­Ö…Ö…1Õ®Õ¡Ö…1Õ®Õ¥Ö…1Õ®Õ§Ö…1Õ®Õ¨Ö…1Õ®Õ«Ö…1Õ®Õ¸Ö…1Õ®Ö…Ö…1Õ¯Õ¡Ö…1Õ¯Õ¥Ö…1Õ¯Õ§Ö…1Õ¯Õ¨Ö…1Õ¯Õ«Ö…1Õ¯Õ¸Ö…1Õ¯Ö…Ö…1Õ°Õ¡Ö…1Õ°Õ¥Ö…1Õ°Õ§Ö…1Õ°Õ¨Ö…1Õ°Õ«Ö…1Õ°Õ¸Ö…1Õ°Ö…Ö…1Õ±Õ¡Ö…1Õ±Õ¥Ö…1Õ±Õ§Ö…1Õ±Õ¨Ö…1Õ±Õ«Ö…1Õ±Õ¸Ö…1Õ±Ö…Ö…1Õ²Õ¡Ö…1Õ²Õ¥Ö…1Õ²Õ§Ö…1Õ²Õ¨Ö…1Õ²Õ«Ö…1Õ²Õ¸Ö…1Õ²Ö…Ö…1Õ³Õ¡Ö…1Õ³Õ¥Ö…1Õ³Õ§Ö…1Õ³Õ¨Ö…1Õ³Õ«Ö…1Õ³Õ¸Ö…1Õ³Ö…Ö…1Õ´Õ¡Ö…1Õ´Õ¥Ö…1Õ´Õ§Ö…1Õ´Õ¨Ö…1Õ´Õ«Ö…1Õ´Õ¸Ö…1Õ´Ö…Ö…1ÕµÕ¡Ö…1ÕµÕ¥Ö…1ÕµÕ§Ö…1ÕµÕ¨Ö…1ÕµÕ«Ö…1ÕµÕ¸Ö…1ÕµÖ…Ö…1Õ¶Õ¡Ö…1Õ¶Õ¥Ö…1Õ¶Õ§Ö…1Õ¶Õ¨Ö…1Õ¶Õ«Ö…1Õ¶Õ¸Ö…1Õ¶Ö…Ö…1Õ·Õ¡Ö…1Õ·Õ¥Ö…1Õ·Õ§Ö…1Õ·Õ¨Ö…1Õ·Õ«Ö…1Õ·Õ¸Ö…1Õ·Ö…Ö…1Õ¹Õ¡Ö…1Õ¹Õ¥Ö…1Õ¹Õ§Ö…1Õ¹Õ¨Ö…1Õ¹Õ«Ö…1Õ¹Õ¸Ö…1Õ¹Ö…Ö…1ÕºÕ¡Ö…1ÕºÕ¥Ö…1ÕºÕ§Ö…1ÕºÕ¨Ö…1ÕºÕ«Ö…1ÕºÕ¸Ö…1ÕºÖ…Ö…1Õ»Õ¡Ö…1Õ»Õ¥Ö…1Õ»Õ§Ö…1Õ»Õ¨Ö…1Õ»Õ«Ö…1Õ»Õ¸Ö…1Õ»Ö…Ö…1Õ¼Õ¡Ö…1Õ¼Õ¥Ö…1Õ¼Õ§Ö…1Õ¼Õ¨Ö…1Õ¼Õ«Ö…1Õ¼Õ¸Ö…1Õ¼Ö…Ö…1Õ½Õ¡Ö…1Õ½Õ¥Ö…1Õ½Õ§Ö…1Õ½Õ¨Ö…1Õ½Õ«Ö…1Õ½Õ¸Ö…1Õ½Ö…Ö…1Õ¾Õ¡Ö…1Õ¾Õ¥Ö…1Õ¾Õ§Ö…1Õ¾Õ¨Ö…1Õ¾Õ«Ö…1Õ¾Õ¸Ö…1Õ¾Ö…Ö…1Õ¿Õ¡Ö…1Õ¿Õ¥Ö…1Õ¿Õ§Ö…1Õ¿Õ¨Ö…1Õ¿Õ«Ö…1Õ¿Õ¸Ö…1Õ¿Ö…Ö…1Ö€Õ¡Ö…1Ö€Õ¥Ö…1Ö€Õ§Ö…1Ö€Õ¨Ö…1Ö€Õ«Ö…1Ö€Õ¸Ö…1Ö€Ö…Ö…1ÖÕ¡Ö…1ÖÕ¥Ö…1ÖÕ§Ö…1ÖÕ¨Ö…1ÖÕ«Ö…1ÖÕ¸Ö…1ÖÖ…Ö…1ÖƒÕ¡Ö…1ÖƒÕ¥Ö…1ÖƒÕ§Ö…1ÖƒÕ¨Ö…1ÖƒÕ«Ö…1ÖƒÕ¸Ö…1ÖƒÖ…Ö…1Ö„Õ¡Ö…1Ö„Õ¥Ö…1Ö„Õ§Ö…1Ö„Õ¨Ö…1Ö„Õ«Ö…1Ö„Õ¸Ö…1Ö„Ö…" + } +}; diff --git a/resources/viewer/hyphenate/patterns/it.js b/resources/viewer/hyphenate/patterns/it.js index 568ddf4300..5928ac1f5b 100644 --- a/resources/viewer/hyphenate/patterns/it.js +++ b/resources/viewer/hyphenate/patterns/it.js @@ -1,15 +1,15 @@ -Hyphenator.languages.it = { - leftmin : 1, +Hyphenator.languages['it'] = { + leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 8, - specialChars : 'àéèìòù', + specialChars : "àéèìòù’'", // The italian hyphenation patterns are retrieved from // http://www.ctan.org/tex-archive/language/hyphenation/ithyph.tex patterns : { 2 : "1b1c1d1f1g1h1j1k1l1m1n1p1q1r1t1v1w1x1z", - 3 : "2'2e2w2bb2bc2bd2bf2bm2bn2bp2bs2bt2bvb2lb2r2b_2b'2cb2cc2cd2cf2ck2cm2cn2cq2cs2ct2czc2hc2lc2r2c_2c'_c22db2dd2dg2dl2dm2dn2dpd2r2ds2dt2dv2dw2d_2d'_d22fb2fg2ff2fnf2lf2r2fs2ft2f_2f'2gb2gd2gf2ggg2hg2l2gmg2n2gpg2r2gs2gt2gv2gw2gz2g_2g'2hb2hd2hhh2l2hm2hn2hr2hv2h_2h'2j_2j'2kg2kfk2h2kkk2l2kmk2r2ks2kt2k_2k'2lb2lc2ld2lgl2h2lk2ll2lm2ln2lp2lq2lr2ls2lt2lv2lw2lz2l_2mb2mc2mf2ml2mm2mn2mp2mq2mr2ms2mt2mv2mw2m_2m'2nb2nc2nd2nf2ng2nk2nl2nm2nn2np2nq2nr2ns2nt2nv2nz2n_2n'2pdp2hp2l2pn2ppp2r2ps2pt2pz2p_2p'2qq2q_2q'2rb2rc2rd2rfr2h2rg2rk2rl2rm2rn2rp2rq2rr2rs2rt2rv2rx2rw2rz2r_2r'1s22sz4s_2tb2tc2td2tf2tgt2ht2l2tm2tn2tpt2rt2s2tt2tv2twt2z2t_2vcv2lv2r2vv2v_w2h2w_2w'2xb2xc2xf2xh2xm2xp2xt2xw2x_2x'y1i2zb2zd2zl2zn2zp2zt2zs2zv2zz2z_", - 4 : "_p2sa1iaa1iea1ioa1iua1uoa1ya2at_e1iuo1iao1ieo1ioo1iu2chh2chbch2r2chn2l'_2l''2shm2sh_2sh'2s3s2stb2stc2std2stf2stg2stm2stn2stp2sts2stt2stv4s'_4s''2tzktz2s2t'_2t''2v'_2v''wa2r2w1yy1ou2z'_2z''_z2", + 3 : "2’2e2w2bb2bc2bd2bf2bm2bn2bp2bs2bt2bvb2lb2r2b_2b’2cb2cc2cd2cf2ck2cm2cn2cq2cs2ct2czc2hc2lc2r2c_2c’_c22db2dd2dg2dl2dm2dn2dpd2r2ds2dt2dv2dw2d_2d’_d22fb2fg2ff2fnf2lf2r2fs2ft2f_2f’2gb2gd2gf2ggg2hg2l2gmg2n2gpg2r2gs2gt2gv2gw2gz2g_2g’2hb2hd2hhh2l2hm2hn2hr2hv2h_2h’2j_2j’2kg2kfk2h2kkk2l2kmk2r2ks2kt2k_2k’2lb2lc2ld2lgl2h2lk2ll2lm2ln2lp2lq2lr2ls2lt2lv2lw2lz2l_2mb2mc2mf2ml2mm2mn2mp2mq2mr2ms2mt2mv2mw2m_2m’2nb2nc2nd2nf2ng2nk2nl2nm2nn2np2nq2nr2ns2nt2nv2nz2n_2n’2pdp2hp2l2pn2ppp2r2ps2pt2pz2p_2p’2qq2q_2q’2rb2rc2rd2rfr2h2rg2rk2rl2rm2rn2rp2rq2rr2rs2rt2rv2rx2rw2rz2r_2r’1s22sz4s_2tb2tc2td2tf2tgt2ht2l2tm2tn2tpt2rt2s2tt2tv2twt2z2t_2vcv2lv2r2vv2v_w2h2w_2w’2xb2xc2xf2xh2xm2xp2xt2xw2x_2x’y1i2zb2zd2zl2zn2zp2zt2zs2zv2zz2z_", + 4 : "_p2sa1iaa1iea1ioa1iua1uoa1ya2at_e1iuo1iao1ieo1ioo1iu2chh2chbch2r2chn2l’_2l’’2shm2sh_2sh’2s3s2stb2stc2std2stf2stg2stm2stn2stp2sts2stt2stv4s’_4s’’2tzktz2s2t’_2t’’2v’_2v’’wa2r2w1yy1ou2z’_2z’’_z2", 5 : "_bio1_pre12gh2t2l3f2n2g3n3p2nes4s3mt2t3s", 6 : "_a3p2n_anti1_free3_opto1_para1hi3p2n2nheit3p2sicr2t2s32s3p2n3t2sch", 7 : "_ca4p3s_e2x1eu_narco1_su2b3r_wa2g3n_wel2t1n2s3fer", diff --git a/resources/viewer/hyphenate/patterns/kn.js b/resources/viewer/hyphenate/patterns/kn.js index 0d14511d6b..6bc2d11e85 100644 --- a/resources/viewer/hyphenate/patterns/kn.js +++ b/resources/viewer/hyphenate/patterns/kn.js @@ -1,13 +1,13 @@ -// For questions about the Kannada hyphenation patterns +// For questions about the Kannada hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.kn = { +Hyphenator.languages['kn'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, - longestPattern : 3, - specialChars : 'ಆಅಇಈಉಊಋಎà²à²à²’ಔಕಗಖಘಙಚಛಜà²à²žà²Ÿà² à²¡à²¢à²£à²¤à²¥à²¦à²§à²¨à²ªà²«à²¬à²­à²®à²¯à²°à²²à²µà²¶à²·à²¸à²¹à²³à²±à²¿à³€à²¾à³à³‚ೃೆೇೊಾೋೈೌà³à²ƒà²‚', + longestPattern : 1, + specialChars : "ಆಅಇಈಉಊಋಎà²à²à²’ಔಕಗಖಘಙಚಛಜà²à²žà²Ÿà² à²¡à²¢à²£à²¤à²¥à²¦à²§à²¨à²ªà²«à²¬à²­à²®à²¯à²°à²²à²µà²¶à²·à²¸à²¹à²³à²±à²¿à³€à²¾à³à³‚ೃೆೇೊಾೋೈೌà³à²ƒà²‚", patterns : { - 2 : 'ಅ1ಆ1ಇ1ಈ1ಉ1ಊ1ಋ1ಎ1à²1à²1ಒ1ಔ1à³€1à³1ೂ1ೃ1ೆ1ೇ1ೊ1ೋ1ೌ1à³2ಃ1ಂ11ಕ1ಗ1ಖ1ಘ1ಙ1ಚ1ಛ1ಜ1à²1ಞ1ಟ1ಠ1ಡ1ಢ1ಣ1ತ1ಥ1ದ1ಧ1ನ1ಪ1ಫ1ಬ1ಭ1ಮ1ಯ1ರ1ಲ1ವ1ಶ1ಷ1ಸ1ಹ1ಳ1ಱ', - 3 : '2ಃ12ಂ1' + 2 : "ಅ1ಆ1ಇ1ಈ1ಉ1ಊ1ಋ1ಎ1à²1à²1ಒ1ಔ1à³€1à³1ೂ1ೃ1ೆ1ೇ1ೊ1ೋ1ೌ1à³2ಃ1ಂ11ಕ1ಗ1ಖ1ಘ1ಙ1ಚ1ಛ1ಜ1à²1ಞ1ಟ1ಠ1ಡ1ಢ1ಣ1ತ1ಥ1ದ1ಧ1ನ1ಪ1ಫ1ಬ1ಭ1ಮ1ಯ1ರ1ಲ1ವ1ಶ1ಷ1ಸ1ಹ1ಳ1ಱ", + 3 : "2ಃ12ಂ1" } }; diff --git a/resources/viewer/hyphenate/patterns/la.js b/resources/viewer/hyphenate/patterns/la.js new file mode 100644 index 0000000000..5c9d17bfaf --- /dev/null +++ b/resources/viewer/hyphenate/patterns/la.js @@ -0,0 +1,22 @@ +// Latin hyphenation patterns converted by +// Pablo Rodríguez (hyphenator at pragmata dot tk) +// based on LaTeX Latin hyphenation patterns by Claudio Beccari +// (http://tug.ctan.org/tex-archive/language/hyphenation/lahyph.tex) +Hyphenator.languages['la'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 1, + longestPattern : 8, + specialChars : "æœ", + patterns : { + 2 : "æ1Å“11b1c1d1f1g1h1j1k1l1m1n1p1r1t1v1x1z", + 3 : "2bb2bdb2l2bm2bnb2r2bt2bs2b_2ccc2l2cm2cn2cqc2r2cs2ct2cz2c_2dd2dg2dmd2r2ds2dv2d_2fff2l2fnf2r2ft2f_2gg2gd2gfg2l2gmg2ng2r2gs2gv2g_2hp2ht2h_2kk2lb2lc2ld2lf2lg2lk2ll2lm2ln2lp2lq2lr2ls2lt2lv2l_2mm2mb2mp2ml2mn2mq2mr2mv2m_2nb2nc2nd2nf2ng2nl2nm2nn2np2nq2nr2ns2nt2nv2nx2n_p2hp2l2pn2ppp2r2ps2pt2pz2p_2rb2rc2rd2rf2rgr2h2rl2rm2rn2rp2rq2rr2rs2rt2rv2rz2r_1s22s_2tb2tc2td2tf2tgt2ht2lt2r2tm2tn2tp2tq2tt2tv2t_v2lv2r2vv2xt2xx2x_2z_", + 4 : "a1iaa1iea1ioa1iuae1aae1oae1ue1iuio1io1iao1ieo1ioo1iuuo3uc2h2k2h22php2pht1qu22s3s2stb2stc2std2stf2stg2stm2stn2stp2stq2sts2stt2stv2st_a1uaa1uea1uia1uoa1uue1uae1uee1uie1uoe1uui1uai1uei1uii1uoi1uuo1uao1ueo1uio1uoo1uuu1uau1ueu1uiu1uou1uu", + 5 : "_e2x1_o2b3l3f2tn2s3mn2s3f2s3ph2st3l", + 6 : "_a2b3l_anti13p2sic3p2neua2l1uaa2l1uea2l1uia2l1uoa2l1uue2l1uae2l1uee2l1uie2l1uoe2l1uui2l1uai2l1uei2l1uii2l1uoi2l1uuo2l1uao2l1ueo2l1uio2l1uoo2l1uuu2l1uau2l1ueu2l1uiu2l1uou2l1uua2m1uaa2m1uea2m1uia2m1uoa2m1uue2m1uae2m1uee2m1uie2m1uoe2m1uui2m1uai2m1uei2m1uii2m1uoi2m1uuo2m1uao2m1ueo2m1uio2m1uoo2m1uuu2m1uau2m1ueu2m1uiu2m1uou2m1uua2n1uaa2n1uea2n1uia2n1uoa2n1uue2n1uae2n1uee2n1uie2n1uoe2n1uui2n1uai2n1uei2n1uii2n1uoi2n1uuo2n1uao2n1ueo2n1uio2n1uoo2n1uuu2n1uau2n1ueu2n1uiu2n1uou2n1uua2r1uaa2r1uea2r1uia2r1uoa2r1uue2r1uae2r1uee2r1uie2r1uoe2r1uui2r1uai2r1uei2r1uii2r1uoi2r1uuo2r1uao2r1ueo2r1uio2r1uoo2r1uuu2r1uau2r1ueu2r1uiu2r1uou2r1uu", + 7 : "_para1i_para1u_su2b3r2s3que_2s3dem_", + 8 : "_su2b3lu", + 9 : "_anti3m2n_circu2m1_co2n1iun", + 10 : "_di2s3cine" + } +}; diff --git a/resources/viewer/hyphenate/patterns/lt.js b/resources/viewer/hyphenate/patterns/lt.js new file mode 100644 index 0000000000..9242a867fe --- /dev/null +++ b/resources/viewer/hyphenate/patterns/lt.js @@ -0,0 +1,17 @@ +// For questions about the Lithuanian hyphenation patterns +// ask RogutÄ—s Sparnuotos (rogutes at googlemail dot com) +Hyphenator.languages['lt'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 2, + longestPattern : 6, + specialChars : "šĞįėūąęų", + patterns : { + 3 : "a1ba1ca1da1ea1fa1ha1ja1ka1la1ma1na2oa1pa1ra1sa1ta4ua1va1wa1ya1za1Ä…a1Ä™a1įa1Å¡a1ųa1žb1jcu4d4zd4že1ce1ee1fe1ge1he1je1ke1le1me2oe3pe1re1se1te1ve1we1ye1ze1Ä…e1Äe1Ä™e1Ä—e1Å¡e1ųe1Å«e1ž3gui2ai1ci1di2ei1fi1ji1ki1li1mi2oi1pi1ri2ui1vi1wi1yi1zi2Ä…i1Äi1Ä™i1įi1Å¡i2ųi2Å«i3ž1ju1jÅ«3kek4i3ko3ku5kÄ…3lÄ…3lųm2am2one15noo1ao1bo1co1do1eo1fo1go1ho1io1jo1ko1lo1mo1no1po1ro1so1vo1wo1yo1zo1Ä…o1Äo1Ä™o1Ä—o1įo1Å¡o1ųo1Å«o1žpa3p2ep2i3pop2yp2Ä—r2ar2ir2or2u3rÄ…5rųs2esu1sÄ…35sÄ—t2at2it2o3tÄ™u1bu1cu1du1fu1gu1hu1ju1ku1lu1mu1nu2ou3pu1ru1su1uu1vu1wu1yu1zu1Ä…u1Äu1Ä™u1įu1Å¡u1ųu1žv2e3vÄ…3vÄ—y1ay1by1cy1dy1ey1fy1gy1hy1iy1jy1ky1ly1my1ny1oy1py3ry1sy1ty1uy1vy1wy1yy1zy1Ä…y1Äy1Ä™y1Ä—y1įy1Å¡y1ųy1Å«y1žą1aÄ…1bÄ…1cÄ…1dÄ…1eÄ…1fÄ…1gÄ…1hÄ…1iÄ…1jÄ…1kÄ…1lÄ…1mÄ…1nÄ…1oÄ…1pÄ…1rÄ…1sÄ…1tÄ…1uÄ…1vÄ…1wÄ…1yÄ…1zÄ…1Ä…Ä…1ÄÄ…1ęą1Ä—Ä…1įą1šą1ųą1ūą1žę1aÄ™1bÄ™1cÄ™1dÄ™1eÄ™1fÄ™1gÄ™1hÄ™1iÄ™1jÄ™1kÄ™1lÄ™1mÄ™1nÄ™1oÄ™1pÄ™1rÄ™1sÄ™1tÄ™1uÄ™1vÄ™1wÄ™1yÄ™1zÄ™1Ä…Ä™1ÄÄ™1ęę1Ä—Ä™1įę1šę1ųę1ūę1žė1aÄ—1bÄ—1cÄ—1dÄ—1eÄ—1fÄ—1gÄ—1hÄ—1iÄ—1jÄ—1kÄ—1mÄ—1nÄ—1oÄ—1pÄ—1rÄ—1uÄ—1vÄ—1wÄ—1yÄ—1zÄ—1Ä…Ä—1ÄÄ—1ęė1Ä—Ä—1įė1šė1ųė1ūė1žį1aį1bį1cį2eį1fį4gį1hį1iį1jį2lį2mį1nį1oį4pį2rį1sį1uį2vį1wį1yį1zį1ąį1Äį1ęį1įį1šį1ųį1ūį1žų1aų1bų1cų1dų1eų1fų1gų1hų1ių1jų1kų1lų1mų1nų1oų1pų1rų1sų1tų1uų1vų1wų1yų1zų1ąų1Äų1ęų1ėų1įų1šų1ųų1ūų1žū1aÅ«1bÅ«1cÅ«1dÅ«1eÅ«1fÅ«1gÅ«1hÅ«1iÅ«1jÅ«1kÅ«1lÅ«1mÅ«1nÅ«1oÅ«1pÅ«1rÅ«1sÅ«1tÅ«1uÅ«1vÅ«1wÅ«1yÅ«1zÅ«1Ä…Å«1ÄÅ«1ęū1Ä—Å«1įū1šū1ųū1ūū1žž1jž2u", + 4 : "_ap1_at1_nu1_sk4_st4_uk3_už1_įs4a1a2a2chae2l2a1ga4grak2la3lia3lya3lÄ—a3lÅ«ap3la3pra4rgasi1a4ska3slato1atp42a1Äa1Ä—2a3Å¡naÅ¡2va1Å«2až2lba3c2b1b2b1c4b3dbep42b1f2b1g2b1h2b1k2b1lb2lab2lu2b1m2b1n2b1p2b2rb3ri2b1s2b3tbu4k2b1v2b1w2b1z2b1Ä2b1Å¡2b1žcar42c1b2c1c2c1d2c1f2c1g3chi2c1k2c1l2c1m2c1n2c1p2c1r2c1s2c1tcuk52c1v2c1w2c1z2c1Ä2c1Å¡2c1ž2d1b2d1c2d1dde4k2d1f2d1g2d1hdi4pdi4s2d1j2d3k4d3l2d1m2d1n2d1p2d1rdro1d2rÄ—4drų2d1s2d1tdu2adu4k2d1vd3va2d1w2d1Ä2d1Å¡e1a2eat1e1b2ebe1e3bleb3re2che3d2e1ie1eine3kr2e1neno1ens4enu1e3orep4rero1erÄ—2es4ke1u4euž3e3vie1į4eįp3e3Å¡neÅ¡2vešė32f1b2f1c2f1d2f1f2f1g2f1h2f1k2f1l2f1m2f1n2f1p2f1rfri12f1s2f1t2f1v2f1w2f1z2f1Ä2f1Å¡2f1žgaÅ¡32g1b2g1c2g1d2g1f2g1g2g1h2g1k2g1lg2leg2lo2g1m2g1n3g2rg3rig4rÄ…5grį4grų2g1s4g1t2g1v2g1w2g1z2g1Ä2g1Å¡2g1ž2h1b2h1c2h1d2h1f2h1g2h1hhi4b2h1k2h2l2h1mh2me2h1n2h1p2h1r2h1s2h1t2h1v2h1w2h1z2h1Ä2h1Å¡2h1žia3kiap4i3ari3b2ice1id2rie3gi3ei2i1g2i1hi1i2ik3rilo11imd4i1n5inviok2i3ori3ri4i1si5sai5siis4ki3sli1Ä—2i3Å¡niÅ¡5ti4Å¡višė21išš3ja_2j1b2j1c2j1d2j1f2j1g2j1h2j1j2j1k2j1l2j1m2j1njot32j1p2j1r2j1s2j1t2j1v2j1w2j1z2j1Ä2j1Å¡2j1ž3ka_kak33kar3kas5kav2k1b2k1c2k1d2k1f2k1g2k1h5ki_5kia3kib3kil5kit2k1k2k1lk2ly4klÄ…4klų2k1m2k1n2k1p2k2rk3rok4ryk5rÄ…2k1sk4skks3l4k1tk3ta4kubku4k2k1vk2vak3vok2vÄ—2k1w3kyt2k1z2k1Ä2k1Å¡kšė32k1ž3la_2l1blb3r2l1c2l1d3le_le3c4leÄ2l1f2l1g2l1h3li_li4a3lių2l1j2l1klko12l1l2l1m2l1n3lo_log44lop4l1p2l1r4l1sl4sk4l3t3lu_2lup4l1v2l1w3lyÄ2l1z2l1Ä3lÄ™s3lÄ—m3lÄ—s2lÄ—Ä3lį44l1Å¡2l1ž3mas2m1bmb3r2m1c2m1dme3c2m1f2m1g2m1h2m1k2m1l2m1m2m1n2mod2m1pm4plm3pr2m1r4m1s2m1tm3ta3muo2m1v2m1w2m1z2m1Ä2m1Å¡2m1ž2n1b2n1c2n1dneg42n1f4n1gng3lng4r2n1hni4s2n1j2n1knk3r2n1l2n1m2n1n2n1p2n1r4n1sns3l4n1tn3tanua4nu3gnu1inuk22n1v2n1w2n1z4n1Ä2n1Å¡2n1žo3dro2eto3krono1o1o2o2rÄ™o3slo3t2oto1oÅ¡2vpad23panpap4p2arpas22p1b4p1cper12p1f2p1g2p1h3p2lp3lep3lip3lop4lup4ly2p1m4p1npo4g2p1p2p2rp3rip3ry4prÄ…p3rÄ—p3rÅ«4p1spsi13p4u2p1v2p1w2p1z2p1Ä4p3ž3ra_ra3b3rac3ral3ram3rav2r1brbo12r1c4r1d2reb3rel5res3ret2r1f2r1g2r1h3ri_ri3d3rij2ril3riori3p3riÄ…3rių2riÅ«4r1k4r1l2r1m4r1n3roj3rok3ron3rop5ros2r1p2r1r4r1srs4p4r1t2ruk3rul4run2rup3rus4r1v2r1w2r1z4rÄ…s4r1Ä4r1Å¡2r1ž2s3b2s1c2s3d2s1f2s1g2s1hsi3d4sk_4ske5ski5sky4skÄ…5skÄ™2s2l3sles3lis3lo2s1m4smÄ™4s3n3s2ps3pe4spn4spu4s1rs3ri2s1s2s1tst2v4stÄ™4stųs2tÅ«suž42s1vs2ve2s1w2s1z4s3Ä2s1Å¡2s1ž2tabta5s2tat2taÄ2t1b2t1c2t1d2teb3temte4o2t1f4t3g2t1h3tin2tip4t3j4t3kt4kl4t3l4t3m2t1n2tow2t3pt4pjtp4r2t1r4tro4trÄ…4trųtsi14t1ttua43tur2t1vt2vo2t1w3tyd2t1z2t1Ät2Ä—m2t3žu1a2u3aiu2bju1e2ug4ru5inui2ru3klu3kru3kvu5kųu3orup4lurk2u3slu3t2uto12utru1Ä—2uÅ¡2vu1Å«2u3žluž3v3va_vap4va3t2v1b2v1c2v1d2vep3ves2v1f2v1g2v1h2v1j2v1k2v1l2v1m2v1n2v1p2v1r2v4s2v1t2v1v2v1w2v1z2v1Ä4vÄ—p2v1Å¡2v1ž2w1b2w1c2w1d2w1f2w1g2w1h2w1k2w1l2w1m2w1n2w1p2w1r2w1s2w1t2w1v2w1w2w1z2w1Ä2w1Å¡2w1žy4sk2z1b2z1c2z1d2z1f2z1g2z1h2z1k2z1l2z1m2z1n2z1p2z1r2z1s2z1t2z1v2z1w2z1z2z1Ä2z1Å¡2z1ž2Ä1b2Ä1c2Ä1d2Ä1f2Ä1g2Ä1hÄin12Ä1k2Ä1l2Ä1m2Ä1n2Ä1p2Ä1r2Ä1s2Ä1t2Ä1v2Ä1w2Ä1z2Ä1Ä2Ä1Å¡2Ä1ž2Ä—3lÄ—3me2Ä—1sÄ—s3l2Ä—3tÄ—4trį1d2į2k4įsi1įs3lįs2mįs2rįst2į2t2į1Ä—22Å¡1cÅ¡1eiÅ¡e2v2Å¡1f2Å¡1h2Å¡1lÅ¡2lu3Å¡ly2Å¡1m2Å¡1nÅ¡2neÅ¡no1Å¡o2r2Å¡1rÅ¡si1Å¡u4Å¡3Å¡1vÅ¡2vi2Å¡1w2Å¡1z4Å¡3Äšė2j2Å¡1Å¡2Å¡1žūs3lÅ«s3t2ž1cžen12ž3g2ž1hžio32ž1lž2lu4ž1m2ž1n2ž3p2ž1r2ž1sžsi1ž4skžs3t3ž2vž4viž3vo2ž1w2ž1z2ž1Äžįs32ž1Å¡2ž1ž", + 5 : "_api1_ap3r_as3p_ata1_at3r_aÅ¡3v_ek3r_i2Å¡3_iÅ¡i2_sam1_u2Å¡3a4draag3raa5groa5infai4skai4trak2via2kÄ—ta5lo1an4skan4trap3eiap3s2ari4sasi5sas3klas2mias2mua5s4na4stua4truat1Ä—2atÅ«2žau4klau4skau4slaÅ¡4trba4slbe3s2besi1be3t2b2liz3b2loda3b4dema1de4prde4spdis5kdo3ridro2bdu5kadu4sldvi3adžio1e2a3leapi1ed3rie4droed3rÄ—eg3raei4skei4slei2Å¡14entae3o2Å¡ep4liepra1epri1eri4sesi5seska1e5skoe3s2veįs3keįt3rfi4s5ge4o13g2nų2g1p2grai2g3ran5g3reg4reig3ro_gyva1ia5g4i3aiÅ¡id3rÄ—i2dÄ—mie3kli3entie4ski3g2lig3rui3k2nin4klio4pli2p1jip3ruis4lii5s4ni4steisto12i3t2jo4tv5ka3dka4klka4pr3katika3z2ke4b33k2lak4lan4kle_k2lel4klo_4klu_k4raukris2k4rov4k3ru5krunk4s3pku4prkÅ¡2lyle4gr5li4olpna1l4s3pmeis1mi4glmi4grmin4smi4trna3s2na3t2ncen1n3drÄ—nei2mne4o3neor2nerÄ—3nesi1ne3slne3t2nk3lan3kryns4kun4s3pnst3rnt4pln3trunu3b2nu4o3nuos2nu5s4olen1om4pro2rieori4sor4tros3leos4loo3s2vpai2lpai2mpai2rpa5srp2at24p3d2pe2reper3spe2rÄ—p3ieÅ¡2p3k24pliop4liup4lojpoli1p3raip3raÅ¡pris2p5ro_p3romp5s4kp3s2v4p3t2pu4skpu4slpu4tr4p3Å¡2ra1imra3krras4lra3smr3b4r4rein4reitre4p5res3lri3krrisi1ri3strk3lyr3k4r3rod2ro4grr3p4rr3t2rr3t2v3ruosru4sk4rutor3Å¡2lr3Å¡2msala1san5tse4krsi3k4si3p4si3s23s2k2s5ka_5sk4r5skubsk3vask3vi4s3lu4s3lÅ«4sme_so4drs2tals2ten4stins2tods2toj4s3tÄ—su3blsu3d2su3g2suk2lsu3s2susi13s2vyta3krte3t2ti4gr3toje2tolįto3s2tp3lÅ«4triot2riÅ¡4t3s44tvÄ—jt3Ä—mut3Ä—mÄ™t3Ä—mÄ—2t3Å¡2u1i2muk2leuo4slup3rour3klu5ro1ur3s2us3laus3leusva1us3veu3Å¡2lu3Å¡2nuži2muž1Ä—2ygia1y4k3lÄeko1Ä—4k3l2Å¡1b22Å¡3d22Å¡1g4Å¡iuk12Å¡1k2Å¡2lij2Å¡1p42Å¡3s44Å¡3t2Å¡4vydÅ«4k3lÅ«4s3kžant42ž3b22ž3d22ž3f4ži3mu2ž3k2ž4s5l4ž3t2žu3s2", + 6 : "_arbi1_arti1_dina1_nusi1_pie2Ä_sida1_su5kr_te3s2_Å¡ven1a5grioan3k2lap1a4kap3i2mar1eitat3augat3i2mau4t3rbalta1ei4k3l2eis3tema5s4en3k2lenk4laere3a44g4rioi3antÄ™i3antÄ—ie4d3rie4p5rio4g3rira3s2jauna1kavar1keren1kri5stlg3s2t2m3aidmas3kine3s2tneįs3tnt2ruoparsi1p4s3tyrai4tįri2ma_2r3imtrivin12r3orgrs4ko_rti5k4rti3s22s1amžsarka1senat4si3auksi3a2vsi3a2Å¡si5Å¡2v5s4ken5s4kle3s2tovst2raitaura1ti4k3ltskri1ug5riou2s1alvi4s5kvi4t3r2vydau2Å¡5istžants5", + 7 : "_kirti1ate5isteist2rapa4r1Ä—2pe2r3imprau2sipusiau1rau4ka_viesia1Å¡sikap1", + 8 : "lap4s3to" + } +}; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/lv.js b/resources/viewer/hyphenate/patterns/lv.js new file mode 100644 index 0000000000..fd7b0b5f19 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/lv.js @@ -0,0 +1,20 @@ +// For questions about the latvian hyphenation patterns +// ask Kristaps Karlsons (kristaps dot karlsons at gmail dot com) +Hyphenator.languages['lv'] = { + leftmin : 2, + rightmin : 3, + shortestPattern : 2, + longestPattern : 9, + specialChars : "žÄīūēÄļšķņģ", + patterns : { + 3 : "d4z", + 4 : "dd4žda2ida2udi2ede2idu2idi2udo2ido2ude2uo1pīū1rÄ“i1taÅ«1gaÄ“1žuÅ«1toÄ1nii1rÄ“i1ÄoÄ1buo1mÄ«o1kÄo1ÄiÄ1loe1ÄÅ«o1ļÄe1lai1Å¡oo1biÄ“1cÄ“Ä1ruo1siu1noe1hÄÄ1nÄ“e1bÅ«i1ruo1sÅ«a1ÄaÄ1Äao1rÄ“i1keo1rau1tei1zoi1giÄ“1maÅ«1Ä·eÅ«1cao1dÄ“a1nÄÄ1gee1ÄiÅ«1bēē1tÄÄ1fii1zio1lÄ«e1Å¡ee1gÄi1foa1ņou1toÄ«1zēū1guÄ1Å¡ai1Ä·iÅ«1nēī1maÄ1teÄ“1kēū1mÄu1zuo1sÄÄ“1buÄ«1gae1diÄ«1tea1ļīe1tÄ“i1žeo1foÄ1puo1huÄ“1doo1duÄ1maÅ«1mie1rei1hai1bee1luÄ1jaÅ«1taa1šūa1daÄ“1cÄ«i1bua1pÄ«u1ņÄe1zuÅ«1noe1nÄ«i1noe1mÄÄ“1ļaÅ«1pÄÄ1beÄ1moÄ«1jae1jiÄ«1ree1ceÄ«1riÄ«1tīū1niÄ«1žīi1žia1fÄ«a1bee1Å¡Äe1Ä·oe1pÅ«e1ļīu1Ä£iÄ“1tÄ«a1cie1jÄ“a1zÄ«o1lÄ“u1gaÄ«1cia1kee1hoi1nūū1šīe1sie1boo1ģēu1ņiu1sēē1bÄo1Å¡aÅ«1roÄ“1cei1zÄ«i1veo1ļui1dÄ«o1kue1vÄ“a1riu1sÄi1pÄi1dÄ“o1pūī1vÄ«a1meÄ“1zeÄ«1bÄ“u1Ä·ea1bÄ“a1jaÄ1ļoa1jÄ“e1feo1puo1toÄ“1vÄ“a1kio1mÄo1loa1loÄ“1Ä·ie1šēū1dīū1cÄo1zoo1gÅ«o1gÄÄ«1tÄ“e1zēī1lee1gīī1nao1mee1poe1fua1Ä£eu1rÅ«u1riÅ«1joe1dÄ“a1ļaa1žÄÄ«1ļaÄ“1nea1zÅ«Ä1vÄ“e1soo1mio1Å¡oÄ“1sīē1ļue1gai1pÄ“e1vuo1ruÄ“1juu1ÄiÄ1vaa1huÄ«1sÄ“e1Ä·ai1rÄa1ÄÄÄ«1kii1tiu1cui1žuÄ1jou1kiu1muo1Ä·Ä«e1maÄ«1ļoÄ“1deo1ÄoÄ1Äui1ņau1ļau1mÄo1hei1lÄ«a1deo1faÄ“1roo1sÄ«Ä1riÅ«1tio1bÄ“a1jÄÅ«1zuÄ1vÄ«e1ļeo1ņaÄ«1deÄ«1Å¡ea1kūū1jao1dÄ«e1žie1riÄ«1gÄe1kiu1zeu1mai1vīē1pÄ«u1lue1tio1ÄÄa1Ä·iÅ«1zÄ“a1ļoi1Äio1kea1Ä£ui1vÄ“u1Äuu1cau1vuo1ļai1rio1ņou1coa1rÄo1jÄÄ«1bie1Äīē1rÄ“e1kÄi1pia1kaÄ1vuÅ«1žae1mÄ«e1vÄ«o1gia1pēū1zÄi1cÄ“e1vao1nīī1rue1pÄa1ceÄ“1kÄo1jaa1hÄ“a1boÅ«1muÄ«1vei1nÄi1fio1vau1žue1Ä£iÄ“1nÄ«i1lii1ņou1laÄ«1Ä£ee1caa1tÄÅ«1zia1būē1pēī1suÄ«1pÄÄ«1zuÅ«1die1loÄ1mÄe1cia1žaÄ“1toe1rÅ«Ä1lau1Ä·uo1ģīÄ1pae1lÅ«e1sÄ«e1bÄ“i1coi1Ä·Ä“a1Å¡oÅ«1kuu1Å¡Äo1dia1ņaÄ«1pao1pia1žēa1sia1hau1Å¡oÄ“1mÄÄ«1moÄ1žoÅ«1lue1žūo1Ä·iÄ1vÄa1žoi1zÄa1kuo1zio1dÄe1cuÄ«1noe1zie1jÅ«Ä1ņoi1ceÅ«1lÄ“a1žīo1mÄ“i1bÄ«o1ree1zūū1raa1gii1lēī1bÄÅ«1Å¡ue1bii1gūū1Ä·iÄ“1vaÄ1tou1cea1pÅ«Ä1gii1Ä·eÄ1kÄe1ķīē1žau1veu1voÄ“1noo1bua1tÄ«e1fie1ļoÅ«1žia1tūī1tiÄ«1lai1hoÄ“1gii1fÅ«a1tÄ“Ä1Ä·ia1mie1rau1jae1meÄ«1bui1puo1laa1Ä·Ä«u1Å¡uo1žaa1rūū1ļae1ÄuÄ«1loo1nuÄ1jÄ“a1dÄu1rÄ“u1rīē1žoi1mÄa1zoo1žuÄ“1daÄ«1coÅ«1zÄ«Ä1saÄ“1Å¡uÅ«1poi1siu1zēū1riu1zīū1gÄe1puÄ1due1cēē1jii1biÄ“1rÄi1ļiu1nui1kia1mūī1niÄ1feÄ“1caÄ1ņiu1goa1nue1nÄ“u1kuÄ1žiÄ“1goe1ÄeÄ“1zaÄ1ÄÄi1Ä£eÄ«1goa1goe1bÄ«i1zee1šūo1kÄ“o1pÄ“i1naÄ1raÄ1jÄ«o1zae1zÄa1lÄe1ņēa1jeÄ“1siÄ1bou1gÄi1sÄ“u1Å¡iu1bÄ«a1vÄe1koÄ1Å¡uÄ1ģēi1moe1ļÄi1tÄ“u1ļÄa1ņēu1naÄ«1voÅ«1mea1hīū1kaÄ1mÄ«Ä1līū1tue1jeÄ«1vÄa1baÄ«1dÄÅ«1koÅ«1cÄ“Ä1nÄ«a1ļēu1juÄ1žÄÅ«1moi1geÄ1pÄe1lÄi1Ä·Ä«a1sÄ“e1nia1maa1tui1kÅ«a1bii1jīī1Ä·ue1fÄu1taÄ“1dÄ“a1gÄi1lÄi1ņie1ļaÄ“1tiÄ1bia1Å¡ia1lÄ«i1jae1muo1hÄ“u1jÄÅ«1Å¡ai1sÄu1poÄ1cÄa1seo1ņeu1foÄ1sÅ«Ä1bÅ«o1coo1Ä·Ä“Ä1ļae1žeu1tīī1kuu1Ä·au1zie1doi1soo1fiÄ“1sÄi1pīī1Å¡ia1dÄ«Ä1tiu1ņou1pao1kao1cÄ«i1peÄ«1mÄÄ1pÄ“Ä1pīū1pÄ“o1bÅ«e1Ä·Ä“a1mÄ“Ä1rÅ«o1dei1Ä·ao1šīī1guu1biÄ1kaÄ1nuu1žiu1soÄ“1kaÄ1leÄ“1peu1ļīī1meu1dÄ«i1žÄi1duÄ“1rao1voo1fÄo1soÄ1ļÄe1dÄÄ1guo1boe1hÄ«Ä1Ä£iÄ1Äoa1dÄ“u1diÄ«1seÄ“1sÄ“Ä1nÄa1nīū1rÄo1hio1Å¡Äi1lūē1lÄ“i1teu1Å¡eÄ«1tuu1Ä£oe1Å¡iÅ«1bae1ņau1siÄ“1zoÅ«1kÄi1guÅ«1dai1sÅ«o1bÄ«a1moÄ“1gÄÄ1veu1bÄ“e1ņoÄ“1voÄ«1mÄ«u1ļuÄ1tui1cÄ«u1faÄ1tÄÄ“1guo1gai1mii1fÄ“i1ļeÄ1cou1žīi1zÄ“i1vua1jui1caÄ«1ÄuÅ«1reÄ“1bie1roi1fÄa1heu1moi1joe1buÄ«1roa1teÄ«1Ä£iÄ1dii1bÅ«u1ļiu1lea1nae1tÄe1bÄo1tūū1zeÄ1fuÄ«1bea1pÄu1dei1dÅ«e1veÄ«1dia1vou1lÄe1piu1dēē1dÄo1joi1žoÄ«1Ä·eo1nÄe1mÅ«Ä1zÄa1roÄ«1rÄa1žeu1jea1tiÅ«1cÄ«i1tīī1viÄ«1joe1coi1tÅ«i1boÅ«1pee1tÅ«o1pÄÄ“1sea1ļÄÄ1jia1Äoe1zaÄ1mÄ“a1žūe1Å¡oÄ«1ļuÅ«1jÄo1sue1jao1tae1lÄ«o1zeÄ«1vÄ“o1vÄa1vÄ«i1kÄ«Ä1zÄ«u1haÄ«1pÄ“i1deo1nēū1bīē1tua1žiÄ1žuo1ņÄo1ļoi1ņēu1ciÄ«1caÅ«1sae1rÄ«i1bÄ“e1nea1šīu1giÄ«1mua1zÄi1loÄ«1cÄ“u1lÄ«e1Äoa1bui1nÄ«Ä1dÄÄ1tÄ“Ä1koÄ«1Å¡uo1Ä£ia1tai1laa1vaa1Å¡ea1hia1cae1bee1žēa1suÄ«1dÄ«o1dae1Ä£oe1ņue1paÄ«1jÄe1sÄa1ņiÅ«1soÄ«1nui1voÅ«1loÄ«1nēē1mīū1cuo1žēē1jÄÄ«1cÄa1Äuo1zÅ«a1luÄ1luo1ņua1vui1tui1Ä·ui1Ä·oi1koa1faÄ«1pii1goi1mea1fie1sūī1juo1pea1sÄ«a1nēū1žeÄ“1vei1poo1zÄ“a1nee1saa1lēē1Å¡aÅ«1giÄ“1lÄi1mÅ«u1vÄÅ«1mīū1mÄ“u1roÄ1poo1jui1fui1jÄ“i1gaÅ«1tÄÄ“1luÅ«1sÄa1gÅ«Ä1bÄa1lao1riÄ“1Å¡oÅ«1ņao1fÄ“e1liÄ“1kou1vaÄ«1Å¡oa1zie1dÄ«i1dai1šīi1hÄ«i1nei1Å¡uÄ“1kue1ņÄo1naÄ«1žao1ÄaÄ1fao1tēī1dÄ“o1tÄi1hiÄ“1muÄ«1soe1cÄÄ1ziÄ«1cÄ«u1šēo1noÄ1ņeu1buÅ«1gÄ“o1vea1ģīi1lui1pae1kaÄ1ciu1Ä·Ä«o1sao1goi1nuÄ«1žoi1sÄ«o1fÄ«a1pua1duÄ«1ļio1bai1fae1mio1cuu1žaÄ1mia1Ä·Äi1Äuo1žūī1kÄÄ1Ä·eu1ģēe1daÄ“1dīī1ÄoÅ«1paÄ1deo1mai1dÄÄ“1ņoÅ«1žuo1koa1vÄ“Ä1zÄ“Ä1sÄÄ«1dou1cÄÄ«1ļÄu1due1juÄ1sio1vÄ“i1Å¡au1feo1jiÄ“1reÅ«1ļīu1ņaÄ1caa1Å¡uÅ«1nuÅ«1lee1Ä·iÄ1tÄ«o1gei1vÄÅ«1zaÄ“1nÄÅ«1maÄ1Ä·ue1lÄ“Ä1sÄ“Ä1liÄ«1nei1mÄ«Ä1pia1mÄa1žui1juÄ“1vuu1nÄÅ«1rue1via1pai1bÄo1cÄ“Ä1lÄ“e1kuu1lÄ“i1see1vÄÄ“1jÄ“e1pīē1cio1Å¡ia1hÄa1kÄu1jiÅ«1rīī1sÄi1roo1rÄÅ«1kio1roe1ruo1kūē1sua1ņÄÅ«1tÄ«Ä1bae1ņee1nuÄ“1teÄ1voa1sae1nūū1žīo1žeÅ«1doÄ“1jīī1vuo1viu1baÄ1naÄ«1mÄ“a1jiu1tie1moa1rae1hio1teu1boe1sui1fīē1pii1Ä£iÄ«1ņuÅ«1lÄ«Ä1roo1zÄa1vio1niÄ«1zao1doÄ«1zÄo1gÄ“u1zÅ«u1liu1daa1Äie1tai1raÄ1Ä·aa1jūī1baa1cÄ“u1rai1kÄi1zuÄ“1nua1Å¡Äe1tou1gēū1pÄ«a1hoÄ1jeÄ«1Ä·aa1veo1Å¡uu1ÄoÄ«1miu1sÄ«a1dÅ«e1cūī1rÄ«u1koÄ1Ä·Ä«Ä1zuÄ1muÄ«1saÄ1ņuu1kai1baÅ«1viÄ“1gaÄ“1Ä£ea1rÄ«u1Å¡au1cÄ«a1coÄ«1cuo1vui1jeu1doo1cÄÄ1vii1jÄa1zea1muo1ņie1žao1ÄÄ«i1Äai1mÄ“Ä1cīē1lae1dūū1nīī1poÄ“1ļiÄ«1nÄÅ«1beu1seÅ«1ciÄ«1ņÄÄ«1keÄ1cēē1saÄ“1lia1Ä£Äu1peÄ1kua1bÄ«u1puo1cau1neÄ«1ļīu1mie1dui1ļuu1pÄÄ«1ņaÄ«1puu1beo1Äuo1šēū1Å¡oÄ“1mea1Ä·au1zoÄ“1zÄÅ«1cee1tÄ«o1Ä·uÄ“1jou1tÅ«Ä1cui1vie1žÄa1joe1joÅ«1biu1nÄ«Ä1ļue1zoi1mau1vÄ“o1jÅ«o1haÅ«1pue1Å¡aa1rua1liu1mīū1veÄ1pei1cuÅ«1nÄÄ«1sÄ«e1peÄ«1zÄ«i1rīī1peo1poÄ1rÄ“a1ņeÄ«1gie1žīī1lui1suÄ«1tÄa1noÄ«1žia1sÅ«a1koi1žēu1joi1vaÄ«1jia1feo1pae1rÄ“e1šīē1cui1Å¡ÄÅ«1žÄe1Ä£eÄ“1cÄa1poi1tÄÄ1neÄ«1vae1seÄ«1rao1guÅ«1deu1dÄi1diu1rÄÄ“1nÄ“a1toe1fÄ«a1soe1zeÄ“1leo1muÄ«1tae1ļua1zēē1Ä·Ä“o1Ä£ee1naÅ«1vēē1duu1žoi1nēī1sii1kaÄ«1fee1noi1lee1pÄ“e1ģēÄ1goi1nie1Äaa1Äīē1bea1Å¡ae1gii1muÄ“1bÄ“a1Äūī1Å¡Äa1bÄÄ«1duo1ciÄ“1boÄ1kio1moÄ“1loo1lÄo1lea1gÄ«u1kÄÄ“1viÄ«1lÄ“u1Äēē1moa1cÄ«u1ÄaÄ«1toa1fÄ“u1Ä·ie1faÄ«1Å¡ao1bÄa1ļiÄ«1daa1mÄ«i1gÄa1ģēe1cÄ«Ä1tai1reÄ1meÅ«1dÄ“a1reÄ«1lia1gao1tuu1pÄ«e1haÄ1Ä·Ä“e1tui1ģēe1kÄ“Ä1bÄ“o1ÄÅ«a1zuÅ«1sēū1neÄ1gaÅ«1voo1hoÄ“1ļÄo1rīū1juo1fuÅ«1jio1lÅ«Ä1doi1tou1bÄu1geu1cÄ“a1leu1ķēī1cea1Ä·uÄ1zee1Å¡uÄ“1jaa1vÅ«i1ņÄÄ“1nao1neÄ1dÄ“Ä1Ä£au1suu1saÄ“1diÅ«1sue1foÄ“1niÄ«1pÄ«i1kuÄ“1paÄ“1poÄ«1zii1ļai1Å¡iÄ“1lÄ«Ä1noa1jÄ«Ä1gÄo1zÄ«Ä1dÄ«o1ļiÄ1rÄÄ“1ziÅ«1piÄ“1geo1mÅ«i1kÄ“e1gÅ«u1gui1zÅ«a1gua1lÅ«i1cÄÅ«1lÄo1Ä·eo1seÄ“1vÄÄ“1rua1foe1sÄ“Ä1reÄ1lÄe1ļia1ņue1jÄÄ1žaÄ“1zue1ņiu1piÄ“1mÄ“o1ņēo1tiu1pÄ“e1zÄ«u1fie1Ä·eÄ1jÄu1vīī1ņiu1žÄÅ«1lie1deo1beÄ“1zÄ«e1hue1heÄ«1lÄu1tÄ“e1nÄa1sÄÄ1seÄ“1ļoa1Ä£iÄ«1zeo1jeÅ«1tee1kÅ«o1liÄ1ceo1vÄ«i1ciÄ1soe1gei1Å¡ea1nii1doÄ1lÅ«o1žÄo1Å¡eo1zua1cue1mÄ“e1guÄ“1taa1doe1baÄ“1Ä£ie1žoÄ1gÅ«a1zaÅ«1laÅ«1Ä·Ä«a1piÄ«1nīū1Å¡Äi1šēo1ļeÄ“1miu1zÄi1Ä·ÄÄ«1koo1dūī1Ä·ia1Ä·Ä“Ä1suÄ«1lÄ«e1ÄÄÄ“1ļeu1zao1žio1feÅ«1tÄ“o1kiÄ1zae1leÄ“1bÄ«a1dio1sēī1žuÄ«1bou1mea1rÄ“i1ļoÅ«1siÄ1sÄ«u1niÄ«1kaÄ1ļio1tÄ«Ä1Å¡ou1tue1žui1žao1luÄ“1rÄ«Ä1juu1šīa1Ä·eÄ“1soÄ1daÄ“1baÄ“1rio1ceÄ“1kii1ļÄa1peo1šūu1ļoÄ«1zoÄ“1rÅ«e1goe1tei1zae1vou1vii1fei1ņuÄ1zoÄ“1zÄ“o1jÄ“u1reÄ1ņaÄ“1pÄo1žou1nÄ“u1ņuÅ«1dua1ļuu1mēē1puu1loi1jiÄ1rīī1rÄ“e1rÄu1rua1cÄo1rūū1nau1Ä£eÅ«1dÄu1tÄi1sa", + 5 : "at1tueg1rÅ«ak1soit1deeb1lÄet1vÄ«or1bial1Å¡aap1dÅ«ak1naum1ciaÅ¡1leÄ“r1Ä·een1kuil1kiÄ“r1kuat1nÄat1ģēus1pÄ“os1vÄ«os1cian1raen1paej1dÄ“až1vÄ«as1buÄ«s1gaiņ1dien1touj1meor1kiel1zoot1nÄ“es1kouz1guak1tiÄ«r1niiz1hiil1pues1maÄt1viag1rÄ“on1zēīb1tuap1doÄ«t1vÄ«ul1sÄÄ«k1lÄ«ur1sook1tēēb1tuÄ«s1laet1veal1moop1Å¡aen1ceim1nÄ«uÅ¡1Ä·aek1tiiz1cÄ«er1diur1faan1tÄer1baas1peal1suip1soal1cÄ«at1deaņ1raÄ“k1Å¡uÄ«g1liom1nioņ1kaas1leat1ņiid1rÄ«un1veal1kÅ«in1daÄr1baÄ«s1žual1kaup1jÄ«ur1guat1sīīg1mÄÄl1tial1vauļ1kuok1rÄ“er1giuz1ļoak1šēīm1reiz1teÄt1vēēg1niÄ«g1ruil1cÄ“ir1muar1kuot1ziub1naan1Äeom1bīēg1siel1leav1ruil1nuÄ“s1teur1kÄik1roep1nuur1vÄ“oņ1luit1mail1jaÄ“j1tÄ“an1gaeÅ¡1paÄl1ceob1rÄ«ur1viup1riÄ“z1tÄiz1Äoap1Å¡auz1ruut1rÄ“ar1toež1nÄ«aÅ¡1ļuaļ1ceal1neis1sÄ«ib1Å¡ouz1nuut1ņuul1deÄr1hoam1pūēl1guum1viik1toÄ“r1zeož1vaez1nÄ«am1lÄ«ak1seel1koep1siÄj1tuum1zÄat1jaal1Ä·Ä«az1dÄor1toec1heat1cÄ«en1koÅ«s1kiÄ«g1saef1riÄr1saim1poÄ«t1rÄ«ed1viid1sÄ“Ä1džÄup1laÄ“c1tees1puuk1Å¡oÄp1niÄ1džiak1laen1naas1kaÄm1diag1liog1rÄag1dÄoz1vian1kuÄ«k1nÄ“us1mÅ«er1maÄb1Å¡ain1tuob1tiap1cues1vÄac1tiur1puar1kÄ«el1lait1taam1leik1seÄ“k1tiar1sais1muut1Ä·eÄr1vÄ«u1džiet1nÄid1kaÄl1seur1naÄr1zouz1liÄn1kaas1veab1laaņ1Ä·eÄ“b1tÄel1vÄal1žuat1pÅ«at1goÄ“r1lae1dziiz1dÄ“ab1seat1žēir1caÄ“r1suuļ1mael1peej1veap1veÄ«g1rÄel1poed1loit1moep1nÄuk1tuat1Å¡oap1Å¡ÄÄr1Äoak1sÄ“ek1tÄ“om1peul1goum1dÄ«ec1siÄ“d1vium1mÄiz1mook1zÄÄp1roÄl1koÄl1vÄ“ed1poÄ«l1ziof1rēēj1loap1sÅ«ip1Å¡ois1puin1feep1raat1Å¡aor1gaon1gÄak1Å¡uat1joes1pauz1Å¡aÄr1suuz1beik1sÄ«en1Å¡aok1teok1buur1Å¡aor1Ä£eÄ«n1taap1Ä£iiz1zuim1tÄ«ap1teon1nÄus1jÅ«ur1noab1tien1jÅ«op1soeņ1nour1kaan1Å¡ool1leÅ«s1moÄs1tÄek1tÄ«uz1sÄ«iÅ¡1Ä·Äum1pÄis1poob1lÄ“ap1zaek1doez1mēēd1lauÅ¡1kaof1rien1hÄ«Äf1riuk1nuiz1doej1gaul1riiz1fiir1nais1kaÄr1doen1Å¡oož1maÄ“s1tÄ«at1sÄum1laoÅ¡1paeb1toez1ņiej1kaiv1žuuņ1Ä£uik1nail1kool1muim1siap1taos1tuus1tÄ«at1koar1ciiļ1doun1ÄioÅ¡1sien1zÄir1zoi1džÄuz1baer1vÄ“ip1niil1zuin1pÅ«or1hiiv1deos1mÄ“uz1pÅ«Äm1pios1tÅ«az1bÄ“al1deon1deuz1ceem1baÄ“r1ļuat1nÄ“Är1tÅ«ur1cuir1kuÄv1daÄ«p1riop1rÄej1niam1dÄ«ak1vaek1piup1veÅ«t1maun1tÄaÅ¡1maÄv1jaum1tiÅ«z1mÄim1teev1rÄ“on1tiig1zaiz1gÅ«up1rÄid1pÅ«Är1cÄ«Är1lÄ«el1lÄ“us1gaez1daap1cÄ“ej1laag1dauz1vaop1sÄ“ÄÄ£1veel1toÄ“z1kÅ«eÅ¡1viuz1vīī1dzeis1mÄ“ef1rÄ«ab1Å¡aup1maÄr1nÄ«aÅ¡1vaab1riob1tÄik1sÄis1mÄ«ag1Å¡aÅ«r1kaÄņ1muev1nior1daem1zeÄj1loat1rÅ«al1reil1cÄ«Är1miet1maum1daob1leÄp1tuel1pÄiz1Ä·eez1tual1tÄ«ap1rÅ«iz1taem1žaar1giÄ“v1reas1kÄaž1kÄeg1taal1gÄap1leap1roÄ«v1niop1kaik1viil1tÄ«ur1pÄ«ir1kÄ«iņ1neiz1daop1reÄ“l1niis1nuar1cÄ“ed1sÄ“ul1kaÄs1maop1baos1fÄ“ak1leeļ1mūēb1Å¡uaÅ¡1rauļ1puoÄ·1vÄÄr1Å¡oam1diÄr1žued1pued1veen1reÅ«k1liuÅ¡1piep1taal1vead1maez1ceÄ“g1tÄud1rÄ«im1biek1raiv1jÅ«ez1biiz1meuļ1tÄ«if1rÄ“ap1kuid1niog1rēēj1deop1koiz1tÄ«un1ciÄ«t1kaÄ“j1nīēr1pÄ“oÅ¡1ļaat1zuÄ«v1gaos1naog1gaes1luÄt1koaz1vaem1zias1kean1siiz1mier1vÄep1sÄ“al1sÄus1cÅ«ul1saen1taor1vÄ“ek1tÄuz1žoan1mai1dzÄ«ij1kuid1laÄ“p1taēļ1kour1tiap1nÄ«ot1reeÅ¡1ņuun1deÄr1vÄ“uz1ģīer1mÅ«o1džuoÅ¡1niij1kÄal1loig1loer1rÄ«em1puug1ļoūš1doip1Å¡aÅ«s1tÄoÅ¡1baal1lÄ“eÅ¡1dauļ1ļÄÄr1sÅ«in1deem1toÄs1tuol1fior1mÄiv1puaÅ¡1laec1hoÄr1zaar1kaub1sÄ«ap1ziÄ“p1toÄk1tuer1teur1zuÄ«m1kaon1juap1gous1loor1naog1noam1dÄÄr1taÄ“l1neer1cÄim1nauz1zÄÄr1noaj1ciip1tÄit1ļuag1riÄr1bÅ«os1poēņ1daan1kÅ«om1bÄ“Är1veaļ1Ä£eim1tial1tiīņ1niin1naep1lauz1diiž1meal1tÄ“in1sied1maor1tuem1taug1sier1beus1rail1muÄr1gaeb1loÄ«r1rūīt1real1laet1viel1diÄr1žiiz1caad1daÄ“n1mÄ«ut1saol1poez1rair1Å¡Äeg1Å¡oud1puud1lÄ“uk1sÄ“on1vuem1pÄÄ“k1bÄ“Är1dÄ“en1zÅ«Äj1reat1loez1niet1kaiv1jiin1kuor1bÄ«ok1tial1siur1zīūn1gaÄ“r1paam1biat1roÄ“r1buiz1Ä·Ä“ip1sÄ“uz1Äiir1duuh1tÄer1bÄik1gaīš1Ä·iiz1rÅ«it1daok1ņuÄ“g1tair1loan1kain1dÄ«es1vÄ«op1maum1sÄ«on1paem1pīūk1koel1tÄ«uz1meer1vīūz1naeg1ruit1gaus1duÄ«t1ņuep1lÄur1vaum1zīīd1lÄ«o1džiÄr1buak1tÄer1taÄ“r1noÄ“r1pÄum1bien1caoņ1cūēj1muat1pīēr1gÄip1reÄr1viaļ1Ä·oet1niir1gÅ«Äp1neir1suÄt1meeb1tuin1cÄ“aÅ¡1Ä·eip1room1daep1tÄ«ef1raÅ«1dzaÄ“t1kuub1liaz1beÅ«s1kaus1paar1suuf1liÅ«r1vīīs1zaaf1rÄ“uz1ņae1džaiz1bēūt1dien1nÄ«eļ1Ä·Ä“es1kuaz1daÄ«g1raiz1gÄar1Ä·Ä«er1Å¡uud1kaed1riop1raap1liap1dÄ«ed1laan1rÄ«en1tÄ«Äb1Å¡oan1cūēj1daes1tÄ«er1koÅ«g1tael1zuin1neer1biig1meež1niad1miaj1niel1liik1Å¡uÄl1puar1gaet1taÄ«c1Å¡euz1zuom1bÅ«un1kuÄ«b1niar1žaÄ“t1niis1tuun1zeaÅ¡1diit1nien1zÄ“en1Ä£eer1peuz1zÅ«ul1siur1caap1fais1noiz1Ä·Ä«us1viin1hoog1ļuÅ«s1nuer1gair1zeÄ“l1reÄ“s1liem1maif1raat1mÄ“ur1rÄat1hoob1juop1roip1liec1mÄer1mÄ«ak1mues1saÄ«k1lou1džēur1fiid1koÄr1ņuuņ1Ä£aÄ«k1liiņ1Ä·eas1kÄ“il1deÄr1kÅ«ul1boez1noen1mÄ“ab1rouz1gÅ«ek1ņuož1ņÄat1kuuk1sauk1loar1doak1tuÄr1duik1cial1duen1peal1vÄ«un1tiul1leos1cÄ“ec1saÄ«k1tiÄr1dÄÄ“b1juap1Äuub1rÄiv1paos1maoÅ¡1Ä·eaÅ¡1puum1pēēp1tÄek1siÄ«k1ļuuļ1ķīūš1kaal1peÄ«g1nÄuz1pÄÄt1rÄÄ«g1nuik1luÄb1tÄum1jiab1soog1leir1teÄ«b1tÄil1doem1zÄ“ar1Ä£eot1veap1gÅ«id1vÄÄr1deÄt1neÄ“t1saad1doen1jaer1naÄ“k1liiļ1ņauÅ¡1kiiz1nÄ“oz1vaez1gous1bÄut1riur1luib1reej1teok1hoen1zueb1rÄem1tÄed1mÄah1tiem1tium1sÄaz1tuur1sÄ«in1goÄr1diap1ņoÄ«s1cÄ«al1bias1niek1seal1liuk1naal1nÄ“iz1mÄ“er1ceÅ«s1mual1tÄul1fÄÄ“k1loaz1gaer1zÄir1guig1rÄ«en1dÄ“eÄ1tuep1ļaÄ“k1tauz1dÄ“ur1suÄ«c1kuit1biÄk1kÄÄp1tÄeļ1ceed1rÄib1rÄer1miÄb1rÄ«iļ1Ä·ior1mÄ“em1pios1vÄas1zoaf1rÄež1pÄÅ«s1nÄ“Än1veeļ1Ä·ioÅ¡1gail1žuen1vaÄ«t1raak1riup1tuad1kaeļ1zÄ«ir1nÄ“ec1veor1muiz1mīīš1ļaab1veer1riÅ«1dzeÅ«z1niin1kaīķ1saud1peus1mÄ“iz1rÄ«on1rÄaņ1kÄat1zeÄl1reem1jaim1sēīk1luek1vaat1bÄ«is1lÄos1pÄ«Är1jÄas1mÄol1nīīg1tiem1poÄ«g1tÄed1vaar1daor1pous1nial1lÄos1tieg1dauz1bÄÅ«t1rÄ«ag1niiņ1dÄ“iz1zois1meat1biaz1tiog1raen1laat1doap1zÄ«am1gaus1tioÅ¡1Ä·iis1tÄat1laÄ“j1tie1džÄec1kaor1Ä·oiz1pÅ«uļ1zier1deuk1ļueh1niÄ“g1toÄ“l1siÄ“c1nÄap1pÄÄl1noar1hÄat1guob1ļaap1bouļ1Ä·iuk1lÄ“es1biar1žoiv1coel1miÄ“r1ciik1mÄ“ap1dauz1Ä·Ä«im1puÄ«k1laag1ruiz1dÄ«er1ņaat1ņuor1piÄ“p1niÅ«t1ņueÅ¡1taar1taun1gaoÅ¡1ļieņ1Ä£ian1tÄ“at1sior1teiz1rÄol1viiv1cÄ«aÅ¡1koÄm1riÄz1tuek1sīūk1tuÄ“k1ļuir1sÄel1kuek1suaÅ¡1ļiiļ1ņuiz1siir1giat1haar1tuem1buÄt1saek1ļūen1tÄiz1Å¡uas1poir1taab1reit1leÅ«k1piuņ1neaÅ¡1viÄm1paÄr1sÄ“ok1siog1paut1rÄ«in1jiig1noiž1ļaÄ“b1niuk1maÄ“p1Å¡uol1vēēz1taam1kÄed1foÄp1rair1ceul1lias1noÄ“t1raon1taur1ņiur1biiz1cÄ“us1kieb1Å¡aož1mean1gÄ«Äv1jiip1siur1nÄ“ak1Å¡aeņ1kuab1liil1vÄ«is1kÄ“om1pÄir1mÄ«ip1līēn1mÄÄ“r1Å¡ÄÄk1dael1nÄul1peiÅ¡1ļoÄ“j1puÄl1lÄ«ud1koer1viak1tēīs1kaag1tÄÄ«1dzÄ«at1vuar1mÄ“ar1sÄ“eb1lÄ“od1kÄÅ«r1viot1ņuen1daaz1duÄt1nÄoņ1meÄl1baeb1Å¡ouz1mÄan1zÄ«ag1lÄ«ot1buil1poÄ“r1Ä·aur1cÄej1boaz1zeiz1žoop1ļÄÄ«g1Å¡uÄ“s1luat1mÄeg1loÄ«t1riir1tuek1sÄik1taeg1luur1vÄun1bÄ“uz1mÅ«ež1zieg1tÄor1maob1gaav1koel1baÄ1dziat1Ä£iÄg1neÄ“r1zaed1rÅ«iz1huaÅ¡1ņaÄb1siuz1niet1piÄz1vÄu1dzien1tÄ“Ät1reÅ«v1noum1suiz1ciat1rauz1rior1taÄk1luik1poÄÅ¡1Ä·iÄr1peap1Ä·Ä«uz1bÅ«uz1pÄ“uz1siir1žaan1gÄap1šūi1dzeat1juat1fois1neez1rÄ“as1gÄal1guas1tiūš1koes1tÄal1jÄ“in1Å¡aab1lei1džaÄ“p1jaeb1ļaub1leab1tuÄd1miiņ1Ä·oÄ1džaek1liun1liek1mÄ“ok1līēr1piÄ“r1puiļ1laep1kaem1liez1naid1maaž1neir1reÄ“t1diam1zoÅ«r1foež1gaim1toÅ«p1nÄ«at1duim1tÄÅ«g1Å¡oen1sial1geal1dÄ“eļ1ļaap1vÄ«Är1cuež1Ä£aiÅ¡1reÄr1neul1jear1mÄ«oÅ¡1kaÄ«n1vaÄ“r1maok1nuom1raap1jÄus1ceun1mÄek1Å¡iob1lÄÄ“r1sÄet1neuz1deil1boit1pÄar1tÄ“ed1kool1vÄ«ot1rÄ«us1seÄ“t1tiiž1ļuÄ«z1deen1sÄis1laik1teob1toag1lÄit1koep1ciÄg1tiÅ«s1leek1luus1mÄÄr1zeÄ«s1tuar1kÅ«ir1deed1jÅ«or1fīēt1liÅ«s1mÄel1noid1ruij1koer1veec1laaÅ¡1moem1zouz1bÄ“er1foeÅ¡1Ä·Å«ak1lÄ«el1luib1liek1nuir1ņuaÅ¡1nÄÄ“l1gaem1nÄ«iz1vius1teis1haon1joaz1kaÄs1taaÅ¡1taiz1vÄ“er1nÄ“uļ1vaab1lÄ“an1žuoņ1veil1buem1paob1seem1joÄ«v1suer1cour1toÄ“g1vÄin1ciak1ļūuz1Å¡ueņ1laÅ«g1Å¡uÄg1tuÅ«g1tiÄ«t1vaer1kaol1šūiz1Äuus1keur1bÄ“Äp1riak1ļaÅ«s1kÄos1vaer1zeÄ“t1nÄ«Äj1kuen1žouļ1veis1Ä·eÄ«g1siur1meur1bÄ«on1hÄ«an1diÄj1mÄep1ļēaÅ¡1ņuor1viad1voaz1guuz1lÅ«it1piak1Å¡oap1siÄs1toin1team1saap1Å¡oiz1vouz1veuļ1ņeuz1fouv1sauņ1Ä·auz1taug1ļuek1lÄ«ok1seok1viaž1ņaoņ1saab1hÄiņ1ciug1Å¡Äek1rÅ«ij1paok1veap1heut1boel1zÄor1dian1goiņ1ziek1mÄ«ap1bÄ“on1giaļ1meab1ruig1tiur1beu1džeek1viur1zeÅ«m1vaum1muaļ1buÄt1ņuom1reug1leez1taam1buat1cēēp1juez1saat1nian1meuz1noÄr1lÄ“ul1kÄar1puiz1ruan1žieņ1Ä·Ä“od1niis1naem1zÄÄr1seat1riit1ruuÅ¡1Äoil1veal1taoÅ¡1vīēr1poil1piap1pÄ“is1ķēēr1saÄr1kuoļ1Å¡euz1piav1roog1rūīg1ņaÄ«1dzÄil1zeez1veÅ«r1teon1dÄup1daiz1nÄim1diul1giaz1mÄ“Ä1dzeas1lÄ“ok1ļaak1ceÅ«n1veek1look1tÄap1joÄ“r1guil1nÄiz1heuļ1ņēīt1ruÄ«d1seak1rÄ“Ät1roat1daiz1žÄol1tēūt1saas1kuÄ«n1būīv1sior1noot1ceol1deab1paÄ“r1peoņ1kook1naev1zeus1riip1tieÄ·1tuop1taÄ«s1raer1zÄ“of1rÄur1dÄ“ot1kais1ziÄ“k1mÄ«iz1neag1rÄ«on1siir1pÄ“er1niÄs1vian1zaÄ“l1gÄap1duek1lÄÄr1ņaum1paan1faÄr1pauļ1soar1peeÅ¡1ļaÄ“r1vief1rÄog1lait1pÄ“in1jeut1maig1nuÄ“r1teaz1gÄÄl1deÄr1zion1feon1maib1taat1žuit1lÄ«it1raok1beis1žēēz1maÄr1tier1ruaz1jaÄ“g1lean1niaz1lÄ“uk1niat1lÄ«eņ1maik1vÄ«ap1bear1neip1taap1žuaz1puak1raul1veis1pÄ“ež1saiv1maÄr1Å¡uek1naos1laik1tēēs1laes1laat1kiiz1luur1leÄ«d1niit1seej1maiņ1siÄr1lÄus1vaus1ciif1teel1tauz1gaak1tÅ«or1veiz1ceoÅ¡1kÄÄ“t1ruad1rÄ“et1ņuik1Å¡ooz1mair1tiuz1daÅ«m1deel1tēēz1tiit1rÄ“aņ1veap1zÄat1gaup1deÄs1naap1tuÄp1ņuin1tÄ“Äs1neap1reir1kauz1tÄ«uz1goat1ļÄad1rÅ«ir1ziÄ«v1mÄer1sain1tiÄb1juiv1siep1joe1dzÄ“el1siij1žuan1duiz1tÄil1lÄul1bÄis1cÄ«ag1viÄj1rÅ«os1loÄ«k1lÄÄb1toal1nuÄt1kieņ1Ä·Ä«ol1kÅ«un1piec1reuz1Äuul1dÄen1roir1dien1Äuul1joul1ceaz1vÄ“ap1jÄ“Äl1zīūš1ļoog1veag1sion1suog1caol1guÄr1zÄig1liiÅ¡1saot1rual1vÄam1tÄ«Äs1teud1rÄÄ“t1kouz1jÄ“Äl1guet1meed1raat1cÅ«ol1zÄuz1žÄul1gÄok1ļuÄ«v1zeat1veen1guum1duo1dzÄ«up1joap1diur1rūīv1mūūk1toiz1ņuuz1Å¡Äuļ1bÅ«ez1piin1vÄal1jain1veiz1buap1Å¡uus1zeob1rÄÄ“k1meil1leÄ“z1toÄ«k1deÄ“j1luar1zoec1mear1zaol1buÄ“j1peul1teÄ«d1paal1kien1zoiv1kaÄl1teok1noa1dzeit1vaÄr1jÅ«un1goiz1kou1džoup1tion1liiz1ÄÄil1gÄer1guiz1zain1giÅ«1dzour1nium1bÄ“ed1muÄ“k1tuÄr1soid1luar1meir1Å¡iik1Å¡aej1zaap1haÄ«v1lÄ«as1gaeg1Å¡uiz1bÄev1juap1cear1diem1juam1boiņ1maet1siÄk1tÄ«is1daid1puiz1leet1noul1daur1tÄem1gaÄ“r1Å¡aor1miak1kÄiz1mÄab1vÄ“ok1piir1bēīg1tuir1sÄ«eņ1ciiz1sÄuz1heeļ1Ä·eeb1kÄin1Äear1moÄ“p1Å¡oeb1rÅ«on1cÅ«er1paÄ«g1naus1taÄr1rÅ«is1līēg1lieÅ¡1reuz1huak1reÄ«n1dael1deum1jaak1nÄ“ob1tuek1toÄ“r1bÄ“ir1ciih1tiov1nual1beaļ1daot1rÄÄ“r1Ä·Ä“ud1maÄv1juik1liar1duuk1suak1sÄ«us1leÄt1bÅ«ug1Å¡aag1mÄÄ“r1tÄuz1nÄuz1Äīēs1tuiv1tÅ«un1koer1mÄ“or1ciun1kaÄ«t1ciÅ«k1niÄr1gÄoz1tais1pief1koÄÅ¡1ņaig1niur1cÄ«aņ1Ä·Ä«ec1tiil1tuul1suan1joek1vÄal1pouk1tÄ«Äj1niÄm1jaÄ“r1liah1tuat1vÄ“il1nÄ“an1keas1cier1jees1nÄ«id1guÄn1vaus1fiÄr1siÄ“d1vaul1vÄel1nieÅ¡1maun1laal1maun1duan1houl1Å¡uel1mual1žīel1rÅ«ul1ciar1Ä£iat1voÄ“r1biil1vÄ“us1meat1liuz1muav1daÄ“g1tuuz1ļueg1vīēb1toad1juir1moor1fÄ“el1nÄ«iž1ļiem1deap1paÅ«g1Å¡aul1buÄ“r1muas1vieb1ļÄas1piir1sÅ«uz1vÄ“Äs1nÄ«ur1zÄir1boÄ«k1dait1nÄ«ar1pael1doÄ“r1leor1fiÄ“t1laaļ1ļiam1bÄÄÅ¡1ņÄus1joeļ1nieļ1nÄ«us1jain1guig1nÄ«ed1ruuj1bios1teem1vaar1loig1luak1lÄun1baiz1bÅ«am1zeis1tiit1neuz1sÄep1lÄ“iz1bÄ«Är1nÄ“eg1laiz1duÄ“g1dÄ“Än1zaes1loim1deat1hiar1Ä·iiņ1veÄ“r1zÄ“uz1lÄir1viÄr1ruoÅ¡1ļuat1teat1žÄun1suon1tÄod1laÄr1Ä£eÄ“s1loal1kÄaÅ¡1paÅ«z1neÄr1ÄÄur1jeuļ1Ä·aak1ņÄÄ«r1faes1kÅ«Är1Å¡iar1baÄr1Å¡air1dÄ«id1nÄ«uk1dauz1žuÄr1vaot1raam1doiz1Ä£iep1lÄ«em1siÄl1tain1suol1niub1ļuiz1ņeap1Äael1zaob1jÄuk1tÄ“ap1mÄal1riot1zair1dÄav1niÅ«r1muit1miog1ļūer1zaek1lēūg1teit1mÄ“oÅ¡1ņaÄk1leaļ1ÄÅ«Än1lÄ«e1dzÄum1beet1rÄ«ek1saal1leuļ1kaiv1niÄ“d1mÄ“il1dÄ«ul1tiot1leat1gÄiņ1sÄ“at1caaļ1rÄab1suÄ«n1buip1rÄ«uz1rauļ1deem1koat1Äoop1vÄ“a1džuuz1Ä·iir1maur1boiz1peem1tuÄÄ1sÅ«um1Å¡oap1Ä·Ä“Äl1saas1faož1ņaem1dīūz1dael1piir1saÄz1moed1roil1siÄ«k1nauz1cuos1puag1Å¡oiv1vaÄ«d1viiņ1roÄr1Äuid1neeg1puum1kouÅ¡1Ä·oÄr1kaīļ1bÄak1veez1gior1laaÅ¡1pÄÄ«g1vair1šīiļ1liÄ“r1sÄ«um1Å¡iÄ«m1juub1jeep1liat1poÄl1maam1bÄ«iņ1Ä·iÄj1raas1tÅ«eÅ¡1tÅ«en1teÄ«v1maet1nÄ«Äb1puos1kuis1tÄ“ok1ļiiz1rÄ“iz1žiel1nuiz1pÄul1tÄoļ1koÄ“v1vÄos1lÄor1tÄ«Äb1tÄ«af1roÄ“l1zÄ«Äl1ruan1Å¡uus1tÄor1doer1ciÄ«s1riÄ“d1raim1daar1beil1kuiz1mÅ«it1rÄup1Å¡auz1sÅ«us1ruir1dour1gaek1real1nÄok1niek1Å¡uob1rÄ“ir1žoÄr1dÄ«eļ1maaÅ¡1ciil1paÅ«1dzuek1Å¡aÄr1moil1giuÅ¡1ņael1mÅ«Äs1kaÄ“k1Å¡aor1Ä·iÄr1nuaz1ruÄs1tÄ«im1Å¡oum1zeÄ«v1soÅ«t1nÄ«ap1foag1Å¡uil1maÄ«c1gaÄ“r1tues1miÅ«s1mīīs1tiej1viuz1naon1naid1roel1mÄ“os1peop1luÄ“c1kaar1pÄup1ciÅ«s1maag1reūž1ņaol1gaan1taun1dial1koul1lÄir1koÄ«1dzoos1vies1lÄ“us1maec1moiz1veaz1raÄl1cuid1rÄan1žaoņ1zÄ«um1tÄaf1raum1vÄÄr1rÄab1vīū1dzÄ«i1džiÄ“g1Å¡uin1žaed1ņeec1tÅ«or1neeg1maÄp1jaÄr1šīep1reis1veol1feop1cias1teÄr1šūež1kuiņ1tÅ«es1teek1taÄ“l1cuÄr1naus1jÄ“il1teÄv1raÄv1ceaļ1vaum1niak1niÄr1rÄ“et1riu1dzÄ«on1tuup1leam1bÄ“in1toÄd1nÄ«in1taol1maÄ«k1buan1žÄÄb1maur1Ä·Ä«ak1viat1nuis1biol1veog1neÄ«v1biok1luÄr1ÄÄ«ug1tiÄ«n1raig1touļ1Ä£iÄr1maum1jīē1dzeap1rÄ“is1nÄÅ«p1koun1siil1tÄap1ņuol1beos1miig1laÄ«l1nior1bÅ«ip1ruak1cÄ«eņ1Ä·aez1gÄ«oņ1sÄÄz1niÄn1pÄus1puÄd1neus1poÄ«n1deÄk1baÄ1džuur1sÄ“at1baÄp1tiÅ«v1viah1tÄut1nÄ“em1beap1naul1paob1jeÄk1ļaib1tios1veud1vien1pÄÄv1niiz1vÄeg1roop1siap1puam1niat1taak1lies1neuv1juar1rÄ«i1dzues1rÄ“ob1loes1liog1mauÅ¡1koan1zÄig1tuan1beim1pÄ“ic1saeb1kauz1zÄ«oÅ¡1maat1nÄ«am1dÄ“uļ1baÄr1muup1jÄÄr1hees1mÄ“er1haÄ“l1diih1reop1jail1gouv1veul1puil1duaÅ¡1miÄl1veÄr1luez1puat1soÄ«s1caek1niÄ“g1nÄÅ«t1roap1Ä·eab1puiz1nuiz1ņēēk1neež1joes1poÄs1noÅ«v1niaļ1saaļ1ķīē1dzoip1noap1vÄÄ«k1tÄÄr1ÄÅ«uz1zeuz1nÄ«on1duap1huez1nÄuk1ļiul1biad1pÄ“at1pēēr1zuuz1ÄÄÄ“s1toaÅ¡1gÄÄt1noen1vÄ“is1beet1rÅ«Äk1tauk1tÅ«ij1niug1Å¡uus1Ä·iij1veel1Å¡uul1vēēt1rÄ«ag1ļēes1peÄ“r1Å¡oak1rÄeļ1paec1rÄ«ez1loÄ“k1luel1vaÄr1Ä·ieļ1poam1paÅ«t1niiÅ¡1ziid1mÄ“uz1dūēk1laiņ1taol1tÄÄ«k1Å¡aÄ«t1nÄ“iļ1jÅ«it1tÅ«is1paap1sÄiz1soež1ģīud1rioņ1nÄam1lÅ«iz1pÄ“ak1vÄal1tead1riak1gaÄr1bÄap1rÄ«or1bÄ“af1tiuz1duat1Å¡iug1tuiv1zian1seeg1toÅ«d1rÄos1lÄ“Är1riel1gaÄ“r1deir1tÄ“em1ļaus1naim1doÄt1veur1maur1Ä£iÄ«g1niÄ«d1koÅ«d1raiz1vÄ«ed1rÄ«at1jÄil1moe1dzaÄ“k1toÄr1ģēiļ1ņiiz1boas1roum1zoor1puar1kÄik1koap1caÄ«s1baas1vÄat1mouz1puÄ“n1gaam1bauk1Å¡iag1toiz1ziuz1tuul1nier1lÄ«eÅ¡1Ä·Ä“en1ziat1zoir1Å¡aez1sius1soam1fÄ«ig1tÄe1dzuap1kÄÄr1roes1viag1lair1mÄ“ad1veit1dium1noap1lÄin1gaop1Å¡oa1džÄer1pouz1bÄ«un1rauk1taar1veÄ«n1saap1viÄ“r1ceog1lÅ«aÅ¡1liaÅ¡1poe1džuap1muag1luor1beam1neol1diiņ1Ä£eit1naeļ1ņuuz1luÄs1meÄr1sÄ«ur1kuur1peep1naut1naac1dauz1leik1kaar1fiab1sier1zÄ«Är1ļuap1jaul1tuis1dian1gear1lÄ«ug1tÄon1soud1kÄeļ1koiÅ¡1Ä·Ä«um1poik1ļaÅ«g1tuÄr1giÄ“r1niet1vaap1loÄ“r1Ä·Ä«iz1tuÄ«v1lais1juod1baaz1roÅ«s1diup1tūūs1nÄ«eļ1loap1bÄ«um1taÄ«s1tÄ«eb1rÄ«uÅ¡1Ä·Ä“ep1tÅ«eb1lÄ«or1žeup1raÄ“t1maak1roir1laat1Äiog1luÅ«s1kuut1rÄil1noec1dean1bÄaz1viÄn1gaÄ“j1ceeļ1veer1ziel1saÄ«k1taÄ«t1rÄÄr1feum1kair1siag1ļiip1kaak1Å¡Äar1kiek1ļÄar1bÄed1daos1leiv1jaiv1kÄÅ«k1Å¡ouļ1vēēk1tÄoÅ¡1ņuog1deok1ļoul1dÄ“ik1saam1pēūs1noum1tous1Äuod1kaas1loop1mÄ«up1tooļ1tiÅ«1dziÄ«r1maos1kÄal1dÄ«ok1vael1tuap1piis1caos1ceÄl1viir1miuÅ¡1Ä·ioz1tÄis1teig1Å¡aat1rÄar1žuos1kÅ«im1Å¡aÄr1toum1boan1saaļ1ļaÄ“k1diÄj1kaak1tÄ«ar1tÄ«os1tÄeg1reim1saul1sÄ«ag1meil1lÄ“on1ceiz1jÄiž1cior1kuaz1noim1pÄof1seop1ļēÄl1kaÄ“s1tioņ1deer1laÄr1ņēuz1kuab1piar1naem1Å¡aer1kuim1pein1tÄ«es1mīīv1douz1mouÅ¡1miak1lÄ“aļ1laup1lÄok1taÅ«v1meem1žēÄl1rÅ«is1pÄar1leeÅ¡1vaeņ1rÄad1neon1kuÄ«s1siab1dail1luar1vaan1koez1bÄ“ež1liil1gaat1tÄiz1kÅ«ar1nuir1mÄad1jeik1raan1buop1riik1vÄek1šēap1ruuz1ņiiz1beat1viit1rour1tÄ“en1poap1jÅ«iz1ģīol1rÄar1goah1loim1paÄ«1dzius1luir1žuat1cuam1viag1tiim1juep1ļÄec1gaon1diÄn1kÄis1fuat1ņēÄņ1tiat1ÄÅ«az1paik1paov1boad1sier1lÅ«ir1bÄum1tuuj1koež1vÄ«ab1loÅ«k1laos1paul1toap1žēÄv1maez1zoeg1mÄap1toiz1kuos1luor1vÄok1rÄ«os1toal1diis1luÄ“1dziÄt1liaļ1lian1Äueb1laeņ1Ä·oak1rÅ«en1riez1beÄ“r1nÄ“eļ1ņÄab1rÅ«un1saiz1zÄ«až1daÅ«v1soaÅ¡1Ä·Ä«it1kÄap1buÄ“1dzÄ“a1džoÄ«b1Å¡uus1lÄad1reej1leek1roat1suap1ļuež1cier1raez1vÄ“aļ1koog1reur1jaer1zuÄr1meav1tÄ«on1tÄ“at1fiir1biob1liuz1jÅ«aÅ¡1ļaÄb1raur1bÄap1nual1Ä£ian1vÄ«on1dÄ“ep1tÄ“ez1deum1deup1juÄ«g1teod1deok1sÄat1jÄ“Är1zuum1dieÅ¡1dieļ1moiz1dein1gÄaÄ1gÄip1seiÅ¡1ķēūn1zeÄk1toeÅ¡1vīēņ1veap1laoņ1niim1niut1roet1deep1paaÅ¡1reup1jaus1piuj1laÄt1tiop1lean1nuÄ“j1mÄas1lÄam1miaz1dÄ“am1poÄ«k1piÅ«k1tÄÄr1goap1mauf1raÄ«g1taad1caÄr1Ä·Ä“ek1voam1teiz1zÄar1keÄ“r1mÄen1dÄeg1lÄ«at1ciur1ciÄg1laaf1riÄ«k1zeer1cuad1vael1ciep1noag1neÄr1zÄ«eg1rÄeÅ¡1Ä·Ä«an1tiiļ1dÄud1muÄl1liub1veuz1peuÅ¡1Ä·ueļ1tÄ“or1ÄÄ“og1pueg1nÄ“op1laal1dÅ«ef1rēīt1niek1nÄÄz1beer1tier1noos1foÄ“r1gaat1kaer1goor1Ä·eer1moun1daan1žoez1mief1paek1rīūp1lieļ1teÄr1tÄot1riud1lius1zÄas1tÄ“iv1dais1koil1zaÄ«g1touz1buer1tÄ“ap1sues1ziu1džuuk1liiz1lÅ«it1tiÄ«k1kÄes1pÄ«uz1vuūž1diÅ«s1liÄl1pook1reÄk1ļiīž1meeÅ¡1Ä·aat1Ä·eÄt1rÄ«iņ1Å¡iap1gaum1jÄÄ«m1jaez1roiz1jÄ“es1sÅ«eÅ¡1vÄog1riÄr1loal1soiz1lÄ«is1kÄep1tieg1biÄr1laar1voÄ“p1siÄr1gÅ«eļ1gauz1kÅ«iļ1leo1dzean1sÄ“at1nook1maal1saek1riep1leen1rÄ«eÅ¡1deez1jÅ«ik1sÄ“al1giep1roÄ«v1ciid1pooņ1piod1raej1puir1goel1main1seet1saÄ«b1Å¡aaļ1Ä·aol1laat1rÄ«at1dēīļ1siÄr1ņour1miep1loÄg1Å¡oec1toob1veup1tÄÄt1raos1koal1ziel1duiz1vuÄr1piat1Å¡Äul1tÅ«il1dÄ“ap1mÄ«ar1lÄ“er1tÄus1muis1huoņ1siÄz1veÄ«p1neÄz1toiÅ¡1maol1vÄem1zÄ«Äl1beal1Å¡ous1koes1gain1faÄj1viat1diat1žiap1bÄah1taÄ“r1nÄel1meÄ«s1leiz1jaÄ“b1ties1kaul1beep1riež1zÄ«ot1vÄ“as1laat1ruer1mÄed1reÄ“j1maav1ciak1dous1nÄ“eÅ¡1gaap1cÄ«Ät1zÄ«as1paÄk1Å¡aes1taib1loer1Ä£iÄ“r1mÄ«eļ1diat1lÄak1teaÅ¡1vÄ«og1lial1gaaÅ¡1kÄ«Är1fies1toÅ«t1paon1koÄr1ciÄm1juel1ceÄ«s1tÄec1nial1kuat1huer1feÄr1mēēr1mÅ«ul1dion1gaÄr1pÄ“ar1pÄ“Äs1nÄam1fiÄt1pean1cooÅ¡1ņoeļ1ņiaÅ¡1noÄ«r1naÄk1Å¡oet1koig1maan1tean1bae1dzÄ«ek1Å¡oum1buir1gÄom1leÅ«m1veal1naiz1vaog1lÄÅ«k1tail1souz1mail1Å¡aoÅ¡1Ä·Å«at1zÄ«Äs1moÄ“r1naūž1ņoum1nÄ«eg1vial1tÅ«on1seiz1žaek1teep1lÅ«ep1seos1tÄ«as1taÄr1beiz1Å¡aoÅ¡1Ä·oÄg1riÄ«v1kuÄt1naaÅ¡1Ä·iÄ“r1dÄ“ir1tÄak1saas1toaz1jÅ«un1meap1pÅ«ep1tour1veen1maÄ“c1naeņ1Ä·uÄr1leum1ziuz1cÄ“ez1paos1kaab1rÄ«er1ģēet1raÄ«t1naap1ÄÄ«ok1rieÅ¡1peiž1mais1Å¡aÄz1Ä£eon1dÄ«ep1tÄam1ziÄ«g1loiv1reat1luÄl1ciez1vÄiz1tial1mÄug1liil1biiļ1Ä·uaÅ¡1ņÄiv1baik1Å¡iÄ«k1meap1kÅ«un1giuk1nÄal1voup1looz1vēēj1kaap1rÄad1liuz1juel1paen1liat1ÄuÄ«k1bÅ«at1dÄup1taiļ1ņoar1pÄ«ak1vēēc1gaeb1neaf1liol1kaez1foin1kian1giak1loup1siej1vaag1tuek1ļoiž1vÄ«as1ziir1lÄ«en1duuz1tÄif1loeļ1ļoob1lÄ«um1sÅ«on1cian1dees1līēb1siib1tÄil1dauÄ·1kouk1Å¡aÄj1peej1buÅ«v1kaar1faoz1veÄ«k1rÄup1mÄÅ«s1toir1nÄ«ag1looņ1raiz1sūīg1cean1dÅ«iņ1vÄ«e1džoÄr1daÄ«n1mÄÄr1juer1voar1sei1dzÄ“iļ1piit1puur1said1daiÅ¡1koeÅ¡1Ä·oÄr1poev1kÄÄ«k1rÅ«os1riik1noÄr1tuur1kooz1tuom1piar1šēon1nuuņ1Ä£iur1Å¡uab1rēīr1kÅ«en1cÄ“em1jeap1vaav1ļaaļ1biuz1hiin1Äaon1fuÄr1sÄoÅ¡1mÄ«uz1rÄ«il1kaun1tÄ“as1miiz1gaÄr1mÄÄk1tÄik1loim1pior1paaÅ¡1roum1mēīn1teež1rÅ«ab1sauz1mÄ“a1dzaas1saun1gÄag1mÄ«eÅ¡1mÄ«eg1Å¡aak1ruÄ“t1rior1seus1noit1mÄuz1poin1Äoiz1suis1touk1viir1toum1juuļ1sÅ«in1dÄum1tÄ“ar1Å¡oÄ«k1koer1meuk1siÄ«v1piÄ“r1mÄ“as1tÄ«in1kÄen1zaal1buor1Ä£ia1dzÄ«en1saÄ«s1taeļ1deÅ«1dzÄ“uk1tÄec1viÅ«k1leap1ÄoÄ“d1niÄn1ceif1tuÄ«k1diÄl1vaap1guen1dear1deap1mÅ«on1tees1daud1ciat1seÅ«p1niin1haap1deal1ciir1puum1vaok1tuug1lÄ«aņ1daep1Å¡ael1suÄ«k1sieņ1Ä£eaļ1fier1siop1juod1leÄ«t1paak1nÄap1nÄ“ar1dÄ«ek1zÄ“at1ziÄt1kaÄl1mÄ“em1zaum1puap1žoÄ“j1sÅ«en1leiz1lÄ“er1zoum1dÄur1žueh1noab1kaÄ«s1vēīb1Å¡oas1seul1lÄ“ir1kiat1Äauļ1Ä·eÄz1maip1nuar1nīīg1lÄ«ad1raez1tiÄ«k1raÅ«r1ziap1vuib1laÄ«t1kÄiļ1daÄ“l1koob1lao1dzaep1nÄ«es1riup1jieļ1kuik1vees1vÄ“er1loum1doik1lÄem1žois1soom1juij1kaen1niÄz1neÄ«v1diif1toun1jeer1daen1kÄÅ«t1raen1geÄp1jioņ1kÄal1viÄ“r1zÄen1gaÄ«r1kuar1teup1rÄ«or1tiar1Ä·Ä“el1lÄ«iÅ¡1laan1noec1piÄ“k1Å¡oan1daÄp1Å¡uiļ1ruež1lÄ«ed1rÄ“ed1kaat1kūīb1siež1ņaam1vaun1dÄ«Är1nÄal1meuļ1zees1tÄ“Äj1baÄp1Å¡oap1poen1zÄ«er1sÄ«ig1roat1buum1sÄ“el1cÄ“Äs1niar1pÅ«od1veoz1gain1douz1miun1mÄ“uz1kaig1neet1paol1siab1raon1toos1kÄ«aÅ¡1Ä·aiz1seÄ«n1pieb1rues1nuÅ«t1ruik1rias1luiz1lauz1ciat1tÄ“on1daÄp1Å¡aÄ“p1neor1ceep1rÄÅ«r1mÄež1vÄup1jÄ“eh1loÄ«g1ņÄus1liec1tÄ“Ät1mÄak1nuu1dzÄ“ez1near1dēēk1daet1nÄ“ež1roir1kÅ«ap1lūīs1tÄ“us1baÄ“j1zoÄ«1dzuat1leÄ“g1naep1tui1dzaaf1taep1deīļ1veod1roum1Å¡Äen1seeņ1raas1tuat1pueļ1daÄb1baiÅ¡1Ä·aÄg1Å¡ail1bÄūš1tuud1saat1Ä£eum1Å¡uaÅ¡1mÄen1soeg1baam1reud1roov1naik1reÄr1rÄ«Är1niež1rai1dzoÄ«s1toan1Å¡ear1juiz1ģēaz1dūēr1meoņ1gaÄ“r1tÄ“id1moÄ«s1fiat1mÄ«al1seil1haep1jail1ceof1raum1piuz1rÄ“aÅ¡1ņoel1žaap1ņēar1buiņ1reij1puer1žool1taez1vaaļ1Ä·iil1nÄ«ag1noul1lÄ«ib1riÄt1rium1pīūg1tÄis1fÄ“ak1sual1toel1žuap1ģēiv1gaal1zaaļ1dēēr1siÄr1ņiet1rÄaļ1ņium1zuÅ«g1siaz1mÄin1koÄ«g1riil1Å¡uer1vauz1tÅ«ec1cīīs1lia1džiu1dzÄam1žuuz1fiiz1nÄ«ir1dÄ“ev1gaiz1Äaiz1puup1Å¡uiz1guin1ceuz1dÄ«Äb1Å¡uor1bai1dzÄa1dzoes1tuÄz1tiel1mÄap1voub1lÄ“aÅ¡1ķēīs1vien1joas1kiik1tÄ«ok1leur1Ä·uin1gÄ«ek1ļuuz1touk1leir1buÄg1touz1neas1koek1rÄ“ur1doob1taÄr1jouk1noot1lÄ«ur1teuz1reat1maat1žoÄ“d1neat1naus1kaal1vuib1Å¡uiz1dÅ«ug1kouz1voat1zÄeg1zīūš1gail1niuz1roel1puÅ«g1toos1mÄul1maas1maal1niut1raug1šēat1sÄ“in1foeļ1bÅ«uz1jÄÄ“t1vaÄ“k1baik1diÄ«g1leop1neur1vÄ«Är1dÅ«ir1cēēr1sÄ“as1jaes1moil1ciaz1liem1Å¡uap1luer1nÄot1rÅ«uz1Äoas1dÄ“os1moaļ1gaun1teat1neom1baok1raen1vÄap1sÄ“an1dÄ“ol1dÄ“ap1ļaek1sÄ“ad1soiz1pouz1līīk1neud1rauz1kour1taep1Å¡oud1miÄr1kieļ1viÅ«k1tiÄ«g1roiņ1tiur1dueg1tuÄr1boes1muar1ceos1kiiz1tÄ“ev1mÄÄn1koer1geÄ“1dzÄ«en1baÄ«v1baot1muÄ“b1taÄ«n1rūūk1ņaop1jois1loob1ruur1liÄ“s1leur1lÄÄ“j1rÄul1koÄg1tÄiv1kuÄm1gao1dzēī1dzÄ“ir1zaip1rÄat1tÅ«iv1viop1lÅ«Äp1siem1meap1žÄÄr1mÅ«ik1Å¡Äil1baan1zeon1doil1heek1ļael1nÄ“Äk1reuk1seÄ“r1soef1reÅ«t1rÄip1tuam1pÄak1ņuat1meÅ«r1maik1tÄam1puaz1deen1kiiv1moar1geÄ«b1tiuj1maos1taas1naÄ“s1maom1boeb1rÄ“er1žaÄt1nuež1kouz1tÄ“up1niig1nÄan1naaz1kuon1tÄ«ar1sÄ«ek1tÅ«eņ1meos1vÄ“ak1šīat1rÄ“er1bueļ1ņaog1roÄ«t1lÄ«ij1roÅ«k1siÄr1žÄap1dÄuz1paek1ļiiz1tÅ«aÅ¡1Ä·oim1taik1nÄat1jūēg1noÄ1dzÄ“em1teer1Ä£eÄÅ¡1ņieļ1taap1lÄ«ul1lauz1biÄ«t1diud1bÄen1tuun1neuk1soÄ«v1tiol1jeed1liiz1niÄ“r1Å¡ueb1siÄ“v1zeuz1zaer1neom1paec1kÄin1sauz1žaÅ«s1taap1ļÄÅ«v1gaiv1riaļ1baob1Å¡air1zÄ«aÅ¡1mÄ“Ät1ruaz1saiÅ¡1Ä·iok1nÄor1moiļ1ļaiņ1ruuz1gÄuz1vÄit1riom1deis1cÄ“is1miop1gaat1ÄÄ«ar1nÄ“uz1hoat1bÄir1žiel1fiir1near1dÄuz1faap1kiur1dÄÄl1zeÄr1lior1buap1tium1gaek1ņaal1pius1faÄr1vouz1Ä£ie1džiig1nÄ“uz1teot1vaag1ļuos1pÄÄ«k1ņÄÄ«k1Å¡ue1dzeiÅ¡1jÄek1veat1ļaÄl1sior1zÄul1loab1vaaņ1Ä·iÄr1Ä·eur1voap1zeem1nioÅ¡1ņÄūž1zaÄ“r1cÄ“ap1hiek1nÄ«uz1ņein1tÄun1cÄ“ib1lÄÄ«r1gais1kuuz1zoug1Å¡iam1zÄas1meun1dÄak1sÄit1ļaur1nÄ«uz1ņēēz1tuab1tÄÄr1Å¡Äus1saÄ«g1Å¡oeņ1caop1loÄp1toel1mÄ«eÄ1zieg1kual1pÄ“ik1rÄ«al1vÄ“it1ļoem1mÄ“iz1bais1dÄÄ«d1mÄ“en1veap1juol1koag1leap1tÄ“Ät1nÄ«Äv1vaet1soan1hieÅ¡1kÄir1Å¡ues1lÄos1meis1tÄ«ur1neet1nuap1miÅ«z1maor1mÄ«as1zaan1cÄ“es1nial1faÄ“r1bour1Ä£eÄg1siis1deÄ«s1saat1miēš1ļaÅ«g1daÅ«s1nÄÄr1raun1kÄok1liÄ“1dzūēg1nual1boop1daet1Ä·Ä«ur1piÄr1puok1sÄ«it1ļiap1saip1ciar1Å¡aav1maec1vÄiv1doÅ«s1tiat1dÄ«Är1žēam1naak1ļÄiņ1meuz1haar1mieļ1ļiÄ“p1tuof1toag1rÄil1zīēg1Å¡oil1sÄ“is1baap1koug1Å¡oot1mÄiž1niÄr1tÄ“at1Å¡uep1Å¡uuz1ģēag1lÅ«up1luÄm1gÄar1šīit1veak1mauž1puuk1teuz1loik1ceeļ1rÄ«et1naÄl1raoz1tiiz1zeap1zoir1nÄad1leÄ“t1hoad1moun1taa1dziaz1koÄl1pauz1nÄ“ug1maen1diiz1šūag1rūīr1raas1pÄ“ok1ceen1cÄ«il1mÄop1sual1Å¡uof1liev1maab1ļÄa1dzÄ“ud1ruir1zÄod1biol1dÄap1ciil1dÄok1pean1kias1vÄ«od1ruur1pÄÄj1gaÄ“r1daep1juiz1reiņ1kaÄr1mÄ«at1lÄ“ir1sÄ“iÅ¡1ļaÄ“g1Å¡aÄÅ¡1ņuar1gÄav1laaļ1niiz1foil1laer1muup1Å¡ois1maÄl1sÄap1ļēur1dÄ«as1tÄul1tÄ“es1cÄ“ud1lÄ«on1veuz1Ä£eek1meÄÅ¡1ņoek1laÄl1gaiz1dion1voer1tÄ«on1jauļ1žoÄr1foak1rÄ«ev1biij1cieÅ¡1raum1joaz1meim1Å¡uaÅ¡1daor1tÄ“uz1rÄÄr1vual1bain1geab1naan1ciÄ«s1lÄil1Å¡Äam1zaal1joek1leim1dÄiņ1deoļ1vaiž1raam1mÄ“ok1rÄer1leok1vÄ“ok1rÅ«uz1Ä·Ä“eb1tiÄv1laa1džaiz1ļuon1kauz1doÄr1ķīē1dzÄan1nÄÄÄ£1zouz1ÄaÄ«t1biam1daat1kÄÄ“j1koul1duop1lÄuk1Å¡Äik1nuoh1roat1tieļ1dÄit1liuļ1ļaÅ«s1miat1heat1toec1paaņ1paom1buig1tÄ«ap1meer1soan1tuon1fiaÅ¡1niÄ«v1jaoņ1mail1rÅ«ap1peem1diÄr1pÄ«er1žuit1rÄ«al1tuiz1kÄan1guim1tuan1vaÄ«n1dÄel1tiap1sīēr1beez1gaÄ“t1kius1tēīn1koel1zeab1lÄ«ar1tÄaÅ¡1Ä·Å«en1viil1faik1tieg1riet1vÄus1mium1teeb1joeļ1Ä£iar1haal1miig1lÄek1vÄ“is1leeg1rÄ“el1tÄap1Ä£eiz1rier1toug1toel1loÄr1lÅ«el1sÄ«el1fÄ«oņ1dain1dueg1siub1ļoun1zÄ“ar1bÄ«iz1juap1nÄat1ceej1daam1vÄ«eņ1Ä·ioÅ¡1ļÄij1meob1rae1džeap1pÄ«am1piīķ1maop1teuz1cÄ«oņ1teat1vÄap1ņiuk1lÄir1soak1meip1loik1caap1fioj1neiz1paok1took1cien1muip1nÄ«ol1zaÄr1Ä£iÄk1ļuÄ“r1toÄl1Å¡Äef1leas1liar1soas1mÄ«at1reÄ«s1coar1nÄug1tais1taeg1ļuÄm1niÄ“g1tieļ1rio1dziop1lÄ“ip1nÄoÅ¡1Ä·Ä“ap1bÅ«im1nÄir1gēīg1vÄÄ“r1nuÄk1siel1moiz1ņiap1mÄ“al1paol1tiun1vÄ“os1mÄ«Äk1lias1pÄÄ“r1Ä·uul1tÄ«ij1tiim1faÅ«s1nium1baum1meal1dÄus1toiž1ceit1cÄ«or1ņaad1rÄ«ur1baus1vÄu1dzeoÅ¡1daok1mÄ«ež1Ä£ief1liir1kÄuk1tiuz1dÄÄ“r1Ä£eÄ«g1tēūs1teis1viil1tieÅ¡1ļÄik1meor1deod1vaur1ziiz1Äiuk1nÄ«az1mauz1jaÄb1joat1faev1riiz1joÄ«s1pau1džaod1koeb1rois1liat1muat1saub1riab1meēļ1niÄr1huik1tuok1saem1dÄ“ab1lÄum1saog1lÄ“Äg1taez1liob1ļÄad1paig1naor1sÄir1daan1sÄ«am1muul1doÄr1Äiuz1viol1hoem1zuut1niel1Å¡ouļ1viÄ«k1Å¡ois1lÄ“uz1sair1gÄ«ež1vaÄ«b1neÄ«d1lait1viÄ“k1veis1saem1peÄ“j1said1raol1dail1cauv1reÄr1tÄ«ar1bÅ«ap1moil1žaa1dzuap1seub1lÄas1pÄ«er1tuÄ«c1niip1raog1loib1luel1nauļ1niak1sian1Å¡iÄ“r1zier1keam1kaon1zaÄr1bÄ“ud1niak1haus1moÄr1ņeat1dÅ«iz1žuÄm1maaj1muuz1ÄÅ«aņ1Ä£iiz1hoÄ“j1niir1niek1tuÄs1kuel1žoiz1Ä£eÄ“r1Ä·iÄ“r1seÄ«r1sÄ“iz1naob1roal1goum1siop1ļaur1tuor1tÄul1cÄ“iÅ¡1Ä·oad1roit1Äeil1viuz1seoh1lood1neiļ1raÄ«g1noap1nioz1niil1meur1daÄt1doar1hein1tÅ«ul1fÄ«us1guul1cÄ«al1bÄib1rair1gaul1guÄn1riil1guab1peop1toil1ziis1Ä·iuv1cÄ«ap1tÄaž1reiz1pÄ«ud1beek1neab1ļaiz1kiar1mÄiļ1Ä·eok1roig1Å¡uat1boÄr1pūīb1tauz1kÄiz1bium1maor1koan1vÄes1leis1ciop1mÄ“Äm1puir1baos1tÄ“ig1rÄ“ok1daÄ«k1leel1teek1ruok1mÄob1jaar1guiz1Ä·ior1gÄij1jÅ«is1mÄÅ«k1nÄ“al1ceÄ“s1tÄur1laÄ«v1bÄ“ar1boaž1viiz1liom1fiar1niÄr1cÄ“uņ1niir1pÄuk1Å¡uin1fuop1ļoon1mēēš1laÅ«m1juon1meis1jaÄl1daÄj1puel1ziÄ“r1koÄ«s1tÅ«Äb1tait1reÄ“r1taik1neaņ1ģēes1nauÅ¡1ķīēk1sÅ«Äp1joÄr1jaop1liib1rÄ“oÅ¡1Ä·aag1taob1jook1lÄ“ul1kuip1tear1cÄ«Är1teÄ«g1Å¡auz1kiÄs1laet1roÄs1tiar1tiiz1saÄk1ziuz1sÄ“em1Å¡ook1soet1zear1žīoÅ¡1viap1riad1ruu1dzoÄp1nÄ“at1zaÅ«r1liiv1laor1vaÅ«v1beep1nieņ1sÄÅ«r1vÄ“Äz1tÄÄ“b1Å¡oev1lÅ«ib1kÄÄ«t1daum1Å¡aug1saik1daak1luÄ“r1ļaos1muīņ1laif1rÄoņ1tÅ«eg1neis1mouz1šūon1tÅ«ob1Å¡oin1vaeg1lÅ«ir1piu1dzaus1laÅ«s1puib1toiz1sÄ“ap1ÄÅ«ok1lÄuv1muÄ«k1saÄÄ·1veiz1muuz1mÄ«uļ1Ä·oar1hīēl1meÄ«g1meag1veur1vuÄr1haed1niÄt1seat1ņaat1sūūk1Å¡uol1meÅ«z1mÄ“ip1toat1tīēs1taus1veiņ1puol1vain1Å¡iÄp1taar1koÄ“k1siel1zÄ«er1nuaz1piÄr1bÄ«uk1laek1ņier1roÄ“t1bial1dais1peÄ«k1muÄ“c1puin1dēūr1vees1tūēr1miez1koÄr1koÄl1lÄ“ep1teÄr1rean1ceod1kuig1ruÄ«k1tuēž1veap1noul1gael1veat1ņeÄr1pÄop1buiv1tiiz1dÄig1raij1vaÄ“r1diiz1louz1boÄs1nuel1ņaus1neev1geab1diuz1joÄr1kÄeb1reir1nuop1tÄil1liuz1pÄ«Äj1doÄ“g1tÄ«ul1reeļ1Ä·Ä«ej1nÄ«av1ļuaļ1ņuÅ«s1gaim1foab1taut1neiÅ¡1Ä·uez1nuor1sÄ“ep1ļuÅ«t1siik1leis1gaoz1toop1tiur1Å¡oil1kÄim1duÄ“r1baiz1noar1jeam1duul1luot1nieÅ¡1siat1paab1toip1zÄÅ«s1tÄ«at1mūī1dzaim1boop1tuak1taes1veÄ«k1maÅ«k1Å¡ain1diuz1žiiz1ÄÄ«ad1viam1Å¡Äiņ1ņaÄr1ceÄ“d1maik1niap1tÄ«ap1zuep1sÄ«am1peuz1lÄ“iņ1Ä£iuņ1Ä·iur1paeb1raeÅ¡1meÄt1nior1meuÄ1kaar1vien1gÄar1Å¡iuz1laes1kÄuk1ņīap1gÄer1vues1nÄir1Å¡oiz1sÄ«at1gÅ«ar1maef1roeÅ¡1Ä·ion1nÄ«ap1hoez1zioņ1reur1nuam1beek1nois1jēĞ1niag1lÄ“ek1ciel1daes1piož1vÄ«oņ1mÄil1pÄok1laas1lÄ«en1zeÄm1viir1beik1lÄ«e1dzouz1tiul1taÄr1guan1soik1sieņ1zeiv1juag1nÄÄr1biib1Å¡aor1foÅ«r1zÄap1ņaap1jiÄ“r1lÄ«u1dzuen1rÄiņ1paat1Ä·Ä«Är1vÄap1ļoÄr1caek1Å¡ÄÄ“r1kaÄ«z1daus1diÄ«k1toop1saiv1koÄb1tiil1joiz1rair1seuļ1paiz1ņaÄr1faos1liez1maar1sioÅ¡1taeh1roaž1dier1sÄep1sael1jeÄt1ceek1lÅ«an1dÄig1rÄis1zaok1rueÅ¡1ļiÄj1muot1rÄ“el1kaur1ÄÅ«eb1Å¡uuz1žūeg1veuz1ņuob1riap1biiž1gaav1vaÅ«s1naÄ“j1raiņ1nieg1tÄ«uÅ¡1paag1maur1Ä·Ä“on1goÄ“r1neīž1niir1Ä£eas1kūēr1cÄ«el1Å¡aÄ“r1nÄ«Äk1ties1mÄap1dēīn1meig1Å¡oes1kiot1neab1rÄab1teib1rÄ«ir1poaz1doen1sÄ«az1nÄ«er1boal1bÄ«ib1lÄ“aÅ¡1haes1vaet1ruez1jÄ“id1gail1tÄ“on1kiil1naur1gooņ1paur1lÄ«od1piÄ«b1toiņ1vaad1niev1kaar1laÄb1tuat1vÄ«er1suus1kuiv1vÄ“iņ1zaor1nÄ«an1doÅ«t1neom1bian1toel1dÄ“uļ1sÄ“el1jÄ“il1ÄaÄs1lÄ“as1puuz1suuÅ¡1kuom1poul1bēēc1mÄ“eņ1koÄ«v1zÄeg1leis1ceis1niod1rÄom1naul1miÄk1ļoig1muir1meeg1raeb1taal1muis1kiin1joÄ«n1vief1lÄÄ“j1caar1hiul1baom1jaan1kÄam1bÅ«op1tÄ“ol1loam1mÄat1Ä·iad1hÄ“ot1maem1lÄ«Äl1leas1mēūr1gaik1laum1soan1dÄ«us1līūr1tain1žeip1riej1seul1kieg1buil1Å¡oat1peat1ÄÄap1lÄ“eg1lÄÄ«s1reÄ“r1veek1caap1soÄ“r1moÄz1taor1tÅ«Äk1Å¡uem1ciok1neÄ“d1nÄ«es1tiil1peip1naik1vaos1lÄ«iz1Å¡Äod1riob1rÅ«un1vaeb1kuil1toir1tÄ«uk1roiz1cuÄž1raur1dieb1juul1soÄ«s1loÄ“j1ÄÅ«in1fiur1zail1vaiz1faal1doib1siÄ“r1bÄos1nioÅ¡1reim1baig1siÅ«r1fiec1puak1toel1soek1rÄÄ«s1vaaÅ¡1mÄ«en1tien1pueb1riam1maes1meÅ«n1viak1ciÄ“p1Å¡aeÅ¡1niel1viov1kaÄ“z1doiz1lÄen1tÅ«en1suur1nÄot1roob1reep1žoat1ķēēp1tien1ciat1bÄ“uk1toÄg1Å¡uil1mÄ“Är1žois1vaÄ“t1ceun1roeg1meon1bÅ«ah1roÄd1reor1niuÄ£1niuz1souz1rūīs1kÄÄ«s1puar1Å¡uar1sÄel1buil1taur1Ä·iak1neap1vÄ“Är1Äaav1veos1pÄ“aļ1raeÅ¡1Ä·eur1zoas1vauk1Äiar1piuk1raur1mÄ“ez1seal1pÄ«um1zaÄ«s1deaļ1ruuk1koeb1leul1juÄt1zeat1bÅ«ez1viat1šūag1raÄt1kÄÄ«s1teiz1jÅ«eÅ¡1ņour1coar1biÅ«s1tuit1kaen1sÄ“eÅ¡1ņaag1roaļ1siid1riit1noež1maos1piev1tiÄ“k1piap1tÅ«us1mÄ«el1hiiz1haeÅ¡1ļuÄm1vÄun1guÄ1dzÄ«Äl1nÄ«eb1liod1reÄk1laab1ziaf1niÄd1niig1riek1gauļ1muon1vaÄ«v1koum1raat1pÄub1ļaer1nÄ«ug1ļiaÅ¡1keÄ“r1tÄ«ap1baod1jook1ļūus1tuuz1Ä·eih1taiņ1gaÄ“p1joun1ceil1Å¡iÄ«t1neoÅ¡1Ä·Ä«ig1taol1līūk1gaes1pÄ“et1boez1diap1Ä·iuz1caig1mÄor1Ä·aez1toÄp1juÄ“k1nÄ«at1ļues1sÄ“ir1paap1raup1liul1dīē1dzaek1sool1zīēr1coor1kaad1jaen1raez1baiz1goen1hÄez1kaet1reah1veil1pÄ«ep1lueg1tiim1fÄih1nīēr1dÄ«ap1ÄÄÄ“j1vian1tÄ«eņ1tuut1ruÄ“j1tÄur1buur1dees1noam1pÄ«un1vÄiž1kuuk1luun1bÅ«un1tuis1nÄ«ub1ļiap1ÄiÅ«d1rien1lÄ«es1pÄiz1ÄÅ«ob1jiez1tÄem1žuop1lÄ«ab1luod1rÄ«Äj1sauk1cian1žēūt1riun1dÄ“eg1gÄur1pÅ«il1diiÄ·1veeņ1kaan1tÅ«Äv1viÄ«t1roiz1roÄl1dii1dziad1rÄap1neat1vaiz1maÅ«v1koÅ«t1nÄ“až1vaÄn1sauz1zias1vÄ“et1vÄ“iļ1buaÅ¡1vÄap1kaiz1pier1Å¡aed1naim1dÄ“ag1nÄ“Äj1buÄd1veeb1tÄus1pūīt1saap1žiÅ«r1niog1ļaÄt1nÄ“el1vÄ“et1laog1ruiz1kaal1sÄ«ir1zuom1foeļ1jÅ«il1bÄ«il1sauņ1ģīej1saor1nÄ“am1taul1Å¡oor1pÄ“em1duur1loat1beur1siÄ“r1tier1Å¡oat1pior1loev1naec1riol1baiņ1kÄÄr1hios1fÄat1lÅ«og1niaÅ¡1saeg1liij1deeļ1mÄ1portap1au", + 6 : "il1nsair1ptiiz1šķoÄ“l1mjuuz1glÄap1slÄop1skaek1Å¡pÄ“al1truiz1smēēr1ktaus1kriil1bsiul1griap1skuat1frÄ“is1pruat1frium1pjaÄr1brÄos1tgaas1preÄr1sveÅ«m1tveÄr1brÄ«uz1fraiz1druÄ“r1ptuun1dzÄut1skaÄ«k1šķoÄb1stiiz1hloÄ“r1šļoap1groat1Å¡mÄ«un1spues1troap1blÄ“et1rkaus1griat1plÄon1steap1šķīel1dzeab1sceat1kļaiz1prÄug1Å¡deon1fliat1stuim1Å¡teir1ktaar1bnÄ«er1dzÄ«en1drook1snÄ«uk1šķaeÅ¡1bļoÄ«t1ņmÄ“et1rdeir1mbÄaz1gruin1grÄuk1skaap1spoÄg1stiug1Å¡paal1kvaez1tnean1gliudz1baÅ«k1sliat1smaap1fraiÄ·1skÄuz1smaÄ«p1slail1stuiz1graos1krÄ“am1stiuz1preez1glaÄ«dz1jÅ«us1trÄiz1plaiļ1krÄÄ“r1zkaap1proir1snoir1smoir1mmeer1dzeÄn1prÄap1bruÄ“g1stoas1braek1Å¡neÄ“r1bÅ¡oedž1lias1truun1draÄl1proÄr1grēēr1stÄar1ptaÄ«k1stuez1spÄ“am1skÄir1kļoon1gruiz1Å¡taÄļ1dziÄl1Å¡tÄÄ«s1prour1dzuir1stÄ«Är1šļauz1gruel1pÅ¡ual1frÄ«ek1Å¡gair1mdÄ«ek1skuiz1spuuz1plÅ«Äk1slaiz1drein1ssÅ«uz1gleom1preÄr1gtiudz1cÄ«iÅ¡1brÅ«uz1kruuz1sliuz1klÄat1bleÄ«dz1niiz1smÄ«Är1sniÄ«s1spaiz1preÄ«g1skoiz1žvair1gtiÄ“r1btaÄ«t1praat1glaas1dziap1skÅ«uk1šķeat1dzÄ«uz1Å¡tauk1lvaat1dzÄ“Är1Å¡maes1prÄiz1bloal1stiat1zviin1dzouz1krÄ“at1kvÄ“an1brÅ«ur1ksiuz1stÄ«op1stain1stion1stiuz1pliat1kveas1krÄ“in1sdaan1smiap1stuus1tpuuz1kņuÄr1bloon1gliar1pliap1šļaus1kreÄk1šķual1vjaiz1sniap1plauz1brÄiz1brÄ“eÅ¡1stÅ«iz1svÄÄ“r1kÅ¡aug1staat1bloap1Å¡viil1dnoiz1glÅ«ir1sdiim1proÄr1treiz1briÄl1braat1briuk1stÄ“iz1brÅ«at1plÄ“il1bÅ¡our1dzaik1lpaÄt1rrauk1stiur1kÅ¡aen1džoÄr1svÄap1krÄÄ«k1šķiat1rreiņ1zvaat1žvÄ«Är1blīēr1staÄr1smiiz1Å¡mÄ«ug1Å¡naiz1skÄuz1trÄ«ap1svÄ«is1prÄek1staat1slaat1trÅ«Äk1slÄ«uz1knail1dviÄr1dziuz1šņuis1treiz1sviap1driel1dmÄ“ul1gtoan1tziis1kvÄ«uz1kļūÄr1šņouz1frÄ“ib1stoig1stain1ktÄ«ir1snien1sneem1pjoÄ“r1btuÄ«n1skÄÄ“k1šņoik1smÄ“es1trÄ«at1šķūat1plain1gtoot1rdial1cvium1briuz1Å¡viis1glÄ«an1džūap1sleuz1pļēap1šķeiz1bleap1šņair1mreen1traÄr1traul1snÄ“iz1spaep1stiÅ«t1sgaÄg1stoÄ«b1staap1pļÄat1kleil1gtuiz1spiam1traan1frauz1frÄÄ“r1nvauz1stūūk1stoat1Å¡maum1Å¡ziug1stÄat1Å¡pail1ktiÄ«p1sleiz1trios1troel1pÅ¡oav1staak1tdaik1snuiz1stÅ«ok1triap1gveop1spÄ“iz1prael1ptÄes1traiz1kniÄn1spÄ“os1kvaol1steul1dzoek1Å¡zouz1steuz1brÄ«in1skÄÄr1Å¡vÄ«il1nvēūv1proiz1šļuev1skien1zdaÄt1rdaÄ“k1šķuig1stoÄ“r1kÅ¡uÄ“r1ktÄiz1skÅ«an1kreiz1proil1spial1ktook1zvÄ“ap1zvaÄr1zvÄ“un1tniak1stias1triÄ«b1spÄ“os1mveen1sžuel1nruer1csauz1zvial1vtuat1dzium1krÅ«ot1frÄ«ap1klÄ«an1skoel1dkoan1tkÄap1glaÄ«k1šņaÄr1gveil1dbaes1tmauz1stiat1drÅ«ul1ptouk1smias1trÄ“er1troÄ«b1stiid1spaat1trÄar1pnaat1staek1trÄ«at1šņoat1zveig1zdair1mpaak1tniir1kÅ¡oÄr1ploÄr1prÄil1ntiom1svaÄ“r1bjail1trÄal1ktaiz1dzaiz1Å¡maat1dzaiz1kriol1skÄen1tniet1stiat1truiz1Å¡paur1kneÄ«g1znaul1svaan1tzaÄr1tņuÄ«n1krÅ«uz1šņoek1tkÄat1plÅ«il1kniuz1žņaur1sliiz1treap1stÄ«or1ddaur1graat1glÄÄs1tniuz1žmiat1dzeÄl1stiÄ“r1slÄ«el1nzeÄk1steop1plaat1prÄup1stoem1plÄib1stÄ«up1stiÄr1Å¡paÄ“j1plaÄr1hloap1frÄ“il1ktoal1dzion1triar1gsÄ“iz1frÄ“ap1broul1tneim1stÄ«ug1Å¡pÄ“em1ptaat1grÅ«as1tmaÄ«k1steiņ1krÅ«il1kÅ¡uek1skais1tviÄr1droiz1trous1smÄ“el1ztaÄ“r1psiÄk1smeÄ“s1tneÄr1grÅ«ok1griup1stÄ“ok1skoet1rroun1dzeap1trÄ«uk1šķuin1srien1triÄj1dzÄ«ap1friet1rpauz1kluik1smeÄr1draiz1kviÄ“r1ptoat1plÄ«od1praat1gluap1fliuz1griat1krīīk1stÄ“oÅ¡1prÄan1frÄ“ap1svail1btaek1smÄ“Är1Å¡ruus1tmÄÄ«k1smÄ«al1dÄ·ios1trÄ«in1ssÄ“al1tgair1mkÄap1zviÅ«g1stoem1pliuz1bleon1speat1spÄÄr1skoap1trÄek1Å¡liÄl1skÄiv1proar1krÄ“iz1trauz1triuk1steir1klÄ«ap1knaer1spÄ“ik1šķaak1šķour1gÅ¡oal1dgaap1klaap1svÄ“in1triim1tgain1šķiÄ“r1bkaÄ“r1stiat1skaÄb1sleap1slÄ«iz1slÄan1gļuir1msÄÄ“r1pÅ¡aor1tlÄ«iz1driun1ktael1dzÄ«em1ztuen1ksiÄr1knaun1ktoap1kluat1traat1brÄat1žvaan1kroap1smeÅ«g1stiar1tmÄin1gtiÄr1stiik1stÄ“om1bveap1skoÄr1pleÄ«k1smiug1sneap1krÄ“en1skÄen1szÄ«Äk1snees1preÄ“r1Ä·tiÄl1smaÄ«r1skaat1slÄ«us1krÄ“us1skael1ptaen1ktoar1bgaÄr1trueņ1krÅ«en1trÄ“Är1spuen1spual1ktÄik1stiem1ztiÄt1stÄal1kciap1kļūel1nsiÄ“r1nruir1dzaÄr1klÄ«at1treil1dmaÄ«k1plaap1sniel1kmeel1nbÄak1smÄ“Äb1stoun1drÄuz1gluuz1skaen1slÄ«an1sliÄ“r1sbaun1droel1ztouz1trÄuz1spÄap1dzÄ“ap1druin1dzeed1grieļ1blÄan1kcios1krÅ«iz1spÄan1krÅ«ir1srait1skoir1msoun1ktÄ«iz1slÄ«er1ztoet1praur1traal1tmeiz1sluil1gtiiz1greek1šķīop1svauz1truar1ppain1dzÄ“ab1dziur1tniuz1briab1stuin1grauz1svaiz1krÄ“ap1dziug1Å¡teum1bruat1droir1stiur1stiÄl1skoat1kluen1kÅ¡out1skÄil1pÅ¡uur1gÅ¡uar1knÄap1knuim1braÄ“k1stuiz1knÄil1btoÄp1slius1truak1šņoap1prÄir1dzoen1krÄÄr1spÄ“ar1kroiz1droÄr1brail1dnÄ«el1dbaal1briuz1brÄ“ot1griat1tvÄ“ur1smeuz1šļaek1Å¡teat1šņaen1sroÄk1sloan1žsauz1plÄ«an1trail1bÅ¡ail1tnius1glÄur1gtiÄ«g1stuar1zvaol1lmÄ“iz1kvear1glÄ«in1kruap1kņuir1pÅ¡uec1skÄar1dziod1rÅ¡ual1tmauz1sleeg1spaap1šļiek1šķouz1spoar1ktoiz1zviuz1šķoil1trÄ“or1treim1šļaiz1blÄ“el1gtiuz1slÄ“Är1spoal1dkauz1breis1tzoim1fvaaz1praap1plÄ«aÅ¡1kriir1pjiuz1šļuiz1slaem1ztour1krial1tnaer1dzien1ktiat1pļēēr1sloar1gtoÅ«k1šķiin1dzues1pļaoņ1priuz1bļÄus1troij1skÄÄr1fraiz1truog1dziij1speij1stÅ«uk1šķiÄr1trÄuz1klaek1sÄeik1stuar1ppiiz1šņuoņ1sliil1psiiz1groÄ“g1stuuz1skuol1stÄ«ur1vciuz1smÄ«ur1zmaen1sveer1speuÅ¡1plÄ“ur1bÅ¡uat1stÅ«iz1smeel1gÅ¡uec1staap1kraek1Å¡dail1ddeel1kņail1dleel1psiap1stÅ«ap1pleuz1pleur1kÅ¡oÄr1dnīēr1pjuÄ“k1šķair1mteug1ļķean1kvÄ“il1gtaÄ«r1šķiap1svÄul1lpues1nvÄ“uz1gveat1priug1Å¡daat1šķoiz1plÄ«Är1brial1dkÄudz1maun1ssaos1prÅ«iļ1ņveer1cheÄn1skÄab1skaÄ“r1sliÄr1krÄ«al1kÅ¡uur1stoÅ«g1snauk1stoir1mcÄ“id1staid1slÄut1skoir1stÄÄr1proir1ktiÄr1kreap1gluas1tneiz1Å¡vÄ«uz1spual1nrÅ«Är1spaun1ktÄÄb1slÄ«Är1pļēir1bjuur1btoel1sviun1ktÅ«ug1Å¡gair1sliuz1friur1btaÄb1stuem1brÄom1proez1glÄep1stoal1kmeiz1blÄ«ar1ksiÄ«k1smoÄr1speap1krÄ«iz1šķēur1tkÄÄ“k1lkoÄr1tnail1dsaal1dniel1dceon1truiz1stoÅ«p1stoap1žvÄ«ap1triod1gruÄr1gtÄiz1gveel1gsier1nhaat1Å¡vÄ«Är1hroil1tvÄuz1smeat1sveim1tniuz1priÄ“r1sraas1krÄen1skaiz1glÄ«us1tdÄ“ol1tmeÅ«r1stuum1Å¡viat1šļaÄr1knÄuz1treok1šņoat1bliat1sniel1gtoek1šķeab1stiun1fteap1griir1steul1snien1tviam1pluam1zdaik1stÄ«at1knÄat1skÅ«is1trois1trēīg1stair1spuam1svÄ“Är1bruec1stÅ«ul1dzail1kÅ¡oÄr1plÄos1tniÄ«k1snauz1staÄr1zdaÄr1šķiuz1bliek1troap1grÄ“ur1bÅ¡oir1slÄ“iz1klauz1trÅ«uz1traak1stoos1treuz1driir1smaak1šķēak1tliek1Å¡vÄ“Äs1nkuel1ztier1cbaÄ“r1ktoin1dsÄ“al1kÅ¡aum1traip1snaeļ1skaÄr1šķīap1kriÄr1šķēel1drÄ“im1pliuļ1dziir1ptaÄ“r1ptail1praup1stÄ«iz1fraus1treub1krÄ“Är1pļÄin1frail1ktair1mpiap1šņoat1skuun1dzies1trÄ“an1drÄ«il1ptoadz1niar1pjuin1gtÄiz1gruap1šķoÄ“r1skÄot1rpior1tfeir1mtiik1šķian1tmÄ“am1briun1džail1pÅ¡oas1brÄel1gÅ¡oap1kviug1smeil1pneÄ“t1sviir1kÅ¡aas1skoek1speen1kÅ¡aiz1breem1ptiÄr1greiz1frÄiv1stÄul1šņaÄr1kroas1prail1ktÄat1sleiz1gluik1snÄok1šņaum1Å¡maÄr1gruÄr1smeat1snaur1ktoik1snauz1svÄ«us1sloam1pdaem1ztÄuz1žvais1smiÄ“r1tnÄ«Är1gtuÄr1drūīg1stiap1troat1smeiz1plÄ“ir1tniak1šžoil1skuul1bÅ¡aum1spoÄk1sliap1bloÄr1dzeÄr1kvauk1sneÄt1rviap1žvaam1stuan1draÄr1gÅ¡oek1stÄ“Är1sloÄr1gtoek1ļveek1spoÄr1tsaiz1džiar1blÄÄ“g1stiar1bdiuk1šķīil1bÅ¡uor1proap1hloiz1trÄ«as1trÄ«uz1smÄ“Är1spÄis1triab1klÄuz1hlouļ1stiat1fliut1nkoiv1krÄur1tdiap1glÅ«Är1glÅ«om1skÄat1stoum1staap1gleal1smael1traer1stoel1dviiz1friet1skoat1tvaÄr1kleÄÅ¡1kruer1tceap1kruus1triuz1glaap1bleil1staap1sveiz1dzÄ«as1tpaem1psiiz1tvÄ“ac1grīēr1dzÄ«ul1lciiz1šļiat1žņaov1smÄ“as1skaen1tgeat1pluÄ«s1šķiÄr1dzīēk1šņÄel1nkoÄr1skuÄv1stiÄl1dziÄ“p1stuÄ«v1klaim1tmuos1proap1spÄ“um1brÄul1dziÄr1stÄur1knÄ“er1trÅ«el1nbaÄr1broar1smeok1sneil1Å¡kaat1svÄ“ar1vdeat1sluiz1broÄ“r1steÄb1slius1skÄat1grÄÄp1stuÄr1brÅ«am1stÄ«as1tmÄ“iz1kņuen1klaiļ1slium1stoap1bļÄuz1snaol1kloer1tmeiz1flial1stuap1Å¡paar1stiÄk1šķiÄr1džium1brair1dzual1kjÅ«ap1smÄ«Äb1staiz1kļaul1ptÅ«ap1smÄ“Är1tnÄ«ar1gvaudz1sous1stuap1steul1znaÄr1glÄÄr1blÄur1skail1stÄel1nraak1triat1kņueg1smeap1grūēk1šķoin1spiik1staam1bliir1dzēēr1ktuur1kniel1tniiņ1krÄiņ1kreiz1klean1spaun1skaam1stÄÄ“r1pÅ¡oÄr1fliir1mriÄ“r1btÄat1sviir1spaÄr1tnÄap1šķūen1drÄek1Å¡niat1trÄ«ar1ktiiz1priig1znÄ“on1spiul1kveek1šķuÄt1skoek1sneÄ«s1krÄiz1klÄÄ“j1tveur1ktiog1ļhior1tmeaÅ¡1plūēj1slÄ“am1plaÄ“s1tniur1bsiis1tkais1dziiz1speab1staÄp1stias1tmeos1triudz1daur1dzÄ“at1šļuat1braun1klaer1ztiuz1pļÄÄr1dreil1gÅ¡aiz1pleiz1žņaer1ztÄel1dÅ¡eir1knÄ“eņ1krÄÄ“r1ssial1snoÅ«p1stÄ«ir1gsiiz1stair1sseuz1speek1sniÄ«g1snÄ“in1dziat1kliar1bveon1gloiv1skail1dniÄr1kraÄr1blÄ“ar1stÄÄr1slieņ1Ä·mēēr1bsiik1smÄ«Äl1sciat1dreaž1brÄ«iz1plÄir1mveuz1group1jmauz1dzaem1ptoan1ktoež1staÄ“r1šļuap1brÄ«uz1krouz1skÅ«uz1krÄ«ap1Å¡mÄ«uz1kviil1btÄor1tjees1krÄat1tveul1stuÅ«k1stuen1ktaÄ“r1stuar1bmauk1stuÄ“r1nziuz1slīūk1stiat1svaap1pļēil1nmiir1snÄ«in1dniÄj1prÄar1sbuat1spael1nmaek1stuis1grÅ«is1nleÄk1stÄ«uz1stuif1Å¡teÄr1spiÄ«k1stÄar1ktuur1ktÄÄj1dziÄ“r1btoiz1zvaat1knuat1fraen1sraal1ctÄ«Är1brear1bniÄr1tniez1proan1tnīēp1stias1trÄÄp1stoÄ«r1svaiz1šķaig1stuer1traes1truas1grÄal1snaur1preur1mjÄÄ“n1prÄat1proek1ļpaik1lveÄ“r1kÅ¡oiz1glaap1snain1dzaÄr1grair1gtoiz1snaan1Äkiap1tvaÄr1snaum1Å¡peat1zvaig1zdoen1svaet1rgail1ggaÄ«k1smeal1stÄet1rriiz1dziÄr1praiz1trÅ«Är1pliÄ“k1šķēÄj1staiz1krour1kÅ¡uiž1knÄor1bciem1ptÄan1scÄ“ir1kÅ¡ual1tdiÄ“k1šņuÄ«dz1Å¡iot1rreÄt1spēēk1mjuÄt1krÅ«il1ddaat1svÄ«udz1kÄÄr1trÄ«ar1ktÄÄl1skaen1slies1priur1btuug1stÄ«uz1plÄem1ztaiz1bļÄÄ«k1stiuz1spaÄr1tvean1dceel1dseuz1kraap1sliir1gtauz1slÄir1klioņ1plÅ«ur1gtoan1grēūk1snaÄv1zvaan1slÄek1Å¡vÄÄr1žvaÄr1šļuap1frÄaž1skÄat1preas1ttiiv1plÄuz1grÄ“ek1Å¡noiz1grÄuz1braes1tpaur1braiz1kļuim1stour1gtuom1dziir1gkaiz1šķeek1stiuk1Å¡gaÄr1smael1tkaar1gmaal1nrauļ1krÄ“ar1gkaiz1svēēr1stoil1Å¡paim1tciuk1plÄ“el1ptiis1draer1smeul1snÄ«Är1krÄÄt1smair1stuat1pļÄuk1smuan1dtÄen1kÅ¡uar1skoÄ“r1ptiÄ“k1lvaor1skÄuk1staep1staÄr1triir1kņiul1stÄet1rviil1btuÄr1slaat1pliel1nsaur1kmÄ“uz1broal1dneÄr1frÄ“un1spÅ«ek1šķēen1proan1droat1bruak1snÄ«uz1tvÄ“ik1spÄuz1blÄ«ap1šķiel1draun1sviat1spuÄr1friep1stuÄ“r1szÄÄ«b1stoÄr1dzaÄr1gliel1kneÄr1tneun1prÄap1kveuz1kniap1draÄr1gÅ¡aÄr1kviir1zgaek1Å¡gÄek1sveat1gleÄr1stÄ«es1proal1kmaiz1klÄ«ug1stoaz1proÄj1slaen1tneul1stiat1kreÄr1svaÄr1šķeiz1kļūap1sluil1zkaek1Å¡meam1pÅ¡oÅ«r1skouz1grÄes1grÄap1šņuir1kļaur1lmÄ“el1dfÄ“az1druat1rpuum1stues1grÄ«iz1knaas1smÄ“ur1spÄ«eņ1skÄÄr1slÄ“udz1vÄ«un1druar1skaeņ1traam1pliuz1kliul1gtuÄ“k1brÅ«us1dzÄ«ap1stÄar1kÅ¡ues1kraiz1brÄir1staar1gceem1ptuur1steÄr1druuz1pļaat1glÅ«ad1skÄov1skÄak1stÄÄ“r1zgair1mgain1gtuÄ«dz1teÄr1drÄ«am1braÄ«k1šķuur1gsiab1scion1driil1pjuÄp1jvear1gbÅ«ul1gÅ¡uÄr1dvaÄr1tnoap1ploas1tkail1gÅ¡oiz1skaÄr1dniap1dvaÄ«k1snÄap1blÄas1pļaap1kreal1preem1pÅ¡oap1truak1stÄ«el1skuak1ņveak1Å¡paaļ1skaÅ«r1staat1bļÄin1gveat1hloig1frÄ«ok1snÄ“Är1griak1šķiÄt1snaul1tsias1tniir1stoan1sfoek1Å¡laul1tzoob1spios1priel1briÄr1žvÄ«at1blÄ«ot1rtiil1gsiuz1zvÄ“in1speir1ptuag1svaiz1kliok1sniel1graum1spēūp1stiak1stÄ“ur1ktaan1driir1ptoiz1pliÄ«v1drÄ“ar1pzour1btiul1šņiat1blÄ“og1ļraiz1sleil1proil1gtoeļ1traiz1slÄ“Är1kveur1btÄÄr1frÄal1tlaur1pmÄÄ“r1ksial1ksiir1kņoin1sraem1blÄ“ib1stain1sciur1ktuiz1šķūan1tniÄm1glÄur1zvaÄ«k1šķēup1rlail1ngail1glaÄ“k1šņaen1prÄuk1Å¡paat1pļaiz1šķīÄr1gÅ¡uir1gÅ¡aul1dzÄ“an1kkuul1tniun1dzÄ“ap1smaer1stiel1ztuir1gkoim1treus1snaÅ«k1šķuik1tniat1brÄ“as1kraan1džaam1plÄ«ar1kÅ¡aap1spean1skaih1svÄ“od1sliÄ“r1pÅ¡uar1gream1stoÄn1skaor1tvÄ«at1svÄuz1šķūūr1stoin1sceud1spiudz1gaal1snÄÄg1stual1troat1Å¡taat1kļūudz1viap1sloap1greiz1šņoug1stuim1stiup1stuur1stÄ«os1krair1skaog1ļdeum1dziin1kvied1kļūul1traiz1skoel1gtÄur1gtÄiz1pļēap1smuer1stÄ«Ät1rÅ¡uok1šņuap1šķaÄt1dzÄ«at1troat1brÄ«al1staudz1ruar1gtÄ“in1staiņ1Ä·veat1krial1snuiz1zvÄ“iz1kluin1hroir1ptÄas1kviur1spiiz1kvÄ“Är1skÄir1gtuÄp1stauz1brued1krÄet1staal1vgaam1pÅ¡aar1pgauz1slaat1šķīat1džiÄr1kļūÄr1Å¡roeņ1braÄ«k1gruÄr1klÄak1ņkood1prÄat1klÄ«iz1stÄ“Är1žņaat1triik1stÅ«ek1Å¡zÄ«Är1kniÄr1preap1klÄul1gtaÄ“r1pjoÄr1gsiiz1šņaiz1gleÄ“r1bjois1stÅ«eļ1drÄik1steÄ“r1ngaap1tveuz1skÄap1knÄik1snÄ«am1bleek1stÄol1fgaem1briuz1spÄ«el1dmaiz1sloar1gkÄiz1svīūg1kriun1ktier1preuz1Å¡vÄ«ap1dzÄ«iz1spÄ«ek1tdaÄ“r1dzeil1skaÄr1tnuur1bÅ¡aap1traap1dzean1stein1ktÅ«er1ztuas1pruen1scauz1svÄil1dmÄ“ik1sniÄr1brÄ“Äk1stoÄk1sluap1briap1stÄ“iz1stiap1pļaÄr1Å¡taÄ«k1sneun1traok1šķiÅ«s1tniok1trÄ«iz1glÄom1pleÄr1kriuv1braÄ«v1stuÄt1rgÄÄr1pļauz1klÄ«uz1sloat1greeļ1brias1prÄig1žņaÄ“r1glēūr1stiÄ«v1svaah1tveÅ«k1sneet1rsiuz1Å¡paan1dzeum1praer1plÄ“iņ1stiat1drÄ«at1dvain1tnÄ«in1gvial1šķīap1slÄ“id1plÄ“il1nvauz1glÅ«iz1Å¡viudz1puor1tliin1kriap1priem1dviÄr1drÄas1troar1dzeÄk1sniuz1skias1tvaum1sveÄr1gdiik1stoos1preat1frÄel1dreil1dvaug1prÄul1stÄ«uz1sviur1tdaÄr1sluÅ«p1stÄez1gluīļ1knÄan1cleÅ«p1stuec1sviak1šķeir1dzÄ«uz1dzeÄl1spÄ“ij1droÄr1klaim1sliap1bliil1sruon1skÄuz1spiul1dzeik1šķous1krÅ«ek1stÄ«ek1Å¡roit1brias1priik1šķuor1tkuat1kniis1mjuim1stuez1prÄat1sliur1vmaom1staer1staot1rpues1prauz1great1šķēur1dziÅ«k1steap1smiÄr1stuan1skÄÅ«r1stÄ“ur1zmiÄr1krÄ“er1smaat1šņuod1skoim1preal1snÄ“ap1dzaiz1pļail1krÅ«at1speuz1krÄin1traat1šķiat1broel1tgain1troon1tdaak1šķaas1tnair1skiaļ1stuos1kniÄ“r1tniÄr1trÅ«er1ztair1zmaiz1knuar1gkueļ1gleiz1dzÄ“ap1stios1trÄuz1šķios1truir1kļues1brÄar1stoap1grÄus1tmeiz1skiin1svaum1skoun1kniat1kviuk1stÄ«ap1pliot1plÄet1rmoel1djoub1stauz1sniiz1dzeul1gÅ¡oam1pjouz1drear1pniis1mmÄ«al1dzÄ«iz1žvÄ«ar1bmÅ«at1spoal1šķiuz1kvÄ“al1ktiudz1reÄr1spÄ«iz1kraet1rreab1stouz1sluÄr1plÄ“us1ttÄ“ur1staiz1griot1rtoen1stiÄv1grÅ«Är1tvaun1slÄ«on1greÄ“k1sneir1kniel1dpÅ«av1grÄ«or1tjēīk1smÄÄ«dz1jues1smÄ“iz1spoiz1brÄ«um1bveis1kvaÄ«g1ļlaÄ«s1stÅ«im1tkÄÄr1gmeÄr1bleÄÄ1plēēr1zciÄ“p1stael1drÄak1šķual1ngauk1šķēir1ktÄod1skaÄ«k1stoir1speir1pÅ¡oÄ“j1spÄ“at1hroid1smion1traat1gveil1dÄ·ein1skuel1dtÄ«ek1šķiuz1kreap1zvÄ“Är1skaÄn1sveudz1vÄiz1steuz1plaan1ckaež1frÄ“in1gÅ¡aap1hroin1gtÄ«ir1mdiir1mvaap1sviuz1dzÄ«uz1proÄ“r1snaap1drouz1bloal1tvaek1Å¡sÄ“udz1veih1stÄuz1graÄ“d1dziar1psiÄr1driat1klÄiz1tveÄr1sleul1gÅ¡aal1tvīēr1ļveir1mziat1draos1pļair1ktoel1ngaÄ“l1spiap1gruÄ“r1btius1pliik1smaÄr1slÄ«ol1skaÄ«t1skaap1džiur1tnÄ«uz1dziÄr1Å¡mÄ«odz1niar1gdaat1skiuz1dzÄ“el1tliov1skiel1ztÄat1blÄar1dzÄ«is1trÄas1traen1svÄ«on1krÄ“ur1gtaen1tmÄ“Är1kruun1driÄr1glael1pvaas1prois1priiz1plÅ«il1dkoÄr1šļiar1tneus1tneat1knaat1kraat1spiÄ“r1ptÄÄ«k1stain1grÄ«ed1spiop1stuum1Å¡saap1preap1trÅ«Är1šķaat1brÅ«um1šķiel1stual1stouz1kļaal1nzeat1gruon1froat1klaap1brÅ«ir1mtēīdz1nÄuz1Å¡mÄ«ap1graak1Å¡zeap1blÄ«an1knoil1skÄir1ktuÄ“t1spÄ“al1vniar1griuz1kleul1stoes1krÅ«iz1pļÄuz1ploat1šļiug1Å¡maec1slaÄ«g1stouz1blÄ“ib1stien1stoin1kliir1dziug1znain1groas1prÅ«ež1graiz1kreeg1slÄÄm1grÄig1znÄam1fleir1pÅ¡aeg1smiuz1šķaap1šķēug1stial1steal1nciem1mviÄ«dz1tiik1snoÄr1svÄ“et1rkÄul1gtÄat1spÄ“Är1stoil1Å¡mÄet1rtiar1dzÄ“er1ckoar1staÄ“r1bÅ¡aÄj1gleam1pjauz1dvaot1rkÄak1Å¡mauz1plÄ“ak1Å¡puÄr1bļÄir1gtÄik1šķēuz1zvaal1stÄ«os1kleÄr1steug1šžoÄ“r1tneiz1dvais1truek1Å¡kuap1skÄar1gtiar1gviuz1smiim1ptoÄr1skiÄr1plÅ«uļ1skaib1snÄ«iz1šķiap1skiun1sbÄ«ep1stÄ“us1skoat1zvÄ“at1stiel1dzoÄ«k1smÄ“an1skuum1slauz1Å¡maap1žņaek1Å¡zeuz1kriir1mmÄan1ÄkaÄ“g1staat1kroet1rrÄuz1knÄuz1stÄap1drÄ«ez1gloat1plear1šļaug1šņuÄr1kliot1rzial1kvÄ«is1traib1stÄor1dniel1dpain1gpoul1slauz1tveel1ttaap1plÄ“uz1šņaÄr1staos1tbiÄr1gleog1ļrÅ«er1stuiz1ploÅ«v1briÄ“l1spuiz1sliap1pluum1stiuk1Å¡vÄus1trauz1džiÄ“r1npael1pjoet1kreÄb1slÄ“ik1lÄ·ean1spoim1tkuok1greiļ1skaan1tkuan1sjÄ“il1pÅ¡aÅ«k1snÄÄl1szÄol1stous1trÄ“ij1krÄ“an1floap1glÄÄl1sviat1slour1bjoel1smeat1smÄ“op1dzīūg1stual1traer1tneat1Å¡vios1trÄ“ez1drÄur1gÅ¡aen1spoov1skail1ktues1treiz1dveÄr1smÄ“at1graÄg1staÅ«v1grias1tmÄin1flÄoņ1stÅ«Är1kluel1tneak1staÄr1dkoÄr1kvÄ“an1troat1kruap1stoil1ptaedz1niis1proÄ«r1groudz1siem1braÄr1zkoul1šņÄus1stiÄ“k1šķiudz1vÄ“um1tniar1stuap1kleÄ«k1smuup1staÄ«k1smaÄr1zvaab1rkaÄ“dz1niÄb1stÄÄ“r1klien1troÄr1plÄ«il1gÅ¡uap1kvÄ“as1treak1steek1šķaÄt1rmoan1scein1sdeiz1kruap1šļÄat1breon1staÄ“r1zlael1gÅ¡aÄm1brael1dziuz1druudz1diap1brÄar1ktaeņ1slaar1Å¡viiz1smiir1vjaen1griar1kÅ¡ouz1drÄ«ul1staek1smeÄr1šņaÄr1zniÄr1troap1kliÄr1sviÄ“r1stēīk1stÄ«et1rtūīdz1ciur1tliek1stoim1tsaus1brÄuk1šķoir1ztaÄr1stÅ«un1ktuÄ“r1mjuÄ«k1šķaur1kliuz1fliap1plÅ«il1dziap1dreaz1svaug1ļlaat1stÄ«iz1pluuz1trois1sliiž1skÄir1gÅ¡oen1ktÄÄr1gtaiz1bliÄr1smÄ«im1brÄ«Är1dzÄ“Är1svÄ«ek1spaÄ«dz1kouz1svÄ“at1ploor1tlaab1prÄir1tneÅ«k1slÄiz1sveet1plÄir1svail1btiuz1brūīt1spÄ“uz1šķēudz1noat1slÄiz1blÄes1tdius1zviis1kriÄ“l1slÄ“ob1skuÄ“k1šņiul1šņuon1troil1stÄ«iz1braur1pnial1dsÄ“im1ttÅ«is1spÄ“es1tmein1gvÄ«ug1Å¡puir1dneiļ1ņlaap1staik1smiad1grÄiz1spÄ“il1gtÄiz1svail1nbÄim1stÄak1Å¡veuz1prauz1grÅ«Är1skÅ«iz1bruus1tsÄ“ug1snÄ“Är1dzoin1tniig1stier1gtuen1truas1krÅ«Är1slÄap1tvÄ“el1stiil1stoil1draot1rgaur1kņuap1braer1tzÄat1stÄer1cliÄ“r1bÅ¡uuz1stÄ“ap1plÄan1gviuz1šļiuz1blÄed1rvias1tlaiz1stuot1spÄ“us1proim1tdaam1krÄ“op1proig1žņoat1bļaap1kniiz1smaiz1grÅ«an1dpuÄ«v1prÄur1stuar1stÄ«ig1zneÅ«k1staÄj1skoek1Å¡kaub1stiur1dzeiz1hroap1Å¡maap1spaÄr1stÄ“ib1stuat1smÄ«im1stail1ksiar1ndoon1krees1krÄ“Äl1plÄuk1smain1grium1prouz1draÄr1plaÄr1pluat1steel1gtaen1gruil1tzeÄr1priiz1krÄ«at1krÄ“es1prÅ«is1svÄ“Är1Å¡viÄr1knuen1ktuap1treiz1kņūul1gsiin1driiz1drÄ«ek1steaļ1Ä·neuz1spÄ“os1tmaug1sniat1grÄ“al1sniur1ngaip1frūēr1skoat1stēēr1gliol1fraat1groun1kciÄr1kņuiz1skuek1sceap1slaat1slÄ“ap1Å¡taap1šļues1triuz1pluÄr1bliÄr1grÄuz1stoil1train1gruÅ«k1snien1szÄos1prÄÄp1jvÄ«Är1tnÄ“il1ptuum1Å¡zais1kreis1krÄ“ul1gtium1dzÄ«ek1Å¡puur1zniuz1drous1tveÄs1trÄÅ«g1staap1brÄ“er1vjeiz1grÄ“ar1gmuat1druap1kļaap1spiap1breel1ptoÄr1tvÄ“al1kÅ¡ouk1smeel1dzÄ“il1kmeÄ“n1skÄir1gÅ¡uil1stiir1dsair1slÄ«at1smiÄr1šķoar1spaal1dseuz1knuar1gpoiz1šļaat1šķaÄr1šņuuz1svean1stÄ“ek1trÄÄr1gluur1vjuoņ1stiat1drÄiļ1proiz1tvaiz1trÄap1spÄom1pliak1stuap1spuek1tdiok1steer1graam1breuz1bļaus1grael1gruam1staat1skoÄ«b1stuek1triel1mlaan1sveat1skÄun1dzīīk1graap1skain1dkoal1ktuul1dzues1trÄat1spÄ«ol1dlaat1šķeeņ1pleos1tlaik1stÄap1Å¡vÄ«uz1prÄap1kroÅ«t1smÄ“is1griem1pÅ¡uiz1bļair1mnoap1spīēr1ktial1gmeed1sviis1briun1sneen1sviuz1kveÄr1groer1stÄuz1šķeeļ1krÅ«od1rpaÄ«v1grÄet1rbaun1skuÄr1tmÄ“Äb1stÄ«il1pjoiz1stÄuz1žvÄ«uz1šķīis1tkoos1prael1gtuad1smiom1kraut1svail1ptiug1preun1kteil1gruÄr1šķūez1gliiv1spÄ“er1dloÄt1rÅ¡ÄÄ“j1grÄur1dzoen1trÄap1bļaÄ“r1tņuem1dniin1ksaÄl1šķēuz1hroiv1stoet1rjÅ«uļ1gluir1psiel1zceum1slÄ“at1griel1ptuuk1stÄat1praar1gjouz1tvauz1skoiz1stÄ«el1stoap1praov1skuar1Å¡ruÄ“p1stoat1krÄir1ksiok1šķeiz1šļÄiz1drail1ptÄil1dsÄ“in1gtaÅ«p1staug1ļkoar1džuiz1krÄul1dzÄ«ur1stÄ_jÄ3a2_ne3a2_ie3a2_no3a2_pa3a2_sa3a2_uz3a2_ap3a2_at3a2_iz3a2_jÄ3Ä2_ne3Ä2_ie3Ä2_no3Ä2_pa3Ä2_sa3Ä2_uz3Ä2_ap3Ä2_at3Ä2_iz3Ä2_jÄ3e2_ne3e2_ie3e2_no3e2_pa3e2_sa3e2_uz3e2_ap3e2_at3e2_iz3e2_jÄ3Ä“2_ne3Ä“2_ie3Ä“2_no3Ä“2_pa3Ä“2_sa3Ä“2_uz3Ä“2_ap3Ä“2_at3Ä“2_iz3Ä“2_jÄ3i2_ne3i2_ie3i2_no3i2_pa3i2_sa3i2_uz3i2_ap3i2_at3i2_iz3i2_jÄ3Ä«2_ne3Ä«2_ie3Ä«2_no3Ä«2_pa3Ä«2_sa3Ä«2_uz3Ä«2_ap3Ä«2_at3Ä«2_iz3Ä«2_jÄ3o2_ne3o2_ie3o2_no3o2_pa3o2_sa3o2_uz3o2_ap3o2_at3o2_iz3o2_jÄ3u2_ne3u2_ie3u2_no3u2_pa3u2_sa3u2_uz3u2_ap3u2_at3u2_iz3u2_jÄ3Å«2_ne3Å«2_ie3Å«2_no3Å«2_pa3Å«2_sa3Å«2_uz3Å«2_ap3Å«2_at3Å«2_iz3Å«2_ne3satran2ssa2ls_ir2k3lir2k3ļ_ai4z5", + 7 : "Ärg1stiilg1stoakt1spoalt1gvaark1staugs1tlÄ“uzs1pļaald1skÄins1grÄ“izs1prÅ«ilk1tniurb1stiezg1lvearp1proirk1snield1plÄ“ird1spuilp1stuÄ«ns1trÄÄrs1kraird1smieln1svÄirp1stiÄrg1stuens1staugÅ¡1stiirk1stiilg1staals1tpuÄrd1dziirm1dziabs1traumÅ¡1brÅ«arb1spÄ“ils1blÄ«urs1krÅ«izs1praurb1stuudz1šķauzs1kraaps1preins1gruens1blaÄrs1praarg1krÄilk1tneens1truulk1steupj1graunk1šķiurk1staaps1krÄ“irs1drēērt1sliobs1truÄ“rt1ssÅ«ast1skoird1skairg1stoord1zniaks1tveikt1stÄ“uzs1preizs1proilt1stÄ“uzs1prÄeks1tkoalk1stīīdz1proens1droirg1stuing1stoizs1kraink1stÄ“alk1šķiÄtr1sliild1spaÄls1trealk1stoubs1trÄaps1truÄ“rk1šķaizs1trÄ«ats1krÄ“Ärs1trÄ«alk1stuuss1kriizs1preent1lmeirg1zdailb1stieks1treaps1prailk1stiunt1sziuzs1proeks1kluiss1priaps1trÄ«ulb1stourk1stiaps1proaht1kluÄls1staens1krÄilt1smÄeks1preuzs1truaps1prÄetr1klauzs1priÄ«ks1tmÄ“eld1spÄ“apj1draist1hreids1krÄ“irs1plÄirs1stuunk1stÄ“ilk1sniink1šķiird1smÄ«irs1kreÄ«dz1skaalk1snÄÄ«ks1tsiizs1truars1tdaunt1snoÄ“st1griuzs1treurk1stouns1droulg1stoÄtr1spiilg1spÄ“erc1skoilb1stoÄls1skÄens1krÅ«aps1triilk1tnÄ“udr1skÄurb1jmaats1praird1sliizs1trÄekÅ¡1ņnÄ«ind1staaps1kraÄ“rk1stuiln1briuzs1praudz1plailb1stuizs1kriilk1stuirp1staeks1trÄ“ugs1tkault1zvaÄtr1griink1šķourk1šķaulb1stiuzs1trÄaps1trÄirk1stÄ«ulb1stuunk1tsions1trēīgt1spÄ“ark1stuilk1stoark1šķoalt1kvÄ“uns1dzÄ“irk1stÄ“ild1krÄ“ink1sliurs1trÄunk1stoilk1stÄ“Ärg1stoakt1sguert1briilg1stiÄ“rt1svēērs1griaps1trÄ“eņs1krÄamp1stuats1trÄilp1stiežs1trÄerk1šķieln1plaurk1sniakt1sviens1dziirg1stiark1šķuess1krÄirk1stount1smaisn1grialk1sneild1plaudz1skaÄrs1truuzs1krÅ«ink1šķēērs1svīērk1šķoÄ«ks1tpiilt1rpaÄtr1braurk1stuÄrs1proals1stieks1ploamp1stoizs1treang1steirg1staizs1krÄ“Ätr1spÄ“ust1knÄark1šķēark1šķiÄrs1prÄaps1prÅ«ilp1stoÄ«gs1trÄont1rreakt1sdeats1treuzs1trÄ«aps1pļaurk1šķiurk1steink1stuÄjs1trÄats1pļaÄ“rk1šķietr1stÅ«ink1staans1krieks1proald1drÄÄrp1staurb1staunk1šķēakt1sdaakt1spualk1sniÄrg1staÄls1traÄls1steirg1zdeÄgs1tviird1zniirt1skuons1trÄÄ“rk1stailp1staisn1stÅ«elk1sniilt1skoats1prÅ«urk1šķuars1tgaugs1troens1šķiing1stiads1krÅ«els1traark1šķaark1stoant1sbeink1šķaunk1stiird1sdeink1stians1plaugs1traats1preirk1šķiirp1stuils1druals1tniats1truins1truanž1dzeÄ«ks1proamp1stiars1tvÄ«ugÅ¡1stÄanc1spÄ“ark1stiunk1stairm1skaakt1smÄ«ulg1stuamp1staeks1trÄ«unk1šķourk1stÄ“elz1szÄÄrs1treens1kriink1šķeuks1trÄink1stoult1spÅ«elt1spÄ“ats1priild1spÄ“uzs1prÅ«eks1troegl1prÄirp1stoalt1kriakņ1graÄrs1lveÄrs1pļaudz1stÅ«urb1stoaps1treugs1tvÄ“ekļ1skÄunk1šķaisn1prÄats1triÄkļ1stÄudz1krÄimt1proing1staeks1pluakt1spailk1staalk1šņaats1prÄÄ«ks1tÄaent1rtiÄ“rk1stiirg1spÄ“ikt1spÄ“izs1prÄakt1smiizs1krÅ«unk1stuats1krÅ«Ärs1priunk1šķuult1spÄ“unt1sgaugs1tsiizs1priÄrs1krÅ«aps1krÅ«Ärk1stiizs1pļaars1tpuÄ“rk1steuzs1triulb1staizs1trions1truirs1svÄats1trÄ«Ärs1krÄ“akt1ssaeks1traakt1slourk1šķoing1stuult1kvaust1spoÄ«tņ1griežs1krÅ«irm1sleirk1staurk1šķēort1preekÅ¡1ņlaiņs1trÄalk1stairk1stuemm1dziirg1zdÄirm1klaaks1tnions1traink1šķuats1kraind1rveakt1sjaens1bluaļķ1Å¡pault1svaogļ1skÄÄrk1staulg1stiÄ“rk1stoird1sdÄugs1tceuns1grÄ“ult1plairÅ¡1krÄegt1spÄ“Ärs1tniats1proakt1slaÄrs1triilg1stuÄ«dz1svauzs1krÄ“oks1krÅ«Ärt1stailb1staalk1stioks1troekÅ¡1dzient1rbÄ“iln1skairm1šķiÄrs1trÄaps1prions1krÄ“Ärs1preirk1steird1slÄ“ulg1staakÅ¡1svÄalt1briÄrs1prÅ«_jÄ1s2p_ne1s2p_ie1s2p_no1s2p_pa1s2p_sa1s2p_uz1s2p_ap1s2p_at1s2p_iz1s2p_jÄ1t2r_ne1t2r_ie1t2r_no1t2r_pa1t2r_sa1t2r_uz1t2r_ap1t2r_at1t2r_iz1t2r_jÄ1s2c_ne1s2c_ie1s2c_no1s2c_pa1s2c_sa1s2c_uz1s2c_ap1s2c_at1s2c_iz1s2c_jÄ1g2l_ne1g2l_ie1g2l_no1g2l_pa1g2l_sa1g2l_uz1g2l_ap1g2l_at1g2l_iz1g2l_jÄ1ž2v_ne1ž2v_ie1ž2v_no1ž2v_pa1ž2v_sa1ž2v_uz1ž2v_ap1ž2v_at1ž2v_iz1ž2v_jÄ1Å¡2ļ_ne1Å¡2ļ_ie1Å¡2ļ_no1Å¡2ļ_pa1Å¡2ļ_sa1Å¡2ļ_uz1Å¡2ļ_ap1Å¡2ļ_at1Å¡2ļ_iz1Å¡2ļ_jÄ1s2f_ne1s2f_ie1s2f_no1s2f_pa1s2f_sa1s2f_uz1s2f_ap1s2f_at1s2f_iz1s2f_jÄ1Å¡2t_ne1Å¡2t_ie1Å¡2t_no1Å¡2t_pa1Å¡2t_sa1Å¡2t_uz1Å¡2t_ap1Å¡2t_at1Å¡2t_iz1Å¡2t_jÄ1b2r_ne1b2r_ie1b2r_no1b2r_pa1b2r_sa1b2r_uz1b2r_ap1b2r_at1b2r_iz1b2r_jÄ1Å¡2r_ne1Å¡2r_ie1Å¡2r_no1Å¡2r_pa1Å¡2r_sa1Å¡2r_uz1Å¡2r_ap1Å¡2r_at1Å¡2r_iz1Å¡2r_jÄ1Å¡2v_ne1Å¡2v_ie1Å¡2v_no1Å¡2v_pa1Å¡2v_sa1Å¡2v_uz1Å¡2v_ap1Å¡2v_at1Å¡2v_iz1Å¡2v_jÄ1s2t_ne1s2t_ie1s2t_no1s2t_pa1s2t_sa1s2t_uz1s2t_ap1s2t_at1s2t_iz1s2t_jÄ1p2r_ne1p2r_ie1p2r_no1p2r_pa1p2r_sa1p2r_uz1p2r_ap1p2r_at1p2r_iz1p2r_jÄ1g2ļ_ne1g2ļ_ie1g2ļ_no1g2ļ_pa1g2ļ_sa1g2ļ_uz1g2ļ_ap1g2ļ_at1g2ļ_iz1g2ļ_jÄ1Å¡2k_ne1Å¡2k_ie1Å¡2k_no1Å¡2k_pa1Å¡2k_sa1Å¡2k_uz1Å¡2k_ap1Å¡2k_at1Å¡2k_iz1Å¡2k_jÄ1p2s_ne1p2s_ie1p2s_no1p2s_pa1p2s_sa1p2s_uz1p2s_ap1p2s_at1p2s_iz1p2s_jÄ1k2l_ne1k2l_ie1k2l_no1k2l_pa1k2l_sa1k2l_uz1k2l_ap1k2l_at1k2l_iz1k2l_jÄ1g2r_ne1g2r_ie1g2r_no1g2r_pa1g2r_sa1g2r_uz1g2r_ap1g2r_at1g2r_iz1g2r_jÄ1Å¡2Ä·_ne1Å¡2Ä·_ie1Å¡2Ä·_no1Å¡2Ä·_pa1Å¡2Ä·_sa1Å¡2Ä·_uz1Å¡2Ä·_ap1Å¡2Ä·_at1Å¡2Ä·_iz1Å¡2Ä·_jÄ1p2n_ne1p2n_ie1p2n_no1p2n_pa1p2n_sa1p2n_uz1p2n_ap1p2n_at1p2n_iz1p2n_jÄ1s2v_ne1s2v_ie1s2v_no1s2v_pa1s2v_sa1s2v_uz1s2v_ap1s2v_at1s2v_iz1s2v_jÄ1d2r_ne1d2r_ie1d2r_no1d2r_pa1d2r_sa1d2r_uz1d2r_ap1d2r_at1d2r_iz1d2r_jÄ1p2l_ne1p2l_ie1p2l_no1p2l_pa1p2l_sa1p2l_uz1p2l_ap1p2l_at1p2l_iz1p2l_jÄ1d2v_ne1d2v_ie1d2v_no1d2v_pa1d2v_sa1d2v_uz1d2v_ap1d2v_at1d2v_iz1d2v_jÄ1Å¡2l_ne1Å¡2l_ie1Å¡2l_no1Å¡2l_pa1Å¡2l_sa1Å¡2l_uz1Å¡2l_ap1Å¡2l_at1Å¡2l_iz1Å¡2l_jÄ1s2k_ne1s2k_ie1s2k_no1s2k_pa1s2k_sa1s2k_uz1s2k_ap1s2k_at1s2k_iz1s2k_jÄ1k2v_ne1k2v_ie1k2v_no1k2v_pa1k2v_sa1k2v_uz1k2v_ap1k2v_at1k2v_iz1k2v_jÄ1z2v_ne1z2v_ie1z2v_no1z2v_pa1z2v_sa1z2v_uz1z2v_ap1z2v_at1z2v_iz1z2v_jÄ1k2s_ne1k2s_ie1k2s_no1k2s_pa1k2s_sa1k2s_uz1k2s_ap1k2s_at1k2s_iz1k2s_jÄ1p2t_ne1p2t_ie1p2t_no1p2t_pa1p2t_sa1p2t_uz1p2t_ap1p2t_at1p2t_iz1p2t_jÄ1z2n_ne1z2n_ie1z2n_no1z2n_pa1z2n_sa1z2n_uz1z2n_ap1z2n_at1z2n_iz1z2n_jÄ1k2r_ne1k2r_ie1k2r_no1k2r_pa1k2r_sa1k2r_uz1k2r_ap1k2r_at1k2r_iz1k2r_jÄ1f2r_ne1f2r_ie1f2r_no1f2r_pa1f2r_sa1f2r_uz1f2r_ap1f2r_at1f2r_iz1f2r_jÄ1s2h_ne1s2h_ie1s2h_no1s2h_pa1s2h_sa1s2h_uz1s2h_ap1s2h_at1s2h_iz1s2h_jÄ1ž2ņ_ne1ž2ņ_ie1ž2ņ_no1ž2ņ_pa1ž2ņ_sa1ž2ņ_uz1ž2ņ_ap1ž2ņ_at1ž2ņ_iz1ž2ņ_jÄ1d2d_ne1d2d_ie1d2d_no1d2d_pa1d2d_sa1d2d_uz1d2d_ap1d2d_at1d2d_iz1d2d_jÄ1v2j_ne1v2j_ie1v2j_no1v2j_pa1v2j_sa1v2j_uz1v2j_ap1v2j_at1v2j_iz1v2j_jÄ1f2j_ne1f2j_ie1f2j_no1f2j_pa1f2j_sa1f2j_uz1f2j_ap1f2j_at1f2j_iz1f2j_jÄ1p2j_ne1p2j_ie1p2j_no1p2j_pa1p2j_sa1p2j_uz1p2j_ap1p2j_at1p2j_iz1p2j_jÄ1b2ļ_ne1b2ļ_ie1b2ļ_no1b2ļ_pa1b2ļ_sa1b2ļ_uz1b2ļ_ap1b2ļ_at1b2ļ_iz1b2ļ_jÄ1g2n_ne1g2n_ie1g2n_no1g2n_pa1g2n_sa1g2n_uz1g2n_ap1g2n_at1g2n_iz1g2n_jÄ1h2r_ne1h2r_ie1h2r_no1h2r_pa1h2r_sa1h2r_uz1h2r_ap1h2r_at1h2r_iz1h2r_jÄ1s2n_ne1s2n_ie1s2n_no1s2n_pa1s2n_sa1s2n_uz1s2n_ap1s2n_at1s2n_iz1s2n_jÄ1ž2m_ne1ž2m_ie1ž2m_no1ž2m_pa1ž2m_sa1ž2m_uz1ž2m_ap1ž2m_at1ž2m_iz1ž2m_jÄ1d2ž_ne1d2ž_ie1d2ž_no1d2ž_pa1d2ž_sa1d2ž_uz1d2ž_ap1d2ž_at1d2ž_iz1d2ž_jÄ1k2c_ne1k2c_ie1k2c_no1k2c_pa1k2c_sa1k2c_uz1k2c_ap1k2c_at1k2c_iz1k2c_jÄ1k2ņ_ne1k2ņ_ie1k2ņ_no1k2ņ_pa1k2ņ_sa1k2ņ_uz1k2ņ_ap1k2ņ_at1k2ņ_iz1k2ņ_jÄ1Å¡2m_ne1Å¡2m_ie1Å¡2m_no1Å¡2m_pa1Å¡2m_sa1Å¡2m_uz1Å¡2m_ap1Å¡2m_at1Å¡2m_iz1Å¡2m_jÄ1g2v_ne1g2v_ie1g2v_no1g2v_pa1g2v_sa1g2v_uz1g2v_ap1g2v_at1g2v_iz1g2v_jÄ1h2l_ne1h2l_ie1h2l_no1h2l_pa1h2l_sa1h2l_uz1h2l_ap1h2l_at1h2l_iz1h2l_jÄ1k2ļ_ne1k2ļ_ie1k2ļ_no1k2ļ_pa1k2ļ_sa1k2ļ_uz1k2ļ_ap1k2ļ_at1k2ļ_iz1k2ļ_jÄ1s2l_ne1s2l_ie1s2l_no1s2l_pa1s2l_sa1s2l_uz1s2l_ap1s2l_at1s2l_iz1s2l_jÄ1t2v_ne1t2v_ie1t2v_no1t2v_pa1t2v_sa1t2v_uz1t2v_ap1t2v_at1t2v_iz1t2v_jÄ1Å¡2ņ_ne1Å¡2ņ_ie1Å¡2ņ_no1Å¡2ņ_pa1Å¡2ņ_sa1Å¡2ņ_uz1Å¡2ņ_ap1Å¡2ņ_at1Å¡2ņ_iz1Å¡2ņ_jÄ1Å¡2p_ne1Å¡2p_ie1Å¡2p_no1Å¡2p_pa1Å¡2p_sa1Å¡2p_uz1Å¡2p_ap1Å¡2p_at1Å¡2p_iz1Å¡2p_jÄ1d2z_ne1d2z_ie1d2z_no1d2z_pa1d2z_sa1d2z_uz1d2z_ap1d2z_at1d2z_iz1d2z_jÄ1f2l_ne1f2l_ie1f2l_no1f2l_pa1f2l_sa1f2l_uz1f2l_ap1f2l_at1f2l_iz1f2l_jÄ1k2n_ne1k2n_ie1k2n_no1k2n_pa1k2n_sa1k2n_uz1k2n_ap1k2n_at1k2n_iz1k2n_jÄ1p2ļ_ne1p2ļ_ie1p2ļ_no1p2ļ_pa1p2ļ_sa1p2ļ_uz1p2ļ_ap1p2ļ_at1p2ļ_iz1p2ļ_jÄ1k2b_ne1k2b_ie1k2b_no1k2b_pa1k2b_sa1k2b_uz1k2b_ap1k2b_at1k2b_iz1k2b_jÄ1s2m_ne1s2m_ie1s2m_no1s2m_pa1s2m_sa1s2m_uz1s2m_ap1s2m_at1s2m_iz1s2m_jÄ1m2n_ne1m2n_ie1m2n_no1m2n_pa1m2n_sa1m2n_uz1m2n_ap1m2n_at1m2n_iz1m2n_jÄ1Å¡2n_ne1Å¡2n_ie1Å¡2n_no1Å¡2n_pa1Å¡2n_sa1Å¡2n_uz1Å¡2n_ap1Å¡2n_at1Å¡2n_iz1Å¡2n_jÄ1v2r_ne1v2r_ie1v2r_no1v2r_pa1v2r_sa1v2r_uz1v2r_ap1v2r_at1v2r_iz1v2r_jÄ1b2l_ne1b2l_ie1b2l_no1b2l_pa1b2l_sa1b2l_uz1b2l_ap1b2l_at1b2l_iz1b2l_pie3a2_aiz3a2_bez3a2_pÄr3a2_eks3a2_vis3a2_pie3Ä2_aiz3Ä2_bez3Ä2_pÄr3Ä2_eks3Ä2_vis3Ä2_pie3e2_aiz3e2_bez3e2_pÄr3e2_eks3e2_vis3e2_pie3Ä“2_aiz3Ä“2_bez3Ä“2_pÄr3Ä“2_eks3Ä“2_vis3Ä“2_pie3i2_aiz3i2_bez3i2_pÄr3i2_eks3i2_vis3i2_pie3Ä«2_aiz3Ä«2_bez3Ä«2_pÄr3Ä«2_eks3Ä«2_vis3Ä«2_pie3o2_aiz3o2_bez3o2_pÄr3o2_eks3o2_vis3o2_pie3u2_aiz3u2_bez3u2_pÄr3u2_eks3u2_vis3u2_pie3Å«2_aiz3Å«2_bez3Å«2_pÄr3Å«2_eks3Å«2_vis3Å«2_jÄ3ie1_jÄ3iz1_jÄ3no1_ne3ap1_ne3ie1_ne3at1_ne3in1_ne3iz1_ne3uz1g2Å¡1galk2Å¡1galvÄ“s2t1nvÄ“s2t1ksa2lds_sa2l2d1pir2m1rpir2m1kot2r1r2ot2r1k2_adÄ2m3apak2Å¡3kÄr2t3n_at3e2j_vie2n1", + 8 : "_pie1s2p_aiz1s2p_bez1s2p_pÄr1s2p_eks1s2p_vis1s2p_pie1t2r_aiz1t2r_bez1t2r_pÄr1t2r_eks1t2r_vis1t2r_pie1s2c_aiz1s2c_bez1s2c_pÄr1s2c_eks1s2c_vis1s2c_jÄ1s2tj_ne1s2tj_ie1s2tj_no1s2tj_pa1s2tj_sa1s2tj_uz1s2tj_ap1s2tj_at1s2tj_iz1s2tj_pie1g2l_aiz1g2l_bez1g2l_pÄr1g2l_eks1g2l_vis1g2l_pie1ž2v_aiz1ž2v_bez1ž2v_pÄr1ž2v_eks1ž2v_vis1ž2v_pie1Å¡2ļ_aiz1Å¡2ļ_bez1Å¡2ļ_pÄr1Å¡2ļ_eks1Å¡2ļ_vis1Å¡2ļ_pie1s2f_aiz1s2f_bez1s2f_pÄr1s2f_eks1s2f_vis1s2f_pie1Å¡2t_aiz1Å¡2t_bez1Å¡2t_pÄr1Å¡2t_eks1Å¡2t_vis1Å¡2t_jÄ1s2tr_ne1s2tr_ie1s2tr_no1s2tr_pa1s2tr_sa1s2tr_uz1s2tr_ap1s2tr_at1s2tr_iz1s2tr_pie1b2r_aiz1b2r_bez1b2r_pÄr1b2r_eks1b2r_vis1b2r_pie1Å¡2r_aiz1Å¡2r_bez1Å¡2r_pÄr1Å¡2r_eks1Å¡2r_vis1Å¡2r_pie1Å¡2v_aiz1Å¡2v_bez1Å¡2v_pÄr1Å¡2v_eks1Å¡2v_vis1Å¡2v_pie1s2t_aiz1s2t_bez1s2t_pÄr1s2t_eks1s2t_vis1s2t_pie1p2r_aiz1p2r_bez1p2r_pÄr1p2r_eks1p2r_vis1p2r_pie1g2ļ_aiz1g2ļ_bez1g2ļ_pÄr1g2ļ_eks1g2ļ_vis1g2ļ_pie1Å¡2k_aiz1Å¡2k_bez1Å¡2k_pÄr1Å¡2k_eks1Å¡2k_vis1Å¡2k_pie1p2s_aiz1p2s_bez1p2s_pÄr1p2s_eks1p2s_vis1p2s_pie1k2l_aiz1k2l_bez1k2l_pÄr1k2l_eks1k2l_vis1k2l_pie1g2r_aiz1g2r_bez1g2r_pÄr1g2r_eks1g2r_vis1g2r_pie1Å¡2Ä·_aiz1Å¡2Ä·_bez1Å¡2Ä·_pÄr1Å¡2Ä·_eks1Å¡2Ä·_vis1Å¡2Ä·_pie1p2n_aiz1p2n_bez1p2n_pÄr1p2n_eks1p2n_vis1p2n_pie1s2v_aiz1s2v_bez1s2v_pÄr1s2v_eks1s2v_vis1s2v_jÄ1s2pr_ne1s2pr_ie1s2pr_no1s2pr_pa1s2pr_sa1s2pr_uz1s2pr_ap1s2pr_at1s2pr_iz1s2pr_pie1d2r_aiz1d2r_bez1d2r_pÄr1d2r_eks1d2r_vis1d2r_pie1p2l_aiz1p2l_bez1p2l_pÄr1p2l_eks1p2l_vis1p2l_pie1d2v_aiz1d2v_bez1d2v_pÄr1d2v_eks1d2v_vis1d2v_pie1Å¡2l_aiz1Å¡2l_bez1Å¡2l_pÄr1Å¡2l_eks1Å¡2l_vis1Å¡2l_pie1s2k_aiz1s2k_bez1s2k_pÄr1s2k_eks1s2k_vis1s2k_jÄ1s2kv_ne1s2kv_ie1s2kv_no1s2kv_pa1s2kv_sa1s2kv_uz1s2kv_ap1s2kv_at1s2kv_iz1s2kv_pie1k2v_aiz1k2v_bez1k2v_pÄr1k2v_eks1k2v_vis1k2v_pie1z2v_aiz1z2v_bez1z2v_pÄr1z2v_eks1z2v_vis1z2v_pie1k2s_aiz1k2s_bez1k2s_pÄr1k2s_eks1k2s_vis1k2s_pie1p2t_aiz1p2t_bez1p2t_pÄr1p2t_eks1p2t_vis1p2t_pie1z2n_aiz1z2n_bez1z2n_pÄr1z2n_eks1z2n_vis1z2n_pie1k2r_aiz1k2r_bez1k2r_pÄr1k2r_eks1k2r_vis1k2r_jÄ1s2kr_ne1s2kr_ie1s2kr_no1s2kr_pa1s2kr_sa1s2kr_uz1s2kr_ap1s2kr_at1s2kr_iz1s2kr_pie1f2r_aiz1f2r_bez1f2r_pÄr1f2r_eks1f2r_vis1f2r_pie1s2h_aiz1s2h_bez1s2h_pÄr1s2h_eks1s2h_vis1s2h_pie1ž2ņ_aiz1ž2ņ_bez1ž2ņ_pÄr1ž2ņ_eks1ž2ņ_vis1ž2ņ_pie1d2d_aiz1d2d_bez1d2d_pÄr1d2d_eks1d2d_vis1d2d_jÄ1Å¡2pr_ne1Å¡2pr_ie1Å¡2pr_no1Å¡2pr_pa1Å¡2pr_sa1Å¡2pr_uz1Å¡2pr_ap1Å¡2pr_at1Å¡2pr_iz1Å¡2pr_pie1v2j_aiz1v2j_bez1v2j_pÄr1v2j_eks1v2j_vis1v2j_pie1f2j_aiz1f2j_bez1f2j_pÄr1f2j_eks1f2j_vis1f2j_pie1p2j_aiz1p2j_bez1p2j_pÄr1p2j_eks1p2j_vis1p2j_pie1b2ļ_aiz1b2ļ_bez1b2ļ_pÄr1b2ļ_eks1b2ļ_vis1b2ļ_pie1g2n_aiz1g2n_bez1g2n_pÄr1g2n_eks1g2n_vis1g2n_pie1h2r_aiz1h2r_bez1h2r_pÄr1h2r_eks1h2r_vis1h2r_pie1s2n_aiz1s2n_bez1s2n_pÄr1s2n_eks1s2n_vis1s2n_pie1ž2m_aiz1ž2m_bez1ž2m_pÄr1ž2m_eks1ž2m_vis1ž2m_pie1d2ž_aiz1d2ž_bez1d2ž_pÄr1d2ž_eks1d2ž_vis1d2ž_pie1k2c_aiz1k2c_bez1k2c_pÄr1k2c_eks1k2c_vis1k2c_pie1k2ņ_aiz1k2ņ_bez1k2ņ_pÄr1k2ņ_eks1k2ņ_vis1k2ņ_pie1Å¡2m_aiz1Å¡2m_bez1Å¡2m_pÄr1Å¡2m_eks1Å¡2m_vis1Å¡2m_pie1g2v_aiz1g2v_bez1g2v_pÄr1g2v_eks1g2v_vis1g2v_pie1h2l_aiz1h2l_bez1h2l_pÄr1h2l_eks1h2l_vis1h2l_pie1k2ļ_aiz1k2ļ_bez1k2ļ_pÄr1k2ļ_eks1k2ļ_vis1k2ļ_pie1s2l_aiz1s2l_bez1s2l_pÄr1s2l_eks1s2l_vis1s2l_pie1t2v_aiz1t2v_bez1t2v_pÄr1t2v_eks1t2v_vis1t2v_pie1Å¡2ņ_aiz1Å¡2ņ_bez1Å¡2ņ_pÄr1Å¡2ņ_eks1Å¡2ņ_vis1Å¡2ņ_pie1Å¡2p_aiz1Å¡2p_bez1Å¡2p_pÄr1Å¡2p_eks1Å¡2p_vis1Å¡2p_pie1d2z_aiz1d2z_bez1d2z_pÄr1d2z_eks1d2z_vis1d2z_pie1f2l_aiz1f2l_bez1f2l_pÄr1f2l_eks1f2l_vis1f2l_pie1k2n_aiz1k2n_bez1k2n_pÄr1k2n_eks1k2n_vis1k2n_pie1p2ļ_aiz1p2ļ_bez1p2ļ_pÄr1p2ļ_eks1p2ļ_vis1p2ļ_jÄ1s2pļ_ne1s2pļ_ie1s2pļ_no1s2pļ_pa1s2pļ_sa1s2pļ_uz1s2pļ_ap1s2pļ_at1s2pļ_iz1s2pļ_jÄ1s2kl_ne1s2kl_ie1s2kl_no1s2kl_pa1s2kl_sa1s2kl_uz1s2kl_ap1s2kl_at1s2kl_iz1s2kl_pie1k2b_aiz1k2b_bez1k2b_pÄr1k2b_eks1k2b_vis1k2b_pie1s2m_aiz1s2m_bez1s2m_pÄr1s2m_eks1s2m_vis1s2m_pie1m2n_aiz1m2n_bez1m2n_pÄr1m2n_eks1m2n_vis1m2n_pie1Å¡2n_aiz1Å¡2n_bez1Å¡2n_pÄr1Å¡2n_eks1Å¡2n_vis1Å¡2n_pie1v2r_aiz1v2r_bez1v2r_pÄr1v2r_eks1v2r_vis1v2r_pie1b2l_aiz1b2l_bez1b2l_pÄr1b2l_eks1b2l_vis1b2l2b3dams_2c3dams_2Ä3dams_2d3dams_2f3dams_2g3dams_2Ä£3dams_2h3dams_2j3dams_2k3dams_2Ä·3dams_2l3dams_2ļ3dams_2m3dams_2n3dams_2ņ3dams_2p3dams_2r3dams_2s3dams_2Å¡3dams_2t3dams_2v3dams_2z3dams_2ž3dams_2b3gans_2c3gans_2Ä3gans_2d3gans_2f3gans_2g3gans_2Ä£3gans_2h3gans_2j3gans_2k3gans_2Ä·3gans_2l3gans_2ļ3gans_2m3gans_2n3gans_2ņ3gans_2p3gans_2r3gans_2s3gans_2Å¡3gans_2t3gans_2v3gans_2z3gans_2ž3gans__ne3aiz14d5ze1me_tur2p1mil2k1tiemÄ“1ne2Å¡1pa2t3stÄpa2s2t3kpa2s2t3mpa2r3ketpir2m2s1ak3me4ņ3aug2s2t3bal2t3ma", + 9 : "d_vi1s2a_d_vi1s2Ä_d_vi1s2i_d_vi1s2u__pie1s2tj_aiz1s2tj_bez1s2tj_pÄr1s2tj_eks1s2tj_vis1s2tj_pie1s2tr_aiz1s2tr_bez1s2tr_pÄr1s2tr_eks1s2tr_vis1s2tr_pie1s2pr_aiz1s2pr_bez1s2pr_pÄr1s2pr_eks1s2pr_vis1s2pr_pie1s2kv_aiz1s2kv_bez1s2kv_pÄr1s2kv_eks1s2kv_vis1s2kv_pie1s2kr_aiz1s2kr_bez1s2kr_pÄr1s2kr_eks1s2kr_vis1s2kr_pie1Å¡2pr_aiz1Å¡2pr_bez1Å¡2pr_pÄr1Å¡2pr_eks1Å¡2pr_vis1Å¡2pr_pie1s2pļ_aiz1s2pļ_bez1s2pļ_pÄr1s2pļ_eks1s2pļ_vis1s2pļ_pie1s2kl_aiz1s2kl_bez1s2kl_pÄr1s2kl_eks1s2kl_vis1s2kl2b3da3ma_2c3da3ma_2Ä3da3ma_2d3da3ma_2f3da3ma_2g3da3ma_2Ä£3da3ma_2h3da3ma_2j3da3ma_2k3da3ma_2Ä·3da3ma_2l3da3ma_2ļ3da3ma_2m3da3ma_2n3da3ma_2ņ3da3ma_2p3da3ma_2r3da3ma_2s3da3ma_2Å¡3da3ma_2t3da3ma_2v3da3ma_2z3da3ma_2ž3da3ma_2b3ga3na_2c3ga3na_2Ä3ga3na_2d3ga3na_2f3ga3na_2g3ga3na_2Ä£3ga3na_2h3ga3na_2j3ga3na_2k3ga3na_2Ä·3ga3na_2l3ga3na_2ļ3ga3na_2m3ga3na_2n3ga3na_2ņ3ga3na_2p3ga3na_2r3ga3na_2s3ga3na_2Å¡3ga3na_2t3ga3na_2v3ga3na_2z3ga3na_2ž3ga3na_2b3nieks_2c3nieks_2Ä3nieks_2d3nieks_2f3nieks_2g3nieks_2Ä£3nieks_2h3nieks_2j3nieks_2k3nieks_2Ä·3nieks_2l3nieks_2ļ3nieks_2m3nieks_2n3nieks_2ņ3nieks_2p3nieks_2r3nieks_2s3nieks_2Å¡3nieks_2t3nieks_2v3nieks_2z3nieks_2ž3nieks_2b3nÄ«3ca_2c3nÄ«3ca_2Ä3nÄ«3ca_2d3nÄ«3ca_2f3nÄ«3ca_2g3nÄ«3ca_2Ä£3nÄ«3ca_2h3nÄ«3ca_2j3nÄ«3ca_2k3nÄ«3ca_2Ä·3nÄ«3ca_2l3nÄ«3ca_2ļ3nÄ«3ca_2m3nÄ«3ca_2n3nÄ«3ca_2ņ3nÄ«3ca_2p3nÄ«3ca_2r3nÄ«3ca_2s3nÄ«3ca_2Å¡3nÄ«3ca_2t3nÄ«3ca_2v3nÄ«3ca_2z3nÄ«3ca_2ž3nÄ«3ca_2b3Å¡a3na_2c3Å¡a3na_2Ä3Å¡a3na_2d3Å¡a3na_2f3Å¡a3na_2g3Å¡a3na_2Ä£3Å¡a3na_2h3Å¡a3na_2j3Å¡a3na_2k3Å¡a3na_2Ä·3Å¡a3na_2l3Å¡a3na_2ļ3Å¡a3na_2m3Å¡a3na_2n3Å¡a3na_2ņ3Å¡a3na_2p3Å¡a3na_2r3Å¡a3na_2s3Å¡a3na_2Å¡3Å¡a3na_2t3Å¡a3na_2v3Å¡a3na_2z3Å¡a3na_2ž3Å¡a3na_2b3ta3la_2c3ta3la_2Ä3ta3la_2d3ta3la_2f3ta3la_2g3ta3la_2Ä£3ta3la_2h3ta3la_2j3ta3la_2k3ta3la_2Ä·3ta3la_2l3ta3la_2ļ3ta3la_2m3ta3la_2n3ta3la_2ņ3ta3la_2p3ta3la_2r3ta3la_2s3ta3la_2Å¡3ta3la_2t3ta3la_2v3ta3la_2z3ta3la_2ž3ta3la_2b3tu3ve_2c3tu3ve_2Ä3tu3ve_2d3tu3ve_2f3tu3ve_2g3tu3ve_2Ä£3tu3ve_2h3tu3ve_2j3tu3ve_2k3tu3ve_2Ä·3tu3ve_2l3tu3ve_2ļ3tu3ve_2m3tu3ve_2n3tu3ve_2ņ3tu3ve_2p3tu3ve_2r3tu3ve_2s3tu3ve_2Å¡3tu3ve_2t3tu3ve_2v3tu3ve_2z3tu3ve_2ž3tu3ve__priek2Å¡1_spil2g1tpa2s2t2s_pa2r2k2s_", + 10 : "d_vi1s2os_2b3da3mÄs_2c3da3mÄs_2Ä3da3mÄs_2d3da3mÄs_2f3da3mÄs_2g3da3mÄs_2Ä£3da3mÄs_2h3da3mÄs_2j3da3mÄs_2k3da3mÄs_2Ä·3da3mÄs_2l3da3mÄs_2ļ3da3mÄs_2m3da3mÄs_2n3da3mÄs_2ņ3da3mÄs_2p3da3mÄs_2r3da3mÄs_2s3da3mÄs_2Å¡3da3mÄs_2t3da3mÄs_2v3da3mÄs_2z3da3mÄs_2ž3da3mÄs_2b3nie3ce_2c3nie3ce_2Ä3nie3ce_2d3nie3ce_2f3nie3ce_2g3nie3ce_2Ä£3nie3ce_2h3nie3ce_2j3nie3ce_2k3nie3ce_2Ä·3nie3ce_2l3nie3ce_2ļ3nie3ce_2m3nie3ce_2n3nie3ce_2ņ3nie3ce_2p3nie3ce_2r3nie3ce_2s3nie3ce_2Å¡3nie3ce_2t3nie3ce_2v3nie3ce_2z3nie3ce_2ž3nie3ce_2b3Å¡a3nÄs_2c3Å¡a3nÄs_2Ä3Å¡a3nÄs_2d3Å¡a3nÄs_2f3Å¡a3nÄs_2g3Å¡a3nÄs_2Ä£3Å¡a3nÄs_2h3Å¡a3nÄs_2j3Å¡a3nÄs_2k3Å¡a3nÄs_2Ä·3Å¡a3nÄs_2l3Å¡a3nÄs_2ļ3Å¡a3nÄs_2m3Å¡a3nÄs_2n3Å¡a3nÄs_2ņ3Å¡a3nÄs_2p3Å¡a3nÄs_2r3Å¡a3nÄs_2s3Å¡a3nÄs_2Å¡3Å¡a3nÄs_2t3Å¡a3nÄs_2v3Å¡a3nÄs_2z3Å¡a3nÄs_2ž3Å¡a3nÄs_1pa1d2smit", + 11 : "d_vi1s2iem_2b3da3mies_2c3da3mies_2Ä3da3mies_2d3da3mies_2f3da3mies_2g3da3mies_2Ä£3da3mies_2h3da3mies_2j3da3mies_2k3da3mies_2Ä·3da3mies_2l3da3mies_2ļ3da3mies_2m3da3mies_2n3da3mies_2ņ3da3mies_2p3da3mies_2r3da3mies_2s3da3mies_2Å¡3da3mies_2t3da3mies_2v3da3mies_2z3da3mies_2ž3da3mies_" + } +}; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/ml.js b/resources/viewer/hyphenate/patterns/ml.js index 03e024a3da..d22b7a05bc 100644 --- a/resources/viewer/hyphenate/patterns/ml.js +++ b/resources/viewer/hyphenate/patterns/ml.js @@ -1,14 +1,14 @@ -// For questions about the Malayalam hyphenation patterns +// For questions about the Malayalam hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.ml = { +Hyphenator.languages['ml'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 3, - specialChars : unescape('ആഅഇഈഉഊഋഎà´à´à´’ഔകഗഖഘങചഛജà´à´žà´Ÿà´ à´¡à´¢à´£à´¤à´¥à´¦à´§à´¨à´ªà´«à´¬à´­à´®à´¯à´°à´²à´µà´¶à´·à´¸à´¹à´³à´´à´±à´¿àµ€à´¾àµàµ‚ൃെേൊാോൈൌൗàµà´ƒà´‚%u200D'), + specialChars : unescape("അആഇഈഉഊഋൠഌൡഎà´à´à´’ഓഔാിീàµàµ‚ൃെേൈൊോൌൗകഖഗഘങചഛജà´à´žà´Ÿà´ à´¡à´¢à´£à´¤à´¥à´¦à´§à´¨à´ªà´«à´¬à´­à´®à´¯à´°à´±à´²à´³à´´à´µà´¶à´·à´¸à´¹à´ƒà´‚àµàµºàµ»àµ¼àµ½àµ¾àµ¿%u200D"), patterns : { - 2 : 'à´…1à´†1à´‡1à´ˆ1à´‰1à´Š1à´‹1à´Ž1à´1à´1à´’1à´”1à´¿1à´¾1ീ1àµ1ൂ1ൃ1െ1േ1ൊ1ോ1ൌ1ൗ1àµ2à´ƒ1à´‚11à´•1à´—1à´–1à´˜1à´™1à´š1à´›1à´œ1à´1à´ž1à´Ÿ1à´ 1à´¡1à´¢1à´£1à´¤1à´¥1à´¦1à´§1à´¨1à´ª1à´«1à´¬1à´­1à´®1à´¯1à´°1à´²1à´µ1à´¶1à´·1à´¸1à´¹1à´³1à´´1à´±', - 3 : '2à´ƒ12à´‚1', - 4 : unescape('2à´¨àµ%u200D2à´°àµ%u200D2à´²àµ%u200D2à´³àµ%u200D2à´£àµ%u200D') + 2 : "à´¾1à´¿1ീ1àµ1ൂ1ൃ1െ1േ1ൈ1ൊ1ോ1ൌ1ൗ11à´•1à´–1à´—1à´˜1à´™1à´š1à´›1à´œ1à´1à´ž1à´Ÿ1à´ 1à´¡1à´¢1à´£1à´¤1à´¥1à´¦1à´§1à´¨1à´ª1à´«1à´¬1à´­1à´®1à´¯1à´°1à´±1à´²1à´³1à´´1à´µ1à´¶1à´·1à´¸1à´¹2ൺ2ൻ2ർ2ൽ2ൾ2ൿ", + 3 : "1à´…11à´†11à´‡11à´ˆ11à´‰11à´Š11à´‹11ൠ11à´Œ11ൡ11à´Ž11à´11à´11à´’11à´“11à´”12à´ƒ12à´‚12àµ2à´¨àµ2à´°àµ2à´³àµ2à´²àµ2à´•àµ2à´£àµ2", + 4 : unescape("2à´¨àµ%u200D2à´°àµ%u200D2à´²àµ%u200D2à´³àµ%u200D2à´£àµ%u200D2à´•àµ%u200D") } }; diff --git a/resources/viewer/hyphenate/patterns/nl.js b/resources/viewer/hyphenate/patterns/nl.js index 98ce8bfceb..e773367cc4 100644 --- a/resources/viewer/hyphenate/patterns/nl.js +++ b/resources/viewer/hyphenate/patterns/nl.js @@ -1,11 +1,11 @@ -// For questions about the dutch hyphenation patterns +// For questions about the dutch hyphenation patterns // ask Remco Bloemen (remco dot bloemen at gmail dot com) -Hyphenator.languages.nl = { +Hyphenator.languages['nl'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 8, - specialChars : '', + specialChars : "", patterns : { 2 : "1b1çè1ê13ëî31ï3ñ1q1ü1z", 3 : "_a4_b4_c4_d4_e4_é2_f4_g4_h2_i4_j4_k4_l4_m4_n4_o4_p4_r4_s4_t4_u4_w4_y2_z44a_4aea2ë2aha2qa1ta4üä3hä3r4b_3ba4bbb4o4bvby34bz4c_1ca2cbc4d1ce1céc3g3cic3j1coc3w1cy4d_1da2db1de3dè1di1do2ds2dt1du2dv2dw1dy2dz4e_4eae1de4ee2ie3oé3aé1dé1gé3hé3jé3né3pé3ré1t4ècè2lè2sè5tê2pê5t4ë_ë2bë3cë3dëe2ë3jë1l5ënë3pë2së1t4f_1fa4fbf1c4fd1fe1fé3fè3fê1fif1jf1n1fo3föfr44ft1fu4fv2fz4g_1ga4gd1ge1gé3gè1gigl41go4gs4gt1gu4gv1gy2gz4h_4hb2hdh4eh3hh3j2hlh1n2hr4hs2ht4i_i1a4ic4iei1è4ifi1hi3ii2j4ik4is4iti5w4izît42ï_ï5aï1cï1dï3oï1tï5z4j_j3bj1cj1gj3hj3j2jkj3r2jsj3vj1w4k_1ka1ke1kik1j1ko2ks4kt1ku2kû2kvky32kz4l_4ld1li2lm4lp4lsl1w1ly4lz4m_1ma4mb1me3mé3mè3mê1mi1mo2ms2mt1mu2mv1my2mz4n_1na2nb4nd1ne3né2ng1nin3n2ns2nt2nvnx31ny2nz4o_4oao4e2oë4oio3ï2oko1ö2oso2v4owo4xö3lö1pö4rös44p_1pé3pêpr42ps2pv5qequ44r_r1cr1gr3hr3lr1mr1p4rs4rtr1wr3x4rz4s_1sc3se3sé3sès1h1sisj2s1ms4qs2t1sus4y4t_1te1tétè33titr44ts4tv4tzu1a4ucu1du3èu1hu2i2uk4up4uzü4bü1n1v22v_v4bv4e3viv3j3vlv3tvy32w_2wbw1cw1gw1hw1j2wnw1p2ws2wtwu2w1wx1cx4ex1fx1hx3lx1mx1px3rx1tx3wxy3y1ay1cy1ey3èy1fy1gy1hy1iy1oy1py1rys3y1t4z_4zb4zc4zdz4e4zf4zgz2i4zm2zs2zvz4w5zy", diff --git a/resources/viewer/hyphenate/patterns/no-nb.js b/resources/viewer/hyphenate/patterns/no-nb.js new file mode 100644 index 0000000000..b3b111bab7 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/no-nb.js @@ -0,0 +1,131 @@ +// The norwegian hyphenation patterns were retrieved from +// http://www.ctan.org/language/hyph-utf8/tex/generic/hyph-utf8/patterns/tex/hyph-no.tex +// and adapted to hyphenator.js format by Erik Erik Seierstad (erik dot seierstad at gmail dot com). + +// % This file is part of hyph-utf8 package and resulted from +// % semi-manual conversions of hyphenation patterns into UTF-8 in June 2008. +// % +// % Source: nohyphbx.tex (2007-02-07) +// % Author: +// % +// % The above mentioned file should become obsolete, +// % and the author of the original file should preferaby modify this file instead. +// % +// % Modificatios were needed in order to support native UTF-8 engines, +// % but functionality (hopefully) didn't change in any way, at least not intentionally. +// % This file is no longer stand-alone; at least for 8-bit engines +// % you probably want to use loadhyph-foo.tex (which will load this file) instead. +// % +// % Modifications were done by Jonathan Kew, Mojca Miklavec & Arthur Reutenauer +// % with help & support from: +// % - Karl Berry, who gave us free hands and all resources +// % - Taco Hoekwater, with useful macros +// % - Hans Hagen, who did the unicodifisation of patterns already long before +// % and helped with testing, suggestions and bug reports +// % - Norbert Preining, who tested & integrated patterns into TeX Live +// % +// % However, the "copyright/copyleft" owner of patterns remains the original author. +// % +// % The copyright statement of this file is thus: +// % +// % Do with this file whatever needs to be done in future for the sake of +// % "a better world" as long as you respect the copyright of original file. +// % If you're the original author of patterns or taking over a new revolution, +// % plese remove all of the TUG comments & credits that we added here - +// % you are the Queen / the King, we are only the servants. +// % +// % If you want to change this file, rather than uploading directly to CTAN, +// % we would be grateful if you could send it to us (http://tug.org/tex-hyphen) +// % or ask for credentials for SVN repository and commit it yourself; +// % we will then upload the whole "package" to CTAN. +// % +// % Before a new "pattern-revolution" starts, +// % please try to follow some guidelines if possible: +// % +// % - \lccode is *forbidden*, and I really mean it +// % - all the patterns should be in UTF-8 +// % - the only "allowed" TeX commands in this file are: \patterns, \hyphenation, +// % and if you really cannot do without, also \input and \message +// % - in particular, please no \catcode or \lccode changes, +// % they belong to loadhyph-foo.tex, +// % and no \lefthyphenmin and \righthyphenmin, +// % they have no influence here and belong elsewhere +// % - \begingroup and/or \endinput is not needed +// % - feel free to do whatever you want inside comments +// % +// % We know that TeX is extremely powerful, but give a stupid parser +// % at least a chance to read your patterns. +// % +// % For more unformation see +// % +// % http://tug.org/tex-hyphen +// % +// %------------------------------------------------------------------------------ +// % +// % TeX hyphenation patterns for Norwegian +// % +// % version of 2007-02-07. +// % Patterns of January 25, 2005, with later additions and changes +// % +// % Copyright (C) 2004, 2005 Rune Kleveland, Ole Michael Selberg. +// % Copying and distribution of this file, with or without modification, +// % are permitted in any medium without royalty provided the copyright +// % notice and this notice are preserved. +// % +// % Please send bugs or suggestions to tex-live (at) tug.org. +// % +// % Originally generated by a script written by Rune Kleveland +// % from dictionaries available from +// % http://folk.uio.no/runekl/dictionary.html. +// % +// % Adjusted manually by Ole Michael Selberg to prevent +// % numerous wrong hyphenations, especially in compounds. +// % +// % Changes from the former version of 2005-06-29: +// % 388 new patterns. Some old patterns have been deleted or changed. +// % +// % In Kleveland's nohyphb.tex there are 26017 patterns. +// % This version of the revised nohyphbx.tex contains 27149 patterns +// % --- plus 45 exceptions in the \hyphenation-list +// % (which you may change to suit your personal needs). +// % +// % To load these hyphenation patterns the parameters +// % of TeX must have the following minimum values: +// % trie_size = 33385 +// % trie_op_size = 815 +// % (The corresponding values for nohyphb.tex are +// % trie_size = 31900 trie_op_size = 636) +// % If you want to load more than one set of hyphenation +// % patterns the parameters have to be set to a value +// % larger than or equal to the sum of all required values +// % for each set. +// % +// % Notes on other Norwegian hyphenation pattern files, from Dag Langmyhr, +// % tex-live mail of 29 Jun 2005 11:26:21 +0200. +// % nohyph.tex -- manually created by Ivar Aavatsmark and others; +// % hyphenate according to pre-1973 rules; no longer recommended for use. +// % (Sometimes also known as nohyph1.tex.) +// % nohyph2.tex -- created by Dag and a student; the present file, +// % nohyphbx.tex, is more extensive and is recommended. + + + +Hyphenator.languages['no'] = Hyphenator.languages['no-nb'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 2, + longestPattern : 10, + specialChars : "æøå", + patterns : { + 3: "_a4_b6_c4_d6_e6_f4_g6_h4_i2_j4_k6_l6_m8_n8_o6_p6_r6_s6_t8_v6_y6_z4_æ8_ø6_Ã¥28aca1ha1ja1oa1ø2bc1be7bé6bg2bhbl26bnb2o4bpbr81by6cb4ccc2dc2lc1mcr81cuc6zcæ51da1de1di1do5dqdr48ds1du1dyd5z1dæ1dø2ea2ece1fe1he1je1ue1vey1é1aé1bé1dé1fé1gé1hé1ié1ké1lé1mé5oé1pé1ré1sé1té1vé5åè1r1fa1fe2ff1fi1fjfn61fo3fôfr22ft1fu1fy1fø4fÃ¥1ga1ge1gé1gi1gjg1n1go1gu1gy1gÃ¥h2a4hc2hf2hh2hl2hnh4oh1p2hr4hthv4h6yh6Ã¥2ie2if2igi3hi1ii1j2ik4io2iri1ui5yi1øj1b2jdj2ej1f4jgj1hj2oj1pj1tj5vjy1j2ø2jÃ¥2kc1kekj22kkkl4kr6kv26ld1le7lè5lê2lg1li2ljl5q8lvl5wl3z1lø1mam1c1me2mé1mi1mom3q6ms1mu2mw1my5mæ1mø1mÃ¥1nan1c6nd1ne1né6ng1ni2nk4nn1no7nón3q6ns1nun3w1nyn1z1nø2oa4oc2og2on2ooo4q2os2otow1ox3o1øo1åô4tó7tó8v1pa1pepl61po2pppr62ps1pu1pæqa5qu2r1c4rdr1j2rn4rsrx1r4z1se1sés1h1si1sjsl4s1ms1nsp2sv21sys4z1sæ1sø2tc1te1titr44ts6tt2tz1tæ2udu1hu1ju1uu1vu1wu1æ1vê8vs1vu1væw2aw1bwe2w1lw1mws5wy2w1zx7bx3fx7hx5kx1lx3rx7tx6uxy2y1by1cy1fy1hy1iy1j6yk2ysy1uy1vy1wy5æy5øz1cz1d1zez1fz1gz1kz1mz1pz5rz1sz1væ1fæg6æ2kø1bøg1ø1hø4iø1jø1o4øtÃ¥1aÃ¥1f2Ã¥gÃ¥1hÃ¥1iÃ¥1j6Ã¥mÃ¥3oÃ¥s2Ã¥3uÃ¥1v", + 4: "_aa4_ai2_a6k_a6l_a6n_a6s_bl4_bæ2_ds4_ei2_ex4_gl6_gø2_ik2_i3ø_ji4_ks6_og4_om1_ph2_ps2_sk4_sn4_st6_sv8_sz6_sæ2_th2_tr6_ts2_u1i_u2n_u1o_u1p_u2t_vy4_xe2_ye4_ys4_yv6_zj8_øi5_øs2_Ã¥6e_Ã¥6f_Ã¥6g_Ã¥8l_Ã¥8m_Ã¥4t_Ã¥6va1ad4aafaa4gaa2ma1apaa2sa1ava5bhab1lab1raca5ack3a1co6ada1adgad1j2adl1admad5n1adv4aeaa4eda3ep6afa6afcaf4i6afo4agaa4gé4agoa5hiah4vai5øa7jea4jéa4jia6jl6ak_a1ka2akd2ake6akn2akva5kÃ¥2ale4alnalp22alsa1lÃ¥2amia2moam1s2anu6any2anøan7Ã¥ao9aaog9a2oiao2pao4ra7péa1piap1j8apua1pyap7øa1ra1arba1re6arf2arsa1rya1rÃ¥6as_a1scas2has1la1soa1suas5Ã¥4at_a4té4ati2atsa1tuat5va1tya1tø4au_au3cau5i2auxa1va1avd1avg6avna1voav1r1avt2avua1waa5wea1wiay2aa5zua7Ã¥61b4aba3aba2d4bafba2k6bavba5z2b1bb3bab3bib4bøb6bÃ¥2b1d2beeb4efbe3gbe6i2bepb4er6beÃ¥2b5fbhu11b4ibi1dbi5gbio74bipb5khb5ljb6lu2b1mb7ni2boh2bojb4olboo61botbo6yb7plb2ro1bryb4rø6b1sbs4ebsk4b2smbsÃ¥56b5t1b2u4bubbu1ibu1p4buv6buø2b1v4b5wbya23byiby5nby1s2byv1b4øbø4ebøf3bø2nbø1v1b4Ã¥bÃ¥6e1c4acab4ca4eca1tc1cicde6ce3dce1i1cel1cer2ch_2chb2chm4chn2chp8chs6chtch1vci1c3cidci2e2c6kck1ick1kck7rcku6cly4coa62cod6cof6cogco2mco2o2corc1pr5cru4c4s4c1tc6tacty54cu_2curcu6tcy2acys34daa2dafda1i2dap2dav4daø4d1c6d1dddø22deade7bde1c2dee2def2deg2deh2dei2dejd2erde1s2deu2dev2dey4deø2deÃ¥2d1fd5gid3go2d1h2dib4dih4dii2dij2dipd1jad1jodki6d5kjd3lad5lid5lod5lÃ¥2d1m8d1ndn6a2dof2dop2dov4doø2druds1lds1pdst4ds1v4d1td3tidt6jd7todtø8dtÃ¥4du1c3dug7duo3durdu1s2d1vd7vo2d1wdy9a2dyf2dyldy2t8dz_4dø_2døkd2ør2døsdøt31dÃ¥d1dÃ¥pe1ade1afe1ane1ape1are1aue1aveb3heb5se4caec4ce1cee8dée1dredæ4e3e2eea7ee3be2edee4n4efa4efi2efle2fn8efre8ft6efue3fæ4efø2ega6egm4egoeg2re1gø4egÃ¥ei4cei7e4eii4eil4eime4ip2eir2eise1ki2ekke1kl4ekne1kue5kye3kæe1køe1kÃ¥2eliel1jelk2el5n2elæ2elø4em_6emd8emee5my6emø2ena4enb2eno2enp2enu4enw4enÃ¥e3o6eo3aeo5de2oke2oleo2peo1s2e1pep2l4erbe1ree8ré2erg2erhe1ri2ern2ero2erp2err2erue1ræ2es_e1sa2esee1sue1taet1c2ete4eté4eth2eti6etlet5m2etnets14etz4etæe1tøe1tÃ¥eu4ae8ufeu4heu2leum2e2ure2use2vjev1se2vøew3aey5ke1yre3zie1zue1æ2eær3e1ø4eøy4e1Ã¥6eÃ¥k4é5e8é2rjése2ê6raê1reêr7ofac8fa4ffai55fal2fap3far2f1b2f1d3fe_2fec2fef8fej2feo2feu2fev2feø2feÃ¥1férf2fjf2fof3fæf4fø2f1hfie2fi4ff6ig4fihfi2rf5juf2l21flof6lu3fly1flÃ¥2f1m2fo_2foe4fof3fonf1op1fra2f1sfs2hfsi2f2slf4smf2snfs2tf1taft5lft7nft3rft1u4f1vfyr2fy3s2fæ1fø1f2føkf8ør6gah6gakg2at2gaw4gaø2g1b2g1c8g1d2gebged42gee2gef2geh2gei2gejg2en2geo2gepg2erg6es2geug2ev2gey4geæ2geø2geÃ¥2g1f4g1gg2glg4gn2g1hghæ83gi_2gibgi8c2gidgi1e2gih2gii2gip2giugl2agl6e4gljgl5lgls42g1mg5még3mugn1dgn4egn5rgn1sg2nÃ¥2gob2gof6goi2gok2gom4gov1gr48gr_8gs1gsa2g2sigsu2g2søgsÃ¥42g1tg3tag3tigt5t6gug7gum2g1v6g1w7gymgyr6g5æt4gÃ¥mgÃ¥2sha4a4haeha2ghai1h4au2h1b2he_he2ahe2ihe2khet2h5huhje42h1mh2nahn1shob6hoi5ho4oho4shou2ho1v2howh1rah1re6h1sh1trht5thvo2hya3hyd4hy2ehys3hæ5ghø4ehøf5hø2ghøk6hø2shÃ¥7aia1ti1avi1b2i5boib4rib8ti1ciick1i1coi5cy2idai8dji2dyi3døid7Ã¥i2edie1ii1eni1etieu2i8fti3føig3di6ghig1li5ini1kii1kjik1li1koik1ri1kuik1vi1kyi3køi3kÃ¥i1lai1léi1ly8im_4imai8méi7mjim5mimp24imu2in_6ina4ine8iné2inkin5l2inoin1s6inu1inv6inøi2obio1iiol4i1pii1pli1pri3pøi1rai1reir7gi1riirt6i1rui1røi1rÃ¥i1sa8iséis1lis1p6isuis1vis7wi1tai1téit2ii1toi1tri1tui1tøiu6aiu2biu2niu8pi2uri1vei1véi1viiv3ni1voiv3riv7yi9væi1waiwi5i4zei1zoi4øsi1øyi1Ã¥41jaeja4j1jaz2jeb2jef2jehje1i4jej2jel2jem2jep6jeø4ji_6jik4jiø2j1k6j1l6j1m6j1n6jn_j5ni1job5jocjon24jop2jos1jou4j1r1jubju2l8jup1jusju1Ã¥1jø_1jøejø1f4jøl1ka_2kaa2kag2kah1kam1kas2kav9kayk5ce2k1d2keb4kecked44kefke5h2kei2kej2kek2kem2keo4kep2kev6keæ2keø2keÃ¥1ké4két52k1fk5fik3gek5ghkgu44k1hkh6m2kifkio42kip1kir4kiuk6ivk1kak1kikk5kk4knkk7skk1v6kl_k2læ2k3mkn5fk2nøko3e2koi2koj1komk6on1kos4koø4koÃ¥6k1pk2rok1sak1scks1lksmÃ¥k1sok8srkss6k1suks1vks5wks1Ã¥6k1tku2a2kud6kuf6kug1kunku4o1kup1kus1kvok2vuk1vÃ¥k7wek5wuky5a4kyf2kyg1kyr2kyt1kø_1køek1ønkøs41la_2laala1b1lae2laf2lal2lao2lav1lawl5bel5bÃ¥2l1cl9déldø22lea2leblec42lee2leh2lej2leo2leplex14leø2leÃ¥5lée1lér4l1fl5felf3flg5glg5nl1gælg5ø8l1hl5hjli1a3lif3lig4lih2lip7liul5jél1jiljø36l1kl3kalk4elk2llkÃ¥12l1lll1jll5mll5p2l1mlm7blm5llm5mlm1slm3t2l1nl3nel7ny2lob1log4loh2lop1lov2l1pl7palp2hlp2ilp2l8l1sl4sfl2shl2sll2sml2su2l1tlt9blt9nlt2rl3ty2lublu5c1luflui61lujl4umlu6oluth1luvl1val9vél1vilv1jlv1Ã¥ly1a2lybly5ely5l2lyo1læ16læd2løt2lÃ¥ilÃ¥2n2lÃ¥p2lÃ¥r2maa2mab2maom6at2mau2mav2m1bm6com3de2meb2mecme7e2mef4meh2mejm2el2mem2mep2mev2meø2meÃ¥2m1f2m1hmi1ami6c2mih2mii4mij2mim2mip2miv2mjem1ji8mjo1mjø4m3lm7laml6im3mémm5nm3mummø22m1n3moa3moe4moh2mopmo5w8m1pmp1smpø5m1scm2smm1soms1vms1Ã¥2m1tm3tamt4bm5tomt4rmtÃ¥5mu6amu2e2mugmu2k7mumm2us2mut2m1vmy5amys3mø6emø2o7møt2møy2mÃ¥_mÃ¥5amÃ¥1km6Ã¥l2mÃ¥r8naf6nah2nakna7on5can1dénd5knd7v2nea2neb2nef2neg6neh2nei2nej2nek3nen2neo2nep2neu2neø4neÃ¥4néb4néd2néf6néh2nél4ném6néo2nép5nér4név4néå4n1fngd4ng1lng7nn1gø2nih8nij4nirn4it6niÃ¥4n1jn1kan1kin5kjn3kon1krn1kun1kvn9kyn1køn1kÃ¥4n1ln5len3ljn7lÃ¥4n3mnn9rnn1Ã¥2nob3noe2nof2nok2noo2nop4nouno1vn5pen9ran3renry6n2shn1su6n1tnt9gnt5lnt5n4nu_2nugnuk5nuo26nup2nut6n1vn5vin3vu2nyd4nyg2nyn4nyo4nypny1s2nyv4nyø1næ12nøe4nøfnøy11nÃ¥dnÃ¥8j1nÃ¥lnÃ¥2soa5co1afoa4ko1auob4e2obr2obu2obyo5bøo3bÃ¥o5cy2o1dod4eo4dj6o1eoe6foe2loe2no2es2ofao1fé2ofio1fl2ofo6oft2ofyog5øohø4oia4oi5ko1imoi6ro1is4o1jo1kao1kj4okl2okno3koo1kro1kuo3kÃ¥8ol_2old2oleo1lé2oliol9no1luo1lyo1lÃ¥2om_2omaomb62ome8omhom1j2omm2omoomp21omromt26omyo5mÃ¥on5bon7fon3jon1koo5s2op_2opa4opho1pi2opl4or_4orb4orc8ore2orfo1ri6orl4oro4orr2ors2ortor1u4ory2orøo1saos2lo2sno3soos1vo1tao1tjo1too1tro1tuo1tyo1tøot7Ã¥oub8ou4r6ovh2ovj4ovoowa8ow5ho1zao3zyô6raô2reô1rió9saò9re4paa2pac2paj2pamp6aspa1t2pavpce6pdø22pea4pebpec3pee62pef2peg2peh2pej2pekp6el2pem2peo2peppe2u2pev4peø4peÃ¥3pér2p1fp3fop5fr2p1h4pib2pid2pif2pih6pii2pim1pit2piu4piø8pl_p2lip1lyp1lÃ¥2p3mpo9apod82pofpog64poh2pom4poupow4p1pipp1jpp3kpp1lpp5npp5ppp1rpp1sp2pup6pÃ¥4pr_6pru4prÃ¥p1scp2shp2smp2snps1opst2ps1vps5wps1Ã¥2p1tp3tep5ti5pucpu2k5pum2pur2p1vpy8o6pys4p5z5pÃ¥b1pÃ¥lp5Ã¥npÃ¥1r1pÃ¥s1pÃ¥v1que2rao2rav4raw2raør5bør8dérd7mrd3nrd5t1re_2reb2ree2reh2rej2rem1rer2reu3rew2reÃ¥2r1frft2r9fæ2r1gr2gn2r1hr7hu2rib2rih2rii2rij2rip4riÃ¥2r1kr3kir8ks2r1lr3ljrl6or3ly2r1mrm3brm7pr3narn3drn3nrnu41roc1roi2r1pr5parp6jrp2lr3pu2r1rrr3drr6er3rirr5v6rs_r1sar1scr1sor1spr1svr1sz6r1tr4thrt2r4rukr4umru2rr4us2r1vrv4arv2jr3vr4r1w2ryrræ8v2rø_6røb2rølrø6m1rør2rÃ¥_rÃ¥7a4rÃ¥b2rÃ¥f4rÃ¥l2rÃ¥prÃ¥1s2saa1sas1sat4sca1sce2seb4sec2sef2seh2sejs2el2sep2sev2seø2seÃ¥2séa6séb4sée4séf4séj4sék2sél4séo6sép9sér4sés2sév2s1f6sfes5fo3sfæ4sh_6she4shj6shs2shus5høs7hÃ¥3sig4sih3siks2ils2is2sj_2sjb6sjd2sjf2sjg2sjk2sjl2sjm2sjn2sjp2sjr2sjs6sk_1ska4skb6skd2ske2skf2skh1ski2skm2skn2skv1sky6skæ1skÃ¥1slus1ly2snæ1sod5soe6soh3son1sos4sou2sov4sp_1spisp6o8s9rs5ro4s1ss2shs2sls2smss2ts6sÃ¥6st_st7c2std2stg2stk2stl2stm2stp2stv1sty1stø1stÃ¥4su_1suesu2fsu2hsu2ksu4o1sus7suv6sv_s3vrsy4c5syes4yms2ynsæ2l4sø_sø2d4søfsøg44søjs4øp7søt2søv5sÃ¥gsÃ¥2psÃ¥2rsÃ¥2s9sÃ¥vta1ata1c4tadt8ae8tah1tau2tavt1cet5co2t3d4teb2ted2tef4teh2tej2tem2tept4es2teu2tev2teø2teÃ¥4téa2téb2téf2téh2téi2tém6t1ft7fo2t1h3thr2tib3tid2tih2tii2tijt4il2tir2tit4tiy2tiÃ¥2tjo2tjø4tjÃ¥2t1m8t1nt3nat5ni4toc1toe2tof2toh4tojt6ok1tonto1s2tov5tow4toøt7pa8tr_t6ræ6ts_t1scts3fts1lts1ots1vts1wts1Ã¥t1tat1tét4tht6tst5twttæ6tu2k2t1vtv4a1tyd6tyh1tyn1typty2st5zatæ5l4tøl4tøpt2ørtøs44tøt2tøvt4øytÃ¥2k4tÃ¥ptÃ¥3stÃ¥2tua7gu1akua3tu1avub5hub1j2ubsu4bÃ¥u1ciuck1ucu5ud1rud3tud5vu5eiu1elue7ou1eru1etu1flu1frufø6u4glugo1ui8aui2du4ilu1imu7jÃ¥4uk_u7kiu1kj4ukku1ko2uksu1ku6ul_u1lau1léul1ju1lo4ult1uly2uma2umb4umc4umd2ume2umh2umi2umk4uml4ummum3n4umo2ump4umrums1umÃ¥72un_un6i4unk4unsunu6u3nyu3nøu3nÃ¥uo9au1obu1omu1opu1ov6upfu3pi4upr6ups6upt6upuu1pÃ¥u1raur4curd4u1re2urfu1riurø24usaus1c2use4usgu2shus1lu4snus1pus1v6usæ1utb1utd1utf1utgut1j2utout1ru1tu1utv8utzut1øu7utu5viu5vu4ux1uy6au7ynu1ø6uøv54vabvaf32vap4vauva4z6v1dvd6rv7dø1ve_2veb2vec2vee2vef2veh2vej2vem1ven2vepv4esv4et2veu2veø2veÃ¥2v1fv9gevgo42v1h1via1vid4vim1virv1jav1jev1jivls92v1m2v1n6vob2vofvoi11vok1vol2vom1vosvo1v2vr8v1rev1rov1ruv7ryv1rÃ¥v1skv1slvs1v2v1tvta18vuévu8k2vul2v1v2vy1vya4vø4lv5øv1vÃ¥a1vÃ¥ev4Ã¥k1vÃ¥nwa6l2wap1watwa3zwe7bwe3gwes2wet5w4i2wi3dwi5fwk3rwn5swob5wou6ws6kw1yoxga6x1icx1p6x1s2ya7b1yacya5fya4hy1akya2ly7amy1anyas4ya5ty1avybo2y8cé4yddydo4y1dry2duydø44y1ey2eky2emye2nyes2ye2ty2evygi2yg7myg6ry1kay2key1kiy1kjy1koy1kryk1sy1lay1lyym1sy3noyns1y1omyon4you4yp8ey1piy5poy1pry3puy1ray1riyr3my1ruyr3vy1ryy1says4eys6iy1soys2ty1suy1tay6tjy3to4ytty1tyy6uay8ueyu8gyu4ly1Ã¥2za5b3zaez1b4zbu4zea15zhaz3hiz5hu5zie1zis4z1l5zo_5zoe6zos4z1tzu3ez1unæ5byæ2bøæ5deæ7diæ3keæ5kiæ8kjæk6læ1laæl5jæ1re4ærfæ1ri4ærmær3nær5rær3væ2sjæ5ta4æteæt4ræ5vaæ5viøau4ø2bløb4rød3dø5djød1rø2duø4edø5epøfe8øf6jø5fnøg2aøgs2øi4eø4it6øk_ø1ki4økj2økk1økoø1krø7kyø1laøl3døledøl1jø1loø1lyø5mi4ønnøn2sønt1ø1piøp5pø1prø1raø1reø1riør1oør5vø1saø1scøs1lø1tuø5tyø1u2øv1røv1sø5vÃ¥2øyløy3o6øypøy1sø1ø2ø5Ã¥6Ã¥2arÃ¥1b46Ã¥1dÃ¥7diÃ¥ds14Ã¥1eÃ¥e2nÃ¥3erÃ¥fe6Ã¥g4rÃ¥g5øå1kaÃ¥1kiÃ¥1kjÃ¥k1kÃ¥1koÃ¥ku8Ã¥1laÃ¥l3dÃ¥l5jÃ¥l1uÃ¥1lyÃ¥3niÃ¥n5oÃ¥9nyÃ¥p2eÃ¥1piÃ¥p6jÃ¥p7pÃ¥1prÃ¥4pÃ¥2Ã¥rnÃ¥r2sÃ¥1røå1saÃ¥s3hÃ¥1slÃ¥5soÃ¥1spÃ¥su4Ã¥sÃ¥9Ã¥1taÃ¥5ti2Ã¥tnÃ¥1to6Ã¥tpÃ¥t1tÃ¥t1uÃ¥5tyÃ¥v4aÃ¥7vyÃ¥1ø8åøy4", + 5: "_ad2r_af7f_ag4r_ak6r_am7b_a6me_an3n_ant2_ap8t_as5s_at4h_at3s_a5ty_au6e_au4r_avi2_bok5_bon2_ce6b_cos1_da2m_de4u_di2a_du4a_ecu6_efo7_ege2_egs4_ei3l_ei3m_ek4r_el3k_el5l_el6s_em5p_en5a_en5t_ep6t_er8a_er4e_es1k_es5l_es3p_es6r_et4s_fa2e_fe4e_fe2l_fi6a_fol2_fo2r_fug2_ful2_gaf7_gas4_ga2t_ge2a_ge4o_gha5_gi4n_gi4s_gos7_gus1_gÃ¥4v_he2n_hi4n_ho2d_ho2e_høi5_i3a4_i3bl_i4da_ik6k_ik5t_i5kv_i3la_i6me_in5s_i6sa_i3sc_i6se_ist6_i5ti_i3va_i3ve_ja6e_je2a_je2l_je2m_ju6a_kaf2_ke6e_kel3_kir2_kø3s_le2f_le2t_li8a_li2g_li2k_lo4e_lo4i_lo8o_lu4d_lu2e_ly8e_ma4v_mne6_mo5v_mur7_mø2t_nak2_na4r_nat2_ne2s_ne4t_no6e_no4r_nu4e_ny5a_ok1k_oli5_ol6m_op7r_opt6_ort6_osa5_os4k_os4s_ot5r_ove6_ov5u_pe2p_pi6p_pi2s_pøn3_ra2m_rei2_ri2d_ri8e_ro4e_ry2e_rød2_rø1v_rÃ¥g8_sch6_se2b_se2e_se4i_si2d_smÃ¥3_sne3_soa8_s8p6_syd5_sær1_ta2s_te4e_te6i_te6o_ti8a_ti4e_ti4s_tsj2_u5a6_u1b2_u3d2_u7de_u3e6_uf4f_u4ga_u5gi_ug8n_ui6m_u1k6_u6ke_u7kn_u3le_ul5t_u1lu_u1ly_u3lÃ¥_u5ma_umu7_une8_un2n_u3no_un4t_u5nu_u4pi_up2l_u2ra_ur4d_u1ro_ur1s_u3ry_u5rÃ¥_u1s2_u5se_u5sn_u7sp_u3tu_vai4_vi2e_vo6r_vÃ¥4d_wa4r_wi6e_yns2_yr6t_yt5t_øi6e_øko5_ør5k_øs4t_øv4d_øy2e_øy4n_Ã¥6k4_Ã¥l6t_Ã¥6se_Ã¥s3k_Ã¥s7l_Ã¥s3m_Ã¥s5va3afta1aksaak5vaa3laa1a2na6an_aar5n3aasea6babab7av4abevabie6abl7uabo3babo3eab8reab2slabu5ea4bufa4by_a4byba4bykaby3ra6ca_a5dalad9daa2deba2deka4dela2deoa2depa2desad8ge1adjuado7aa4dob4adora2dread1roa7drøad4siad5un2advea4dy_2a1e2ae3deaed7raek5ta4el_ae5laae3liael5oaen5taes4ta4fe_afei5afia1a2fiba5fjoaf3leaf5li1afriafs1laf5yrafø4ra2gaaa5gaeag5dea2gemag5geagg7ua4gi_ag5idagi6sag1laag5lÃ¥ag1ora5gosa3gotag5ovag1reag1riag1rÃ¥ag2slag2sya6gu_ah4n5ai1a4ai3e2ai4isai5koai9kvai5nea3inga1innai1roais4eai8smais5sai5veaja9da8je_ajes74aka_6akaf6akan4akarak4aua9keca2keha6kek4a1kia6kida6kikakis12a1kjakki4ak6kjak1koak1ku2ak1lak5nea5kno2a1koa5kona7kosak1ruak6sl4akso4aksr4aksu4akthak2trakut2ak5øl8ala_ala4ga5laha1laiala4o2alat4alaual1aval3de4aldoa2lefa2lega2lema2leuale5v2alg_al2gua2limal1joal1jøal6lÃ¥a5lo_a5loial1oma1lonalow7al3psals1lal2sn6alsual1voalv3s6a1lyal3øva4maha2maka2mala3manam5bea2meia2mekame5uamhu76amn_amo5eam1opam1oram2pÃ¥amru4am5rÃ¥ams4lamst6ams2vam2søam3ti5amtmam7tvam6ulam5yram5øy6ana_8anan4anar4and_6ando4andsa2neda2nem2anen2anera2nevang4eania7a6nib4aniv4anki4ankjan4kø2anlaan4nyan2nøa3no_2anoga6notan4sn2ansu6ansyan4sÃ¥an5uta4nyaanær8a2nøkao6k6a5peaa2piaap1ida6pika2pioa1plaap3liap9loap2ly4apola4pona4pooapo3pa2potap3raap2s1apsa4a3psya5pÃ¥_2aran2arar2arba2arbi4arbj6arbl2arbo2arbr2arbu2arby2arbø4arbÃ¥a4reba2reda2refa2reia2reka2reoa2repar4eta4rev8a1ré6argjarg4lar7go2a1ria3riba4rima2rivar3ke2ar2nar3niar3noar3nuar3nÃ¥a1ro_a5roka1ronar1opa1rosa1rotar9po1arraars7æar3te4artn4arto6artr6artu8artyar1ular1una1rusar7æ6ar1øyar7Ã¥p4a1saasab4asak4as6anasbe2a2se_asea4a2seda2sega2sekas4ela2semas5hua4siba2sipa2sira2sivas4jaask2ia5skja1skras4kva4so_as5ovas3peas5plas2sjas1taa1stjasu3nas1vaa6sym4ata1at6afatas4atat8a2tauatch5a2teaa2teca2teea4tei4atena2teo4atera2tesat3joato5aat1oia2toma1tora1traa9tru4att_att1oat1tra2tuta3t3wa3tÃ¥_a7tÃ¥aa1tÃ¥eat5Ã¥r8a8ua4au5b4a6ueau7enau7er3auguaul5lau5luau6moa5undau5riau1ruau1saau1soaus5sau1suaut6aau5te1autoau4tyav5aba5vaeava7g6aval4avas5avbi2a1vea2veka2vesa2vev1avfaa1vika1vin2avira5vitav7naa4vokavo3ravo4vav5riav1saavs2iav5su1avviav3øl4a1vÃ¥awat4ay5ara5y4tazz3obaby5ba5clb5addba3dibad1sba3ki4bakrbak1vba3labal3jba1lobal5tba1luban4aba3reba3riba5ruba3siba2stba1tab6bakb3be_b4bebb2befb4begb6behb2beib2bekb4bemb2beob3berb2bevb8b1hb2b1lbb5opb2by5bby3ebby1kb2dekb7denb4depbe2aube5edbe6efbega9be4gnbe5go4behube5kebek6l4beksbel3ubel5vbe4nabe3nebe5niber5dbe1robe1ru5bes_6besjbe3snbe5spbes3sbe6sÃ¥3b4et5bet_be3te4betube9vobev9rbeÃ¥n9bi5akbi5cebi8débid6rbidu8bi5el4bifabi3kabik1kbil3jbil1o6bi5mbi7nobi1robis2abi3seb5ish8bisnbi4spbi1stbjar3bjø6r2b1k4b1larb3latbla4ub4lefb4lekb3ler2bletblja41blokblÃ¥5nblÃ¥3rb3ne_b3nerbo2blbobs4bo3debo2dø4boef1boenbo2erbogn7bog1s3bok_bo2kabok1ibok1kbo2kubo7li1bombbom5mbo6mo4bonnbons4boom1bo1p4bo1rabo3rob4o1sbo2slbou3c4bo1vbow4e1b4rab6revbri5ab4rio3b4rubrÃ¥e6b5s6ib4slibs2t6b7s6vb7t6sbu4arbu3dabu3debue5sbu6is6bukibuk3lbu5la2bu3obu3rubus6ebu1st4busybu1tab5utgbu2tubu1tøby5alby2erbyg3lby1lo4byløby1re5bys_4byse6bysi6byspbyst44bysvby1trbæ3ribæ3rubøne5bøn7obø5tabøye5bÃ¥4debÃ¥4labÃ¥1rebÃ¥6tobÃ¥t5rca5leca5meca5mocap1rca3racar5nca5rocash5cath5cebo9ce5le3cen_5censce5o4ce3recer3t6cerucha5t4chei4ch3hch5nechom4cie8ncil5lci3neci5tack1enck1o2ck5s2ckup3ck9utcoat51co4cco5macom5tcon5scon7tco7paco1reco4so4costcre2ecros2cu5lacu5lecu5lucup1lcu6pocup1rcup7scu4pÃ¥cy6p78dabod5absd4adgdadø44daef5dagb4dagjdag7l4dagÃ¥4dahe5dahl2daka4dako4dakrda5kvda1lada1luda3mo5dan_d8ane9dani3dann7dano8dany2da3oda3ped3app3dar_5dara2darbd5arnda2ro2dash6dasida4sk6dasudata5d6aud2dautd5avbd1avl2d1b2d6byfd2dadddag4d4dakd2dekddie8d7domddsa4d2dybddør3dd1Ã¥rdeak3de2al2debe4debl2debo2debr2deby4debø5ded_2deda2dedy5dee_de7erd5effd5eft5deggde3gldei4d5deik3deir8deka2deke2deki2dekj5dekkdek2lde5ko5dekt2deku4dekv4dekø4dekÃ¥d4el_d4elsd4elt4dely4delæ2delø2delÃ¥d3emb2deme4demj3demr5dems4demu2demø2demÃ¥d2en_4dena4deni4denod2ens4denu2denæ2denøde2obde4og2deol2depe4depi4depl6depuder5dder5kder3tder3v2derÃ¥2desa4desc2dese2desj2desk2deso2despdes6v2desydesÃ¥7d2et_2detade3te2deti2detj4deto2detu4dety4detø6detÃ¥d1eur5deusde5vu2d1g4d4geldgi6ndhø4rdi6akdi1ardia1s2diavdi1erdies43diff4difødig7g2digjdi2gudi5ka2dikj6dikn2dikodik7v2dilidi5ma2dimo4dimÃ¥di5nadini42dino2dinv4dinø3diog7diol3dipl5dis_di6scdis4id6iskdis5sdis1tdi5sv2disydi7tediv6i2divu2diøkd1je_d1jen5djupd4jø_2d5k2dko2r4d1l4dla4vd2lefd2leldli4fdmo4edmo8s2doavdo2b34dobado3be2dobÃ¥do4dadodø44doeud3offd5ofr2dogr6do5ido3ki4dokndo5le4dolj4domldo4modom7p2domrdo4mudon5g3dopido1redorm8do3ro5dorp3dorrdors6do1ru5dos_do1sk2doso4dosp2dost4dotrdo5vadov9n2d7p8d1ra_d5raa1dramd1rar2dre_2dredd5rej4drel4dremd1ren4drer4driad2rik3drukd1ruld1rumd3rup2drykd2rysd4rømd7røtd1rÃ¥d3drÃ¥pd5sa_ds1add1sagd1sald2sasd5se_dse4dds1efdse2mds1evd2s1id7sild3sird2sjods6jud1skjds1kods1kvds3mad6smods3neds5nods1o2d7sotds2pids5s4dss8tds1tjds3tvds1u2d5sykd3synds1ytd2s1ød6sørds1Ã¥6d3t4adta4sd3temdt6økdub5bdub5ldue5s4dufo4duguduit6dul5l4dulydums2d3upkdu2skdu2sldu2spduss4dust4du2sv2d1utdve6sdvo8r2dyba4dykl4dykø4dynkdyr5ø7dys_dy8sa4dysedys7sdærs4dø3grd5økndø4madør3id6øs_dø9vadø1vi6døvl2døy_døya8døy8gdÃ¥5rid3Ã¥s_d7Ã¥t_e1a2bea2gue1a2ke4akr6eakte1al_ea2løea4m1e5amne2an_e4aniean7nea4peea2ree3aspe1assea7taeat8he8atoe1atteau5s2e1b2eba3deb3beeblæ5ebob3ebø6ne5chae3come2dade2dare3de_ed4ise7dived8obe4doled1oped1oved2raed2smed5taed3teedt6redu8aed7vae3dykee3dieeg6nee5gÃ¥eei4deek1eee3lae5enbeen6keen5te3eplee8raee3rie3e6tef7eaef5efef3feef3foe5fig4e3fjeflÃ¥3ef2sjef2skef2spef2taeføy9e3gafe7game2gemegg3legie2eg7lyeg6noe7gnÃ¥e4go_7egoiehea4ehog5ehov2e6hÃ¥_2e8iae8id_5eidf5eidge1idreie5dei8egeie2nei6esei1fl8eig_ei3gaeig6eei5giei6guei1krei6moein1dein9fe4ini6einvei5orei9paei3peeip5sei3rieir5se4iseei2toei3vi4e1kae4kese6keye4ki_4e1kjek1kjekk3lek6kuek4kye3klue5klæek2løek3noe1knue5knøe1k2oe4ko_e4kov2e1kre3kroek4ryeks1k1ekspek4sæ4ektoe1k2v6ekve6e5kw2e1lael1alel4chel5do4elede3leee2lele2lem4elenel5fiel5gie9liee4lifel3knel4læel5mu2e1loe2lomel1opel4otel5phel3siels1lel2søel2tue3luae3luke7lume7lupe1lure7luselv1r4e1ly2e1lÃ¥el1Ã¥re5lÃ¥te2made2mahe4mame4mibe4mig4emine6mirem7jee5mjuem5le8emnd6emniem1opempo3em2snems3ue3muge2mukemy4kemø8re5møyen1akena2vend5l1endren7dø4enem2enen4eneveng6aeng4r4enhje4ni_e2nife5nir2enna2enneenn2ienn2oenn7øen3oken3ogen1open3sien1sten2søens7Ã¥en3ti2en3ve4ny_e2nybe6nyre2nys4e7næenæ8menø4ken1Ã¥se6obeeo2ble1og1eo7gre2o1ie3okseo5nee7onke3onteo3paeo5pleopo3eo3preo9ree2orieo1roeos6le2o1uepa3tepe6pe3pese6peu3epidepp2seps1tep2suept6r2e1rae2rafe2rauerd2eer1drere4t6erfi4erfre2rid4eril4erka8erke6erkn4erkrer3meerm1ser2noe3roae1roee1roge1role1rome1roner1oper1over3ra6ersa6ersjer1sker1sl6ersper1su4ersver1sÃ¥2erta4ertse1ruae1ruie3rume1rus6erviervs3e1ry4er1yrerys32e1rø2e1rÃ¥e9rÃ¥_erÃ¥6eerÃ¥4kerÃ¥6te6rÃ¥ves5aae2sadesag6es4ale3seke4seue4shae4shie1shoe4silesi6ve1skje1skre1skue5skye1skøe7skÃ¥e1slaes2noes4nues2ny4e1soeso4be2some1s2pes3pl4essues7sÃ¥e1stje1stu8estÃ¥es5ut2e3sy4eta_e4taee2tafe3take3talet4ape8taxet8ete3tit2e1tjet3jø2e1toe4tot2e1tr8etreets7let2sø2ettiet2tjet4tret2ty2e1tu2e1tyeu2keeu7kre3u2neu5nue6upkeure42eurie3urneuro1e3urteu4sieu1tae3utseut7te4u3z6eved6evegevi4eev2naev7nue4vreev9rÃ¥evs8vevti4e1y2de1ynge1y2te7ytiey3treÃ¥t8té4n5eè2redè2refè2repè2revè6vesê8lanêr9sl4fabofa1cifa3de6fadmfa2gifa2gofa2gr2fakrfa1kufa1lafal5mfa4lo5fane4fank6fanufa3rafar5nfart24faryfa7sa2faslfa1tofat2rfa1vø5fea_fe4da3fedefe2dr2fe3g2fehj4fekl2feko4fekrfe5li2felofem9bfe4mofem5s5fen_4fena4feni5fens5fer_7fernfer2r3fes_2fesife2st4fesyfe5tif7fa_f4fabffa7lf9fasf6fatf2febf2feef6fehf2femf2fesf2fibf2fidf2fipff3laff3liff4olff1roff5slff5t4ffu6rff5ut2f3g2fia7lfia4n4fiapfici7fi7difi1erfi5fifi5fofi7flfi9kafi5ko4fikufi3lifi1lo4filæfin5d6finj2finsfi2nu7fio5fi3rafi3ri4fiscfi2sk4fitrfi7tyf1jegf5jen2f5k6f4las2flegfle6if4lekf6lelf3levflus8fl5utf3lønflø5sfo9ar6fobsfo4lufo4nafond2fo5nefor1aforh6fork8for3nforo6for5pfor9Ã¥fo9se4fosjfo4tafoto5fot3sfot3t4f1ov2f3p2fpo6efra5lfra1sfra7vf2re_8fregf4rekf1rin6frocfro7ffrus1f1rytfrø5bfrÃ¥9rfsho6fs5ovf4s9vf3ta_fta7fft1akf2teaf3tedf4teef2tegf2teif2tekf6temf2teof5tog3ftonfts1kfts1uft5t4fu6lefull3funn2fu7rofuru1fu6skfut4hfutu1fy5lafy1refyr7kfyr5tfysa7før6afÃ¥5rifÃ¥r7ufÃ¥7va4gabaga1bo6gabøga3da4gadg2gadmg3aftg1aksga3kvga1la4gamb9gane4gann9gar_2garbgar2iga4sc4gasp5gastga3tiga1toga3tr9gav_2gavd4gavgg5avk2gavt4gavvg6bykgde3ag2debg2demg2desg2detgd5opgd1orgdy4d2ge1a6geba2gedr2gedy2gedøg5eft3gefæg5eggg1eie3geit2gek2ge9klge3kng1eks6gekt5gel_3geli2gelo4gelu4gely2gelæ2gelø2gelÃ¥5gem_2gema2gemi3geml2gemo9gemr3gemsge3mu2gemy2gemø2gemÃ¥3gen_gen5kgen3n4geny4genæ4genø5geog3geolge5on6geop3ger_ger3nger5pger5v4gerÃ¥5ges_2gesa2gese4gesige1sl4geso2gesu2gesy6gesæ2gesø5get_2geti2getj2geto2getr2getu2gety2getø2geve5gevÃ¥gfe2lgg1eig2gemg2gevggie6g4gifgg4jeg7glug3go_g5gosgg4sygg3søghe8ngh4to4giakgi1ar6giavgi3de4giek3gien5gier4gifa2gifo4gifr4gifu2gigr5gika3gike4giki3gikk4gikugi5le4gimi4gimø4gino2ginvgio4r6giragi3regiro35gis_2gisagi3se5gisk4giso4gispgi5tagi7va4givo4givu2gjazgje5fgje2n3gjer2gjob2g1ju2g3k2gkly96gla_4glagg1lar3glatg5laug2lef6gleig2lekg2lel4glen4gler4gletg2levglig14gliogl7jag4lo_g2loa5globg4los6glov5glugg5luk6glungl5utg5lyd3glyfg2løg2gløsgmo4egn1akg2navgndø6g2neeg5netg2nevg4nibg4nidg6nikgni4sgn5k4g2nomgn6smgn5t47goango1argobe5go4da2goddgo9gago3lego5logo4lÃ¥7gommgo7nigon9s2g1op2gordgo1re2gorgg4orig5orvgo5røgos3p4gost6gotogot6r2g3p64grab6gracgra5tgra4u2grea2gref4grekgrib34grid4grif4gritg4ron2gryd4grøy6grÃ¥dgrÃ¥k4grÃ¥7ngsam3g2sasgs2cegs5efg2segg2seig2sekg2semg2sergse4tgse2vgsfø2gs5isgsi2vg5sjig2sjog5sjÃ¥g6skvg5soggs2pigs3s4gst6egsu5ggs7vægsy2dg7symgsy6tgs6øtg9t6egt7svgty8egt9ytgu2digu4elgui4dgul5ogul7øgun4ggur2ggu4rigu4stgu1ta2gutb4gutd6gutgg7utl4gutn2gutsg9y8agy3ne4g5økgør3s2g3øvgøy9agøy5ngÃ¥6as4g3Ã¥ngÃ¥3sthaba9ha2el4hafiha3gaha5kaha1laha5luha5maha5moha5nahani1ha4pehar5kha4sjha2slhas5vhav4aha1viha4vohav1ø4havÃ¥heb5nhe3geheia33heimhel1ahel3oher5jhe1roher7phe2sphet3thi5aohie4nhi2ethi4f1hiff2hif9rhik7ehins4hi4plhip3phi1rohi2s14hiskhit7ohiv1shjar4h5lanhma8nhne6nho6daho5dyhogs6ho2lahol5lhols4ho4luho5raho1ro2horthos5aho4véh5s4eh5terhu4dahu4d3hu4erhu4gahu4lahu5mahus1ahus7mhus1thu2søhu4vahvas5hve2rhvor5hy2blhy8sahys5thø4nahø1vahø1vehø1vihøy5khøy7nhøys4hÃ¥8lehÃ¥1rehÃ¥1rihÃ¥r3shÃ¥r7uia9ali1ablia1boi1adjia1g2ia2geia1inia1kri1aksia5kui1al_ial1ai2alfial3gi4alkial1uia2løi1an_i2anai5anki1anmi1ansi1antia7nøia2pai3appi1ar_i2arei6asii1asmia4spi1astia5teiat6ri1atti7aukib5boib3buibo4eibo7nib3stibya7i5dali3dasid1av2ide_i2debi6def2idenid9na2idriid2s1idse4ids5lids3tid2t13idyli3dyrie1a2i1effie4geiego4iei6di1eiei3eigiek8li1eksi2elei1elsi9eltie3meie7nai2endie8néien7nie5noi5ensie5nui6enyi4erdi2erii2erli6eroier5tier5vi2e1si6es_ies4cie3seies5si2etaie9teie5téif2faifi6eifjø8if3leif1reift2si2gaei2gavi6gebi2gemi3geni5gibi4gimigl6dig5noigof6ig1omig2raig2reigs2jigst4ig1unig9utihen3i4huki7is_i6itai1k2ai2kabi2kafi2kaki2kaoi2ke_i2kedik9eiik4klik2koik4krik2kvik6kyi5klæi2koai2kobi4kodi4kogi4kohi2koki2kooi2kovik2ryik2sail7afil3alila5til5avil7dji2lefi2leki2lelile1sil5geil1gli4lidi5likil1jeil1joil1juilke3il5kuillæ4il4miilm5si1loei4lomi5lonilo1wil3slils2pils2til7suilu4hi5lukil3uni5luri9lusil1util5v6il1Ã¥8ilÃ¥r6i2madi2magi2mami9mani2mapima5si8mb2i4meei2mekim8eti6meyi6mogimo9limp4l1impoimp9s1impuim9sei3mø2i4nagin2ani2napi6nauince2ind7Ã¥i2nedi2nevinfu94infyin2gring2s6ingui7niai2nibi5niei4nifi2nigi4nilini7mi2nip2inn_1inng1innt4innæino5ai4nodinok64ins_8insain3si6insj4insk1inspin2sv8int_int2rinu6iiny4iiny4tin7øki7nøtin3øvio1a4i1offio5gni1oksio3leio3muio4nuio1pli1oppio1reio1sti5papi4peeipi1ei2pleip2pri6praip5ruips1aip2siips1ti5py7ir5deird5sir6eki3reri3retiri4airi9tir5kvirk5øir9méi5roai1roei4roii1roliro1sir3reirs2pir3tairu8mi7sasisch5is3coi5scri2sedi2seii2seki2semi2sesi2seui8skeis1kris1kuis1kvi6sluis5neis5nu1isol3isotis1ovis5sii2steis6téi2stris5ufis5ulis1unisy5ris5yti4søyis7Ã¥kis3Ã¥ritau4i4tavi4teci2tegi2teoi2tifi2tioi2tipiti3ri2tiuitiv4it7jiito9ai4tomito4sito8vit1sait1snit4tjitt1oit4trit4tyitu5eitær1i5tÃ¥9i5u6li5um_ium5miu4moiu5se4i1vai4vadi6vaji5vali2vegi4veii2veki2veviv7omiv2siiv2skiv2sliv2sniv4soivs5vi5za_i7zasi1ø4ki1ør_iør5iiør5siø3seja1akja9arja4daja7en5jag_jag6rja4haja4hvja7kuja3loja1lujam7b5jammjams2j5anl6jarøja6rÃ¥ja7seja5taja9vije5akjeb9b4jedrjeep16jeevje2fjje5ge6jegl4jego4jegr4jegy2jeka4jekl2jeko4jekøjelt3jemp6jen1d2jenijen3k4jenl4jeno4jenu4jenæ6jerÃ¥5jesf5jeshjets22jeu64jevejib5bji7e6ji7roji6sjj4kapjo4flj3omrjo5nejon7njons1jo5rajo1rejo3sejour52j3s2jubi3ju9boju3deju2dojue9s5jugo4ju2kju3kajull61jungjup7sju4raju9roju3ru5juryju1tajut5ojy2p31jøa_jø5b42jøef4jøeg6jøei2jøekjø3grjø9kjjø5mejø5pajø3rujø1røjøst2jø5tajø1tr4jø1v5kaa_k3aaska3atka7bo4kabyka3da4kadg2kadr5kadu4kady3kaenka3fe2kafoka9fr2kaft6kaføkag2r6kajo4kaktka3kukal2ek6alkka1lokal3p7kamu1kana1kanekan4i5kano1kant2kap_ka5pe1kapp1kar_1kara1karb1karf5karg1karmkar3n1kart5karu4karÃ¥7kas_ka4sk6kaspkass6ka4stka1tokat7s6k1b4kcen4k5d6vke9al4kebrke5dake5de2kedikedu64kedy2kedø2keeg2keek2keelke4ep2keevk3effk5eft2ke1gk3egg4kehjk1eigke5ilke1imkeis2kek2lke3knk1eksk6el_2kelakel5lkels4kel2tkel5v2kely2kelæ2keløke3ne3kenfke4niken3kken7n6kenøke3on6kepl3keri3kermk4ert2kerÃ¥5kes_2kesjkes1v2kesykes1Ã¥2ketake3te7keth2keti2ketj2ketokets22ketu2kety4ketæ2ketÃ¥2keu2ke5urkev2ak1evjk3evnke3vrke2yt4k5g2kh5akk4harkhe4oki3drk4ie2ki6elki5g4kik4ski5li4kilj2kiltki7lÃ¥6kindki5ne2kinf1king2kinnki2no2kins2kintki6nu2kinv4kiol7kioski5peki5reki5ri4kirski3seki7ti5kitokiv3skje1s6kjorkju9r1kjøpk2kabk2kamk4kaokk1avk2keek2kehkk1eik2kirk1kjakk5jukk1lokk1lykk3lækk5nekk5nyk1kodk1koek6kookk1opkko7sk4krakk3rokk3rukk7røkk7rÃ¥kk1skkks4lkk3t2kk5ukk2kvok1ky6kkyl4kk5yrkk7ytk2k1øk8kølkkø6rkkøy6kk1Ã¥24kla_2klak2klegk2lem2klet8klia4klig1klip4klit1klos2klov4klunk5lydk6lør6kløskmÃ¥l22k1n2kno7g5knop3k2nu3k2nykny4skn3øy9koa_ko7arko2b3ko3boko5da4kodd2kodø3koef4koek4koel4koes4koevkog3lko4guko6gÃ¥ko1inko1ki4koko2koku2kolekol5p4koly2kolÃ¥6komg2komr4komu4komÃ¥kon3dko4nu1ko1o4koomko5pa4kopo2koprko1rako3ri4kormko5ru2kosako9siko2skko1sl2koso4kosø4kotrkot2s4koty2kou4kout3ko1va4kovrk3rad5krag4krapkra4u1krav4krei6krek2krel6kreo2krib4krif4krik1krimkri2pk2rit6krivk4ropkro3vkrum33kryskrø3v4krÃ¥dkrÃ¥e65krÃ¥kkrÃ¥9mk3sa_k7sask2sedk2seeksfø4k5siak2sifk7sioks1kjks5klks1krksk8uks5lok6sodk4sogk2sotks1ovks1prk3spyks3smks1tjks1trk2stÃ¥k6sunks5ærk3sÃ¥_k4sÃ¥pksÃ¥r4ksÃ¥t4k5ta_k4tagk3tedk6teektem8k5tibk3tilk5tirk2tjakt7jukto9ak2tomkt1ovkt2rokt3t8k4tukktør7kt1øvku9anku3bjku4etku7iskuit6ku5li3kull1kultku6mikum2s3kumuk6unnku7ra1kurskur3t1kurv5kus_5kusekus3tku1taku5to2kuts1kuu8kuøy6kve7e2kves4kvid2kvivk1vog6kvokk4vot4k3væky6elky2p1ky8sa4kysek1æt3kø2arkø2er6k1økkø4lek3ørrkø5sek7øyd4kÃ¥kekÃ¥3lekÃ¥5nekÃ¥1rekÃ¥1rikÃ¥2t54labala6bl1labo4laby4lad_l6ade4ladg2ladm2ladr2laei4laepla3fl4lagglagi42lahala5ka4lakjl2akkla2kr4laktla5køl1alk4lambla3molan2c4lanl4lann4lanvla7pila8pl2larb5larfl2armlar3n4lartla6scla5sela2sk4lasml6astlas3vla1tala5ti4latmla1tolau7a2laudlaue64laun4laur2lautl5avh6lavs7lavÃ¥la6y52l1b2lba4kl4boal6buhlby4el4ce_l7da_l2debl5denl2depl3derldo9al2dolld1ril7dryld1røldse8lds1kldø5dldø5lld7øyle7agle3akle1al3leasle5at2leda2ledo6ledu4ledy2ledø6leei6lefa2lefi4lefl2lefrl1eft6lefy4lefø3legele3gi4legj2legu2legÃ¥2leinl6eit2lekalek6ele3ki2lekj2lekn2leko2lekr2leku2lekv4lekø4lekÃ¥2lele2lelo3lelsle1lul5elv2lely4lelæ2lelø4lemale3me2lemo3lemr2lemt2lemu6lemy4lemø2lemÃ¥le5ni2lenø4lenÃ¥5leolle5pa4lepoler5dl8erele1ru2lery2lerø2lerÃ¥2lesc2lesples1v4lesø3let_2letj2leto3lets2letule4tv2lety4letø8letÃ¥4leul2leunl1eur2leut2lev_lev5n2levolev1r4levs4levæ7lét_l4fa_l5farl5figlf5jal7fjel4foml4futl6gaflga5tl2gedl2gemlg1lolg5lylg3oblgo2dlg1oklg1omlg5ovlg2sklgu4llg3unlg3url6gÃ¥_li2amli4asliba5libi5lid3tlie5slif5f5lignli2guli9ki9liknli5ku6lilali3lel6ime4limhlim7rlim9ulin6c4lint2linv2liso4lisplit5j6litnli5toli5tyl1janl1jarljas4l4jedl6jeel2jeil2jeklje3ll1jenl2jevljo8el4jom3ljoslj5unl7jurlj7utlk4anl6k5bl3ke_l2kedl6kehl3kenlk4lil6ko_l2kotlku8tl2lakll1alll4asll3d2lle5al3leel2lefl2lemll6esl2leulle6yl2lé_ll7g2lli1el9ligl2liml3lipl4lirl4livll7k2l5lo_llob5l2lodll3opllsk4ll3t4l8lual4lufll7ugllu4kl5luml3lusll1v4l4løkl5ma_l4maplm3avl5mill7mislm1oplms6jlm3utl4mø_l2nablni4ulo1allo2bllo3de6lofj3loftlo5gelog2olo1in3lojalo1ki2loljlolo96londlo5nelo3palo1ra2lordlo1relo1rolo7salo1sllo7sp2lostlo3tolo1un7lovolpas5l4peel2peil2pell2peul4put2l5r4lre4ilrø5vl2sadlsag6ls4aml4scul3se_l2sedl2seel2semlse2sl2seul6sevl5sigl5sikl4sim8lsk_l6sklls8ksl4skÃ¥ls5lol2snulsok3l5sotls1ovl2spal5spil4sprl8s7sl5subl3sukls1unl2s1vl4sørl2s1Ã¥l4taal4tafl3tall2tifl2tikl3toglto4sl3tral5trÃ¥lt1s2lt7t8l2tutl5tv_l3tvsl4t5wlty8dlt7øllt3øvlua8rlu7go4luk_lu3kr4lulylu2molu4mø4luntlup4slur2elu5ri1lus_lusa5lus1tluta36lutf4lutglut6mlu1to2luts6lutvlu4val4va_lva6klv4enlv9iml6v3nlv1oflv9opl6v5plv9rilv1s2lv5selvs6llv9tal5vøel3vÃ¥glvÃ¥6rlyes3ly8is2lykjly5kuly7kv6lykøly5me2lymply5okly3pely1r8lysk44lysp6lysyly1trly3vel6z5blæ6talø4er2løkol5ø6llø9melø2nalør5n5løs_lø2saløs3kløs3s6løy_4løya2løyd4løye2løyfløy4g4løymlÃ¥gs4lÃ¥4gÃ¥lÃ¥1k4lÃ¥9melÃ¥1rulÃ¥1sklÃ¥5su4lÃ¥tt3maa_ma3arma5br4maef4maek2ma1f3mafr3magnma2gr2mahema4isma4ja2mak_4maklmak2rma1kuma1lamal5lmals4mal3umal3Ã¥ma3mom4an_ma3nem4anf2manl4manmma4no4mapa2mapr4marbmar5mmar7nma1roma6rÃ¥mash34masp2masyma1tama3tema1toma1trmau4kmau7lma1un5maurm7avhm5avkma4zema3zom4baom2beam4bebm2befm2bekm2bemm4beombet2m2bibm3b4lmboe2mbo5nm4bopmbo9tmbu4embus52m1d2md7om2mea2me5almea5mmeck42medb4medfme3di2medm2medr4medumed5v2medy4medÃ¥2meef6meek2meel4mees4meevm3eff2megr2megumei2em1eig4meki4mekj2mekkme3kn4meko4meksmek5t4melame3leme1lumel5v2mely2melæ4melømen5km6enn2me3ome6os5mer_m4erimer9n5mers2mery2merÃ¥5mes_2mesj2mesp5mess4mesu2mesy2mesøme3te2metj2metu4metv2mety2metø4metÃ¥2meu4mfav5m2fekm4fi_m2fit2m5g6m4ga_m4gi_mhea4m4hu_mia2n2miav2midimid5jmid4t2mi5fmik6h4mikj2miko6mikumi7li4milæ5mimom7impmin2smi3num4invmi7ov4misami3se9misémi2sk7mism2misy4misÃ¥6mitami3te4mitj4mitomi5urmi5vÃ¥m6ja_m6janm7je_2m3k2m4ko_mkro5m2lefm2lekm2lelm2lemml5jamløy32m1m4m6maimmal5m4mamm5marm2megm2meimme3um4miam2mibm4midm2mikm2neem2nevm6nipmn7skmo2ar4moba5modemo5di2modym1offmo6gi5moglmo5gom5ogs2mokamo8kemo1kimo3le4moltmo3lym5om_4momf2momrmo5nemo2nomon1smo3rem2orimo1rømos4omo5to4motrmot7tmour5m4peem6pepmpes2mp3idm6p5nmpoe4m4pogm6pokm2popmp1p8mps4pm9purmp5ysm9pÃ¥_2m1r6m9rÃ¥rm5sa_ms1akm4semmse5smsi6emsk8ums4lym1s2nms9nems5noms3næms1ovms3s2ms2tim1stoms1øymtbe6m2teem2tegm4telmti9amti5em6tifm2tikm4tiømt6vem1u2bmu3elmue7rmues1mug5lmu4hemu5lamull24mulymu3mimum2smun2c4mungmun3k2murnmurs46murtmu4sémust4my3kemyk3lmy8krmy2ramy1re4myrkmy6samy4somøb3lm3økn2møkomø6namør3ømø5semøt9tmÃ¥7g2mÃ¥7plmÃ¥1remÃ¥1romÃ¥1rumÃ¥1s46mÃ¥tfmÃ¥5trmÃ¥3tø2nabo4nabynadi44nadvn1affna3frnaf7tna3gena7gø4nairn6akk5naklna1krn1aksna7kvnal5gnal3t2naly4nalÃ¥5nam_5nams2namø9nan_4nanan6anenan5k4nanyna5pen4ar_2narbnar5s2nartnar7vnar5ønas7h8nasuna1ta4natlnaty52nauk4navd6navf2navgna1vi4navl3navn6navo4navrn1avs4navt4n1b2n5ba2nba3dn6bufnbyr5nbø6nncel5n3chen6cotn2cy1n4dadnda5fn3dalnd5d4n3de_nde5an2debn2dednd1eind6ekn2demn2depnd1jundo9an6dobn2doond1opn2dornd1rin1dron6dufn4dunn2dupn2dygndy1kn2dysndø5l5neaenea4gnea9mne1as3nebb4nebeneck52nedaned3d5nedg2nedoned1r5neds6nedu4nedø4neeg4neei2neekn1effn5eftneg8rn2eidn5eig5neirne3knnek2rnek5t4nela6nelênel7s4nely2nelæ2nelø2nema2nemi6nemjnem6k5nemn2nemo2nemu2nemy2nemø2nemÃ¥4nenanene44neni4nenu4neny4nenæ5neo_7neosne5pe3nerb5nerl2nery2nerÃ¥2nesa4nesc4nesene3si2nesl6nesn2neso2nesp2nesu6nesy4nesæ3net_2netane3te2netj3nets2netune4tv4nety4netÃ¥neu1rne5us3nevnnev1rn6foan4fobn4fomnfos4n4gafn6gagng1akn2gatng3drn3genn3gern2gesngfø4ng5g2ng5idng4lungo4dn7goen2gorn2gotng2sjng2skng5ye4n1h2nhat5ni1akni2bl4niby4nibÃ¥4nicrn8idan5idéni6donid7rnids44niegni1elni3ke2nikj2nikr4nikv5nilu4nimo2nimp4ninfn1inn2ninv5nio_nion24niop7niosni2plniss46nisu6nisy6nitj4nituni3tynit5z2niub2niut4niva2niven6jahnjav9n2jedn4jeen6jein2jetn2kakn2kaun4kehn4kidn4kienk1k4n1klan1klunk3lyn3klænk1lÃ¥n1knun1knyn4kofn6kotn6kovnk1s2nk3ven6kvonlu4enmik3nmi8ln2nadnn4ann2natn2navnn5d2nndø4n2neen6nefnn1ein2nevn2neynn3g2n4nidnni3en2nimn5nisnn7k2n4no_nn5ofnn1opnnst6nn2sønn7t4nnu1inn1utnn1ynnny4tnn7øknn1øvnoa4gno1akno4blno5co4noef4noei4noekn1offno5idno3inno1kinok8rno9le2nolj4nomjnom9m5nomynon5tn1oppnor5g4norkn4ormnor2sno3ræ4nosp2nosynot3s4notyno3ve6n3p2n4pÃ¥k2n1r2n4rebn6reon6ri_nro6tn1sa_n5sagn1schn3scon2sedn2seen6sefn2segn2semn2seuns5frns3hans7hens5hins1kvn1slÃ¥ns3minso4dns1ofn1solns1ovns1prns7s6nssÃ¥5ns1tjns1ukns1vin4svunsy4dns1ytn5sønn5tabnt6asnt4atn2tean2teen4tefn2tein2teont4ernti1an4tidn4tign2tion2tipnto3an2tobn2tount1ovnts2tnt3t4ntu9entu4lnty6enu3annu4avnuft44nu4h4nulu6nulynu9me2n1unnu3plnu4renus7lnuss4nu6stnu7tan7utlnves14nyefny5geny3ke4nykony1lony8pany4runy5senyst4ny3teny3trnø2da4nøddnø1flnø1frnø7gr4nøko4nøksnø9monø5munø3p4nø7ranø1rynø3senø1sknøs4lnø7tenø7trn6øttnøv4dn7øyh4nøysnÃ¥6asnÃ¥8ennÃ¥6etnÃ¥2lanÃ¥8man1Ã¥4pn1Ã¥6rnÃ¥5sanÃ¥se4o1allo3alto1a2mo3a6no9ando1a6poa6réoar5moa9téo1a4v2o3baobb4lob4boo4beao3bes2o3bi1ob1jo1b2lob4loo1b4oobo9aob1reob1riob5stobyl5o6daboda4fod9doo2debo2depo2desodko5od3ovod3skods8todu7so4dy_o4dybod5øko5døsod5øyo4einoek6soe4muoen5ao7eneoen5toet2hoe5tio2fa_o2favo2febo4feiof6frof2fuof6fyo4fipof5leof1reof8sao2ga_o2ge_o4gedog1eio3getogie2o2gifo6gigo2gilo2gimo2gino2givog7laogly7o2go_og6raog5rÃ¥ogs4aog1skog5slog5syogt6rog1unog7Ã¥s2o1h6ohm9ao4ho_o1idroid5toie4noi5eroi6esoi4lao3in_o1ingo2is_o6isao2iseo4isio8je_o4jo_ok1akok2aro3kasok1efo6kev4okkeo1kluoklÃ¥5o8ko_ok8oloko4so6kovoks4eokst2ok5taok3tiok5tookt6roku6to5kvao3kviok5øy4o1laola5tolbu7ol3doo6lebo2ledo2lefo2leko2lelo2lemo2leso2levol4fj3o6ljol9kool6kuol5kvol2luol2lÃ¥ol4mÃ¥2o1loo4lo_o3loeo4lofolo3iol3opol7sools8tol2trolu5lol5vaol1vooly7dol5ørom4asom1avom3bl1ombuo5metom1euo2miao2mibo2migo4mioo2miro2miu3ommøom1opomo1v2omre2omro2omru6oms_oms4øom3tiom3tvo2m1uo3muso2møkomø4ro4naco6nako4napo4ne_o2nemo3nero2nevong3don5giong2ron2guon4gyo9ni_oni1eo2nilo2nimon5kuon3nion5nyo4no_on4shons1ions1lons1vons1Ã¥ont6aon3teon5tiont2ron5uron7Ã¥6ood1so1offoo2k1ool7aoo6moo1o2poopa8oo4peo6opio1o4roo6spo1o4vo4pabo2pako4pauo3peaope1i2openo2per2opeto4piro1plaop3liop9luop4ne2o3po2opp_4oppa4oppe1oppgop6pr2o1prop6reop7ruop7rÃ¥o2ragor1ak2oralor6apo4rauor7by1ordnor1eior1elo2revor3geo3riao2rigo6rim6oris6oritor5kaor5koor5leormæ9orn3to3roao3roeo5rogoro5io1ronor1opo5rotor3sior1snor1suor3syor9søortÃ¥4oru8doru4ho5rumorv3so7ryaor1ynor5øror1øyor5Ã¥so6sado2safosbi7o2sego2semos2eno4seuos2hio1skoos3leoslo1os5luos5løos9maos5meos3mooss9los8svost1oo5støos5øyos7Ã¥ro5tado5tasote7dot6eio2teootfø4oti2ko6tjaot6nÃ¥o2to_o2tobo6tofo4toio2tolo2toto2touot6shots6Ã¥oty8eot1ytoul5lou7riou5roou9saout8aouve4o5vaeo1vakoved3o1veio1vel4ovenove2ro1vet2o1vi6ovna2ovnio5vo_o7vomov1oro5votovs1po7wasowat2oy9aroys5lo1y2tôr5eip5ad_p4adgpads46pak_6paka4pakepa3lepal1j5palm4paløpa5mepa5ne4panvpa4ny2papapa3pe4papo4papr2parbpar5g2paripa1ro4parrpar5upar7v6parø4parÃ¥pasa5pa9se4pasp3passpas9vpa3te2patupau7k2p1b62p1d4pdø9dpeak34peddpe3de4pedr4pedu2pedøpe7dÃ¥pe3erp5eftp5eggpego4pe4ilpek4l8peku4pelapel9d6pelj4pelu2pely2pelø6pelÃ¥p1emb6peny2penÃ¥pep7p3periper5kper5n4pero2pery6perø2pe1s3pes_pe3sepe7si6peslpes4n5pesspe3tepe3ti2petj2peto4pett2petu4petø4petÃ¥pe5vip5evnpfri42p1g2phav27piarpi4as4piavpie2npi9frpi4ké8pikk4piklpiku5pi5lapi1lo3pingpi2nø3pi2ppi4pi2pisopis1tpi9tapi5té2piti4pitj4pitrpit5t2pi5v4p5k4pka5v2pladp4lakplap3p2lasp2lat2ple_2pledp2lek4plev4plitp3livp1lokplu4ep4lukplun32p1n4p7nerpo6empo5id2pokepo3le6poljpo2lupom5s4pon_pon5dp5opnpop1s2por_po1rapo8ré2pori2pork2porvpo1ræpo1rø4posjpo2st5pot_7potapo3te3poti4potr2po4vpove6p2padp2pakp2papp4peep2peupp1idpp5impp7irpp1ofpp5ompp1ovpps2ppps2tpp7t2pp1ukpp5utpp3ø4ppøs84prad2pran4pray5pref1prem1presp3rif1pris2prit1p2ro8pro_3prof3pros6prør5prøv2prøyp1sa_p3se_p2sekp6sibp7sisp2sleps4nop3sodps5pups3s2ps3tvpsu4rp2svap2svep4svæ4psysp2s1øpsøy8pte6kpto7gp4toup4tutpu4brpu7lapull62punn3puri3purkpur5upur3vpu7sapus4hpu1ta4putg2puts2putv6putøpver7py4dr3pyrapy1repy1ropys6tpø1kjpø9tapø9tepÃ¥1k2pÃ¥3pepÃ¥1plp1Ã¥pnpÃ¥5smpÃ¥3t2que7r4raam4raar4rabr2rabyra3ch5raci4radf4radj2radmrael4ra2fj2rafo2rafr6raftra4fura6fy2ragl2rah67raidr2akkr6akr2raks4rakvral3gral1jral7mra5ly4raløram3bram1o4ramu6ramyr4an_r4aner4annra5nu4ranø4rapara1pl4rapo4raps4rapu2rarbr1arg6rarn4rarrrar5sra3rø4rasa2rascras3hra6slras7vra1tar6atera1to6raty7raud6raug6ravd4ravgra1vi4ravlrav6r4ravtra5vyraøy42r1b8rba3drbe2drbie8r2bigr2bikr4dabr5dagr5dahrdal4rd3d2rd1eir4deor4didr2difr2dilr2dior2ditr2diurd5jer1djurdnæ4r9dobr4dolrd1opr6dorrd1rird5trrd7tørd5ver4dygr6d5ærd3Ã¥r2rean4reavre3dir1edl2redo2redr6redy2redøre3er8refa4reff4refi2refj6refr4reft2reføre3ge4regg1regireg1l2regr2regÃ¥2reid2reie4reikrei9l6rek_4rekjre7ko4rekur8el_re9la6relgr2ell4relv2relæ2relør1emb6remnrem1s4remu8remy4remÃ¥re5ni2renkr3enlre5no4renu5renz6renæ4renøre5og2reop5reou1repu3rers2rerÃ¥1res_2resare3se2resj2resk1resm2ress1resu2resy2resø4retj2rety2retøreu6r1revyrfat5r4fikrflÃ¥3rfyr4r5ga_r4gefr2gemr3georgi1ar2gikr2gilr2gimr2gior2girr2giørg2ler4gogr3gomr2gotr3grurg5scrg1snrg2syrgu7drg6utrhav2rho3dri1anri1ar6riau2riavri5dari5dirid3tri1elrie4nri1er2rifa6rifj1rifl2rifo2rifuri3gi4rigjrig2s5rij_5rikdri7ki4riklrikt64rikÃ¥2rila2rilø4rima2rimirim7l4rimm4rimo4rimu4rimy4rind2rink4rinn2rins2rint2rinvri6nø2rior4ripe4ri1r4rish2risj4risv4risy4risøri3teri7ti4ritjri5tr4rity2riunriu4r2riut2rivi6rivo4riøkr2jesr4kaor3ke_r2kehr6kekrki3drki3erk1k2rk2lirk2lør3knor2kobr2kohrk1strk5tirk5torkÃ¥4krle4ar2lefr3lepr4leur3l4irlog2rl4skrlu4er6l5zrm5avr2mekr4meyrm1jermo4er2mofrm1oprm1slrms6nrm1strm1surm3termue4r9mÃ¥_rmÃ¥l4r9mÃ¥rrndø4r3ne_r2necr4nefr2nelr2nevr2nésrn5g6rn5k4r5no_r4noarno5br4nodr4noir6nokr2nomr2nosrn7sern1strn3tern5tirn7trrnt4vrn5ugr7nøtrn3Ã¥sro1akroa4s1robe7rodoro7faro2guro5kirok5nrok7srok5v4rolj2roly4romk2romrrom3t4ronn2roppro9pyror3aro3rero1ru4roslro4smro5tu6rotyroun2ro5utr5petr2pÃ¥kr8raar2ragrra3rr4rebr2refr4reorre5ur6riprri5vrr3m4rro6er5romrr5s2rs3abr3sakr5samr3sesrs1inr7sjar4sjhr4skir1skjr6sklr1skrr1skursk5ørso9ars1ovr5spir4spÃ¥rs3s6r1s2trst4rr7stÃ¥rsu9rrs1versy3trt5adr4tecr2teer2teor4tevr2tior2tipr2tivr5to_rt8rart2sirt3t4r7tugrt5ytrt5øl6ruavru8blru5borud4rrue4rru9la4rulir2ullr7ulvr7ulyru5rarus5jr4uta4rutdrut8e2rutgr1utkrut9o6rutr2rutvru5varuvi8r2vesr2vevr4vosr4vovrv2s1rvÃ¥7rry1a4ry2drry7fery5flry7lery8rer1yrkry9rory5røry5ta1rytmr3ytrræ7lerær8trø8arrød1s4røeprøf5lrøk3l4røknrøk7trøk1vrøm1arøp9l5rørlr8øs_rø3serøs5vrø8tarø1varø1vi4røya3røyr4rÃ¥ag2rÃ¥kjrÃ¥k1vrÃ¥5lur5Ã¥nd2r1Ã¥rrÃ¥5ru4rÃ¥sb2rÃ¥serÃ¥5si2rÃ¥sjrÃ¥s4t6rÃ¥tarÃ¥5trrÃ¥5tu5saa_s6abes8ablsa5bysa3ce4sadmsa4do2sadvsae5d3saen7saer1safe5sagasa3iksa5irsa1is5sak_sa2ka3sakb3sakd5sakf1sakh1sakisa4kj5sakl5sakm4sako3sakps4akusa1la4salb1salgs6alisa5losa1lu3salv2saly1s2am5sam_sa2ma5saml5sammsa4mys5anmsa2nosan1s2s1apsa2po1sara2sarbs4ard3saris1arrsa4ru4sarvs4arys6ast2sasu4sasysa1tasa3tisa1to5sau_sau4d5saue4saug5saum3saus4saut2s1avs2avasav5n3savu8s9b4sbi6es6bugsbul32scels3cer6sch_6s7cl4sco_6scoc4scoss4cus8s9d6sdø8v2se1a3sea_sea4gsed5dse3de5sedl4sedo2sedr2sedu2sedø5see_see3d2seef2seegse5enseer15sees2seevs1eff6segase2ge3segm2seid2seigsei5k6seim2seinsei5r3seis5sej_3seke4seki2sekj5sekk2seko4seky4sekÃ¥2selasel1d2selo3sels2selu2sely2selæ2selø6selÃ¥3semb7semdse5me2semo2semÃ¥s2en_s2enes2ens4seny2senæ6senø2seo27seodse3orse3pe3septs2er_se3raser5ds1erfs2eri5sernse1ru2sery2serÃ¥5ses_4sesc2sesese3sj5sesose1stses1v2sesy4sesøses3Ã¥7setl5setn2setos4ets2setu2setv2sety6setø3seum4seunseu2tsev4ds1evnse3vr2seynsfes5sflÃ¥36s9g6sga4lsha2ks7hats3haushea4s4hi_s6hip3show4s5hyshø8l4siap4siavsi2bl4sidy4siegsi1elsie4nsie4s6sifesi3fl2sifo2sifu4sifø4sigisi5grsi3kasiko35sil_3sildsil5jsil2k2silø2simpsi3musi4ni4sinj2sinn4sinvsi6nøsi4sksi4sn4sisy3s2itsi5ta4siut5sivas2ja_4sjams4jansje3g3sjels6jim2sjob5sjok4sjom9sjon2sjor2sjou2s6jtsju1a6sjub4sjun4sjur5s2jøsjø1p2ska_4skabs2kad8skae2skak2skam2skas8skays2kehs6keis6kevs2key7skia4skid5skie5skif5skip2skir6sklas1knu4skoa4skof1skol4skom4skoo2skoss2kotsk8ra5skud1skuf2skun4skup3skvus6kyas6kye4skyr4skys3skyt6skø_4skøe6skÃ¥t3slals1latsla1v2sle_6sleis2lel2slers5lev4sleys5lia2slid6slig2slin3slip6sluf4slugs6lups4lutsly8t2sløns6lør2sløss4lÃ¥es1lÃ¥n1slÃ¥tsma6d4smansmeg54smei6smess6mias4mies4migs2mitsmo7as2mok6smot3smugsmul26smøn4smøt5smÃ¥_smÃ¥5r8sna_s4nab7snak4snav4sne_4sneb4sneds6nees4neg3sneis4nel2snem4sner6snes4snets6nifs2niksnir4s8no_s6noes3nums4nur7snut8snyh5snøesnø1sso3also8ar4soav2s1obso2blsofa1soft1so2gaso8giso7glso5id5sokn4soks7sol_1sold2soljso2loso4lø3som_5somh4soml2somrs1omsso2nuso3pr1sor_7sora5sorbso2risor5n6sosf4sosjso4slso5tesots4so3va3sovjs2pal4spas4spe_spe4as4pees2pels5peps2pio2spip2s1pl4sple2spoe2spol4spotspo5v1sprus4pry5sprÃ¥2s3ps8spub2spul5s2pøsp5øy9spÃ¥_5spÃ¥dsro4esro2tsrø1vs6saes4sajss6ass2segss4els2sems2seus4seyssi4ass4kÃ¥ss1loss5lyss2noss4nøs2sofs2somss9risst6rs2suls3surss1vessy5r4stah4stao2stap1stas1stat2stea2stebs2tee4steo2step2stes4stet6steÃ¥st5he4stib3stics2tifs5tij5stir2stis4stiÃ¥s4tja4stjus2to_1stof4stoms1totst5ou8str_6strh2strys4tuas2tue6stur2stya2stydsty6l4styv2støk5støl6støm5støp5støtst8øystÃ¥5k1su4a1su2bsub7lsub3o5subss3ubÃ¥su8er5s2ugsug3g3sui6suk3rs1ulu2sulysulæ53s2umsu2mosums63s2upsupi9sup4rsur5d1surf4susisus3psus3ssu2sysva5asvai5s4vie4svig4svil4svir2sviss8viv4svol3svuls3vy41s2vø4svæs2s7vÃ¥sy2ersy8ka2sykosy7mesynk4sy4ras6yre3sy1ssy4sesy2sl2sy2t9syttsy2vÃ¥6szt_4sætts1øde9søk_5søkj5søkk2søko3s4øl3s2ømsø6mÃ¥3sønns1øns7sørlsør3ssør5ø3s2øs4søs_sø8sas1øve3søvn8søye3søylsøy2r5s4Ã¥l6s1Ã¥n9sÃ¥pasÃ¥p9usÃ¥6rasÃ¥r7øs7Ã¥sas4Ã¥sbs5Ã¥sesÃ¥s5ksÃ¥s5tsÃ¥va74tabotab2rtab2s4tabøta2data6du6taei4taek4tael1taenta6es4tafl1tage4tagjta7is1tak_2takrta1kutak3v1tal_3tale1talg7taljta6lÃ¥2tambt4ametam4it6an_ta2na1tane1tank2tanl5tap_1tape3tapi4taplt6ara2tarb4tart4tasata3setas4p4tasuta1tatati19tau_7taue4taun2taut3tavlta9xy6t1b2tba3dtba2nt6be_tby3ktby4stcen4tch5e4tead2teaktea6m2teap2teartea4s2teau2teavt5ebbte1co4tedi4tedo6tedu4tedy4tedøte3e48tefa4tefi4tefl4tefo3tefø2tega4tegg2tegh2tegj2tegl2tegu2tegÃ¥5tei_t3eiete1im2tekj2tekl2teko2tekr2teku4teky2tekø4tekÃ¥2telo2tely6telæ2telø2telÃ¥6temntem3s4temø3ten_2teng6tenó4teny4tenæ2tenø2teom5teon4teop2teovte3pa9tepé4tepr3terhter5jter5rter7v2tery5tes_2tesa4tesj6tesp5tesr3tess2tesu2tesyte7sÃ¥3tet_te3te2teti2tetj2teto2tetu2tetv2tetyteu8kt1eur3teust6eva3tevlte3vr2tey64téle2tése4tésttfe6etfe4ltflÃ¥32t3g2t4ga_tge4atgei5t4gi_t4gÃ¥_t4hapthu6sthy5r2tiadti3ag4tiau2tiav2tickti2datid7d4tido4tidr2tidu6tidy4tidøti1e22tief2tiei2tiemties3ti3et2tifa2tife4tifl2tifo4tift2tifu4tifø4tigj2tignti5ke6tikjti3ku6tiky4tikø2tile3tilg4tilm2tilu2tilø2timltim7s2timu2timy2timø2tind2tinkti5no2tinv4tiny9tiol4tiopti1orti1ovti3pa4tipr3tipsti1roti3setis5l4tisn4tiso2tisyti7tati3teti1tj3titltit4rtit3s3titt4tiub2tiut2tivoti1ø82tjel1tjen6tjep2tjert5jev2t1ji2tjubtju4e2tjun6tjur4t3k2t6kagtkly96t3l6t6leftlu4etlÃ¥7rtma3dt2mamt2mekt2most6neet8no_tn5sk7toantoa6t6toau2toav6tobsto5da3todo2toek6toeltoe4t4toggto6glto2gutoil3to3ki2tokj2tokkto3kl5tokt2toku2tolj3tolo4tolÃ¥2tomb2tomf4tomgto3mi4tomkt8omm2tomrto5na2tono2tonu2to3o4toprto1ra4tordto1reto4rø4torÃ¥4tosato2sh6tosj2tosy4totato5te6totyto1va6t3p2t4pÃ¥k5trapt2rat3travtre1c4treit2rer2trest1ret4trevt6ribt4riut2riv5trix5troa3troet4roftro5gt4rokt2rolt2rostro1vt8ru_t8rua3trugtru1i2truttru5vtrø8a4trøk4trøm2trør5trøtt5sa_t5sabtsa2gts1ant5se_tse6dts2emts4ests4fæt5sirts2luts5løt5sokts2pits5s4t1st4t5stuts3tvt4suatsu4lt5sykts5ytts5øvtsÃ¥t8t3ta_t2tabt2taft4tavt3te_t2teat3tedt2teet4teft2tegt2teit2tekt4temt3tent2teott5hetti5atti3et2tift5tigt1to_t2tontto5ut5tryt1tumtt1untt1uttt5vet5ty_tty8et1tørtt3øvtt1Ã¥45tualtuba3tu6bÃ¥5tueltu1int5ukat1uke7tukt3tula1tuletum5mtum4s3tun_4tund3tune9tuns3t2urturi4tur1otur3ptur1ø1tus_tu1sa3tusb3tusftu4smtus5otus5u2tutgt5utjt5utkt1utrtva8kt2vett5vik6t7vo6twa26t5yo3tysktys3t2ty2tty8tatøf3l2t1øktørk4tør3ttø8satøt5atø3tetøtt6tøv6dtøy5atøy5rtÃ¥5kitÃ¥k6rtÃ¥3net1Ã¥pnuak3su1al_ua7laual5lual3oual3uu5anlu3ansu1ar_uar5du4arruash3u5au81uavhu4ba_ub4boub2brub4buubi6su1b4rubu8eu3da_ud2drud2dÃ¥udea9u2debu2deku2depu2desudia2udio5ud7irud7jiu7dobu6doeu2dotudse43u4dyue5a8u1e2nu7eneue5riu2ermue4seue2siues6nuet8rueul8u4fe_u6febufe6euf1f4ufi9lu6foauft3au5gagu5garugby7u2gemu5genu3geru2gevu5gisug1laug5lyug7nau4go_ug4reu4grøugs4kug7so3uhelu4i6cui3e6uil5lui3neu1ingu1ismu1ittu4jasu8je_u1k2au7karu5katu2ke_u4ked4ukemukho7ukk6aukk7nukks6uk8luu2krauk2sauk2siuk2souks5tuk2søuk6tjuku6eukys8uk3ø4uk5Ã¥4u4la_ula7du4lefu2leku2lelu2lesu2leuul4foul4fru3l4iulie8ul5kaul6lyul2løulm4uulo6iul5opul4skul8snulss8ul2stul4tou7luau3lue1uluku5lupu5lusulv3tum5auum3avum5be2umfoum9jaum3meumna8umo6gum5okum2snums3t6um7tum5ut4umveum7øyu9naru7nasu3nat2und_6unda4undsu2nedu4neeu2nelu2nev1ungdun4gou4ni_u2nidu4nimu3ninun7koun4krun2nou4no_uno7tun5utuom7suo1reuo5roup3avu5peru8pi_up3liup1p2upp5su3prau2radu2rafu4ramur7auur1avur3diure4lur3geu4ri_u3riku3rimurk5su4ro_u6roc5uroeu2ropur1orur3reur2svur5tiur4touruk6ur6uluru7vurv3su6rysur1ødur1øyus7auu2seku2semus4idu4sjiusk4lus1kou1skrus4kyu4sluus7møus1okuso5lus1oruss1lus2svu2steus5tius1tju4stÃ¥u2surusø6mus1øyu1taeu2tag4utbiutch5u2te_u2teau4teeu4teiu2tekut2enu2teo2uterut6eu6u3tiut6juu8tni1utnyuto5suto4v3utprut4pÃ¥ut3re5utruut4rø4uts_2utsjut3sk5utstut1trutu5e2u3tyu8ty_u5tørut7Ã¥ku3tÃ¥lut1Ã¥nut7Ã¥ru7umau5umeuve3su6vevuvi6kuv5rauv9saux4a4u9Ã¥rau7Ã¥reva3amva8an6vadjvad1rvaf6rvai5rvai5s6vakh4vakovak3r1vaktva1kuvak3vva1lu4valvval7Ã¥v4ane2vangv4ansva4nyva5po4vasava2skvat5a5vatnva1tova6trvat1s2v1av2v1b2v7devv7doiv7donve6agve2d1veds2vedø4vedÃ¥6ve4erve5ge3vegg2vegj4veglveg5n2vego6veit4veka2veki4vekj2vekl2veko2vekr3veks1vekt2vekÃ¥5vel_2velovels2vel5v2vely2velæ2veløve5mave2no2venuve1ru6veryverø64verÃ¥3ves_4vesh4vesi4vesj2vesl4vesp2vesøve1sÃ¥1vet_2veta4vetj2veto2vetr1vets6vetv4vetyve8um2veva2vevi2v1g2v4ga_v4gi_v4gÃ¥_vi1anvi6blvi5devid3rvi1elvig4mvi4guvi5gø5vikb7vikgvik5n4vikt1viljvil5mvil1ovi2løvim7pvim7uv6ingvip5s4viro7viruvis5mvi1sovi4spvi4trvivi34v5jovju3t6v3k6vk4le6v1l2v6labv9ledv9legvl6elvli7vv3nadvn5alv9narvn5dyvne7bv2nedv2nemvne1sv2nevvn5t4vn5ørvo1alvo2arvo4gu4vokovoli7vo4navons62vordvo1re4voro4vosj6votr2v1p4v7rarv6ri_3vrid7vriev4robv4rofv4rokv4ropv6sa_v6se_v4segvse4nv2serv6si_vs1invs8kevs1kvv1s2nvs3nevs3nyvs3nævs5odvsom5v7sonvs1orvs2pevsøl5v8sÃ¥_v4ta_vta6sv5t4iv5t4rv3t2vvty8evu2d1vud5dvuds42vung6vu6o2v1utvæ1rav3ø4dvø7li3vøre4v1øyvøy6evÃ¥5ne4vÃ¥nu6vÃ¥tfvÃ¥t7Ã¥5waldwal4kwal4lwash3wboy5we5rewes3swett4wich33wiczwi3niwi5rawi5tawout7wurs6wyor2xan5t5x6idxi5e4y6an_y2anayan7ky1arky7arrya5siybde3ybyg5y8ce_y2co3y6dabyd5avy4deoy2depyd6jeyd1jiyd3opyd5ovyd1rey4droyd3siyds4vyd1uny4dømydør5yd1øsyed8ly5eksy2enhye5niy2enky2enlyens4y3ernye5smye9teye5tyyfan9y4fley8ga_yg2doyg2døyge5iy2gesy4gevyg5gjygg5lyg6gryg6guy5gloyhes5y9in_yis7tykap3y3keny3keryk1kjyk4kyyk1lay1kloy5klæy2koay2kotyld1ry7lesy4levyl5k8ylke2yl3s6y6meiy4mo_ymo5eym3p2ym4seym8sly2nely6nevyn2grynko3yn5nayn5neynn4øy4no_yn2siyn2skyn4styn2suyo6nuy1o2py1o2ryo5reyout5y2pe_y4peey4pi_y1p2lyp3peyp5s8yr5avyr7dayr5døyrek4y1reny4reoy1retyr7gay4rifyr5kjy7roeyr1opyr5r8yr5skyr2spyr4svyr3teyrty8yr3økyrøy4y1rÃ¥1yrÃ¥d2y2rÃ¥my4rÃ¥ty4rÃ¥vy4sedy4seey2segy2seky2semy4seuysi8ey5sjkys4miys4nøys2peys2sjys2soys2spys4suys3tayst3rys6tyys1veys5Ã¥ry2teey4tefy2tegy2teoy2tetyt9jayt8rayt1riy5trÃ¥yt3skyt5svytt4e2y3tuyt4ysy7tÃ¥8y4vaky2vedy6vevyv1Ã¥r4zaesza4g5zani45za5vzebu9zeli5zen3s1zifi5zingz5int2zisyzo1f2zo4nozo5rez1za_æk1jaække7æ4le_æ4levær1d4æ2reaæ4redæ2refæ2regæ2rekæ2repæ2reværhø8æri6s4ærk2ær4nåærom5ær1skær2spæ2r1uærut5ær3Ã¥4æ8se_æ2s1kæ4te_æt4taævar5æve4s6ø1a2øa7reøbl9uød3agø4dakø2de_ø6defø4demø4deoød2scødt6rø6d5ø4ø1e2ø5eneøf3feøg5akøg5alø7garø5gasø3gerøg5gløg8gåø7g4jø2g2røgta54øg4uø5ingø5isk6ø1kaø5kavø6kehøke1sø1kjeøkk5r2øknaøk4siøk2soøku4røk7veø2lahø6lamø2levøl2keøl7opølrÃ¥4ø5lukøl7utølva6ølv5oølv7rø4me_ø9met1ømfiøm3opøm1stø2m1uøn2adø5nasø2nemønni4øn2nøø6nomøn2taøn2toøn7u8øpes4øp3liøp6pløp6s1øpsa4ø2ra_ørd4eø2reaø2refø2regø2rekø2repør6etør1euø2revør5feøri8mør4kåørn4eø1rosøro4vørri4ør4scør2siør2størs9uør2svørs1åør3toørum5ø6rutørø1vør1Ã¥pø2se_ø2semøs5joø4sluøs2meø1s2pøsto2øst1røstø4øt3akø9tarøta4sø2te_ø2teaø6tefø2teiø2telø3tenøt7riøt1saøt4tyøv5aaø4vekøve1sø5vikøv7neøv6nøøv9o8øv9saøy3aløya2nøyd8i5øyebøy2eeøye4nøy4epøy1gløyks4øyk5tøy5naøy5niøy3røøy5siøys2løy4smøy1trøy5tø5øyvååa4n5Ã¥ber2Ã¥7danÃ¥9darÃ¥4dedÃ¥4dekÃ¥4demÃ¥4deoÃ¥4depÃ¥2desÃ¥d4raÃ¥d8reÃ¥d2skÃ¥d5stÃ¥2eleÃ¥7ensÃ¥4ga_Ã¥4ge_Ã¥g7eiÃ¥2gesÃ¥gna5Ã¥g5neÃ¥gs6kÃ¥g5slÃ¥g7spÃ¥gs4tÃ¥gu4lÃ¥4gÃ¥_Ã¥3kanÃ¥3karÃ¥k7avÃ¥4kehÃ¥3kenÃ¥ke5sÃ¥6kidÃ¥k5kaÃ¥kk6lÃ¥k7krÃ¥k3læåko4sÃ¥k6raÃ¥k3rååk1s2Ã¥ks7lÃ¥k3t4Ã¥2k3åå9lasÃ¥l9avÃ¥2lefÃ¥2lekÃ¥2lemÃ¥2levÃ¥lgÃ¥6Ã¥6lioÃ¥l3orÃ¥ls7iÃ¥l2spÃ¥l5tiÃ¥6me_Ã¥m1omÃ¥m5øyÃ¥3narÃ¥9nasÃ¥nd3rÃ¥4ne_Ã¥ned4Ã¥2nelÃ¥3netÃ¥5perÃ¥1plaÃ¥pra5Ã¥p2s1Ã¥p6taÃ¥r3akÃ¥9ranÃ¥2re_Ã¥5reiÃ¥6relÃ¥re7sÃ¥rfi4Ã¥7rivÃ¥r3k2Ã¥rn5sÃ¥r3onÃ¥r3opÃ¥rpo8Ã¥rs1uÃ¥rs1vÃ¥r5syÃ¥r3unÃ¥r5y4Ã¥5r8åås7auÃ¥4se_Ã¥4seeÃ¥4sekÃ¥4semÃ¥8si_Ã¥s8kiÃ¥1skjÃ¥1skrÃ¥5skuÃ¥s5neÃ¥s3niÃ¥s7plÃ¥s5saÃ¥s5seÃ¥s3siÃ¥ss3k4Ã¥1stÃ¥s3unÃ¥s7utÃ¥s7væås5øyÃ¥4ta_Ã¥ta2lÃ¥2te_Ã¥2teaÃ¥4teeÃ¥4teoÃ¥9terÃ¥2tesÃ¥t7ovÃ¥t1reÃ¥t1ruÃ¥t5skÃ¥t4tiÃ¥tt3oÃ¥tts4Ã¥t4unÃ¥t5veÃ¥t1øvÃ¥4vegÃ¥ve5lÃ¥2vevÃ¥v7s6", + 6: "_ab4ba_ab7be_ad1s2_af5t4_ak3kl_ak3kr_ak6ta_ak5tr_akva7_alfa3_al5gi_al5lo_al4na_als5o_alt4a_alt3o_am4s4_am6ta_ana3b_an3er_anes5_an3ge_ann4e_an5s8_ap1p6_arbi5_ari6a_ari8e_ar5ka_ar3ne_ar9ti_arvi6_as8ka_at4ki_at2o4_atte4_att6r_au8de_au8ga_au4ge_aus9k_au4sp_av7s6_ba6by_bi6en_bla4d_bo8da_bogs8_bo8la_bu4et_ca6se_co4st_da4ta_dau3s_de4so_di6er_di4sk_do4en_do4er_do8et_dome5_do4ra_du4er_duft3_duk3n_du4st_dø6r3_eb4ba_ed4da_ef4ta_ege5l_eg5si_eid5a_eik5a_ei3ni_eir9u_ei5te_eit9r_ekk4o_ek3li_ek3se_ek4sp_ek8ta_ek7to_els6a_els6t_em3b2_emfa9_end5r_en3ge_engs6_en6ka_en6sa_en5so_en3sp_ent4r_en3ø4_er4ke_es3ka_es4so_es5ta_es3te_es5ti_est3r_es7tu_et4na_ets4i_et6ti_ev8ja_fela9_fel5l_fe4ma_fe8me_fem5t_fer6s_fe8sl_fi4b5_fis6k_fjel4_fre6e_fy8se_ga4me_gel4e_ge3ne_gen5s_ge4st_ge9sv_gis7p_glo6i_glo9v_gly5s_ha6vi_hei5e_he4t5_hil4l_hu4di_hvit3_hø4re_hø4va_hÃ¥8er_i4her_ikke5_i3k6l_i4la__i3leg_i6les_il4ja_il6sk_in5ad_in5de_in3gr_in5k6_in4n3_io4na_i4rer_ir7k8_is7k6_is5pa_i5spe_is3s4_is5sk_is7ti_i6s5ø_i4van_i4vel_i6ven_ja4ne_je5re_je4ta_ju6la_jule3_ka5me_ka3na_kau9k_kier3_ki4na_ki7ni_kino3_kje4k_kle4s_ko7gr_ko4la_ko3le_kol5j_ko3pe_ku4le_kÃ¥6pa_la4ga_la3tr_la4va_la3ve_le8ar_le4er_le6et_lef3l_lemu9_le6o7_le7ta_le2u3_le3va_li4e4_liga3_lik3o_lik3s_li4ma_link6_li6ra_li4sa_li5ti_lo6na_lo6ri_lo6te_lo4va_lo3ve_lu4na_lu6pa_lyd3s_ly8ge_ly4sk_løv5i_lÃ¥8ma_lÃ¥5re_mag9r_ma3ka_ma4si_ma6st_ma8ta_me4d3_mek5l_me3ri_me4sk_mi6kj_mo5de_mo6er_mo4ta_mo4tr_mu8ga_my8ka_mÃ¥l3o_nabo3_nan5s_na3tr_nei5e_ni8ar_ni6er_nig4l_ni8sa_nita9_ni4to_ni4va_no8ka_no8se_nød4d_obo5e_ok8ke_old3s_ol8la_om4me_om5s2_ond3s_on6kl_on6na_op5ar_op4pa_op4pe_op4pi_opp3l_or4da_or4dr_or5ga_or6va_ot3to_over3_ov8re_pe3do_pek5t_pep3r_pe4st_pi9ra_po4et_po3la_po2p1_pop3p_po8ra_po6st_pÃ¥5d6_ra6et_ra4ka_raks7_ra4na_rap4s_ra7ti_re4al_ree6l_re6kn_ren4t_rep5s_res9s_rev9n_ri6ma_ro4an_ro8di_ro4mi_ro6pa_ro3pe_ro4sa_ro8va_ro3ve_ru8ka_run7g_ru4sk_røy7e_rÃ¥4en_sag6n_sau6e_sen7s_si6er_si4va_sje4i_skat4_ski6n_slim5_sma4s_smo9g_smÃ¥9l_snø3k_so8de_son6a_spe6e_ste4i_stu8a_su4ri_su5te_sy3ti_sy6v5_sø8ka_sør3a_søye5_sÃ¥3re_tak9r_tam5m_te7si_tid5r_ti4ki_ti4l5_tili6_tokk8_to3ro_to5t8_to6va_tra7c_tre3b_tre7p_tu6na_tve6n_tvÃ¥7g_ty8et_ty5ti_tøv9d_tÃ¥p9n_u4er__u6era_u4ere_uf8sa_u4ka__u4le__ule8k_u6let_u4lin_ul6ka_ul6te_und5r_u5nek_u9net_unn3s_u5raf_ur6an_ure4n_u2r2i_ur4ke_ur6na_ur8ta_u5rut_u4sa__u4sas_u3ska_us3se_us6t4_usy5r_uta4g_u3tak_u4ti__u5tol_u3trø_ut3t4_vei3s_ve4l3_vel5d_vel5l_ve4ly_ve8læ_ve4sl_ve4st_vete5_vide4_vin5n_vi5tr_væ4ra_vÃ¥4r3_vÃ¥rs6_yn4kv_yr8ka_øg8la_øk6ta_øl3ed_øl3s6_øl3v6_ør4je_ør9sm_ør3st_ør8ta_øy6na_øy6ra_øy4re_Ã¥p6na_Ã¥rs3k_Ã¥3steaans9ta7antraa4ri6aa5t6hab9b8lab4butabi9erabi9laa4bistab4loka5bo9aa3boerabo3kla3borda4buela6buska4buteache3aad5anta4darta5denda3denea5der_a3desla3det_a3dets3adferad7oppa7doraad5rafad7ranad7relad5repad3retad3ridads5tead3stra4d5øyaf4fanaf4feiaffe3saf7fi_affi3daf5f4uafi5anafi7rea4fitiaf9la_af9lara4frikafra5saft5eiaf6t5oaft1s4afø5ria4ganfa4garta5gas_a7gersa5geruage5s2a4getaag5garag4gasagg1s2ag6gutag4lemagmo8eagn5omago5d8ag7ras4a3gruag4selag3semag6sjuag4skaags3tragu3ayagÃ¥8vaai3er_ai5ke_ai4s3kaisk2hais6omai5s4v1a2kadak3aksaka4o5ak6arba3kei5akel8ea4kerøake5smakes6pa8keteakhe6nak7indak5ke_ak3kenak4kesak5kimakk3olak4kulak4k5vak3levak6likak6lusak5om_ak1o2vak4pe6ak5regak3resak3ro_ak3roeak4sekak4ses3aksjeak2s1kak7skuaks5tiaks4trak4tabak4taiak4takak6tamak4tapak4tasak4tavak4tegak4tek7aktigak5titak6treakt3rÃ¥5aktueak3valal7adrala9gaa5lagmal3allal3anaa3landa5laneal3anlal3anvala5pra5lar_a3laraal3arka7larlal5arra5larsal3arta7larvala7tral5aukala4vaal4ba_albo4g5albumal7derald3rea9leg_a5lekea4leksa4lelial8en_a7lepta4leruale1s2ale7sea4leska4lesla6lesua4letaa4levaa4levi3alfabal3gebal4gÃ¥ral3illa9lin_al3intal9ja_al3je_al3jeral4joral2j1ualk7s6al4lapal5leaal4lekal5let3alliaal4lidal6lulal6mekal4metal1o4bal3opeal7ordalori5al3oveal7sedals5løal6spuals4tealt6akal3tedalte4tal5undal5va_al4vedalve5salø5seal7Ã¥6tama5isa5makiam3aksam5alda3mar_a5maraa7mas_amaso7am4bar3ambasam4batam3eiea3meisam3eksami7naami7neamisk3am4madam4nedamo6veam4papamp5eiampes6am2p3lam4punams9utana3laanal4f3analya3nanea5nanganant8a6narban5artana3to6an7auanaus7an9av_3anbefan4dekan5denan9detan4dosan5eggane3rua5nes_a4nestane5sv3anfalan4gedan4gi_5angivang5ofan5gosang4sman4gunan4gÃ¥_a4nisjan4koban4kopan4kosan2k1rank3reank3ut8an2kvan5nenan5neran5nidan4nom5annonan4novann6slann3sta9noa_a7norma2no4vano5vaan3ove4ansan3ansatan4sekan4ses3ansikan4skian3skjan5skøan6sløans5oran1st61an1sv4ansvean3tedan4timan5toiant5s6an4tulanus7a3anven6anvina2n1æ2a6pinsapi6r5api7seap4pleap5pliap6priap5renap5retap3rinap3selapse4sap8s9lap4s5øa6p5utara9biar5aksarak5tar3alta4ramia4ransa4ranvar5augar7aukar7avh6arbeh4arben6arbetar7debard3re1a2rea4arearare3ina4relaar7emn3arenaa4renia6rerka4reroa6rerøa5res_ar3evnar7g6har5g6iariba9ar5idrar3innar3insar3intari3sear4kauar5kha3arkit3arkivar4klear6kodar4køyar4map5armbÃ¥arme7tar4nadar4nalaro6paar7ostar3ovear6pedar5reear3selar4sinar4sprars6trar4topart9raarts5øar4tyvar5u6rar5utbar5utnarve3sa6r5Ã¥ta4saloas7augase5lea4senka7seola2se5sa6sesta4setea2se3ua7sis_asis5tas5joras3karask6etas5kisas5ko_as5koeas3koras3kotas7kraas3kulask5øyas4levas4lita2s5omas4panas7pisas9sa_as4sabas4salas4samas5se_as4sedas4sekas4sesassi3sas4sitas6s1kas2s3nas5so_asso9aas6s1pas2s3tas4stras2s1vas4sysas4søkas2s5Ã¥as6tabas5te_as3tedas4tegas4teka9stofa5stokast5ovas4troas9tuaasu9saasyn7das7øyea4tanga5tas_at5avhat7eddat5eidat3eigate3ina4tekaate7leat3emba4tenia4tenua5ter_at6e5u3atferat4ha_at8hasatili5atl9øy3atmosat4nelato5gra5tosea3to1vat5regat3renat3rera4trifat3rinat5rotat5røsat5røyat3serat7sjeat7skjat2s3øat6tatat4tidatti4sat3titatto6vatt3spatt3svat6tysatu5e4a5t6yvatør3satø9sea4t5øyat7Ã¥t8au9ar_au5da_au9detau4di_aue5reau3estau4galau4gasau4gel5aug2nau5ketauk5laau5kveau6lasau4lataul8laau9menau5raeaure5sau5retaur5s6auru4eaus9kjau6skrau5strau4sunau3ta_au7tarauto5vav3alvav3anga9var_av3art3avdela7veilave3ina4velaa4veleavens4a5ver_aver5davi4ar4a5vigavi9ke5avisaavis3tavlu9tav4nesav4resav5seg3avsniav1s2pavs4teav1s2vawe9neay9s8tba4bysba4da_ba7danba8de_ba4debba3karba3kenba3kerbake3sba8ki_bak6kobak5krbak4reba5kribak3robak3smbak5spbak7t6bal7akba4lesba4li_bal6læba4na_ba5nanba5narban9daba4nelba4nesbantu5bark5sbar5trba5senba4setba2s1kbassi4bas4sobas4stba7s8u2ba1trbat6tibau9lab6baseb4bedabb3eiebb5eigb6belob4bes6b6betab4betib6betob6betrbbi9e8bb7lenbb5rekbbu9rabb5ut_bb5utebe4bo_bebo9kbe4da_be9darbe3derbe4drebed2s1be1dÃ¥3be4ga_be4gi_be4gÃ¥_be6ha_beha7gbehÃ¥4rbe2k3ibe4lekbeli9vbel5læbe2l1obe5nat4benedben5guben5spben5te4beraibe7rasbe4repber4gaberg3jberg3lberg3obe5ribbe7risber6klber5naber5nebe4ro_bero9aberri6ber5teber5tiberø5vb4e1s2be4se_be5s4i4besikbes5kebes7ne4be3sobeso9vbes7sibe4tab4beteibe7tesbe4ty_be6ve_bi6blabi5deebi6elebi5ervbik6kibi5k4l4bi7krbi6la_bi4lasbi4laubi3letbi4linbil5labil5m6bingo54b5intbi4ri5bis6hibis7kebis5sebi3s4vbi6ta_bi4te_bi5tesbi8ti_bi4trebi6tri1b2ladblad3abla6f3bla8gablak5rbla5meb4lankb4lantbleie5ble4mob6lesab4lestbli9kebli5mabli5meblis3sblo6drblom5mblues3blu9sably7glblÃ¥7sab7nes_boa5s4bob7labo6dinbo6d7rbo4et_2bo3f6bo4gelbo6kelbo6kop5bok1sboks4pbok3veboli7nbo7lo_bo5loibolst6bom1s4bo5napbon5nebo5nusbo4ra_bo6re_bo7relbo3renbo3retbo6ri_bor4ti3boskabos5sebo4stobo4ta_bo4takbo4talbo6te_2bo7to4bot6r4bot4vbra5kabrak5sbra5sebrei5ebrei3sbro9arbro1s4bru5kebru4nabru5plbru5sabrus4lbryn4sbrø5debrÃ¥9neb4s5elb2s1ofb6st7f4bu3embu4en_bu9enebu4er_bu4le_bul3lebun7debunk3rbunn3sbu6ra_bu4re_4bu3robu4se_busk7øbus6sjbus4snbus4spbus4stbuss3v4bustrbu4talbu7tem4butstby9areby7depby4en_by7eneby5ensby3ersby4ge_by6re_by4steby5tarby4te_bæ5rarbæ4re_bæ5renbø7ensbø4kesbø6la_bø6le_bø6re_bør4spbørs3tbørs3vbøy7arbøy4esbøy4etbÃ¥9desbÃ¥7enebÃ¥6regbÃ¥4repbÃ¥6t5jca4pe_ca2sa3ca6setcas5toca4to_ce4nedce4neece4nemce4netce4nevcen6toce1ro5cest3ocha5le3cham4cha7nechel5sche7techi4licho5s6cie2s5ck5ar_ck5artck3er_ck4ereck5et_cke8y5cmini4co6bidco4la_co4labco4lakco3r6aco4vercras4hcrack4creen7cures44daberdadør5da4gevda6go_da4g1rda6gunda8la_da4las6dalau4d5aldda4lesdal6soda4ma_da4manda3masda4me_da3mendame3sdam7pe6danal2d1anl4dannod4ans_dan3sa4dansv9dant_9danti4dareada4resdar5s64daseida9sko6dastrda4tek7d6atoda3toa4da5trdats6jdau5god3av5sdd3eied4demidder5sd4desud4d1redd5rundds5trd4d5øy6debar4debas3debat3debut6d7edd7dede_4dedek4dedel4dedia2ded4r3deig_d2e1inde5is_de3ist7de7itdekk3a6dekly5dekni4dekod4dekon4dekosdek6st6delad4delau4deledde4lef4delei4delid4delis4delivdel3sedel4sidel3tedel7tr6delukdel5ve6deløy2de5mademie4de4mo_de4mog5demok4demol5demosdem5pede7nakde5neb4dened6denel4denem4denet4denevde4nomdent3oden4trden6tÃ¥4deopp4de3orde4ove4depak4depapder8amder3av4derea4deredde4ref4dereg4derepde4rifde4ril5derinder5nede5rob4derog4derosdero4vder4spder5unde5rup6derus4derør3d6es_de5seg4desho9desk_5deske7despld4es2t5dest_de5sti4destj4desto4destu6desty6desup4detea6deteg4detel4deten4detepdetes74det6r3devikd7ev8ndhav4sdhu9gadi5algdia5lidia3redia7spdias6tdiats4did5ridi7elldi5en_diffe53difuldi4gat4digrudi8ka_di5kem2di1kr6dimed4dimes4dimet4d5imp2d1inddi7nendin3grdi4ni_4d1inndio3nadio4nodi3oridio5tr4dired4direg4d5irsdi6seddi4skjdis7kudis4vidi4tal4ditekditt3rdi9us_di4va_4divaldi7van4divekd7jes_dje9vedla4gad4ledid4legadle3ged5lekad4lerudli5kedlÃ¥9redmors6dodør54doled6dolisdol5l44domesdo5misdom8sadoms3ldom4sodo4na_4donkedon5stdon5t4do4pa_do4pe_d6o1rado5ran2d1orddor4dad5oriedo7ryedo4se_do4setdo3strdo5vendo4verd9rad_d5rade1d6rag3drakt3drap_5drapa3draped3rappd3rarbd5rarmd5rarr9drattd5reds9dreg_d3regj3dreied6rekad7rekk3drektd3ret_d3retnd6retrd3retsdrett43drevn3d2rif2d1rigd3rik_d3rike3drikkd9rikt5d4ril2d1rindring6drit5u1d2riv3dronndrop5s2d1ror3d4ros2d1rovdro5vadro3ve6d5rutdrykk4drø3ved3sabldsa9gad6salld9sameds1a6nds5aneds1a2rd4satfdsbø6nd2s1eids7eksds3elads3emid5sensds3e2pd7ser_d6serfds5erkds3etad5setjd3s2idd7sidads3idrds5indds3i4sdsi4veds7jords5kabds3kard4skatd5skotds3krods5la_ds5lands6lemdsli6kds6lo_ds4lukd4s5osd3spekd3speld9s8pyds3takds6tauds5teod3stord3stridsty8eds3tyvdsure6d5s6usdsy6nadt4engd5t4etd6trocd5t4rød6t1s2d3t2vadtørs3du9enedu9ensdu6ka_du4na_dun7de4d5unidun5s6du6ra_du6re_du6reidur8tadu5s4adu9semdu5s2idu6va_du4ve_dve6vady5ke_dy4na_dy4ne_dy3pesdy2p3rdy4ra_dyr5s4dy2r5udy6se_dyst7rdød2s1dø4pe_dø4pendø2st3dø3vel4d9øysdÃ¥d6s5dÃ¥8na_dÃ¥8ra_dÃ¥8sa_dÃ¥7semea2d1ieadli5e5alleea4love3altee3amanea4ne_ea4nore6ans_ean3slea5rerea5retea5r4iea2s1ieat6leea5trieau6gaeau6reeau8saeav8laeb4be_ebers6ebet5se5b6loebo4daebo6krebo6laebu6eteby4taed5ad_e5d4aged3arked3arved4dyred3eiee4dekse4denfeden5te6deprede4rae4derøe4deskede4slede4sme4desnede4tae5d6iaedi6gjedi3sied3reged3romed7skied3skredvi6sed5ynkeeg4gaeei7nieek4tee5e4lieem6naeen3ineer3ene4er3le6e5shees8kae4fanaef3anke4fark3effeke4f3idefo4noef6strefta5reft5eief5tereft1s4efyrs5efø5lee6galaegde8leg7dese5gedoegei9ee3gemeegen5se7geome2ges2ege5speg9genegi3ane4gikoegis4pe5g6løeg4neme7g8røegs4amegs4kiegs4taegÃ¥4vaehei9eeh5er_eh7erneher4sehø8vae9iaktei9a4nei7ar_e3ideae3ideoei9derei5dete6i2doei3d4uei9en_eier3aei4ertei6gevei6graei5kaaei3ke_ei6keeei6kehei4kelei4keteiks3aeik6seeik4soei9lede3illuei3lo_ei9loaeil5opei5loseil5s6ei7ma_e5imagei4medei6meiei7menei4met8e1impei5nedei7neleinga6ein3grein3k44e1innei4nomei4noveins6oei3numei2n3øeir9akei7renei5sarei3se_eise5iei3senei4sile3isk_e3iskeeis3koei4spiei4tekeit7taei3tveei6t7øei4vakeiva9rei9veneiv5s4eju6laekali7e5kavrek3eiee4keroek4kjøek5kokekko5vek6lege6klenek5letek9na_e3knekekne7sekni7peko7lee3k2rae7krefe3krene3k2rie3k4rÃ¥ek5rÃ¥dek4sal3eksamek3sel3eksemek4sigek4skaeks5peek4staek3stiekst5oekst3Ã¥ekt3avek3tefek5tesek4tidekti5mek5tivek4valek4vinek6vis3ekvivekÃ¥6paela4gael3agge2l1ake5lakeel7akte8lameel3anle4larre5las_e5laseel5atoel5avlel3avse4ledie4ledreleg5de7leire7leise5lekee5lem_e3lemme3lempele9naelens3e5lepa2e3lerele3ske4letae4leteel9ga_elg3s8el5la_el4ledel4legel5lerell7saell5skell5spell5svel5m4oe3lommel3omnel3omse2l1ore3lortel3ostel4petelro4sel4seiel3senel4sjeel6snoel4speel3sprel4stiel4stjels5økel5te_el6tegel4troe1lu2eel3ungel3utrelv3anel4vei5elvs_el5yndel9ærve6l5ætel3øy_el5øyael5øydemafo5e4magre4makoe4makue4manae6manue4maree4masie4mataema3ukema5ve3embed3embetemei9eeme4lie4mendem5e4vemi5niemi9saemle6sem5me_em5menem8mi_em4ne_em4nedem4nemem4pedem2p3lem6pliem4polem4posem4sesem4s1lem4sorem1st8ems4teem4tilemÃ¥4laemÃ¥l4sem1Ã¥8ren3aldena5lien3allen5ande5nanee5nar_en8aree4narren3assen3avien4deken3delen3derend3stendø4ren5eggen3eieen5ekse3nekten5eng3energe4nesken7garen4gemen4gleeng5soeng5spen4guten4g5Ã¥en9nalen4nemenn4sjen3om_en4pÃ¥sen4remen5sabens5afen4sekense3uen4simens4tiens4veensvi6ens3øken5ta_en4tapen5te_en4tecen4tegen4telen5tieen5tigen5tiken4treen6tul3entuse2n7ule4n5ure4nytae2n3øven5øyden6Ã¥s_e4o7loeom1s4eon4kleopp5reor4daeo4rideo4rikeo4rise6penoeper5repe4ste4petaepi7kr3episoe8plenep5ler3epletepo6et3epokeep6seme3p2syep6tine4raeler3afte4ra4ge2r1ake3rakeera5kleral3ue4ramaera4noer3apoe5rar_e4rarge4raske6rasoer6aste4ratrer5atter5aukerau8ser3av_er3avher5avle3ravner3avrer3avser8byler4deder4diserd4raerd8reerds3ter3d4ver3effer3efter3eider3eieere6kae9rem_e5remmer3emner8er_e5rerier3esse5ret_eret6here5toe7rets6erettergi3fer6glier4go_erg5spe4riade4riakerib3beri3ble4ricee5rid_e5ridne6rikner3inde3ringer3inner3inser3inte5ris_e4risaeri3see4risoe6risperi5søe4ritee4ritoer7ivo3erklæer4nader4neder6neeer3nober3obler3offer5okser3olyer5omkero5moer5onderono5e5rop_er1o2re5ror_e3rore3erosjer3oslero4taer4raeer4relers6aler3seper3skaers4laers4mier5sneer4svaers4veer5tiaer3tiberti4eer5tiler4topert3saerty6ee5rud3er1u2ker3unie3rup_er1u8rerure8er5ut_e5rutae3ruteer5utner9utoe4rutser7u6ve2r3yaer5økne4røkoer1ø4le4r5ønerø8raer3øyaerøy4nerÃ¥4daer5Ã¥keer3Ã¥4le2r1Ã¥ner3Ã¥4pes5arvesbi9ees5egees3eige4sekue3s2ene5ser_e5seree5seriese5s2e3seste4sesve5setje9setses6haresi6are5silies3illesi3stes3jore5skabes6kedes4keees4ker8eskiles4kjæes5k4ne5sko_es7koae3skotes3kvie6skyreskÃ¥7res4lekes4letes4lites4løkes4løves9na_es4nere2s3ode2s1ofes3okse3sommes3pases5pe_es3pole3spores3punes4sedes4seees4segesse7ies4seses4sjees4skress3omes4soses4spaes2s1ve7stades5taees3tape3states4teges4tekes4tel6estene3stifes4tige3stikes4tise4stive4stoge3stokest9rée3strÃ¥e5studes5tusestÃ¥6ses5viges3visesy4nae4s5ytes5øvies7øyeetafo7e6takoeta3laet5aldeta5leet3ambe6tande9tapae5tapeet8ar_et8areet5art1e2tate5tatoe3tattet5aune4teiee4tekaete5ruetes5ie4tesle5tet_e7tetse7tjeret6neveto4eret3orde5treee5trefe9tru_et5rumet4skuetsnæ4et4taket4talet8tapet5te_et6teiet6tiaet4tiletto5aett3reet3tuget4tur5e6tuietu6naet3uni2e3t2ve4t3vaetæ3raetÃ¥5reeug8laeu4ka_eu5keme4up5aeu6rateur8na3europevad6reva4lae4varbe6vatfe5vegg6evenneven5se4venye9ver_e5ves_e5vetae5vev_evin4sevis3tev7omse7vri_e2v3une5vyrkeybal4eyr6kaeøy9aneøy7eneÃ¥n8daédø4r5é5n6etéva8laè2rek4ère3s2è4restfa6de_fa2g1afa5gerfage4tfag3skfa2g1ufakta3fal4sk4fa5mofa4na_7fan5dfanfa5fang4s2f3anlfan5s6fan5tifan3to9f8ar_fa4ra_fa4re_fa4resfa4ritfa4selfast3rfa3talfa4te_fav5ne2fe1a4fe5a6lfe3drafe7enefei5enfei5gefei4li9fein_7feine2fek4afe5lagfe5len6felikfel7læfel5okfel4tifem5akfem9nefe2m1øfend9r2fe3p2fe6ral4feramfe5rasfer6atfer5de4ferea4feregfe4rekfer6enferi6e2fe1ru2fe1skfe6ta_4fetapfe4te_4fetea4fetil2fet6rfett5j4fe4tyfe4venfe6øy_f4f3akf6fannf4farbffar6dffa7ref8f9auf2f3avf2fe3df4fetif4fetoff5evef4ficef9fienf4finnff5intffi5s4ff9legf2f3refi4as1fi9cenfigh9tfi7g6rfi7kenfik6kafik7safi4la_fi4ne_fi5nerfing3rfi4n3ofi9norfi6ra_fi5s4afi6se_fi8si_fi6ska6fiskufis5ti6fistufitt5sfi4ve_fje4skfje2t3fjære5f5lag_f6laggfla7kefle4slf4lettfli7neflis7tflo9gaflok9sflo2m3flue3sfly3s4flÃ¥9saflÃ¥7sefoi7lafo8ke_fo6la_fol4drfo4le_fo5ledfol5lifo4ninfon1s2fo6re_for9eifor4etfor9g6for3sefors8tfors4vfor7v6for5æ4for5ø4fo6te_fo4tokfo4tomfo6topfo4torfots6vfra6mifra7r8fra7skfras6pfre4e3fre4m5frems4fre7nefre6skfro8stfrø7kofrÃ¥ve4f5sjukfs7ne8ft3algf2t1amf4tanaf7taneft3anlf5tar_ft8as4f6t1avfte4naften3dfter5sf4testf4tetaft3indf2t1o2fts3eift2s1ift3stoft5støfu8ga_fulle6funns3fu6ra_fu6re_fu9retfu7selfus6o7fu4s5tfva8lafy8ra_fy4re_fy8sa_fø4da_fø4dekfø5denfø4desfø4le_fø5rarfø4re_fø4resfÃ¥7renfÃ¥7retga4ded4g5adrga4e5k6gaflogak8tega4la_galei5ga7len4galli5ga7loga4ma_ga5mer6gand_4gan5k2g1anl4gansa4gansvga6pa_ga4pe_ga4p5lgap3s2ga6p7uga6raf5garbr5garby7gare_4gareagar5es4garkigar3neg5arteg3artigar4unga4rylga5s2iga6skigass3lgas5tega5stoga4te_gate5s2g1avsgd5altg6d5aug3debag4dedigde5log4dendg2de5og4derag6derog3det_g6d1øyge4ark4ge5be3gebri4gebrÃ¥3gebyr4gedan6gedelgedia54gedos2ge1g2g3e2gng4e1ingei4r3gei9regeit3ageit3oge4lar4gelauge6le_ge7lea4geled4gelei4gelek5gelet4gelid4gelit6gelivge5lov7gels4gel3segel5sigel5t4ge5lungel7ve9gema_4g5emngem6nage2n1age3nea4genemge5nesgene4t4genevgen5gr6genivgens5lgen5tr4genumgeome5ge9opege5ra_ge6ralge9rasger5di4gered4geref4gereg4gerek4gerep4gerikge4rimge4risge4ritge4rivgerne64geroa5gerudge5rup4gesje2ge1skgeslu7ges4lø4gespege4spr2ge1st3gest_6gestÃ¥2ge1sÃ¥ge5tak4ge3te5gete_5get5sgety8e4gevir4g5evn4ge5vog6g5algg5askg2g1avg4gedig4gelag4geleg4genug4gerøgges6bgges5lg4gesmg6gesog4gespggje5sg2g1o2gg3radgg5ratgg8re_gg3redgg7rekgg3stog7g8ud4giarbgi9endgi6ga_gi5k4r2g1indgi4nin2g1inngin5nu4g1ins4g1int4gi5om2gi1opgip5sigi4re_gi6rob4gisel4gisen6giskagis8lugis4løgis5ti4gistu6gisty4gi5tegite4sgi2t9rgit5te4gival2g1jakg5jarn4g3jeggjels46gjentgje7sk7g6jutgjø9degla3degla4gag3landgl5artglar7v1g2las7glaseg6lass6glastgle3geg7lek_g5leke3glemtg9len_g9lensgle9plgle4rag9les_1g2lidgli8er3g2limgli9meglitt46g7liv1g4lorgl5ungglø8pagl7øy_5gløymg4meteg4metrgmini6gmÃ¥6lagna4logndør5g4nelog6nerog6nerøgne1s4g4neskg4nestg6netrgning4gni6stgn5o6pgn7o6vgn4skrgn4somgns4prgn4stign2s1vgnu5regnæ6re7goar_go5dalgod5argo4de_gods9tgo5ge_go9g8rgol6fagol4vag7o6mago9ne_go5nokgo5ra_go7raego7rasgor6dagor8vago8ve_go8vi_gra5ce9gradsgraf5fgra4m5gra6skgras3tgre4eng7refeg4rega2g5relg5rent4grepig7rese4grett4g5ri_4g1riggro9arg4ro7igrom5mgro5skgro3ve4g5rui4g3rulgrun7g5g4rupgru7sagrus5t2g1rut4g5ryg6g5rør4g5røvgrø5vegr7øy_grÃ¥6dag7sal_g7salegs3ambgs7amng5sardg7sastgsbø6ng5sekrg7sekvg5sensg3sentg5ser_g3serigse4stg3setegs3etig9setsgs4ettgs4jarg3sjefgs4ka_g5skadgs4kalg6skamg4skangs7kavg7s4kjg3skotg7skugg4slukgs4lung5slyngs5medg7snelgs9opeg5spalg3spelgs5pikg3spilg3spurgsse4egs5takgs5te_g3stifgs5tiÃ¥g5sto_gs4tolg3strøg5stuegst5utgs4tørg5s4tÃ¥gs5vikgsy6nagsø6kig4t5ifgt6re_gtvek8guds3tg5ug6lgu4le_4g5ulkgul4lagur8nagu5ruagu3rueg5ute_4guttrgva8lagvi8tagy4da_gy8sa_gy6se_gy4te_gy4ve_gøye6rgÃ¥6en_gÃ¥4er_4g5Ã¥4kgÃ¥n8da2g1Ã¥4p2g3Ã¥regÃ¥9vengÃ¥4vetha4ga_ha3genha7ismha4ke_ha5kenha6la_ha4le_ha4levhal6løhal4sohal4v5ha8me_ham4sthand5øha4ne_hanis4han2n3han4nehan3sehan4skha4re_ha5reiha4relha3remha4resha5rovhar7sehasj5eha3tarha4te_hat6lehau6stha4va_ha4ve_ha4vegha4veihave3shav4slha6vu6he7ansheat4rhe4de_he2d9rhef9tahe4ge_he2g3rhei5enhe3inshei4skheit4she4la_he4le_hel2s2hel3sahel3skhel5sphel3svhel9vehe4makhem5nehen5o6hen1s2hen5sehe5rethe4ri_4her5nhe4ro_hero9aher6svhe2r3øhe4se_hes7pahe6støhe4te_he5t6ihe6va_he4ve_hi4bakhi6ge_hi9se_hi3senhi5s4ihi4t5rhit5tihi8va_hi4ve_hjem7ehju6l7ho5ar_ho4de_ho5denhode3rhof4f3hof4fiho5lagho5lanho4le_ho4linho4lomhol7utho4me_ho4mo_ho4modho4mosho5n6oho8pa_ho4pe_ho8pi_ho6ra_hor2e1ho5senho5serho5si5hri5nehri2s3htere4hud5s6hu6et_hu4ge_hu8ja_hu6ka_huk8rahu4le_hu4leghu5leshu4levhun2n3hu1ru4hu8sa_hu4se_hu2s1ihu2s5jhu2s1khus5s4hu8strhu6styhu4ve_hu4veshva5lehver3ah4v4irhvits4hy6la_hy4le_hy4se_hy2s1jhærfø9hær3s6høg3rihøg7røhø6le_hø4ne_hø5rarhø5renhø5rerhø4reshør6sphøst7ahøst5øhøy5a6hÃ¥6na_hÃ¥5nelhÃ¥6pa_hÃ¥4pe_hÃ¥4p5lhÃ¥8va_hÃ¥4ve_i2a3deia5d8riale4tia4linial3opia6lovi5als_ials4ti3alt_ia4nalia5nari7andria8nesia7netia2no1ian3saian3sliar4doiar4dui5areai5arn_i9arnsias3s6i3assii7ast_i3bereibe4roib7lari2b3leib4legice5neid3delid6dep3ideali7dekii9del_id3elvi5dendideo3vi7derni5dersi6desmid6gemid4gesidi4en1i2dioid7jer1i4dolid9ranid5regid5samid6selid5simi2d1uni6d7øyi5einiie5l6ai5elemie4levi8e9maiem7b8i2e5niien4skie4ranie6re_ie5regi6eretie4rilie4risie4rivie7ro_ier4raier4spiers3vie3runies4tii8es6vi3etatiet4reie7vedife4s1if4lesiform4if4talifte5sig3anni7garkig4artiga3ruiga7teig3atti6gediige6noi5gersi4gerøi4gespig5ettig4gedigges4ig4graigg9s2i2g1iaigion4ig5loaig5neuigo5frigo4noi2g1røig3rÃ¥digrÃ¥5tigs4alig5seligs4muigs4taig4steihu9laikan9di4kapoi5kar_i5karaika5rei6kasaika3spi5keliike5lui5ken_i4kenai5kenei9kensi3ker_i4keraike5riike3sii6keski5kesoike5sui5ket_i5ketsiki9neik5inniki5stik4kafik4kapik4kasik4katik3kjøikk3reikk5svi9koariko5dei2ko3fi4koreik4rakik5remik3rosik4sekik7sotiks5tiiks5toik8stuik4tavik4tegik2t1rik4vinikÃ¥8pail5adri2l3aki4lanail6andi4larkil3artil5assil4dakild3reilea9ri3le7ei2l1eii6leigi4lenoi4leroi4lesei4lestile4tuili9gai2l1imi7linei4linsil3ja_il5keril4kesil4labil6lamil6lapil9lauil4leeil4levill3s2i9loloil5omvil3oppi5losoilot3ui4loveilret4ilsla7ils4muil5stril3s2vil6t7Ã¥il7ul8ilve8dilve4ri4maeni4makoimal8ni5mar_i4matri2me1gi6meluim5enhi9met_i4metai4metiimi9laimini6im4levim8l9uim5ordim7o6vimpse8im4refim4rekim4resims3krim1s4tim6stiin5aggi5nakki4na2min3amei9nanein5annin5appi5nar_i5narsi4naski4naspin7aukin5avlin5avrin7der6indigin4dogind9rain3druindr5øind5skind3spinedy6in5eggin5eidin3eiei6neleine4liin7engine8pai7nerni5nerti5nes_i4neski4nesø3infekin4fosin4fotin4gavin6gemin3gevin4goain4gosingst8ings5vin2g5øi4ninni4nisaini3sei4nito5injekin5kelin4kokin4nalin4nem4innet3innho2inni4in4ni_inn1s46inns_3innsainn5sein2nø4i5noarin7oksin9sa_in7salin5sarin5se_in4sekin3seninsis5in4sjain3sjeins4kiin3skjins6køin3sloin3sopin4spains4poin6stÃ¥in7sul6in3sy2in3ta4inte_in5ter4in5tiin7ut_6invevion3g4io4ninio5ra_ior8daio4rieiosk3vio3t4eio4traipela9i7pe6pipi9neipp4søip7punipse4lipsfø5ip2s1kip6tarir5arki9rastira6trir3eiei3repoire7sti8retoir3indir3innir5ka_ir4katir4kleir4magir4malir5oppir7skoir3s4tir5u4kir7Ã¥6li4saksi4sanbis3annis3antis5aud3isbryis6ceni4seeli4seenis3eieis5eigise5isi3sektise5nei4senoi5ser_i5sersis5essi4sete3ishavis5ildisis5tis7junis9ka_is3kalis3karis5ke_is8keeis4kelis3kjei3skjoisk3loisko5gis3kopis3kotis4kulis4kviisl7uti5smakis4medismo5ei6smus6isold5isomois5omriso3paiso5peiso7pris4panis6pisis7pruis4sesissis5is4skois7skris5skyis4skÃ¥is5sokis7stois6sveis5svois4søki5stabis5tapis5te_is4tekist6enis4tikis5tisis3tokis3tolis3tryis3tusis4vakisy8nai2s1økita4loita4lyi6tangi7tekyi4teniite3rei4teroi2te1si4tiesiti5mei4tisai4tisii4tisji4tistitivs5it7jerit5ordi4tra_i6traeit3relit3renit5rimit3rini5trisit3serit6sesit5skuit6stiit3sunit4tagit6takit4talit6tapit5tedit4tidit4tilit6tofit7tonitt4søit7tysiu2m1ii6umsei4umsui4vanai4varbivat3tive6geiv7eigive4raiver5di4veski6vesvi6vetøiv5insiv5is_iv5isbiv4sali2v3univ7Ã¥pni5wie6iÃ¥rs7lja4ga_ja7garja4ge_jak4koja1k8rja8krejaktel6jambijan4grja6ra_ja9rekjar5tajar7tija8skija5sti2je1a2je4debjef4sajeg5geje5i8sje4klijekt3aje4lesjel7gejel4lojel4trjel9utje4miaje4mitjem5pljem5se2je7na4jendrje3ne_4jenet2je5o4je3rafjerd6sje3r6e4jered6jereg6jereije5rikje6rimjer4kvjerle7jer6muje6ronjer4spjert5s4je1ru2je3spje3str5jesutje5svejett3oje4t3vjety8e4jev6aje6vasjevi4sjev7ne2j3infjo4da_jo6datjo6disjol5t6jons5ajonse4jons3pjons5tjonsu4jord3rjord5sjor6dujo4riejort6ajo3r4ujo4sesju8areju7doejue7nijug9leju3ke_ju3kenju3la_ju5larju5lasju4li_ju6lidju4likjun7gej6u6niju7ras3jurisju5so5ju6va_ju6vakjy8de_jæ5le_jæ3ra_jæ9ranjæ7te_4jøend4jøeng4jøetajø4lesjøn5nejør4spjørs5vjør7utjø4sesjø3te_jøte4tjøtte4jø4veljÃ¥5ar_jÃ¥9ge_jÃ¥6la_jÃ¥4le_jÃ¥7lesjÃ¥5let6kabes4ka1brka5delkadi7ekaf5tak5a4gika5iskka5ismka4ka_ka4ke_ka4kedka4kelka4keska4ki_ka4kiska3lamka3lanka3laskald5s5kaldt3kalenka5lev5kalis5kalkykal7lakall4ska6ma_ka8me_kam4prka8na_4kandaka5nerka5nin2k1anl4k1anmk3annoka4no_ka8nom4kansa6kansi3kansl5kapadka4pak3kapas4kapen3kapitkap3re4karab4karamkaran5ka3rav4kareaka6rekka5relka4ri_ka6ridka3rolkar3omkarp3s3karri7karsjkars4tkar5tika3sekkas5evkas2ju6kasjøkas3kakasko5ka4spikas4soka3ted3kategka3tetkat5taka4t5yk7au4rka7vesk9avis2ke1a84kebuk4kedag4kedal6kedei4kedem4kedes2ke5drked8skke7ernkeg8ga3kehetk3ei2dk6e1ink5ek4t5kelalke6lat4keles4kelev3kelig4kelis5kelit4keliv4kelofkel5slkel5spkel5stkel3svkelt3e6kelua4kelue6keluvke4mit5kena_6kenamken6apke4nasken5de4keneb4kenek4kenel4kenem4kenev5k6enhke4nomken1s2kens6tken7te6ke3ny5kepi_9kepia7kepiekera7l4keramke4ran6kerau4kered4kereg4kerekkere6n4kerepke3res4keretke4rifke4rimke4ris7kerop5kerorke3rotker5toker3un4kerus4kesam5kese_k5eselke5sil4kesit4keski4keskj6keskÃ¥5kest_ke3sto4kestu4kestøk6etar5kete_4ketek2ket2rkety6e5kevas3kevelkev6jaki3a2rk3ideo4kidolkie5reki3er_ki6ka_ki1k8lki3k2rki8la_3kildeki4le_kil9jaki7loaki4logki3loski4lovki8ma_ki4me_5kimo5ki4mol2k1impki6ne_kin3geki4p5lkip5pekip2s3ki5skoki3smuki1s2pki5strki6tenki4tonki4vekki6vi_3k8jankje7fj4kjegg3kjeld3kjemp6kjenkkje9nykjet5t3kjærlk5jødi3kjørikjø4trkk3aftk2k1akk2k3alk4kanbkk5andk4kannk4karbk6kargk5kastk6kasuk6kattk2k1auk6kedok4keduk5kel_kkelu4k5ker_k4kesak4kesek4kesik4kespk4ketek4ketøk4k9g2kk3indkk3infkk9innkk3inskk3intkkjek8kkje7tkkla4gkk3lankk8larkk7laukk6s5vk4k1ofkk5omlkk7omskk9omtk4kosik6koskk4kostkk3ovekk5ramkk3rapkk3reakk5reikk3renkk3reskkri6kkkro8ekkro4skk4ruskks6alkk4sarkk5sedkk4sinkks4kjkk3slakk7slekk5slikk3spekk1s2tkkst4rk4kuni3k2lask7latikla4trklei9ek7leikk4leivkles7jkle4sp4klie_k5linjk3luktklun5t6k7lyfklø7naklø9vaklø5ve6k1lÃ¥nklÃ¥5rekmann63k2napk4nedi5k2neek4nest3k4nipkni2t33k2nivkno6klkno9takno5te4k3numknø9le4ko1ak9koane4ko3brko4de_3kodek5kodenko4grekogst6ko7i6kko8ja_ko4ka_ko4kabko4ke_ko6kelkokk6ok3okku4kok4lkolba5ko4legko4leiko6lelko4letko4leu3kolleko5lo_ko4ma_4komafko4me_ko4mi_4komil4komsekom3slkom5sokom4st4kom5tko4na_kon6dr4konivkon3s24kopetko4pi_ko4pipko4p9lko4ra_kor4duko1r6e6korefko5remko7retko6rikko5rol6korpa6korpe1kor3rkor4svko6sa_ko4sedko4sekko5senko4seskosi9d4kosmuko6stakost5jkotes7ko5t4i4kotilko6trekot4tikott4skou7ta1k4raf3krakk6krank3kranskra9sekras5skra4to4kred_3kredi4k1regkregi3krei9ekrei5sk5rela4krentk5repr5kreps5kresjkreta9k4retsk3rett7k6rigkri9gakri5kekri4kjkri4me1k2ris3kritekro5b4kro5dek3rofokrok7kk6ronik5ronlkrop9nkropp4k4rostkru3i4kru5sakru3tr2k5rygkry7pakry5pekry4pikrø5ke6k5rørkrÃ¥8dakrÃ¥5lekrÃ¥7nek2s3adks3altksa5mek3sanek4sansk3sar_k7sarakse6gek2s1eik5sektk5selak4serfks3erkk4sesak5sesokses4pk5sessksi5koks3indk3singksi7niks3innksi3stk4sitiks9kabk6skioks9ku_ks7kuaks8kutks1k6vk7s6luks5løsks4melk5s4nok7s8nøk6s7oak4sombk2s1ork3spalks3pekks5pioks3pirk5stadk4stakks3talks6tavks4tegk3steik4stekkst3evks4tilk4stinks4triks4troks9tumk5stusks3tyvks5vegksy8nak6s3ølkta7f6kta6kak4taktkt3anlk4tanvkt3appk9tar_k6tassk5tastkt5avhkt5avkk4tedak4teføk2te5ik6tekakte5lekt7emnk9ter_k7tes_k6tesak6tesek4tetekt5evnktis5tkt5offk4tolikt5omfk2t1opk9tor_k7torak5torektor7skt3ralk2t1rektro5sk2t1rukts5arkt5sekkt7semkt6sinkt5skukts4kvkt6sokkt4spakt4stakt4stÃ¥kt7undk2t1utkt7yrkktør8ek6t5øsk2t3Ã¥rku4be_ku4dalku4er_ku4f3lk5u4gr6kuldikuld3rku4ledku4legku6leiku4lemku5lenku4letku4levku6li_ku4man2k1ungku4pe_kup4plku4rekku8r7okur6skkur4spkurs3vku5ru6ku7sa_kus5arku4ska6k1ut_ku6t7rkva8kek4valik6vardkva9sekve3d2k6veil1k4velkve5la5kvernkves5t7k6via3k4viekvi5erkvi7la3kvinnkvi5se7kvistkyf5leky4leg2k3ynsky4p5rky6se_ky3skrkys6sk1ky4stkyst3aky6ta_kyte3skø4en_1k6øyrkÃ¥n8dakÃ¥4pe_kÃ¥7penkÃ¥9rask5Ã¥t6tla4demlad3s44laent6lagnela2go8lag5omla2g1rlag4sj2la1inla4ke_l7aksjl5akslla5mabla4mesla4metl8a8muland3rl6a3ne3lane_4lanetlan4grl3annola4norlan5til3anvila6pallap5sa1l8ar_l8are_la9redla5remlare6tla7rialariar6l7arrlasi9e7laskjla5smi4la4sp4lastr6lataula4teglat6ekla6ti_latt6ulau7selau6stla4vellba3delbe9nald5aksld5aktl9dandl2de5ol7der_lder7al4deshldis7kl4doreld5ovnl3drakld3ranld5rasl6dre_ld4sekld4selld4sesld4skalds4kjld4s9mlds3trld6tuslea5lale4bem5lebæk5ledarled4dø4ledeble4dem6ledeple5derle3des3ledop5ledovle4drole5dryled1s24le3dÃ¥4l1eff4lefor4lefot6legap5legasle4gedle9genle4gev7leggi6legifle4gol4legreleg3s46lehal6lehan6lehaule3idol6eie_leig6dle3intleis7tle4ka_6lekanlekk7s2lek2llek4na4leksp2le3la8l9eldl3elem4l5elg5lelig4lelukle8me_4lemet8l9emnlem8nalem4silem5tile4na_le4nal4lenavlend8a4lened4lenem4lenevl4engdleng9u4lenivlensa4len4trle4pelle2p3jle4ple4leramle9re_6lerea4leref4lereg4lerekle5res4leret4lerev9leri_7leriele4rivle5ro_4leromle3ros7lers_lers4pler7te4lerus5leryr5l6es_le4sab4lesam7lesar4lesaule5sedle4seg4lesekle5senle3ser4leset4leshole6si_4lesig4lesit4lesju4leslales3s64lestale3sto4lestø4lestÃ¥4lesug4le5sy5lesøyle4tab6letak5lete_6letea4leteg4letekle5ten4letes2le3ti2let2rle7trelet6sjlets8klet6trlety8ele4utele6vadle4ved4leveg4levei4leveklevi6dlf5antl5f6inl4gelal4gelelge3nalge5ril4geryl4gesllgie8nlg3reflgr9øylg3s2elg5Ã¥r_lgÃ¥8vali4alali5anslibie6liby5eli4dakli4dedli4do_2l1idrli4eneli3er_4lifatli4ga_li4garli4getlig3selig3slli5kanli9karli7kasli5keeli3kenlikk3oli1k2lliks4t8l5ildli4marli4masli4me_limp3rli4na_linch54linduli4ne_li6nem2l1infling5l5lingvlin4kv2l1inn3linni6linnsli4norl4inse5linsklio4noli5o6slipes4li9rarli4rek4lisakli5setlis4kllis6splis5tilist3oli4teeli4tekli4tidli4tigli4tilli4timli4tivli2t1rli6va_liv5eglivi5eliv2s3l4jarblj9elvl3jer_l4je1sl5jes_ljes4tl5jet_l4jete3l2jodlj5oril5jøs_l5ka6ll3kedelkeei4l7ker_l4keral4keril5ket_l5ketsl5k4lulko9malko9salkras5lk4serlk1s4tlk9utel6kvegl5la6all6a5fl4lamil5lanell3anlllans4ll7apallap3sll5aspll5aurll7avlll5avrl5leaklle5grl5lehal5lehol5lehÃ¥l4lekil4lelil4lenkl4lenulle4sol5let_l4letal5letsl8letæl5levÃ¥l4linsll3intllo5idll5oksllo2m1ll5oppl2l1orl4losol6lotellra7nll4sakll4semlls5kvll5skÃ¥ll3smylls4nolls4tells7økllto4el4lu4el6luksl4l1unllu4pil2l1url2l1utllva8nll5øksl4løvell7øy_ll5øyall3øyell1Ã¥8rll3Ã¥2slm3anml4melulme7rilm3indl5minglmini6lm3inslm5intlm5s2pl6m5øslm5øy6lmøya9lm5Ã¥4rl4m5Ã¥s7loanelo1a4r5loar_lo2d3alo6d5u6loenglo4girlo3goplog5salo5id_lo3idelok4ko4lokonlo1k4vl5omdrlo4nallo4nitlo4pealop5pa5l4opt4l1orglorie6lo7rødlo6seklo4seslo5sevlo9teslo8ti_lo3vanlo3varlov3salpa5rel4pedol3pelil3pesml4petilpin3elpo6etlra8dalre4delre8kalre8valri8malrot5sls5aldl7sanals5arkl4sat_ls3eidls5eigls5embl4senol7ser_lses3llses5sl5simul5sjefls3jegls3jenl6s5kelskif5ls3kjolsk3læls3koals5korls3kovl4skralsk5unls7kvals3kvils3kÃ¥pl5smørls5ondl2s1orl9spegl5speil9spells3pril6ste_ls4tedl4stegls4tells6ti_ls4tiels6tonl9strils7veals5veel4svikl2s1øylt3aktlt3anllta6nolt3artlta4stltat3rlt3avkl5tavæl3tedel4tekalt4en_lt3epiltid6sl4tietlti6g5l4tinalt3indlt9innlt3insl4tivil2t1jalto9arlt3ostlt3reglt3reilt3resl5trevlt3rollt3roml5troslt5s4ilt7s6tlt2s3vlts4vilt3undltu4ralu6brilu7ere3lugarlu4ka_4luket5l6uktlu6mellum6sklu4ne_l7u2nilun5ne3lunsjlu2p3u6lureilu5ren6l5urnlur8nalur8talu7saklu6sellush7elu2s5klus4o5lu3ta_lu7tetlutla9lu4t5rlu4ve_lu9venlu9verlva6lal4va4ml4vanalv8andl7var_lv7asal4velal4velelve9nel9ver_l4verul4vesklve5sllvi9erlv3irolvor4slv5o4vlvra8rlv7s6klvÃ¥4p4ly4d7rly4gelly5g6lly2n3aly4ne_lyn3s2ly8ra_ly6re_6l7yrkly4sa_lys3kjlys9klly2s1lly8ta_4lyteklyte5slæ6ra_læ5rarlæ4re_lære3ilæ3rerlær6svlø3de_lø4dellø5demløk5kj4l1øknlø4k5rløns5tløp6s55l4ørdlør5k64l5ørrlø5sanlø5serlø9ta_lø3te_lø4tegløva9rlø4ve_lø3verlø5vesløy8edløy5elløyg5elÃ¥6gallÃ¥6grelÃ¥6ke_lÃ¥2m5o6l5Ã¥ndlÃ¥n2s1l1Ã¥p9nlÃ¥8ra_lÃ¥9rarlÃ¥5raslÃ¥3rinlÃ¥6sa_lÃ¥6skolÃ¥4s5llÃ¥4stelÃ¥3te_lÃ¥4teglÃ¥4teklÃ¥8ti_lÃ¥4ve_ma3chema4delma3dram6ad9s7maene3mafia6mafrÃ¥ma8ga_ma4gedma4gelma4gesma5kab4makadma4kesmak7kemak6lema4kotma3kremak4to2ma1kvma7lebma4letma4lov4mamerma3nakm3anal6manam4manavman8cem6ange4mangrmania8m3anle5m4annmar5d67mare_6maregma3reima7relma5res3mar4ima3rinm4arkamar4kvmar7slmar5tema4ry_4maselma5setma4siama4sikma4sis6masjumas4ki4maskomassø97mast_4mastoma5tadma4te_ma6tedma4tel7maten7matet4matil4matramat3s2mats8lmat5tamau7suma6ve_ma5venmbar3dmbe9dam4bedøm4belim4benam4berombi6armbo5idmbo5re4medat5mede_me4dedmed5eime7denme7det4medik4medirme6dok4medommed1s4me6dun7medve6me2game7galmeie5nme3ildme3indmei5nime7isk4meisome2k1l6mekte5melarme4le_4meled4melei4melek4melik4melis4melit4melivmel5le4melok4melovmel4simelsk4mel7trmelvi6me6mo_men4nyme4nomme4normen4simen3smmen5temen5trme4nytme6rab4meradmer5di4mered4mereg4merei4merek4merelme3resmere6t5merinmer5osmer5skme3run4merusme2r3øme4rÃ¥k2me5sa2me1skmes5ke2me1slmes6le4me3so7mest_4mestames4timest3r4mestu4metabme4tar4meteg4metei4metek4metel4metep4metil4metonme4treme4tru4metræmeva8nmfa9ram4fibrmgÃ¥8va5mi6al9miane7miar_8m9idémid3s4mi3er_mie9s8mik5sami4la_mile6tmi4lev4milinmi8ma_mi4na_mi5narmi4ne_6minntmin3spmins4tmi4n5ymi4san4misek4misel4mi7simis4komis9le4mistu2mit6rmitt3sm5jar_m7jarnmju7kemjøs5tmkÃ¥8pamla6gam4leram4leskm4letamma5klmmar7om4medøm4melum6menim4menummer5tm2me1smmest6m5met_m4metam4metim7mianmmie6nmmi5skmmi5sommi3stmn7eidm2ne9lmne4ram5nesem4neskm9net_m4netemo3demmo6di_mo4en_mo8ka_mo6la_mo4le_mon5t65mo1ramo4ra_mo4rar4mordlmores7mo4ri_mo6ridmor4klmo5rokmo4rommor4simor4spmo9senmo2s7k4motapmo4te_mo4teimo4tesmot7remot1s23mo3vam4panam6penam5pettm2pe5um8pla_mp5le_m6p5obmp3oppmp3radmp5retmp3ropmp3sekmp5s6tmp5ut_mrø9dems5antmse5lum9s6eim4servms4ingms3innm4s5jams5kabmska9kms6kinms3korms3lanms9luams3luem4somsms3orims7teams3timms4trums3unnmsu9tams3yndm4s5ørmteks7m9tidam6tinimtiør6mt4vin8m9uka4m1ukemu4legmule6smunes6mu6ra_mu4re_mu4se_mu2s3k3mu1tamu8ta_mvak5tmva6lamvari6mvi7e6myg4gamy9ranmy9rarmy4re_m5yrkemy4r5umy4se_my4te_mæ6la_mø7desmø9ensmøkk6amø4ne_møne9s3mørkemør5smmø9tasmøy9arm5øys_6mÃ¥enhmÃ¥4ka_mÃ¥4ke_mÃ¥4kesmÃ¥5larmÃ¥4le_mÃ¥6ledmÃ¥le3imÃ¥8pa_mÃ¥4pe_mÃ¥ra6rmÃ¥6takna6ansna6botna4dedna8demn3adopnad2s1nafo7rna8ga_4nagennag3s4nagsÃ¥5nak7kanak6konak8sa8n1aktna9lagna7legna4lekna4lesna4levna4lilnal3opnal5s2na3lurna2l5øna5mesna5mo9n3analnanfø84n3anlnan4nena4n5onape4snap3s4na4rapnar5dr4nareanar7einar5tinasa3rna4sas8nasikna4skinasta5nate8kna7tem4natomnat8ranat3spnaus6pna6va_2n3avh4n5avknben4snbo5etn6butrnbø9lench3ein7daa_n6dabin7dag4ndags5n4daksn4dalfndals3n4darkn8daskn5defind4einn4dekln4dekon5dem_nde5mon5den_n5densnd6erkn4desin4destn4desundi4enndi6sknd3jernd4lemnd4levnd3orgnd5ormn6dotend5raend3rannd6reknd4sagnds3aknd4sernd4sjend4skjnd7spundu3isnd3ungndu6sindus7kndy5spn2d1øyne5alpne5als6ne7avne4ble3nedal4nedeb4nedeg4nedelne4di_nedi4sne6drened3stne5dÃ¥rne3gla6negrun2e1inn3einine4ka_6nek2lnel3de4neled4nelei4nelid4nelis4nelit4neliv2ne1lu4nelÃ¥s4n3emb4nemel4nemer6nemesnemie86nendr4nened4nenemne3nes4nenet4nenevnen5sene5o4r3n4er_4nerad6nerap4nerea4nered4neref4nereg4nerek4nerepne5res4neret4nerev4ner2gner3ganer3ge4nerik4neritn3erob6nerocne7rofne5rok4neromne5rotn6ers_ner7seners4pner5un3neryr4nerørne4sa_5nesar6neseknes6er4nesit2ne5sjnesk4e4neski4neskj4neskr6neskune3sline7slønes6mine7snø3nesot5nest_4nesto4nestu4nestø2ne1svnes8va5nesøy4ne5sÃ¥5nete_4ne3ti6netid2ne5to6netom2net4rne6va_ne4ve_5nevikne4y5tnfall4nfan5tn4folen4foran8g8adng3ankn4gartngar5ung5atong7aving4dedng4delng4depn4gedan4gelan4genan7genen6genon4genunge3sln4getan2ge7vn5glemng5oddn3g4okng9omeng5ondng5ordng3orkngos6png3ra_ng7reang3regng3renn4grerng3retng3revng3ridng3rinng7ro_ng9roang7roeng3rÃ¥dng8sa_ng4semng4sesng6skjngs3neng3undngvi4sn2g1øyngÃ¥8vanhet4sni1a2nni4delnid5stni3er_nie5rini7ersni5ertni5glani9glo4ni5koni5l4i4nimar4nimas2n1indning3onin5gr2n1inj4ninnb4ninnh4ninns4ninnt2n1ins2n1intnions34ni5ovni4petnip3linip5si4nisemni5setnis5imni9solni3str4nisty4nistøni3tedni4togni4tosnitt4rni4umf4n5ivoniv3s2n2je1sn3jes_n3jet_njet6rn5jettnk3aksnkal5ln4kedon4keernk5eienkel5snkelt3n8kenon6ketønk3iernk5indnk7infnk3innnk7intnk3loknkofi8nk5oksnko5len3kravnk4taknk6talnk4tinnkt3sknkuri9n4ku6tnk9uten7kvitnkÃ¥6panly6dinmini6nn5ad_nn9aftnn5airn6n1akn4nalann5algn4namenn5anan9nanenna8nin5nanln9nar_n4narin6nasin4nasknn3avlnnbo9ennbu9enndør3n5nea_n5neapn5nebun4nedin3neken4nelon3n4enn9ner_n4neron7nes_n6nesjn4nesøn4netenn3idenn7infnni4sjnno2m1nn6omsnn7ordnns3arnn5segnns5opnns3ornns3tvnns3vanns3øknn6ungnnvi4s5noaneno7ar_nobe4lnob5leno3b4r4noent3no3ftn6ogran3oksino6midno6mikno4milnom7s2non1s4no1r4ano5ranno5rarno5rasnor4da4nordnnor4døno9reeno3rekno3renno7ret3norge7noritno4selno4sesno3stjno4ta_no4te_note5i5notekno4telno4tes4no5vi4n5ovnnpo8tanra8nanra8sanrei7enrÃ¥8dans1a4dn5sakkns3aksns5akvn3salans3aldn5sanen4sanfns5antns6armn6sartn4satins5eddns8edense5einse6erns5egensei6dns9eign4seksn5sen_n4senin7sensn3ser_n4seran4sesan4sesinse3sln4sestn6sesun4seten9setsnsin5dns3innnsi8ransis7kns3jakn4sjavn5sjefn4skann9skimns5kirn5skisn6skjan3skjæns5korns3kron4skugn5skumns5lasns5lidn5slynn4smaln4s5mon4smurn4smusns5nesn3s2okn4sondn3sovnn5spetn7spurnsse4ens4ta_n4stakn4stagn3stamns4tauns4teln6stepns4tinn5sto_n3strun3stuen6stukns5turnst3utn4sungn2s3vens9vegns9visn3s4væn4s1øvns5øyan5sÃ¥pens7Ã¥s_n4tagrntall4nt3anlnt4anvnt3appn7tartnt3avint5avrnt7avsn5teatn4tegen4tegin7tegnn5teisn4tekan7teknn5telln4telsn9teltnt3embn5ten_n5tensn5teppn5ter_n5tersn7tes_n4tetan4tetent4e3un4tiatn5tiemn5tikin4tikln5tilenti3lon6tinin4tisant5omfnt5omnnt3omsn2t1opn5tor_n6torgnt6rann4trepn5trern6tromn6trulntrøy4nt5skjn6t7ubn2t1utntyr3snt7Ã¥r_nufts5nug6lanuit8enul9t8nu5sa_nu5sennu7sernus3tanu3te_nute6rnu6umenva6lanvand5nvi4etnvi5kenvæ8rany5ar_ny9astny4de_5n6yheny6ra_ny4re_ny7revny9s6knystu4ny8va_ny5vakny8ve_næ8ra_nødde5nød3sknø9dunnø4le_nø6rednøtt6rnø3ver2n1øy_n3øys_nÃ¥5dedn1Ã¥2k4nÃ¥5levnÃ¥p8naoak4kuoa4r5iob4b5rob4b3uober4sobi5e6ob5la_ob3le_ob3leno2b5li3obligob5rar3obserod7attodd5eiod4delo6d5eio4dekoo5dekuo5det_o5detsodie4nod3omlo2d5reo4d3røods4kao2d1Ã¥6oeng5doeng3soeng3uo5ens4o7ens_o3e4reo6ereroer8mao3erskoe6sipoe6sitoes8kao4etanofag6ao4faraofa4seo4feraof4fekof5fesof6fiaoff5ido6fra_of9ras6o5friof8se_of4teloft2s3og7anko4gareo2g7avog4g5jogg3s4og6g7uogi3a4o4gievo4gikoo3gingo2gi1oog5jerog4nedog6nelog4re_og4rero4g3riog3rydo4g5røogs6anog3s2eogs4kjogs4leog1s4pogs5paog5steog3stiogs4toogs4trohe5teo4inspok7aftok5arkok5elvo5k6eno4keskok3kjeok3ko_ok5kolok4kunok8la_okla5mok8le_ok7lutok3omtoko5peok5oppok3ormoko9seok5reoo6kreto4k5ruoks4alok4sekok4semok7senok4sesok5s4ioks6tioks6tr3oktanok5u4kok7uteola8gaol5anlol3anto9lar_olber4olbo7eol4bolol9danol5de_ol4demol5detol3driol5eigole5ino7lekio5lem_o5lemso4lenio4lenoo4leruo9let_ol4f5iol3g4eol1g4lo4libaoli5neol2k3lol5la_oll3akol4lamol7le_ol4ledol4lelol7lenol4lesol4logol4lomol5losol4lovolls4toll5svol4løpol6løsol6løyolme5so5loanol5oksol3omsolo5veol4pedol5svaol3tedol5tepo4l5urom3aldo2ma2mom5angomann4oman5tom3arsom4betom4bis5ombodo2m1eko5mekaomer6so6mese3omfan3omgreomi3e4o4mieko7mikko7mineom7inno4misjo4mistom6matom4medo4mofoompa3toms3alom4sek3omsetom4somoms3un3omtalom4tesom5øy6on3aboon3appo6narbonat5ron4darond3reonds4ion5eieo4neleo7nello4neruonesi6o4nesko4neteon7ga_on5ge_on6gedonges4on5go_on8groongs4jon4g5øon5ildoni6mion3info2ni1oo4ni5po6nisoon5k6a3onkelon5k6ion4kleonle6gon5nado5nor_o4no4von3oveonsi3sonsi4vons1k4ons7keon4sveon4tedon5tenon4tokon5toron7ul8onu4sko4n5ø4on6øy_oo5k8aook5esoo4m5ioop9anoop5enoop5etoor6daopan9do4pasjo4penao9pendo7pent3operao7peroo5perto4petao4piekop4na_op4pasop4pi_op6piaop4pisopp3li3opplyop6poeopp1Ã¥2op6sa_o8p8siop2t1ror3adror5aldo3r4amo4ranao3raneo4rango4ransor3attora3ukor1a4vorbit5or3dea6ordelor7dikordi4sord3itords6eord3sto8redio4relao6reldor3enkoren3so6rerfo4reroore1s2o5resco4retao6retv4orga_or5gerorge4sorg4skorha9gori5b4o7rietori7kaor3indor3inkor3innor3insoriro8oris4ao4riti3orkesork7s2or6mapor5melor4narorned5or5netor4nolor3offo4r1oro5rosaor3oveor5ovnorpe6sor5senors4kuor1s4lor3s2oorso9vors4paor4tekor3temor5tiior7tilor5tis3ortodor6tokorto4ror4touor9udeoru4t5oruta4or4utfor5vegor9ø8korøk8tor3ø4vorøv8do4sa5bo4saku6o5sauosefi5o6senaose5slose5smos7hisosk3eio4skilosko5po3skrios8k3vos3lodos7oveos6pa_os6pe_os4pilos4poros4sekos3semosse5vos6skioss3kjos6spaos7styos5talo8ste_os4tegos4tekost6elos5teoo4sti_o8stiao4stieo4stinos5tisost3reo3stroost7rÃ¥ot5aldo9taneo9tar_ot3argotek5io4tenao4terooter5so4terÃ¥otet5aotet5ootika3ot5jero4to3ao5toa_ot3offo6togaoto5neotor5dot7redot5rerot5revo6t7rio6t5røots5elots6opots5prot7steot5tasot5tinot5toaot7tugot4typo6t5utovan9oov3anvo7var_o6varbova9reov5artov7arvove4lao4vendover3aovere63overg5overrover9voviso3ov4nesov1o2vov5salov4sekov4senov9skeov4sleovs5teov4stiov7sunovsy5kpa8cenpa3deb4pakti3pa1lapa7limpal5inpal5løp3analpa4nappan9depan3kapan5sepan5slpant8rpa8pa_pap4prpap3ripa4ra_5parad4parekpa4ri_pa3ris4parkipar4kvpar3m8par9s4parvi6pa4s3tpas5tipa6trep8attap8at6vpa4ve_3pa1vipbo6dape7d6a5pedaspedfø9pe6doape6donpe4dro4pedy62pe1inpe6ismpe8ka_5pelalpe5lar4peledpe4lef4peleipe6lep4pelerpe6lev6pelivpel4lo4pelovpel7stpe5lunpe4nanpen3de4penerpe3net5peng8pen7glpeni4n4penivpenly4pen5skpens4tpen5trpe7o6spera3a4peradpe4raipe4ral4perappera5t4pered4perei4perek4peretpe4rev4peritper5mupe3ros5perropers6m4pe7rÃ¥pe6se_p3eske3pest_4petab4petal4petas4petau5pete_4peted6petei6petek4petel4petem4petid4petilpe4tim2pet4rpet1s6pfø5repgjer4pha9vaphavs5phe9tephe7vaphe5vephi5li7piasepi6ca_pid3s26piendpi3er_pi9erspig5gep7i6gjpi4kehpi6kelpik3kopi6la_pi3leppi4na_pi4ne_pi9nedpi4nelpine4vpin6goping3r6pinnspin4slpion5spip9lapi4rarpi4respi4rutpisi9epi4skipiss4lpis4sppis4stpka8vap4lan_plan5gplan5s4p1larpla4st4pleispli7vaplo4gjp4lo8i4p5lovply5d8plæ5replø6papo6da_po4de_po6f7rpo6lanpo4lekpol5lipo6lompon4grpongs62pon1spon5sapon4svpo2p1apo6pe_2p5ordpo1r4epo4refpo6reg2p1orgpo4se_po4sespo4stapos3te4pos4vpotak9po4te_pp3aktp9panepp5ankp9par_pp5arrp7pastp4p7atp4penappe5p8p4penøppe5rapp9esnp4petap4petepp5ettp2p1ilpp3infp4pistpp3ledpp5leipp9levp2pol4pp3oldp2p1oppp3orkpp5reipp5rinpp4rispp9rivpp9ro_pp7rotpp3skapp9spepp3splpp7sto3prakspra7lipran3s5prat_5prate4preiipren4s6pres_4prettpri5ke4pring5prinopris3tpri9ve6p7roc4prog_4proge4progl4p3roip5rop_7prosepru5tapru5teprø5s4prÃ¥8daprÃ¥k3iprÃ¥4kops5a6np2s1elp3sen_p5sensp7ser_p5setep5setsps5insp3s4jop2s1kop3skodp3s4lÃ¥ps5pleps7talp5s6tÃ¥p3s4uspsy3ke3psykop3s2økpt7arkpte7reptus5t6pu6dypu8le_pu4ma_pu4re_pu8reapusl7upu4ta_pu5taspu5terpu5tevput6trput4tupy6sa_py4se_pæ4re_pø8sa_p1ø2v8pÃ¥4by_pÃ¥4la_pÃ¥4le_pÃ¥7sko6pÃ¥tÃ¥7qu9ar_4rabisra1bo4ra3cetra3d2a4radir2ra1drr3adrerad2s3radvi4ra5ede4raerkra4fiura5fo_ra4fosra5frera7geara5geera5intra3iskra9karra7kelra5krorak6sarakst64raktirakt3rr4a5ku5ralds4raledra5leora4linral5leralo6iral3opra4magra4mas6ramed4ramilra4naara5narran9csrand3r4ranfaran5ge6rangirania8ra6ninran3kv2r5anlr6anli2r1anm4ransvran6utra4pel4rapinra4pirra4pisra6pitra4pos4rappa3rappo2ra1pr1r4ar_4rarea4rareg6rargu4r1armrar3rera3sea4raselras3kera4skirass4lras7st4rasti4rastj6rastyratak9ra4te_4ratfera1t4rra4trø4ratubrat5utraud3srau6ga4rau4kraus6sra3vørraz5z6rbede4rbi9errbist6rbo4nirbon7srbo5rerbra5srbrei6rbu5enr4d5akr4dalardals5r4dantrd5atlr4datmr4d3aur6dedirde4enr3defir9dekar4deklr4deksr6delor6demir7denar6deporde6smrdfes5rdi3anr6diaurdi3e2r4dikar4diklr4dikur6dimirdi3ovr4dishrd3ostrd1o4vr9dradr3drakrd5ranrd3rasr3dreird3retrd3rotrd3seird8skerds4kvrd3stords7turd3undrdy5perdy3rer6d7ytr7d6ærrd1øs6rd7Ã¥6srear5e3redak6redamre3defre5denre3des3redigred4sl3redukre4el_6refos4regar4regebre5gel4regen4regerre4giare4gil4regub4regud2r1eigrei9rarei5sarei3sire7ismrei7varei5vere5ka_re5kavre7ken4rekob4rekom4rekon6rekos4rekra3rekrur3eksa6reksp4relag2r2ele6relekre7lenr3elit4re3lj5r4elmrel4sk4re1lu2re5lyrelÃ¥7rremi6lre7misrem9jirem8narem5p42re3na4rendr8renedre5negre7nei4renek6renet6rengdreng5l4rengnren6klren5sar3enss6renture3o2r8repen6repus6reradre5re_4rered4reref4rereg4rereire4rek4rerep4reret6rerfa4rerig4rerik4rerol4reromre3rosre5rotrers4pre2s3c4reselre4sem4reset4resinres5keres6klre6sky6re1slre4slure5smore3sovre9spe4respi4resprres4sjres6skres4spres4stres4syres3tére3str7restv4restÃ¥6resuk4resunre3svi4retalre4tap4retea6retelre5ten4re5ti4retoarets4iret4strett8o4re5tu4re7tÃ¥4revakre5van6reveg4revei4revelre5verreve5sre7vomrfa5rerfe8errfu8serga8lirg5andr7gannrga3rirg3artr6gedirgent4r4gesjr4geslrgie4nrgi7slrg5le_rglem5rg3lenrg3lerrg5rabrg3rearg3relrg5rinrg5storg9sturgÃ¥9asrgÃ¥6varhavs3rhø5rerhÃ¥9ne4rianf4rianl4riarb4riarrri4avari2b3lri8ca_ri4co_ri5der2r1idr4rieie4rieig4rieks6rieldri3end4rienh4rientrie5rarie5ririf4firif5la4rifø4ri4ga_rig4gr4rigreri5kanri3kesrikk5j2ri7ko6rikonrik4skrikts3riku6mri3k4v6riledri5lei2ri5loril4snri9mabri9mar6rimesri5metri4mi_7rimisri4mor4r1imprim9utrina5l4rinas4r5incr3induri4neeri4nes2r1infring3r2r3inj4rinorrins6krin6smrin4tr2ri1of6ri3om2ri1oprio5s4riot3r4risau4risedrise5i6risek4riselri6sju4riskari4ski6risku4riskyri4sto6ristøri6stÃ¥6riteo4ritilri5t6orit1s6ri6tun4rivarri6vedri5vei8riøyar4jerer4jetir4jetrr4jeturju6lark3aktr6kanfr4kaprr6katrrk5eikr4kelor3ken_r3kener4kenir5kensrke5rir4keror5kersr4kerørke4ser9ket_rk4hanrki4virkjek8rk5jorrk5lunrk9lutr3knekr5kneprk7nesr6kofor4kolar4kolir4koper4korar4korur4kosjrk5reirk4sarrk2s1irk4skark4stjrk4storkti4srk9veir5kvelr4kverrk3vesrk5vikr4k5ølr2k3øyrk9øysrk5Ã¥kerkÃ¥6park5Ã¥4srle4str4lesurli9kerli8tarlo5verlys7kr5løy9rm3anlrm4ansr6manvr4marer4marrr2me7grme5ner4mesermini6rm5i4vrmo7strmu7anrm5øy_r6m5Ã¥pr4n1akr4narbrnat7rr4natvrn3avlrndør5rne5a2r3nellr3nelsr4nenhrne3rorne1s2r5nes_r8nesir4nesmrne3sor4neterne5vrr4ninnrn5omnrn3omsr4n1oprn3orkrn5skern3skrrn5slarn4stirntre4r6n3utr4n5øvro5asi9roban9robarro4bedro4bef5robenro4besr3oddsro5endro7ensro4felro4femro7ga_ro7ge_ro6gryrog1s4ro4kelrok5klro7k6lrol6lyrolo9vro6makro4mal2rom7b4ro3merome5d4r3omnro4morr7omsyromsø3ro5ne_ro7nimron4narono5sron1s4ro4pad5ropetro4piaro4satro5selro3senros3laro6sovro1s1pros4stros4syro3stiro3strro5tesround3ro5va_ro7vasro5vekro7venrov5smrovve6rò6te_r6parbr5pefor4penor6penør5peskrp3ladrpun7gr6p5øyr4raror4reklr4replrre5skr4resmr4resor3ressrre4strro8sarro8tar2r3unrrÃ¥5der2s7adrsa5kar6saktrs3allr4sarrrs3arvr8sedirse6g7r4sekurs4elars7eldr4selir4sesir6sesurs6ettr7sim6rsimp7r4sinsrsis5trsj3orr3skadrs4kamr3skapr4skasr5skilr5sko_r5skoersk3opr4skorr3skotr5sku_r5skuers5kysrs4lefr4sleirs4lekrs4lesrs3lokr4slunrs4mo_rsmÃ¥l4rs6nevrs5omlrso6n5rsons4r2s1orrs5ordrs4panrs6patr5spelr4sperr7spesrs4porrs3tapr6st7brs4tedrs4temr3stilr5stisr4stitr6st5kr5strørst7utrstyg7r3st6ørs5uklrsu7sars5usirs8vakrs5vitrsy4narsøks3rs9øyer4t5afr4tanart3anlrta9par4tarrrt3artrt3avsr4tedar3teder4tegor4tegrr4teier4tekar4tekir4tekur3tempr7t6err5terdr5terkr4terÃ¥r4teser6teskr4tetar4teter4tiarrti5enr4tilar4tilir4tilorti7sar4tisprtis3sr3titurt3offr9tofor9tok_rt3omkrt3ordrt1o4vr9tre_rt6redrt3regrt3reirt5relrt5repr7tribrt3rutrts3arrt4segrt5skert3skjrt4stirt3undr2t1utrtyr5srty6rartæ9raru3andru6avhru4di_ruds4lru4elerue3s4ruga8lruga5trui3d6ruk4surukt3s6r7ulkrum3alrund3r4ru2nirun5krru4nøyru8ranru8rarru9rerrur8tarus2h3rus7luru1s4orus4stru3talr4utberute3iru4telru9terrut4reru6trørutto5ru4vedru4vegru4veiru4velru4vesrva7karva6larve3der4vegar4vegir4vegrr4veimrve5klr4velar5ver_rve5rervil9lrv5ungry5ke_2ry1klry4nesry4pa_ry4tekrær5inrø4be_rø4dekrø4ke_røk5s4rø4pe_rør5d6rø7retrø2r3orør4sprø5slarøt9asr4ø5væ2r1øy_røy9arrøy6edrøy5esrøy4et5r6øykrøy5rerøy4st3rÃ¥detrÃ¥9ene4rÃ¥5g4rÃ¥k3rerÃ¥2k3urÃ¥4letrÃ¥n6darÃ¥rs5ksa4ba_sa5boks3abonsa4dag4sadamsa4ga_sa4gassa4gat6s5aggsag8nasa6go_sa4gogsag3s43saka_4sakadsa5kaisakh5esak5krs4akkysa1k2rsak4sp5saksr5saksu2s1akt4sa7kø1s4al_7sala_1sa3lesa9lets4algesals4asa5ma_sa5massam5eisa4melsa4metsa9na_sa7narsa3natsand5r5sang_3sange2s1anlsan5ne6sannos5anorsan5os4sansa6sansvs8ant_san9te6santr4santy4s1anv1s2ar_6sarab4saregsa5revsa4ri_2s1armsar5me2s1art8sasju4s1ass4sastysa5ten2s1atls5atsk5satt_sau6gas3auge2s1auksa4ve_sbo4dasbu6etsby8tas4cene8schl_sdam9psdu8ersea9re4sedag5sede_se6e3ise3e4l4s1eftsega6lse6gesse3gev9segl_sei5ge3se8ilse3inds3einise6inkse3insse3int2se5ka2sek4l4se3knse2k1r4sekra4sekri4sekro4sekspsek4stse6la_3selak5selarse4le_4selei4seles5s6elg4selik4selil4selis7selolse3lomsel5t62se3mase4mi_2s1emnsem4na9semndsem5pe6senau4sendr4senedse3neg4senem2s1enhse6nins3enkj5sen3nsen4sjsen3so7s6ent4senum4seram5seran4serap5seras6serau5sere_4serea4sered4seref4sereg4serei4serek4serel4serep4seret4serev4serik5serkr2se1rose4ropse4rorse4ros9s6ertser4tr4serulses5in4sesjeses5kvse3snases3pr5sest_4sestoses5un3s2et_3seta_se5taese5tar6setea4seteg4setei4setekse7tel4setes2se3tise8ti_4setje2set6r3sevÃ¥gsfo8rasfra5ssfyrs5sfø5risga8vasgen9ssge4stsgÃ¥4vas5hei5sh5isk3shortshø6va4sia5msi7ans3si2dasi4deos4ider2si2do4s1idrsid8rasi5er_si3estsi4f3rsi5ke_sik2h7sik4kasik4kosi4komsi4kopsi4kossi4kotsi6mel4simet4sindesi3nek2s1inf7singus3innhs5innks3innl4sinntsi5nob2s1int4si5ovsi4pa_si8pe_si6re_si7rensi4ri_sir8klsi5selsi6sin6sisjusis5kesi4stisis3tosit8jisi4trisit3s4si4umfsi9vansi6veksi8vi_si9vÃ¥t4sjanls7jarn2sj3av6s7jaz5s4je_sjef5tsjons76s7jugsju8la2s7jussjø3k6sjø9røsjø1s2sjø3t8skabe34s6kags4kaml4skane4skano6skant4skapp2sk2ar5skard6skars4skart4skates4kedas6kedoskel3ts4kelus3ken_s4kenas4kenos5kens5skepts5ker_s4keros5kerss2ke1sske3siskes4mske5sn5s6ki_5s4kiks6killskino65skiols4kiresk5irss6kis_7skiss5s2kivs6kje_3skjor5skjøn6skjøp2sk1k42s1k2lsk5laks5klassk9legs6kleisk3leksk5lits2klyd7skodd3s2kog2s3koi3skoles6koma6s1konsk5ords7kors4skort3skotts4krat6skreg3skrib3skrif4skrig3skrik3skrip3skrivs3kronsk6rud1s2krÃ¥2sk1s22sk3t41s4kuesku4er3skule4skulls4kulp4skultskum3s8skurvsk5va_3skvadsk3vass6kvensk3versk5vitsky3re6s5køaskÃ¥5resla8das3ladesla5gesla5kes5laks3slakts5lare4s1laus5laus3slaves8ledas4legis4legns6legrs4leivs5lekks4leme8s5less6lesjs4lesos6lests4letas4levasli5kes4likk4s5livslob5bslott48slu7a2slu2eslu5ess3lunds5lunsslu7sa1s4lyn4s5lys8s5løpslø5vaslø5veslø5vi5sløydsløye79s4lÃ¥_3smak_s4med_s4medes4medksmek7ls4mekt2s5mens6mesis6mil_smi7las6milesmini6s6mulas4mulds6mule5smurt1s2mørsmør3ss8mÃ¥tt4s3nas6s3nats7nektsne9sasnes9vsni6gl3s2nil6s3nin3s2nip5s2nit2s3nivs5nord6s7not5s6nud5s6nø_1s2nørsnø5viso4da_so4fagso4fas6s5off5s4oi4so4la_sol5avso4le_sol5f61so7liso8lo_sol3s2sol5t4so4lum4s1omg2s1omk1som5msom5sls4omst4somsy1s2omt5somt_6somtaso4na_son7da7s6oneso8neaso4n3osons4kson5stso4ny_2s1o2pso7pakso9parso7pet3sopp_5soppa3soppesop4piso3ran4s1ordsor4da1so1reso4reksor4gl7sorisso5riu4sorke3sor5s7s8ort4s5oscso8se_so8te_so4trasot5tesot4tiso4ve_so5ven5sovet7spak_7spaka5spake8spakks3pall5spalt3spari8spedaspe9dé1s2peis4pent6speri4sperls4perrs3pers3spesis4pests9pet_4spingspi7rispi7ro2s3pizsp9lars4plin3splitspo6ets4poras4pore3sporv2s5poss3pote9sprag5spran5spreis4preks3prems5prio8s7pros3prod4sprof3sprøy3s2pyd6s3pølsre8kasri8e9sri8kasri8masro6pasro6sasro9tesrot5osrÃ¥8mas7sablss5allss5amps5sanes4sarrs6seetsse5gess5eggsse5lissel5ss5sen_s5senes4senis4senus6senÃ¥s5ser_sse7sks4sests7set_s9setss4siffs6siloss3injss3inns5sis4ssis5mss3karss3kofs7skogs4skorss6ky_ss4kyess5kÃ¥ls7skÃ¥pss6narss5nøks4sok6sso5loss4omasso3rass3ovess6pilss4pors5stadss4tedss3tekss5teps7stipss4trÃ¥ss3tusss3t4vssy6nass7øye2s1ta_stabs3stad3as5tafa3stafesta5flst3aftsta7ge5stakk4stakl6stal_st5ald4stale5stalts3tame3stammst8anes4tanfs4tangst3anlst3anvs7tapas4tapps8tapÃ¥s3tari4statosta3tu3stave2s4t5b2s3te_3sted_s4teda5stedt2s4tefs4tege3steghs4tegrs2t4eis6tekes4teki4stekos4tekt4stela5stemd5stemn4stemøsten5as4teni6stenk4stenos5teolst8er_6sterrs4teses4tetas6tetø4steve4stevi6stevl5stevn2s4t5f2s6t5h2s3tias5tibes9tibl6s5tidsti5en3stift3stigns4tikl4stild3stiles6tilk6stilns4tilo4stime6stimés6tinis6tint1s2tip6stips4stitt5stjel3stjer2st5n22s3tog4stoks6stokt3stoli4stoljs5tolls9tommst3oms4stonist3opes6tormstor3o4storsst5o4s5stovast3ra_st3ralst4ran4strap4strars4tred9stria5striest3rin6stroest3rolst3ron6stryg4s3træ1s2trøst6røm4strør4strøs4strøy6strÃ¥d2st5s64st7t6st3t4r1s2tub3s4tudstu4elstu4er3s4tum6stunn2s4tut3s4tyk2s5tyn2s7typ3s4tyrstyrs36stysksty5ve6størkstø3vestø5vi5s4tÃ¥esu7a8lsu6ga_su4ge_su3is5suit5a4s1uke3suk5k1suk5ssu4le_3s4ulfsu4lik5sund_9sundssu4pe_super3su8presu4re_su4riesu4riusurs5ksur4spsu3sansu4se_su4sik5svak_3svake6svakssva4la7s6vams4var_s3varm6s1vas6s1vegs5veies5vekasve4res5verks4verm7s4vev6svikg3sviktsvi4sesvi9ve5s2vorsvor7tsy4de_sy5densy4kersy6kogsyn6sksyn3tesy5rarsy4re_2s1yrksyr4kasy2s3tsys4trsy5tensy5t6hsz3c4zsæ4r1isærle9sær5s83s6økesøk7kjsøk4sksøk4tasø4la_sø4le_sø5letsø4rassø4re_sø8retsø7telsø5tes2s5øy_4s3øya6s5øyd2s7øyss3Ã¥2kesÃ¥4le_sÃ¥n4dasÃ¥5pet6s1Ã¥pnsÃ¥4re_sÃ¥r3skta4bu_4taend4taenh2ta5fetaf7f65tafista4ka_4takauta7kenta5kertak4si5taksttak4tot5aktøta9lamta3lanta7lasta4leita4lektal4lytal3opta6l9ut3ambi4tametta3narta5nasta5nattand5rtandø4ta4nelta5nemt3anfatanfø66tangft3anle2t1anm3tannlt5annotanns4tan6sk4tansvt3anve2ta3o4ta4pa_ta4pe_4tappa5tappi1t4ar_4taram3tarbo5tarbø4tarratar9sitar7sptars6v6t9asftasi3eta4sifta4siltas5s4ta7strta7testat3optat2s1tat3tet3attr4t5augtau4sk6tavin4tavlitbo6datbu8datby7tetdy5pe4te3ag2tea2nte5arb3teatr4teatt4tecel3tede_4tedebte7def4tedek4tedel4tedemte5den5tedilte4dorted4skted4sltefo8rt3efte5tegat4t3egdte7geate9geete4gimte3gla8tegs_6tegsvtegvi85tegÃ¥s2tei4dt3eiga6teigr3teikntei5le6teinfte5i4s6teisote7kente5ker4tekil5tek1ktek4li4teknute7kra9teks_t3ekse4teksptekt4stek6tyte2k3v2te3latel6ak3telav4teled4telei4telek6telerte4les4telid4telik4telil4telinte4lir4telis4telit4telivtel4lotel3set3elsk2te1lu7telut3temae6temant5emba5temiktem9matem5pe3tempote5nabten8amte4nante4nat6t7enc4tendr4tenedte5neg6tenem5tenes4tenet7tenik5tenis4tenivten9note4nomte5nor4tenotte6novten3saten3sotens5v4tenumte6ora4teord4tepak4tepas4te5pe7tepee4teract6er5d4tered4teref4teregte4rel4terep3ter5gte4rig4terikte4riv4terk_4terke4terkh7terkr4terktter3notern5ste5ro_tero6ete3rof4teromtero6v5ters_ters4lters4hter5sv3ter3tter9toter9ul8terumter5ør4terøt4terÃ¥d5tesarte7sen2te1sh4tesid4tesik4tesit4te1sk6teskite5sko2te1sn2te3so5test_4testy4testø4te1svtes8væ2te3søte8sÃ¥rte4tap5tete_tete4e4teteg4tetei4tetek4tetem3tetik3tetis3tet2stet5titett3s5tetu_te2t3Ã¥tevo6rt4hea3thei5mtho7litho3rethu5le2ti1akti5als2tia2m2ti1apti3asp4tidan4t7idé4tidistidvi44tienhtie5ra4tierf4tierkti4ertti3esk4tieta4tiettt8ifrÃ¥tif5teti9ge_3tignoti6gunti3ka_4tiket4ti5kitik4kj2ti3kotil1d43tildeti3lei3tilfetil3id4tilke3tilkn4tillhtillø77tilnæ3tilsttil3t44tilteti7mab5timatti4me_4timo72t1impti6nab4tinazt3induti4nem4t1inf6t5inj7tinks4t1inntinsk54tinsp4t1int4tinva6ti7omti6platira4tti4ref6tisak4tisam4tisek4tisel4tisem4tisep6tisig4tisio4tisje4tisjutis4ka6tisku4tisty4tistøtiv6istiv5sitiv5skti5ær_ti7ære6t3jag2t1jakt5jarn2t1je_2t1jegt5jord3t8juvtkÃ¥8patla4gat4ledrtle5titligh6t6l7uttl7øy_tlÃ¥3net6makut2meg4tme3intmini6t4nelit4neskt4nesttnæ6re7toar_tobe6rt3o2blto9de_6toff_t3ofreto5frito7gento4gretog3st2to1in1to3ke5toksi5tolatto5lel7tolkitol5trto9ma_4tom1s5toms_to4nedto4nelto8nibton3saton5spto4ny_4to1pl4toppd6toppgtop4po4topptto4rak6toregto4rekto7rem5torertore4t4torgator7metorm5stor5nators4itor5t84to3setos5keto8sku4tos2pto8ti_to5to_to4torto7vegtpi7netpi7pitpo4et3trafit5ranetra3petra5potra5r45trase5trasét3refu6t1regt5regi6trek_4treke4trekl4trelatre5net6rengt7repet4rero6tresitres4l3tresnt5resut4retat6retotre9va4t1ric4t4ridtri7eit5rig_t4rikkt8rina3trinn7t6riot4risttri5totri7vi3t4ro_tro9ar3t2roitro3int6rondtros3l7trua_5trued5truet5truknt3rullt3rund4trupet5rutat3rutet3rutitry3dr3t2rygt5rød_t5rødt5trøya4trøyr6trøys5trøyttrÃ¥4drt6rÃ¥klt3rÃ¥stts4angtsau6rt6schatse4erts5egetsei4dts3eigt3sen_t5senst5ser_t3seritser3ot4seskts3etats1e4vts7illts3innts5jegts5jort7sjukt4sjurt5skadt4skants6kists6kjøt5skolt7skottsk5ruts5krøts1k6vts9kvits6ky_t5smitt5spekt3spelt5stadts3takt5start5statts6taut3stedt4stegt4stekts6tigts4tikt4stint4stitt2s1tjts5tonts3trytsu7gets3ulits3u4rts5usit3sviktsø8katt9abott5adrtta9frtt3aftttall4t4tanst4tanvttare6t4tarrt4taset4tasjtt3avitt5avktt5avrt4tedat8tedrtt3efftt7eidtte3intte7kvtt5emnt5ten_t4tenat4tenitten5st5ter_t4terÃ¥t4teset4tesit4teslt5tet_t4tetat4tetett3indt5tinet7tinét5tingt4tinit4tisjt7titettlin5t5tofrtt5om_t7tomrtt3oppt5toratt3ordtto5rett3ormttpar4tt6pÃ¥stt3ramtt3raptt7rattt3restt3revtt5romt5tropt2t1røtt7saftts3artts5kjtt3soktt3ugltt8utett6vuntt1y6ttt3ø4l4tu4avtu4be_tu6demtu4er_tug8la6tungdtung9s6t5unitu4niotu4rastu4rektu4rintur5s4tur3uktu5rustu4sintust6rtu8va_3tvang8t9var3tveit4t7vertvert53tvet_7tvetstvi5lat6ving3tvungty4medty4ne_5t6ypety4petty4rak6tyregty4repty4ri_tyri9et3ytelty5tenty4ve_5t6zel6t6z5ltær4ertær4ettær5s4tø9kettøk8ta5t4øm5tøp5setør3in7tørk_9tørka5tørketør5netø5ta_t9øyemtøy5tetÃ¥4en_tÃ¥2l3atÃ¥9la_tÃ¥4legtÃ¥7leltÃ¥l5s4tÃ¥n8datÃ¥6pe_tÃ¥6re_tÃ¥4rept3Ã¥ret4t5Ã¥ri3t8Ã¥rnt3Ã¥taktÃ¥7tenu5ars_ub7altub7antub5arkubel5subis7tub5rinuch5enuch5eru7das_ud4dagudeie5ude3luu6derou3d2etu5devoudi3anudi4enud5legudy9raud5Ã¥4suem8nauend5rue4re_ue5renue4rerue4resuerle7ue4skjufi5neufor3suf4tanuft3spu6g5avu4gerøu9get_u8getaugg3s4ug4le_ugle7sug7ne_ug5s4iug5øynuid5eluid5eruid5inuista7uit3enuit5erukare6uke5l4uker5iuk8k9lu5klemukl7utu5k4nou4k5oguk3rusuk4sekuk4seluk2s1kuk7skiuk2t7rukts6lukt3spuku5leuk5viku6l1aful3aksul5artul4detule5mau3len_u6leniu3lensu5ler_ule3riu4leroule3stul4f5luli9en3ulikhuli5neu7linjul4k3vul4lagul4lamul4legul8li_ul8ligul8lotullo3vulls4tull3svul2lu4ulo7vauls4poul4tegul4tekul4tesul4tilul4timul7torult3riul9ut_u7lutau9luteul7va_ul5vanul4varul4ve_ul4vegul4veiul4vesul4v3uulæ6raulæ5reulø3seuløy6eul5Ã¥6lu6mareu4mendume5rau6middumie6numi9nau4mintum4milum4misum7panum4pleum7se_um4skuum4sorumta8lumør3suna6daun5algu4n3ap6unde_un4dekun4del6unden4undetu9nei_u4nenou3nes_unev5nun4gemun2g1jun4g5lun2g1r1u2nif3unionuni4stun4k5lun7nakun5nesun4nivun4n3yu2n3osun3skrun5s4punst3oun1s2vun4talun4tamun4tasun3t2run4triu7nøyguor8dau3pea4uper3au4petaup3insup6nevupo9peup4pedup4plaup6preup6senup2s3kups4keups5prupÃ¥vi6ur3aftu2r1akura6lyu5raneu3ransu5rar_ur3arvu9ras_ur5aspur3attur4bodur4d5oure8alur5egguregi63ureinur3eleu4reliu7reomu4resuu4retau4reteur4e5vur4febur6feduri5neur3innur3insur3inturi6spur7k6jur8klaur4kleur6k5nurma7gur3neaurn1s2urom5suro7piur3oppuro3s4uro8taur4pelur4salur4sinur4skrur4speur5steur4stjurs3vaur2s1øur3teourts4tu6rug8ur7ugluru4keuru7knurumo7urun4gu7runkur4velu9saneus3angu9sar_u5sealu2s1eiu4seleus7erku6sesius3evaus3indus5innus7jagus5kafus7katus5kenus5klous7kruus5linu3sorius5sarus6satus4sjÃ¥us4skjus7smiuss7møus4stru4status3tavus3tedu5steius7tenust5ofuston8us5toru6streus4trius3troust7utus3ungusva8nusæ9leu7taggu9tal_ut3albut5aldu3talluta7nout6anvut3armut3artuta1s4u5tas_ut4ba_utbe8dut6by_4utdatut3eksu5temmu9temtu6tenau3tenku4tenuu6terøu4tetau3tettuteva9utfa7s8utgÃ¥eu4t5ifutiku9u4tiliu5tjen3utleiut7omsu3trivu3trolu3trosut9rød1ut1s44utseiut4tidut4tilut4tra3uttryutt1s2u6t5unu2t5utut4ø8sutøs7t1utø4vut5øyauve5diuve3inu7ves_uvet5øuvø9reva6ka_va7kanva5kerva8ki_vakt5rva3lanva4led4valelval3lava6l1ova4lunva4løyvam8puvand5svane5sva4netvan4grva8ni_1v4annva4nom5vanskvan3smvan3tivan9trva4ra_va6rakva4ralva4ramva4rapva4re_va4regva6remva4resvar8kavar5mavar4savar4skvar4svva4sa_va9set6vasidva6sieva4sifva4sikva4silva6sisvass5a4vastava3ta_vat7ravber5gvbo6davdu6er2ve1a2ve6ar_ve9dobvedom5veggs4ve3gle6vegre4vegruve4gutve4g5Ã¥1vei1evei3en4veillve4ke_ve4ked4vekeevek8lavek8leve4klivek4stvek5to6veld_8velds4veled6velei7velet4velis4velit6veliv5velocvel3sevel3smvel5spvel5st4velugvel5unve8na_4venemve5net4venevve4ninvent6avent4s4ventyve4nusve5ny_4venyave4nym2ve3o41v8er_ver5akver3al8verauverd7vve3re_4vered4vereg4verekve4rel4verepve5rerve9ri_veri3ave7rie4verikver3il5verknver5m6ve9ro_ve3rom2ves4ave5san4veset4veskive9slive1s2m6ve3so4vestr4vestu4vestøvesva74veteg4vetek6vetev2ve7tive4to_veto7eve4torvety8eve6vakve5vanve9varvev4smvev4spvfall4vga6livice5svid3s4vi5endvi4katvi5kedvik5ke3viks_vik5sa5viktivi2l1avi5la_vilt7o4vindl5vindu4vingnving3rvin3na6vinnh4vinntv2in2svi8pa_vi6pe_vis3abvis3akvi4seevi3senvi2s1kvis3omvis9paviss4pvis5tivi4takvi4t3ovit7ravit5revi4va_vi6vesvjet3tvje4tuvk4lervla6gavlei9ev5lesnv6lesvvlu9savmord4vmÃ¥8lavne7dev4nelev4neliv4nelov4nerovn1s4tvoks3kvok6s5vo9nalvo9narvon5devon5sh2v1o6pvo9ren2v1orgvors7kvos4sevo4tegvo4telvo4ve_vo6vi_3v6rakvregi3v3ringvrin5svrø3vev7salivs3eggv3s4elv5sen_vs3lanvs6letv6slikv6s7nav4s3nøvs7s6tvs4s5Ã¥v1s2t2vs3tilv2s5øyvsÃ¥7rev5teppvti8navva8lavvi5kevy7ensvæ9retvæ8ta_vø6re_v3ørkevø3se_4vÃ¥endvÃ¥8ka_vÃ¥4ke_vÃ¥4le_vÃ¥3renvÃ¥8sa_vÃ¥5tesweate7wi9ar_5wi6enwi9er_wi3renwyork3ya4ne_yan7slyb4bedybu6eryd4depy4deroy2d1isyd5remye6dreye4lenye6letyel4skyels3my7e6ney8enery4ensey3e6reye4relyer8sky4erstyf5le_yg4dalyg4dekyg4delyg4depyg2d1ryg2d1yygen5syg6gamygges4ygg3s2yg6g5Ã¥y6karay7kel_y3keliy7kelsy4keroy5ket_y9ketsy4kjarykk5niy3klubyk3lusy6koliy4komoy5kosay5kotiyk3varyla8gayl4danylde4syligh9yl4levyl5tety8luse3ylvenylæ7rey4meteym8sa_ym6ta_ym6te_ymÃ¥6layndes8yn5detyn7eldyner3gyne5s4ynesi8yn5gelyn4gemyn4g5øyn6k5vynn3s4yn4semyn9setyns7kiyn5skjyn4tapyn8tegynt5eiyn4tekyo4gatyo6gi_yor6day4penay6petay7pingyp5innyp7p6ayp4tokyra8kay7rarby4r5auy7realyre3iny5reisy3relsy5remsyre9ney4reroyre5scy4retay4retey4retoy7retøyr3innyris6pyr4keeyrke4sy3rommy5roskyr4sanyr7setyr6skjyr6skryr3stiyr6tekyr2t3ryr3trayrÃ¥8day4rÃ¥diy6rÃ¥styse4buyse5eiy4seray4sesjy4sesky4sesty6sesuy9set_y7skagysk9auys2k3lysk5øsy4s5orys5pisy5s4poys6sakys6samys4skuyss5peys4stays2s5vys4tatys3telys3teny2s3tiyst3opyte3iny4tekay4tekiy4tenay4tenoyte6royters6y2tes2y3t2hi6y5tilyt5jenyt9jeryt4meiyt4mesyt4re_yt5reryt4rikyt5t6ayttes6yva8lay4vesey6vesyyvi8sayvÃ¥5teza5k6hzania54z3ent6zistyz2z3elæk7je_ækkel6æ2le3dæ4lenaælsle9æ4r1akæ3raneæ4ransæ4rarbæ4r1atærbu5eæ8r7eiærei6eæ5rernære4slære4spæ4retaæ9retsærgen5æ4r3ilær3insær5is_ær5ne4æ2r7o6æroms4ær6selæ2r1ø4ærøy7eøbe4liød9de_ø4dedeø4delaø4deriø4deroød4redød4rekød4repøds7keøds4koøds4muød3undø4d5urø3e6reøf8la_øf8le_øfte5søg5re_øg4steøg4strø4keloø6keseø8keslø4kestø4keteø5kjasøk5keløk5ketøk4k5løk3lagøk3lanøk5oppø8krarøk8sa_øk6se_øk4sesøks1t6øks5tiøk5ur_øk5ureø4lediø6leluø4leroø6letaølke7søl6levøl6seløls6t4øl5s4vøl4varøl6vekøl8velømini6øm4medømmet6øm4peløm7s6pøm5sviømÃ¥8laø6n5alø3nes_ø9neseøn4nalønns3lønns3tøn9sa_øn5sakøn5samøn5se_øn3serøn3skjønst3rø4pedaø6pe5iø4penuø5peroø4peruø4peteø4petiøp5steøp4s5øø2r1afø2r1akø4ransøra8saøra6siø4r7auør7eddø6reduø6reinørek6lør3eksør5ektø4reruøre1s2ø5res_ø4reseø6resiø8resoø4restø4retaørge5sør4jetør4kesør6k5nør4kveørm9utør4n3uør4n5øø5r6okør4rekør4repør4rÃ¥tør4sakør6sesør5skiør4skrør4somør4speør3stoør9tarør4tekør6tifør1ø2søseri7øs7karøs4lagøs8tasøs6tegøst5oføst5ovøst3reø2s1ø2øt5asaø6tegeø4teniø3ter_øte3ruø2te1søte7snø4tetaøt3s4pøt7s6åøtt5avøtt5raøtt7riøtt1s2øt4turøug8laøv5ansøve5inøve5noøves4tøve3teøv5reb7øyan_øy4dekøy4eleøy4erføy3ke_øy4ledøy4legøy3pe_øy4peløy4ra_øyri6vøy4spiøy4teiøy4teløy4veiÃ¥ak6taÃ¥5aranÃ¥au4reÃ¥bo9taÃ¥4dereÃ¥4deriÃ¥6deroÃ¥d7sloÃ¥d3slååd1s2nÃ¥d7spuÃ¥em8naÃ¥fø5reÃ¥g7aldÃ¥g5rinÃ¥4karbÃ¥4kenaÃ¥4kereÃ¥4keslÃ¥5keviÃ¥k7lauÃ¥k3oppÃ¥k5røkÃ¥5k8ulÃ¥6larbÃ¥l5au8Ã¥4leniÃ¥4leteÃ¥l4sanÃ¥l4sekÃ¥l4serÃ¥l4stiÃ¥lti5dÃ¥2l1øyÃ¥løy4eÃ¥l5Ã¥6kÃ¥m4li_Ã¥nd4saÃ¥nd4seÃ¥nd4soÃ¥neds5Ã¥ne5i6Ã¥nely6Ã¥5nes_Ã¥4netrÃ¥pen3sÃ¥6peroÃ¥p4ne_Ã¥7raraÃ¥4restÃ¥r4le_Ã¥rs5afÃ¥rs3elÃ¥r3semÃ¥rs3koÃ¥r8skuÃ¥r3solÃ¥rs3taÃ¥r7steÃ¥rs3tiÃ¥r7stoÃ¥r5stuÃ¥r5u4kÃ¥s5eidÃ¥se3s2Ã¥4sesmÃ¥4sesoÃ¥se5taÃ¥s5ka_Ã¥s7kopÃ¥7steiÃ¥taks5Ã¥ta9laÃ¥tale3Ã¥4tangÃ¥4tarkÃ¥2t1eiÃ¥ti7daÃ¥t4tedÃ¥t4triÃ¥t6t5æå2ve7dÃ¥4veniÃ¥9ver_", + 7: "_ab6s5t_ac6tin_adel4s_ad8la__ad6le__af5f6u_ag6na__ag6ne__ak6ka__ak6ke__ak6ne__ak8sa__ak4se__ak4te__akte4r_al4ge__al6ka__al4ke__al4kom_al4la__al4le__al5leg_all5s6_al4ma__al8me__al6s7k_al4ta__al5tar_al4te__al6ve__am6ma__am4me__an4da__an4de__an4d5ø_an4ga__an4ge__ange4s_an4ja__an4ka__an4ke__an4la__an4na__an7nal_an4ne__an4sa__an4se__an4ta__an4te__an5tem_an5tep_an4ti__an6tin_an4tis_an4tiv_ap8lan_ar6de__are4o7_ar4ge__ar5ges_ar8ka__arlan9_ar4me__ar7mea_ar4na__ar4ne__ar5nes_ar6ra__ar6r7u_ar6ta__ar4te__ar6va__ar4ve__ar4ved_ar4ver_as4ke__as4le__as6pa__ast5ru_at4le__at4na__au4ka__au8le__au6sa__au6se__av7i6d_av4la__av4le__ba6la__ba4le__ba4ne__ba4re__ba4ri__ba8te__be4de__bede4n_be8di__be3e4d_be6ke__be4la__be9nar_be4ne__be6ra__be6re__be4res_be8ri__be7ska_be4ta__be6te__be5t4v_bi6de__bi4le__bilet5_bi6t3r_ble4k3_bling5_bo8de__bo4na__bor6t5_bort6e_bort9r_bu6da__bu3d6r_bus6sy_by6de__by8ta__bø6k5a_bø8nen_bø8ner_ca4en__car4s5_da4ge__da4le__dags6e_da4ne__deka9r_deko7d_de4le__del5s6_de4mi__demo7e_den5sl_de4re__de4ri__de6s5m_de4sto_devi5s_di5e4l_di4et__di9f6t_di4ne__di8s3t_do6re__drau4m_du4en__du4ge__du4se__dy4re__dø6la__dø7r4a_dø7r4e_dø4ve__dÃ¥5ren_dÃ¥7ret_ed4le__efta5s_ef6ter_eg8de__eg6ga__eg4ge__eg4gel_eg8la__eg4le__eg6na__eg4ne__ego7t8_eg8se__ei5den_ei4ga__ei7ger_ei4ke__ei8ma__ei8me__ein7as_ei9rar_ei5res_ek4le__ek6ne__ek8sa__ek8se__eks6pi_eks3t4_ek4te__el8da__el4de__el4g5r_eli5ne_els4kl_el6ta__el6te__el6veg_em4ma__em8me__em6na__en4da__en4de__en4ga__en6gav_en4ge__en6g5r_en4ke__en5og5_en4se__en6te__ent8re_er4g5r_er4la__er4le__er6ma__er4me__er4mek_er4na__er6ta__er4te__es9ast_es8ka__es4ke__es8la__es8le__es6pa__es8sa__es4se__es6te__es7tet_et8la__et8le__et4ne__et8sa__et5s4e_et6se__et1te4_et6ter_ev4je__ev4ne__fag3s4_fa4ne__feil5i_fel4ta_fer8ro_fe8st5_fi4le__fo4bi__form5s_fu6ge__fu8se__fø8rel_ga4le__ga8li__ga4ne__gas5ta_ga4ve__ga9vee_ge6ni5_gift5s_gi8v3a_glø9se_gnÃ¥7la_go5des_grei4e_grus5s_gu4de__gud3v4_gu4lat_gu4tu__gÃ¥s4e5_hai5s6_ha6ka__ha8ma__he4er__hen3i2_hes4s5_het6s5_he5t6e_hi6re__ho4re__ho5ren_ho7ret_ho8ta__ho8va__hy6ra__hy4re__hø4ve__hÃ¥8en__ifø5re_ig8la__ig4le__ik8te__il6d3r_il6de__il6je__il6ke__il4le__il4te__in8ga__in4ge__in6gri_in6ka__in4ne__in5n6e_in4n3i_in7tes_io4nom_ir8ra__ir6re__is6lam_is4le__is4let_is4me__is8na__is8ne__is6sa__is4se__is8te__i5sted_i5stem_i6s7tj_i6s7tr_is8ut__i4var__i4ver__i4vere_iv8ra__iv6re__ja4de__ja8se__ja4va__jo8en__jo4se__ju4li3_jø4dep_ka6la__ka6li__ka4ne__ka4p3r_ka4ra__ka6re__ka5rin_ka4te__ka5t6h_ka6va__ka4ve__ki4se__ki8va__ki6ve__kjek7l_kjønn4_kli5ne_klo9va_kly7sa_kna7se_ko6da__ko8le__ko6pe__ko4se__ko6ta__ko4te__ko6ve__ku5f4l_ku8ra__ku4re__ku8ta__ku8te__kve9ka_kve5ke_ky8la__ky4le__ky6te__la4da__la4de__la4ge__la5ger_la4ma__la6ta__la4te__la4ve__le4da__le4de__le4ge__le4gel_le8gi__lei4ve_le4ke__le4k5r_le4ne__le7s6a_le4se__le4sek_le4ses_le4s5p_le4va__le4ve__le4ves_li4de__li5ene_lik5k6_li4re__li4se__li4ta__li4te__li4ve__lo6ge__lo8gi__lo6g5r_lo8sa__lo4se__lo4ve__lu4pe__lu6ra__lu4re__lu6se__lu4ta__lu9tas_ly4de__ly4se__ly5s6e_lys5s6_ly8str_ly4te__ly4ve__lø8de__lø6en__lø8ne__lø6pa__lø4pe__lÃ¥6re__lÃ¥4te__ma4ge__ma4ke__makt5s_ma4le__ma4li__ma4na__ma4ne__ma4ni__ma4ra__ma4re__ma4ri__ma4sa__ma6t8h_me6d4i_me6d5r_mei5et_me6la__me4l5ø_me4ne__mes5ti_me4tri_mi4le__mi4me__mi4ni__mi4nik_min4k3_mo4na__mo8ne__mon4st_mo4re__mo4se__mo4tek_mo4ter_mu8ge__mu6le__mul5es_mu5r8e_my4ke__mø4re__mø5res_mÃ¥6la__na6ge__na8ke__na4sa__nat6tr_ne4de__ne4den_ne4d5i_ne4d3r_ned3s4_ne8pa__ne6pe__ni4na__ni4pa__ni6pe__ni6se__no6de__no4me__no8mi__no8si__no4va__ny8sa__ny6se__ny4te__næ4re__nø4re__nÃ¥4de__nÃ¥6le__od4da__od4de__od8la__od8le__offsi6_of4te__of5teb_ok8ka__ok4se__ol4ga__ol8le__om4ar__om6bo__om4e6n_om4gÃ¥__on4de__on5des_on8ne__opp7el_opp5s6_or4de__or4del_ord5s4_or6ka__or4ke__or6me__or4re__os4te__ot7t8a_ot4ta__ot4te__ot4tes_ot4to__pa8la__pa4le__pa5n6e_pa5n6i_pa6re__pe4ke__pel4sj_pe4ne__pe8sa__pese5t_pi6le__plø7se_po8la__po4le__po4log_po2p2e_po3p2u_po6re__po4res_po8ta__po6tek_pøn9s6_ra6da__ra4ga__ra4ge__ra4ja__ra4ne__ra6pa__ra6pe__ra4re__ra6sa__ra6va__ra4ve__re6da__re4de__rege4l_re4gi__rei7de_re4ins_re6ka__re4ke__re8kle_re4kli_re8le__re4ma__re4na__re4ne__ren6sk_re4ve__re4ves_rie5ne_ri6ka__ri4me__ri4pa__ri4pe__ri4p5o_ri4sa__ri4se__ris5ko_ri4s3ø_ri4ta__ri6te__ri6va__ri4ve__ro4de__ro8ke__ro4ma__ro9par_ro4pe__ro9sar_ro4se__ro4sed_ro4ta__ro4te__ro8ve__ru8ga__ru4ge__rug9le_ru4na__ru4ne__runes6_ru4se__ru8va__ru4ve__rye7ne_ry6ke__rød7s4_rø8le__rø4re__rø8va__rø4ve__rÃ¥8da__rÃ¥4de__rÃ¥8er__rÃ¥6ka__rÃ¥4ke__rÃ¥3k4l_rÃ¥6na__rÃ¥8sa__sa4ge__sa4la__sa4le__sa4me__sa4mer_san6d7_se4k5l_sel4v5_se6na__se4ne__se4ra__se4te__si6ga__si4ge__si8la__si4le__si4ne__si4ra__si5str_si4ve__ska7ka_ska5ke_skei5d_skog5u_sku6m5_skÃ¥5ra_slu9ka_slø5se_smas5k_smÃ¥7k6_smÃ¥5t4_smÃ¥t5t_somma4_sop4pa_sor4t5_so4ta__spa5ra_spi9la_sta9ka_sta5li_stat4s_sted4s_stem4m_sti7me_sto5ne_sto6ra_stu9va_sva5la_sva5re_svar5s_sver8n_sy5d6e_sy6na__sy4ne__sy5ter_sø4ke__søl6v5_søy6en_sÃ¥5pen_ta8ke__tak5sk_ta4la__ta4le__ta4les_tal4li_tan5de_ta4p5r_ta4ra__ta4re__tei9er_te8ke__te4ma__te8ne__te4se__te4sta_te4str_tid6s3_ti4de__ti4g3r_ti4med_ti4na__ti4ne__ti4p5l_to5arm_to6en__to4er__to6et__to6le__to6na__to4ra__to4re__to6reb_to5rye_to4str_to8te__to4ve__tre3sp_tu4en__tu4ne__tu6ra__tu4re__tu8ve__ty6da__ty4de__ty8re__tyr8s9_ty5ter_tæ4re__tø6ve__tø9ver_tø5vet_tÃ¥5ker_tÃ¥4le__tÃ¥5ren_tÃ¥7ret_u6berg_ug6la__ulen4d_u8lene_ul4ke__ul4la__ul8le__ul8ma__ul4me__ul4ne__ul4v5i_un4ge__un4se__u6rane_u4ret__u6rets_ur4ne__ur4te__ur6tet_u7stek_u5stel_ut5age_u4ten__ut5esk_ut4ne__ut3o6v_ut6rer_ut6rov_ut6se__ut4si__va4da__va4de__va4ke__va6les_valg5s_va4ne__van4n5_vari4e_var5sk_ve8en__ve4ga__ve6ge__ve4g3i_veg3s4_vei3g4_vei4ta_ve4l3e_ve4ne__ve4net_ve4ra__ve4ras_ve6re__vermo9_vers4t_ve8te__ve4ve__vi4da__vi6de__vi4ka__vi6ma__vi8me__ving7s_vi4sa__vi4se__vi4ta__vi4te__vok4s3_vo6ta__vye5ne_væ4re__yn8da__yn4de__yn6ge__yn8ka__yn6ke__yp8pa__yp4pe__yr8ja__yr8je__yr4ke__yrkes5_yt9ren_yt6te__ære4st_æt4te__øg4le__øk4te__øm4me__øres8t_ør8na__ør4ne__ør6ski_ørt9an_ør8te__øve4r5_øv4re__øy6de__øy5ene_øy8rer_øy4str_Ã¥l8ut__Ã¥n8da__Ã¥n4de__Ã¥nd6s5_Ã¥t4te_abe4leiabel5t4abe9na_abes9kaab9lara5aborteade5i6sa4d5elvaderle7adi4eneadva5reaes8ke_a6f5innafo7ra_afo7r8eaga6ve_a7gelen3a4gentage4r3aage6rekag6lesaag4sambags4angag3s4eiags4kulags3t2vagÃ¥8ve_ai4n5o4aka4t5rake5l4iake4rekakk6andak4k5isak6k5riakra8saakregi4ak7s6idak5stolakt5allak6tansak5temealag8raal3a4mealan5gra5laren3a4larmal3a4sialeie6na9l8eikal5e4mua4l3enhale4posa4lereda4le5roa4le3teali5na_a4l3inda4l3insalj5endalj5ø6val9keraalla4gaall5artal5len_alle3s4al4lest5alli5ealli9neal4lo3mall4senall4stial6løs_al4løseal8løstalo6rital9skapals6teral7temaal4t3opa4l5u4kalul8laalu8re_alv5aksal5v6eral9ves_alvi8se3a4matøamen4s3ame4rama4meret3a4meri4amerinamis4kuam4leseam6lestam4pareamp7innam4p4ream7s6kuam4s3tram4s5veamti5daanda5taand4sela4n5elvan4g9raan4gre_an6gresan4gretan4g3ryangst5yang5svaang6søyan4kanaan6k5Ã¥6anland6anlø9paann5ansan6nemean4ninnann4seiann4sidann5staann4s3uano6debanri7keans5aftansa7kaan4sentans5indans5insans4k3lans6kunan4s3pi6anstarans4te46ans6tianta8laan4tansant5emi5antennan4teslanti7klant5ordant5rabant7romant5rygantus4taon8de_api7r6ea5p6las3ap3par4appar_6appareapp7eskap5plasa3p8ølsa4ranora4r5assara5te_arbo8daar6deliard5staareba4ra6r5ektar7eleka4r6elia5remo_a6r5enga6rerelares8kaa7reta_ar7e6vaarg5stjaria7nearins9karise4aa4ristoar4ke5sark6steark4strark7vegarla4gaar4mediar6metrar4minfarmÃ¥6laaro8de_a4r1o4rarp5retar7reskarri8e7arrÃ¥6daarsa6kaars5ansars5kamar5skarars5kesars7krears4veiarta4laar7tele8artetsart4ha_art4hasar4tika6ar4timar6trinart6s5tar6vetearvi8saarø8ve_arÃ¥8de_a6seneta6sjettas5ketias6kuleask9u8ta5s4lagasla8gaass5aldass5altas4servas6sifras5singas7sos_as4stanass5trua4statuast5renast5ø4va5taeneata8ka_ata8la_ata9rara6t7arvate5k8ea5tene_a6terata8tereka4terila4t3ettatik6kaati5neaati4repati8sta5atlantats6kul4at5te_at5tensatt5iseatt7o6pat4trafat4t3reat6trinatt3s6katt5s8lat2t3ø2at5Ã¥4seau6e5taau5keli1auk7s6aum5s6kaum7s4tausti6saus6tonau6striau2s5ø4au3t4rea4v3anda4v5anla2ve3d2a5vede_a5velegave7rasa6vereia4v5intavi5sa_3a6viseavlø5seavsko7gavta9kaa6v7Ã¥6lay7ane_ba5den_ba7densba5kan7bakars9ba9ket_bak9ettbak5strbal4lagbal4lanbal4ledbal4legbal4leibal4levbal4ligbal6lovball5s6ban6kapban4korban2k3ubaret5tbar5skrba4serubas6sakbas4sanbassis5bass6trb4b5arbbbel6t3bbelte4b9bene_b4b5erfb7beskab6betenb4b5innbedi9e8bed5redbedy9rabefa5rebehers7bek6kelbekke5rbek4kesbe4l3abbela9gabel5eiebel5eigbel5einbeli9nabel5letbel5s4pbel7s4tbel4tagbel4t3øbelæ5rebelÃ¥7nebe4nestben5s4iben5skj8berestbere5teber5gesber4g3Ã¥beri5keberu9sabes6k5nbes6selbes6tesbeto5nebe6trarbe6tre_be4t3ribeva5rebilet5rbil5legbi4nansbin4golbi7ris_bir4kenbi5s4labis4p5ibi5s6tabis4tilbis5trublan9dablan5keb8lararblei5erble4k3able5kesble7r6ablæ5re_blÃ¥5se_bob5by_bob9byebo4k3etbo6k5ribol5eiebol5s4pbom4belbon5atobo4retebor6teibor4tesbort5s6bred5spbret7tebre4vinbruk4s3bru7na_bru5nesbru7renbrÃ¥5te_bud5d6hbund4s3bun8ge_bus4h5ebus6sekbus4selbus6setbæ6rar_bæ5rer_bæ5rerebæ5res_bæ5ret_bæ4r5isbøn6nesbør4s5kbøy4enebÃ¥4s3tebÃ¥6s7tica6priscar4te_cel4lescel4levce5nes_ck5e4t3clai4r5co4la5rco6n5os6d5adeldak4se_4daktig7d6al5jdame5t6dan5nebdan4seldard3s4dar5os_dar4ta_dar6va_dar8ve_4dasjef4da4taldaud7s8dba8le_dba4ne_dbe8ta_dbe6te_dbling7dbo6en_d4d5armdde4lapdde4l5oddel5svdd4saladd4skapdds5tabdd3s4te5debon_6d6e5ge5dehavsdei4enedei8ge_5deigendei4g5rdek4kandek4kelde6k6kv2de5k6rdeks7tideks6tr6delagede6lansdel5eie4de4lekde5lele4d5elemde4lest6delinjdel5intdel4lapdel6leidel4lekdel6ligdelses7del4spodem8na_demo5noden4sin4dentif4dentitdent5s8de6rantde4rarede4rarkdera5te6deresider5est4derettde4rinæde5rose6de7rotder5s6ndes5ers4des4le5deste_des6tem4destrÃ¥de4s3tÃ¥6detekk4di5enddig8la_dig6le_4digrendig5retdil4les4d5ingkdin8g9Ã¥dis6kamdis6k7ldi4sk6odis5ko_dis7koedis7tikdit4tetdjer5vedju8la_6djupardka8ra_dku4le_dla6te_d7legardlem4std4lenetdly8se_dlø8pa_dme6la_dmø4re_dmÃ¥6la_dno8de_dog6med4dokinedok6kan4dolinjdom6s5idom4s3kdors7ke6do7s6ldra5gendra6kes5d6rangd6rarardra6retd9ra8sadrau7ma5dreassd5rede_d5rederdre7d6r9drege_drei5end7religdretts55drevetdri8ka_drik7s6drit7trdro6pa_dro8ta_drø6re_drÃ¥4de_dsa8la_d4s3alfd4s3engds5e4stdse4te_d4s3jend4s3kands5kjendsmÃ¥6lad7somstd4s3tald3s8tard5s4tatd8s9te_ds9teikd3s4tigd3s4tikdstu8nad5stundd6s7uskd3s4vetdta6la_dta4le_dte4ma_dterle7dte4se_d5t4ragdun7stadva6la_dva6leldva4ne_dve8ve_dynk6s5dy5rebadøv8le_eak6se_eal8le_e6a5netear6ka_ear8ma_ear4ta_e5a4telea4t3eteau6ge_eau8ra_eau8se_eav8le_eba4ne_ebesku5ebu5ernedag4s5ed7delaed5e6geed5eg4nede8le_e8d5engede4s5pe6d5ettedi4eneedi4s5ke5drev_e6d5ryged3s4lae3d6ø1reer4me_ees6ke_eev4ne_efal6s7efar6s5e5f4ilmefi7renefo8bi_ega4ve_ege4leteg8g9ute3g6lade3g4ledeg7lesae5g4lite9g8nagegrans5egÃ¥4ve_e4h5ereehy6re_ei3d8arei6kerieil5eggei4me5seim9ettei4n3alei4nansein5antei7nare4e3indu6ei6nite5inkareinsi9dein4s3le4inspiein7stoei2n1u4ei3s4haei6s3kjei3s4peei4teraei4tereei6t7utejo8en_ekalie6ekam6s5eka6ra_ek5e4tae5k6hovekke7leekk9iste8klanee3k4nokekords8eko6te_e3k4rede5kretse5k4revek3s4akek4stil5ek3tepek6testek4t3raeku4le_ek6var_e4k5vikeky6te_e6l5argel7artiela4te_elbo8daeld4rereld5sleele7gereleg8nae5lemat5elemene5lemete4l5enhe4lentuele8ra_e7lerete6l7erge6lesku5e8lev_ele4vak6e5levnel5gelee4l3indelin5ese4linspeli6o5seli8ta_eli4tet6e5littel6k5alel4ke5sel4keteel5l6arell5eieel3le4sel6leteel4lisjell5s4lel5l4urelo6ka_e4l5ovnels5eieel4skalels4tenel4teroel4t3opelt5rope4lu4heelu8pe_el4ve3del6vereely8et_elæ5rese4l3ø4re6l3øynema4ge_ema4ke_em5aktiema6le_5e4maljema4ni_em7ar8me6masku5emballembe6r5eme5triemi5erte4minoremo5nole2m3o4vem6periem4s5juemta8laemÃ¥9lane6n7ange4n3antenbe9naen5demien4deslen4d3roendør5eeneg8gaene7venen4gerieng4leseng3s4eengs4tie4nierken4keraen4keriennes6tenn5stae6n5orden4seli5ensemben4ses4ensle7gens6levens4terens7unden9timaen4to4rent5orient5rabent5renen4t3rÃ¥eod8de_eon8de_eori5e6epi6ka_ep5leneeple9s6ep4ses4ep6s5lue4r3abbera8da_era6na_e5ra7neer7anlier5ape_er5aperer5appee5rasare4rasjee4r3asse4ratekera7torerbi9tierbo8daerden8serd4skjerd4stoere6ke_e4r3eksere4lite6rellie4r3else4r3enge4r5enhe3re4o7e4r3erfe4r3etaeretts5e4r3evn5erfarierg5elverg5reterg5skoeri4kate5riorie5rist_e7ristae5risteer7jes_er4kesaer4keseer4kete4er5k4oer5nedeer4neroer4neste7ro6pae5ropene7ro4saerrie9nersa8kaers4ka_ers5korers6leders5terer7stever4s5Ã¥rer4tareerti4moert5role4r3ungervele8erye7nee9r4æree5r6ønner7øyskerÃ¥8de_er3Ã¥4seer7Ã¥ta9esa6la_esa9mete4s3antes5arabes3ei4des5eie_esel5s4e4s3erkese5tasese4te_esh9ar_es4h5ere7s8hopesi5erte4s3inse4skinge6skjønesku5etes7let_es7letse4s5lokes4makeesnæ5ree4s3oriespa9rae4s4pedes5permes4p5lees4setees4s3jaess4letes4stoless5toress9tuaess5tuees7taktes9talae8stanee5stanses5tante5startes5tatoe4s3taue7stav_est5avse6s5te_est5eieest5eige5stelles5telse4stemae6stemee4stemoes5tempe7stenges5tenkeste3s4es4testes4tienes4tikkes3t6one3s4toles6toneest5ordest5ories5trakest5reres5tribe5strykest7Ã¥seesva5ree5s4veke5svikteta4la_4e5talletal4s7eta4nen3etappe4e5tatiete4ma_e5teranetning4et5oppde5t4rade7t6rake4t3riset9sar_ett5altet4tanket6teltet4tenket4tennettera45etterk5etterrett5eskettian8ett4skiett4stieun4ge_eur6ne_ev5aktievann4se4varare4v5arkeve5d6aeve5delevei6s55eventyevi5ereevi5ertevi4se_evn5a4kevta8laeyr4ke_eør6na_évo8re_è4renerfag5eti6f5agrofakse9tfal6kesfal4k3lfan4tryfar4gelfar4gesfar6skjfar4velfa4serufa3t6refba4ne_fe3d4rifei5er_feig4defeil5esfei7terfek6tesfekt5evfeli7e6felles5fel9ta_fel4tekfel4trafem4tidfer4damfe7rer_fer5ersfers7kefes9t6ifes8t3rfes9tumfe6st9øfett7s6f2f3a2gf6ferdiffe4rerffla8gafibi6enfi7e6refikali7fik6k5nfil6lelfil4lesfilt6refil4trifin5artfinn5ei6finnsafi9renefi5res_fiser6sfis7kalfis4k3l6fiskolfjer5neflit9t8flo6r5oflos6klfol6k5vfol9lerfo3n4idfor7drofor5d6ufor7e6nfor5entfor5essfo4r9inforlo7vformo9rfor3s4mfor9stefor5t6efor7t6ifor3t4vfor3u4lfra4m5efranko5fran7sefra5se_fra7sepfrasi8efra7v6rfreds5tfre8s9v6f5ridifri4erffris6kafri5s4pf2s3tabf6s5tanfta8la_f4t3enhf4terinf4t5ettf2t5i4sfts5altfts5ersfts5ervft2skafft2s1ø4ftta8kafug9le_ful9larful9le_ful4lenful4lerful7lesfyr8ke_fø5des_fø7resvfø8retefør6tingak8ta_gal4les6gandengan4g5jga6r5akgar4dekgar6ta_gar8te_gas8ka_gas8ke_gas6selgas5sengas7sergas9triga5tensgat6tapgau5la_6ga4veiga4verigba4ne_g4de5regeak8tagea7ren9gedom_7gedoma9gedome6gedomsgei8s7pgei6st5gei4t3r4g3elemge5len_ge5lensgel5ett6geligggelsk7lge7n6amgends6tgen5erfgen5etigen8ga_ge4ni6ngen6sungeomet4ge6rene6gerese4gerettger4i5dgeri8ka6gerikegerle9g4gerom_4geromm6gerop_4gerope5gesen_5gesens4ge5sjage5spra5geste_ges8ti_gesÃ¥5re6getat_6getate2ge7v8agevi6sagev6ne_g6gereigge4ring6ge5svg4g5i4mggra6dag4g5u4rght5ene4gimessgi4metrgi3s4pagi5s4prgist5ragi5strégjen5s8gje4s3pgla8ge_g5last_gleg8gag9lene_g9lenesgle6se_g4le5skg6le7smgli4delgli7e6n5g6lomegloria7glo5stegly4se_gmu8le_gna5lemgne8se_gnings5g6ni5skgnist9rgok4se_gol6vargore8a7gori5e6graf5t6gran5togrant4rgra9se_gra9setgra8te_grati4sgra7visgravta84g5redsgreie5n6g3reisgrep4s36g5rest6g5rytmgrø5de_grÃ¥5te_g5salg_g5salgeg3s6ankgse9la_gsel4stg5siderg5skallg4skapag5skapeg4skapig5skiltg7s6kjæg5skrengsla6gags6lerigsl9ut_gs5pileg5stanggs4tasjg7s4tatg5ste4egs4tellgs5temag7stemtgs4tereg5s4ti_g3s4tieg3s4tigg5stol_g7stolag5stolegs5tollgs4trapg5straugst5reagst5reigs6tretg5s6trÃ¥gs4vanegta8ka_gta8ke_gta6la_gta4le_gte6ke_gte6ma_gti8de_gtu8en_4g5u4bÃ¥guid5argul8ke_gur6ne_gut4takgut4tesgva4ke_gvedli6ha7keraha4ke5shald4s7hal6leihal4s3khal4s3than6d5rhan6nelhan5nenhar5trehar4trihas6p7lhau5ke_hau4t5rha5van5hba4ne_hef7teshek4sekhel4se7helses4hel5stehel4teshem3s8khera9daher6reiher6rether5un4hes5pelhes5penhes9perhes4teshet4s5phev9na_hi6n7anhin4neshins9kehjorte5hju7l8eho5der_hog6strhove5rehun6deshu4s3edhus4trehu6s5u6hvi5l6ihvor5i6hye5ne_hye9neshyg5gelhyldes7hyr4deshøy7rariak8se_ial5einial5etiian5aldi5a4ne_iard5s4i7arskaiaty6raiba4ne_ibi5er_ib4le5siby9ar_ick7eteiddel5uid5e4geiden5svi6derapi7dereni9deres4i3drevid4s5tui7e6limielø8paien4s5vien4t3rif4tereig3e4taigje9vaig5s4kaig3s4krig3s4paig5stekig7stelig5stemigs4traig5s4vaiho7le_ihu5le_i5kabeli4kareii9kelegi5kere_ike4r5oi2ke1s2ik6kanaikk5arvikk5attik4keruik8keskik4kestik4kjøpikk5lagikk5ord4ik2ku2ikk5undiko5na_i5k6ordik5robeik5speliku6le_i6k7u6tilas5t6il4dekoil4deteild3s4tile8areile4ge_i4l3egni4le5skile6triilet5teilfø5reili5ersi4l3indi4l3i4ril5jeseilk4o6sillei9eil6leskilli9gail4lo5mills5kÃ¥ilm5e4vi4l1o4rilta9lai6m5akkimor8da5imperiims4k5lim5s4meimta8laina4leti4n5assind5s4tine8areine8pe_i7nere_i5nereni9neresine4rikines8kaines4stin5gebj5ingeniin5geriin4geruing5jening5reping7risings5omini9ar_i4nises5initiain4keroin4k3lainla8gain4nerøin4nesiinnes6tinnfa9s5innhalin4n5ominn9seninn9steinn7svein4n5u4in5skatinske4tins6korins4k3vinsle7gin3s2løin5s4main5s4pl5instalin4stinin5stra5instruinta8la5in7tegint5essinti5meintran4int4rerin5tresi8n9ul8in9u8teio4dereiol7jenio4nansio4narrio4r5inipa4ti_ip4peliipp6lanipp4s3ti9r6andire6r5airi8ka_ir5instir5ker_irke3s6ir4kestir4mastiru7sa_i4s3angi4s3ansise5erni4sektei6s7eldis4e5liisensi6iset8jeisha7neis4h5inishø9veisi6enei4s3indisk5elsiske5s4is6k5leis7kogri5skulaisl9øy_is6s7kjis9s4ærista9leis5tanei4s5tarist5avbist7aviist5ektistel5lis5ten_is5teneis5ter_is5ternis6terøis5tilbi5streri4stresi6stretita4l3aite8ke_i6t7elgiter6s5i4te5ruite6se_itet6s5iti6er_i4tikami4ti3kvi4tiseni4tiskoi4ti3spiti5stritnes4sitri8mait7ro6sit4s3eiitta9lait6tannit4t5atit4tenkitte5s4itt5ettitt5skri4v3aksiva6la_i4v5ankivar5s6i4v5assiv5eg6nive5rasi6vereti4vestiiyr8ke_iÃ¥t4te_jak4keljakk5s4ja6r5apjarn3s4jar5te_jau4ere6je4dekje4f3etjef5lagje4f3rejef6s5ijef3t4rjeg6lesjek4tanjek6tesjekt5evjek4t3rjekts4tje6legrje7lelejel6lagjel5lenjel7va_jem4stije7ne8sjen5gedjeng5s4je2n1y4jer4dep6jerennje6rinæjer4kesjer6k5ljern5sljes4kiljes4teaje6stimje4t3agjeta6kaje9tar_je7taraje9tareje4t3rujett5s6je7varkjev7na_jok9kerjokk9o8jon6stijon4strjor6dekjor4d3ojords4ljor5tetjo5steiju4e5rejuk9sarju8l9eijul7innju6p5Ã¥6jæ9res_jøl6verjør4keljør4teljø6t7avjøt5eta5ka4an46kadaleka6del_ka4deri6k5aksjka6lantkal7s6vkal4ves4kameri4kammelkam4p3ikan6da_kan6t9r5kapellkap4s3t4karbei6k3arki6k5arktkar5peska5se4ikas6sadkas4sak4k3assi8kas5tokas2t3r1ka7t6aka4t5op4ka1t4rkat4telkatte5skat4tilkat4trikav8l9u5kedan_9kedant7kedes_ke3l4akke6lanskel5eigkel7eik6keleiskel3e4l4k5elem4keleng4ke5lep7k6eletkeli8e8keli9en4kelign4kelinjkel5intke4lise6kelov_4kelovekelsva9kel9ukakel5ukeke4l3ur6ke5l4Ã¥kelÃ¥7re4kend5r6kenett4ke5niv4k5enseken5t6r4k3entuker5antkerei4d4kereir6kereis4ke5rem6kerene4kerenn4keress4kerest4keresu5keret_5kereta7kerets6kerik_4kerike6keriktke4rineke4rinæ4ke3rosker3t4v9kesam_4k5eskekes8ke_kes5ped5kespot5ke4spu4ke3sta5keste_kes6tem4kestrike4s5unketa6ka5ketalsket8teskev4je_kev6ne_kevæ8rakhjul8skikk8s9kin9andki4narkki5nas_kin5ingkinn4spki5stavkjap5pe6k7jarnkje7f6r5kjemaskje6t5rkju5le_kju5lenk8kand_k4k5angk4k7artkke6leikkel3t4kke4lukkkel5unkke6nank4kereik4kerelk4kerigk4keritk5kesaukke3s4lk5ketetkk5jentkko6ligkk3s4eikks5takkks7tepkk8s7vakk5s4Ã¥7k2k1u6t4k5lagtkla9ke_kla4melkleby7t3k4leddkle4debkle4des5k6lem_7k4lenok6lerikkle5snokle5stikles7s81k2lim23k4lini3k4lyngklæ5reskne4b3lkne8se_knippe6kog9ger4komisbko4misekon6s7vkon6tonko5perskop5perkor6da_kor4d3okor4salkor4s5lkor6strkor5teskor6topkor4t5rkort5s4ko6rume5kosele2ko1s2pkost7askots5trkotts5tkover7e1kov4s3kre4kli4k3renn4k3ress6k7retnkrig6s5krik6ka3k6rinsk4roforkro4nomkro9t8ekroten9krutt5ik4s3antk6s3arkkse5levksen5tok5serolk4ses6kk4se3smkses4spkses4stkse6te_k4s3insk6s3kalksko7naksko5nek8s7lugkslø8vak5s4makks5tantk7s8vakkste4dakst6rank6strenk6strerk5s4vinksy8s7mksø4ke_k4t3akskta6la_k4t3anakta9na_k4t3annk4t3arrk4t3artk6t7atlk6t3avlkt5e4gek4t3enhkter5s6kt5eskekt5estik4t3inskt7i6tekt5ord_kt4s5erkts5krakt5sprekts6tonkts5topktu9er_kue4r5akun4ge_ku7r6opkuro8pakur4s3tkur4v3ikus5a6kku4s5elku7s6pe4ku5te_5k6vartkvei9se4k3verdkverns8kvi4enekyr8ke_kys4telkøy7ar_2l3abonladi9e8lag5san4l3anallan6daslan6deblan6gellan4gemlang3s46l5ansilap5senlap5s4i6l7arab4l7areal6aren_4larena4l3arkilar6ta_lar7vetlas6saklas6samlas6satlas6sellat5angla4tenolate5s4lat7ra_lat9ranlat5rarlat4trala4v5allav5innlba5ke_lba4ne_lbe8re_lda6t5olda6t5yl4derekl6derikl6destrl8d5oksld7regnld5rer_l8dres_lds6leglds4letld5s4omle4gerale4gerole4geta2le1g2l6lehamr6lehavel6ei8etlei4gerlei4getleig4h5leig6naleig8nelei6r7u4l3ekso4l3elsklelø6palem9pedlem5peslem4s5ølen9dan6lendenl6endre4lendrilen4g5r4lensemlen5seslen4stalen4tamle8pla_4leraba4lereso4leresule6rieile7rina4l5ernæ6lerope4le3rotle7singles5innle7skaple4s3kj6leskol6lespal9lesta_7lestalle5stedle5stegle5stelle4stim4lestrø4lestyrle5s6vileta8kal5e4tas6letenk6le7teple5ter_l5e4tikle5t4rilet6tealett3s4le6valu6levern4le4vevl6f3nullga8le_l4g5altl4g3analga4ve_lge4raplger5unl6ge7splgsle9glg5s4trlgÃ¥8ve_lha8ka_lhav6s5libe5roli5ers_li4g3anlig9artli8gas_li4g3relig3s4ilig3s4plig5strli5kesÃ¥lil5letli6mate4lina6l5l4indrlind3s4l5indusli3ne6alin4g3j4l5injulin5keslin5klelin5net4l3instli6n5ø6lion5splion5svlipp4s3lis7tanli6s8trlist7røli4st5yli4ti3aliti5stlit5rerlitt5s6li4v3akljar5s6l5jete_l5kedall5kelegl4k5ersl4ke3rul6k5ninlk5ri6kl4k3s2hlku4le_l4l5anoll5anskllau6relle8da_lle4d3rlle5gevl4l5eigl4lendrl6lendtl5l8ensl4lentull5eplel4leroblles5prlle5støll5evenlle7vevlli5e4nl4l3indl9lint_lli6senllmu9erl4l3offllom5s6lls5endlls6karlls5laglls6tigl8l7ukal4l3ukelly4se_llø6pa_lløy6erll5øy6nl4markil4m3elslm5e4pol4m5erflme7stilme5t4rlmi8le_lmin7nelmu4le_lmÃ¥6la_lob5by_lob5byelo4d3rilod3s4mlod7stelod7s6vlog8reslo6g5rolok6kul2lo1k4l2lok7s4lok8se_lo4m5inlom4mellomst9rlon4g3rlon7skjlor6da_lor4g5llos4kle4lottetlov7aldlo9vandlo7vanel6over_love5rel5overnl5pelegl4pelinlpi5ne_lradi4ulra6ne_lre8ke_lri4ve_lro8de_lro6pa_lro8sa_lro4se_lrø6re_lrÃ¥8da_lrÃ¥4de_l4s5anol4s3ansl4s3elel4s3elvlses5kulses5palse4te_l6s5illl4s3innls5jakkls5kabil4s5kanls5karilsk5artlskinn6ls1kjedlskÃ¥6palsla4gal7slagnl5s4lukl6s5løslsmÃ¥6lals7o6sel5spredl4s3takl4s3tall6stankl3ste4ils5terrls5trenl6s5veklsve7rels6vindlta4la_l4t3alblta6levlta8teslta4t3olte6ma_l4t5enhl4terasl6trekol6t5rell6t7reml4trensl4t5ritltro8pal4t5rødltur5e6ltur5s6ltur5Ã¥6ltva8laluid6erlun5d4rlun4gellur8ne_lus4sidlus4s3tlus2t3rlut4tallut4tapl4vaktil4v5asslve3d4alve5i6slve9raul7v6et_lve5strlvi8enelvi6ka_lvo8re_ly4n5illyst9raly4teril5y4tinlær4armlæ4re3slæ5res_6l7øv8d6l5øys_løy5terlÃ¥s7tenlÃ¥s5termada5memak5ronmak4tal4m3aktimakts4tma6lengman4domman4donman5g4aman4nemmanns5l5ma9ren4markitma4ro6pmar3s4hmas4seemas6setma5stem4ma5str7mater_6matera6m7atfe7matil_ma4t3rem4beregmbo4endmbo5er_mbo5erembu7ar_mbue7reme6dretme5d4us2me5k8r5melanemel2s3jmel5s4t4m5engamen5splmen6tekmen4tomme4ra5l4meress4me5ribmeri5kemerle7gmer5und4me5s4h5meste_6me7stome5stro6mestrø4mestrÃ¥4me9tapme4t3ramet5renmet7rermet5resmet5rik7m4eu3smfar8tam6f3essmfu6se_mgÃ¥8ve_miche6l4mi3ele5migrafmik5ro_mik5ronmil7etimil6s5v4m3innh4m3innsmi3s4lamis4s5kmis4s7pmista9k5mis7temis4tramku6le_mle6se_mle4ve_mly6se_mlø6pe_mma8le_mmando5mmar7inm2me3k2mme4runm4metrammÃ¥8la_m4nestamo7le6smom4s5ømo4nisamon4stemo7rar_mor5d6emor6d5rmor4skjmor7sky6mostabmote7klmo5ter_motsva5m4pelotmpe5resmpes6tempe4stim4pinjem3p4lanm6p5linm4poetampro8pamro8sa_mro6se_mru7te_m4s3engms5e4plm5s6etnmsk5ingms6legam4s3talm8s7te_ms5tilbm4s5topmst5ordmst5redms5trefmst5renms5trikmsu7tenmsva9ramsva5rem3s4vetmsø4ke_m6te7kvm6testum6tien_mull6s7mul6tivmun6ge_6m5univmunn5s6mun4t3rmu4ses4mus5tanmut7t6rmveg5s4mvi6se_myk4kesmytt6s5mø8nest6m5ønskmør4k5rmø4teremÃ¥9nesenak8se_nak6ta_na6lare6nalarvna4l3einal5eponal6ge_nal6lagnal4løpna3lÃ¥5rna7mere4n5angrnan6ke_6n5anlen4n5ansnan4sinnan4skjnan4s5t4na5rek4narkiv6n5armé6n5armenar8ma_nar8stenar6ta_na2s5t4nat6taknat6teanav4lesnba9sern4d5alln6d3artnda5taln5d4e5lnde4le_n4delikndel4skndel4stn6denern2de5o2n4derabn4derasn4derein4derimn4d3intnd4lesend4lestn6d5okkn4d3ramndre4rand5rettnds5elvnds7kulnd3s4tends9tegnd5stryne7a6lenea9ren5negatinei8dannek5rinn7ekser6nelegg4n3elem4neliganel4lovnelø8panem5ne_nem7nelnen5at_4neneslnen5etanen4ga_4n3enhe6nenhetnent5ei4nerent4neress4neresu4nerfar4ne3ribne4ri9vne1r4ovner5s4i4ne3rul5nesetsnes5evanes5indne5skam4ne5skones6samnes4stu4nestasnes9te_nes5tor4ne3strnesÃ¥5re4netaksnet5s4pnett3a4net6telnevi8sanfalls5nfø5desnføy8edng5and_n4g5armng5art_n5gartanga4ve_n4g3engn4geretnge5runngjen5gn8g7o8mng7o6pen5grad_ng5randn4grendng5restngs5elvngs7legng5sløyngs7tepngs9tørngu5ru_ngÃ¥8ve_ni7dele7ni3e2n4n3i4frni6n7alning6s5ningse4ni9pet_ni9petsnir7kel4ni3skjnis4k3oniso5ne4nistas6nistatnis5tik4nistilnitt4s3nitt6sknitær6eniv5ei8n5jede_n4k5enhnker4stn4ke1s4n7k4lisnkol4lanku4le_nkurie8nland9anle8ma_nli4en_nly6de_nly4se_nlø6pa_nma4le_nmo6se_nmÃ¥6la_n4n5ankn5nebarnnebe8rnne6natnne4n3on4nereln4ne3stn5n6et_n2n1o4rnnsa9kanns5andnnsei8gnn4s3emnn4s3esnnsi7dann4s3innns5kannns5talnns4tennns5tepnns7tinnns5topnns5tronn4s5ulnn6s5vonnsy8nann3sÃ¥5rnnto9ganok6se_nor4d5rnord3s4norges5n3o4rienor6klanor6klenostra4n6renemnro6de_n5sa4kr6n5aktin6s5alpn5s6annn5sansens5ansinse9a8lns5eie_n4s3elvn5sene_n4senern9senesn4senetn4se3skn4ses4pnsi5de_nsi4entnsi6er_n3s4ingn4sintens7kelens4ketens5kjennskog6snsku9etns5kulin5s6ky_n5s4kyen5skyssn5slangns6lerin5s4narnso5risnspa9rans5pelsn6sprosns5taken4stanknst5artn3s6tedn3s4teins5tenkn5s4tikns5tildns7tilfns7trøyns5vangnsva9rans5verdns5vernns4vindnsÃ¥7pennta4lannta5na_n4t5andnta5siant5eininte5insn4teksen9telegn5telignte4ma_nte4misn4te7nan5tene_n4t3enhn5teorin7terekn4teselnt5e4van4tikapnti5klin9time_n7timesn4t3indnti6netn5to5rent5resin4t3rinnt5s6lan2t1u2nn4t5urontva8lanun4ge_nus4k5lnut5erinverle9nvi4ka_ny3k4lenyn8da_nyn4de_nær9andnød5stonøy8a9nnÃ¥n6de_oar6d7eobakk8sober5etock5ersod4destoderle7o4d3iglod3s4pooen2g7roes8ke_oev6ne_o4fe3stoff9andoge7na_og4gerao6gista5o4g5nio5g6noso4g3rego4g3reiog7rettog4s5tjog5stre5o4g5Ã¥to1i2d9ioi2n1o4ok5els5ok4kandok6keraok4ke5sokna8sao4k3omsokse5krokse9teoksi7daok6s5vioku8le_ola6dedo6larbeol4destol5drevo5leakso7lene_o9leneso4leneto6leredole5staole5stroli9e6noli7ertolke3s4ol4keseol4keskol4kestol6linjol4mesto6l7os_o6l5osfols5vikol6t7raolt5re_olt5rerolt5reto4l3ungoma4nifomar7ø8o7menesome4takome7tarom3in5som4metromsko9do4n3ango4n3argo4n3arvo2n1a4vonder6eon4d5riong9roso2n3i2do6n7innons5undo4pa3reo7parenopel6løo4penet6o3per_ope6raroping9sopp5ropopp5undo6r7addo4r5algoral4stor6alt_orda9taordy9raorear8aorear8eo5rebraore6na_ore4nedore4netores6teor9et8norfi7ne1or3g4aorha9le5orientorla7teorm5angor4m3unorne6droror9daors5altor4serkorse9taors5karors8k9lorso9naorso9neors4tenor4t3akorta9peor4t5avorto9neort5oriort5resort5rÃ¥dor4t3Ã¥rorva9rao9r4æreo5seleioses4skoses6sposes4stosfa9taosi5ereosi5erto2s1ingoskei6eosk9larosk5lenos5sensos4s5kooss7troost5adrosta5leost5eggos6tonsost5ranost5rupota4l5aotal7evota4lovo8t9armote5intote4kleot5elemote5levotel4liotel8løo4teramo4tereto6terevote5r8uote5stéotet3s6oti7ertot7i6koot6nerooto6en_oto4ralo6t5romot4s3kiotsopp6ots5tabot6tankot5tegnot6tenkot5teseott4s3kotts5pootts4tioun6ge_ovanfø8o5vendeove6nyaove7ra_ove9raso6verdr3o6verfo5verksovers4povveg7ipak4kaspakke4spang5s69panne_4parenapar5esspar6k7lpar8ra_par6tidpar4tigpar4tinpase6r5pas5sabpas4tarpa4tistpat6takpba4ne_pde4le_pe4a3repedi9e8peg8ge_pei4legpek4tropel5s6epel5s4ipe4n3arpen4gelpen7s8apensa7kpen4s5lpen3s6mpen5s6open9stapen7stepen7tagpep5ar_4pe4rab4perate4peresp4perest4peresu4pe5rikperi3s4per6lesper6reiper4tropervi6kpes8ka_pes4ke_5peste_pes5tilpeta6kape4t5rupev6ne_3p6fenn7pi3anepig6g9upil4lagpillba6pil6ledpil4legping5skpis4t5rpla8de_plan7de4plane_ple5n4aple6r5uple8se_pne6se_pom6p9upor6s7vpor4torpor4trÃ¥pos5taspo5statpotek5lpo5t6hapover6np2p3a4lpp5angrp4p3anlp2pe5i4ppel5s6p4pendrppe9nesp7pere_p4perklppes8tip4p5innpp5lastpp7rissppska9kpra5te_pr5elempri4l3epri6s5kprun7geprørs5tprÃ¥k5k6psei8geps5e4lyp4s3kilps7kjenp7s6ko_p5s4koep9s8lo_pslø8vapspi9lap3s4prep4s5prop4s5temps4vingpsø4ke_pta8la_pta4le_pte4ma_punk4t5pvi4se_pør4ret3radio3raf4fer6r5akadra5k6harak4kelrak3s4erak6se_ral5ans6ralbum4r5alge4r5algo4ra5l8Ã¥6r9ambi4ra4merram8et_ram6p3u6r3analr5andelrang5strann3s4ran4tik4r5appl7rarbehrar5e6l4ra3reprar7etarar8ka_rar8ma_2r1ar5trar6ta_ra7s6korast5re6ra5tegra4t5rorat5telratte4srau6ge_rave5s4r3a4visravlø8srbed5enrbed5etrbed9rarbis5trrbo8di_rdag4s5rda4le_rda4mesrda8n9ord5antar4d3armr4d3artrd5e4ger6d7engr6d7enhrden4s3rdense4r4derikrd3e4tar6d7ettr4dianar4diansrdig3s4r4d5o4drdover5rd7rarar5drev_rds5tanrdsto5grds7trerdsva9rrdta8kardø4ve_re4d5rired5skureds5larega7tarei8ga_rei8ge_rei5na_rei7nasre5inderei5ne_rei7nesre4invarei7skarekk6anrek4k5v5reklamrek4ledrek4terr4e5lei7relenerel4lagrel5ledrel4levrel5ses4re7l6Ã¥remann6remmed5ren4delr3e4nel4renestreng5st6r5e6pi4rer6at4rerent4rerese4reresu4r3ernæ4rerutere6r7øyres7kodres4salres4sekres4sit5restaures4tes4re3stires4til4restre4re5sty4retaki8retek_6reteke4retekn6re5tem2re5t2rret7tedret5terr3e4vigre4v5Ã¥prfe8en_rfe4et_rfei5lirfe5m6ørga8le_r4g5anvrga4ve_r4gereir4geretr4ge3rur4gestarg3i4rirg5repsrgs6korrg5s4lergÃ¥6ve_rhjul8s6riansv3ri6avo4ridale4rielem6rielimriel4la4rietatri5evenrig6s7tri4kalirik7kenri8k9la2ri1k2rrik4s5u6r5ilderi5n6amrin7gomrin9nesrin4t5jripo4s3ri4seli5risiko6ristadris5tik4ristilris5tofri5stunriti9darive9ge4riverkri4vi4sriv5iseriø4r3arj7ambirkei8kar4ke3lur4kenavr4kerisr4ke3rur5k8ledrklæ5rerklÃ¥9rarko6b5rr4koselr6k7rasr5k6remr6k6segrk6stalrk4stenrk4s5tirk6s5virku4le_r6k7u6trla4te_r6le7slrli4te_rlø8pa_rma6ge_rma5k4lrme6lapr4menetr6merevrme9tarr4m5idermi6enermlø8parm5s6korms5tilrmta8larmue5nermu8la_rmu6le_r6m7Ã¥tar4n3aldr4n3artr5neboer4n3engr4nereir6nerisrne6se_r4ne3skr4n1o4vrn4s3inrn7s6mirn5sponrn3s4prrnÃ¥8le_roff5riroga9tarog5retrok6katrok4komrok8se_roli7garol4labrol4laprol4legrol4lisro4materom5sla6ronismro8pla_ror6da_ros7tasrost7røroti7karot5ordro9varerove5rerprø5ver6p5ut_rre7intr5relatr4re3rur4resperres5tarre7stirre5strrret6s5rri6ka_rrmÃ¥8larro8se_rsa6la_r8s9ald5s6ch6lr4s3elvrse4te_rsett8or5s4ingr6s7kafr4skar_rskla8grsk5larrs4k5lers4k3lær4s3krar5skrivr4s3krorsku7etrsk5undrsk5varr5s6litrs4makerso5n8erso5n6irso7risr5spredrs5tankrs5tendrsten6srs5ter_rs9tre_rs7treer4strinr4s5trorstu9varsva9rar3s4vekrta4ka_r4te3inrte6ke_rte6ma_r5teresr4terisr6testirtian8dr4tiansrti8ar_rti6grar4ti3kvr4ti7nar6tiskar4tiskirt6i9sor4t3opprt6opp_r6t7o6sr4t3risr4t5rosr5t6rÃ¥lrts5engrt4s5jart5s4nort3s4pertu6en_rtu8ve_rty8da_rty8de_r6t5Ã¥s3rul8ke_rum4p9l5r2underun5delrund3s4run6ge_rus5selr7utan_ru4vereru6v7isrve4denr4ve5drrvel9ler4v5eng4r5yndlry5nes_ryr4ke_rys6sal8r3æ4rerø4kerorøn5nesrønn5skrøn5sko5r6øntgrø5vederø9versrøy6enerÃ¥dy9rarÃ¥le7s8rÃ¥5let_sa4dere6sagent6s5a6gi2s1a2gr3s4a3ke5s4aks_sak4s3i4s3aksjsak6ta_5s4akto5sa5lat4s5algosalg6s5sal4mes5sal2s34saltersal5vedsam4an7sam4levsammen54s1a2nasan6da_sand5stsan4d5ø1s2a5ne4s3angrs7anken5s4ans_san7s6k9s8are_4sarealsar6ka_4s3arkisar8me_sar4ta_2s1a4sp4sa5t6r4s3attasatte4ssau5di_sau6ge_sba4ne_sdag4s5sde6le_sdu8en_se3an5dse7ansaseg8ga_7segletsei8dansei9dens5ei4etsei6ga_sek4kes3s4eksjsek6te_3sek5to5selanesel5arts3e4lasse6l5at4se5led6selega4s3elem4selengsel6løpsel4sinsel4sposel4vanselv3e4sel4ve_selvei4sel4versel8vinsemini6sen9d8a6senden8senesa6seneses5engassen5ters2e5r4e4serenn4serent4sereso4seress4serest4seresu4serkjeser7nevser4takser6tatse4r3unser4vedser4vel2se5r6øses5ald5sesalsses5altse4sene4sesjukses5kalses5karses5lit5seste_2se2t6aseta8kase4terase5teros3e4tiks3e4tis5setje_s8e5varsevi4sasev4ne_sfa4ne_sfe6et_sforlø9sfø9rensfø5rersga4ve_sgÃ¥4ve_6s7hoppshø6ve_sial5v63si4de_3si3densi5der_si4detesi6erensiger4s4s3iglosikt4s3sil4delsil4dersil4dessil4les4s3indu3s4inn_7s4innas6inne_5sinnetsinsk5esi4serfsis5e4vsi4s5tesi6t7rasi4t5resitsva9sit4tes8s5ja9gsje4f3isje4flasje4lev3s2jen_5s2jene4s3jent5s4jer_s2je5s45s4jet_sjet4tiska5lar4s5kana4skande5s6kap_4skapas6skapitsk5arabsk7arbe4s5kark3s8karvs6keliks6kenavs4ketet5s4kiltski6netski4nin6s5kirk4s5kist5skjema7skjerss6k5lansk5lings4k5luf7s4kola4s3kolls5k6omes6korpis4k9ra_5s4krals2k7re_4s3kref5s8krek4s3kret5skrevn4skrite5s4krog4s3kropskru3s66skrysssku4endskue5re5skulan5skular8s5kurs6s6kyss5s6kysksla8ge_4s3landslap5pes5laran4s5lastsla4te_sla4vin8s5leke4sle7nes6lenersli4en_8s3linjslin6t55s4lit_3s4lites6lott_sluk3s6slum4p5sly8et_slø4pa_slø8s5a3s4løsislÃ¥5nersma9let6s5medi8s5meld3s4mell5s4melt3s4mertsmi4enesmo8de_6s5mugg1s2my4ksnei5ersne4krisnik5kosnæ4re_snø5d4r6s5ofresog6nemsok4se_so4leneso6mend4s3omfa3s6omme7somren5somrer6s3omrÃ¥som5stisong3s48sopple7sorga_4s3oriesover5esove3s4spa5g6h3s4pannspe4legspe4les5spelet3s4penn6s5pilospi7res5s6piss5s6pole6s7poli5s4pors6s3pregspre5ke5s4pren6s5pres5s4prets6print8s3pris6s5prob5sprog_5sprogesre8ke_sri4ve_sro6se_srÃ¥4da_srÃ¥de9rs7sabelssa8ke_ssa6la_ssa4me_s7s8ar_s7s6armssau8sass9elv_sse8na_s6serabs6serats4seskis8s9imes6s3indss5inits4s3insss4kapesska8ras4s5nøds4sorgass7tilpss5trenssva7ra3s6t2adsta6d3osta6ka_6sta4lasta5laksta4le_5s6talista5na_3s4tandsta8n9o3s8tasj4s5taststa5top3s6teg_stega6l4s5tegn4stegspste4herstei5er4steikn3s4tek_4s4tekaste4ket4s5tekns8te5kvste5le_s5telegste5levs5telig3s4temmste4nars4tener3s6tengstens5l8s5teras4terams4terevs7t6erfs4teridste7ris4s3termste5runste7sleste7t6rstgÃ¥8vas6tidels4tigen7s6tigist9i8gj6s5tika4s5tike3s6til_5s4tilasti4lag6s5tils5stiltesti7mer3s6timus6t3ind4s6tinns6tinst4s3tipp6s7tisk4s3tjen6s5tomtst5opplsto4retsto4t5r4s5trads8traff6strafi6strail5strand4strane6stransst7ras_s4tre3ast5reis7strek_st5rekl6strenist5rer_6strers9s8tridst5rige5stri3ss5t4rog5s4trokst7rop_s6tropes6t7rug9s6trukst5rum_s7trykt6s5trøbst5røses5trøststsy8nastue5re6s3tung3s8tunts3t4vedstø7va_stø5varsul4t5r4s3umid5sundet5s4undisun6d7rsun4ge_6s7u2nisur4stisu6s5es2s1u4t1sut6ra_sut8reg8s5u6visva4les6svalet5s6valis4varet3s4vartsve6g7i3s4veis6s5veks5s4venssve8res3s4verg5s4verjsver4ki6s7vervsvi6e3lsvi5ke_4sviks_svi4nessvi4sa_svi5sensvi5ser5s6vulmsvye7nesy5kere4s5yndlsyr4ke_8s3æ4re3s6økna5s6øksmsør9ettsø7tastsøy8de_6s5øy4nsÃ¥n6de_ta8d3eitad5spatad7s6vtak7keltak5k4lta8k9latak4saltak6se_4t3aksjtak4tal4taktigtal5angtal5eieta5ler_tale7s6tal6ge_talj5estal4ledtal4legtall7es6talter2ta3m4o4t3analt5andak4tanett6t3angrtans5kat5an5sl8tantiltan4trata4r3akta6rare6t7ark_tar8ka_4t5arke4t3arkit5artiktar7tittar4t3rt3a4sia6ta7stotat5e4v2t1a4uktau4ne_tbe6te_tbe6t7r2te9a8ltebu8da6t5edditedo4ertedyr9kteg8ga_te9g8li6tegspltei6ga_te4innete5intete5k4late6k5ru4t3eksat4ek8sttek8t9r8te4le_4telemete4lenete5lesk4te4levte6levatel5leftel4leitel4levtelses5tel7s6v5teltette4mans6temenntem5ne_tem5ordte4n5alten5at_6tenerg7tengont5e4nig6tenormten5skoten6sluten5økstepa9rat5e6plete7rakk6terammter7apa4terappte4rare6terasa4terase7terast4tereis8terem_6teremm6terennte4rerk4terett6terevo4terisi6terks4ter8ma_4teroll5teromr4te3ros4te3rotters4klter3s4mters6nete4r3øvte4r3Ã¥s6te3sin6tesjef2te1s2m7tesmÃ¥e4testaftes5tas4testat5testidtes4tik4te3sto4te3strtesÃ¥9reteta6ka2t8et2rte4valutgi5rostgrei9e4ti3all6t3idee4ti5dem2ti5f6r6tikarr2ti1k2r6tikulttila6ga4tille_4tillinti4mera5timeritin5art6ti4nit6t5inne4t3insttion9s6ti5s6an4tis4ei4tisers4tiskan4tiskiltis5kok6tisprÃ¥4tistattis4ti_tis4tilti5streti8støytiva9reti9ært_tjen6sttjæ4restka8ra_tku6le_tla8te_tle6da_tle8se_tlight5tli6nestli4te_tlø4pa_tma8ge_tmin5s6tmÃ¥4la_t7neligtne4rektne4r5øtne8se_to4derato2g3at6togravtolele75tolera1to4l3ktol4labtol4lagtol6legto5miseto7misttong5s4ton5s4ltor5alttor5angto4r3astor8da_tor7eks6torenttor5etetor5inttorvei5to5verdtove7ret5overstra8ka_trak7to3t6ranstra5se_tra5sest5rate_tre4al_4t3redstre5int3t6reni4t3renntren6skt4re3rutre5skot4ri5ne4t5ring4t3rom_5t4rongtro5per5t6rosk2t1run9tru5sa_7t6rusktryg5ge7trykk_5trykketry7pe_5trøye5trøy9ettrÃ¥8da_4trÃ¥dett6sch5kts4endet5senditsen8kat4sentut4s3erkts5e6sttse4te_t7s8hopt4s3inst6skollts5krent6s7kynt7s6lo_t3s4lott4s5o4dt5somstt3s4port4s3talt5standt5stangt4stilkts5torsts5treet4s5trots6trÃ¥lts5øknitsøy8ertta4la_t6t3aldtta7lelt4t3anat5t6anet4t3angtt5appet7t8ar_tt5ar5ttt6artat5tede_tt7elevtte4ma_ttem8nat5tene_t9tens_t4tereitter5untte4r5øt4tideltti4g5jt4t3inst6tistitton6natt5o4ritt9rakatt5raket4t3reptts5kantts5toptts5tratts5tøyttva8latt7øy6rtul5les5t4un5ntur7ant4tu4reitus7s6ttut5tortutt5ovtva6ne_t4v5anltve5deltvi8ka_5t4vil_5t4viletvi4sa_tvi4se_tyg9geltyg5gestykk5s6ty4pere5tyranntyre5stty4ri5stær6enetæ4renht7ø4lettøn5nestø4r3astø7veletÃ¥5ket_tÃ¥n6de_2t1Ã¥rs1u3a4ne_uble3s4udd4s5eude8areudei5eru6d5ettudover7uensar4u2ge5s4u5g4ladug9lar_ug9ler_ug3s4pruid5en_uid5ensukar5t4uker5anuke4rekukse7teuk4s3unuk4t3idukt9s6vukt4stiu5lere_u2l3erlu5lest_uli5ke_uli9na_ull7armull5eggul6lengul9lereull5i4vull5sleull3s6mul4t3reuma8ge_u4m3enhum4p7ut5undervun6d7imund5s4iu4n5engu2ne1s2un9g8ruung3s4iunn5erfunn5steun6sj5iun3stekunt5repun5øy6dupe6renu6r7arlureer6eu7r8ellu7r8eltu4r3elsu4r5engure7o6suri9en_uri9er_ur4ke5sur6k7jaurla8gaurnæ6reuro4staur6p9utursa8kaur4s3elurs5tilur6t5riurue7reu7sarenu6s7arkuse4al_u4s5ermuset8jeu2s3h4au2s3h4ou4s3kanuska8rau6s5kisus6k5leusk7u6tuso6l5du1s2pinuss5korus4skurus4s5tiu5s6tigust7onnust5o6vus8tra_us8tranus8trarust5renust5rødu6st5rÃ¥u5svaleu5tandeu2ta1u4u5tekstute6ma_u2te1s6utfø5reutikk6uu6tivenutlø5seutlÃ¥7nautmÃ¥5leu5trengu5t6rul7uttak_5uttakeut4terkutt5evau3t4vilutvi5se3u4t6yduve6ris7v6aksi4v3aksjvak5s6tval9eksval4g3rvali9e8val6mes4v3analvang4s7van4nanvan4nivvan5semvar4meevar6temvas4sauvas4selvas6s7øva2terfvba4ne_vdu6en_ved5s4k3ve8d5tve6g5av5ve4ka_vek4t5rve4l5as5velat_5velatpvel4delvelses5velø8pave6neteven6n5ivennle7ven6stiven6strven5t6rver6desver6dinver6dir5vereig4verennve5res_4verett4veretuve4rialver6nalvern6s5ver5skiver7spo5verum_ver3øs4ve5stedvesÃ¥5re8vetaka9vetokevett5skvevi8savfø7re_vga4le_vga8ve_vhø4re_vide4o7vi4d5o4vi2k3o6vik5s6lvi4k5ø4vi4les4vi4l3invil4ledvil4leivill9ep6v5illuvil4stivil4trivine5stvin8g9uvin4ned4v5innl4v5innsvin7sjavin4tesvin5trevis5andvi6sengvisk6revi5tese5vi6t5jvit5skrvi4t5unvje4t5avje5t6evje4t5rvku4le_vle4se_vle5strvma8le_vmo8de_vna8ke_vne5r6ev4nestav6nestevn4s5pavnæ4re_vof8fanvo4lituvol4tesvor8da_6vrenge4vrengiv6rengjv6rengtvrett4sv6rigasvri6ma_vri8me_vri6ve_vro8te_vrÃ¥8da_v4s5engv5s4ensv6s5kumvsmÃ¥8lavs5oms4vsø6ke_vsøy4ervta8ka_vta6ledvta9lenvta4levvti8ne_vuden5tvun4ge_vvi6k7lvvi4se_vøm4metvør8na_vÃ¥4kenewalk5o4wester6yak6te_yba4ne_ybue7reybu7ernyd6delay6d7enhyel4s5jyel6s5tyfjell4yga8ve_y6geretygg7arty5keleny4kerely5kjareyk4kanayk5kesjykk4s5kyk6lestyku6le_yl4derkyld5s6kyle6ge_ylke4s3yll5is_ylst7reym5jaray9n8andyns6areyn6teteyon5neny4penetype4relypin8nay4r3a6ly7rek7ky6rerely5rest_yre5steyrin5g6yri8ka_yrs7tanyrs5taryr5ut5ryrÃ¥de7rys7ekteyse7ridy5sesteys6karays7kareys4s3eiys4s3ekys4s5ilyss5tabys4s5tiy8star_y4s3terys7teslys5t6ryy4t3anayt5e4gey4teretyte5r6øyt4s3enyt4testyve4riayve4risyvi6se_4z3ense4zi5s4væk9jer_æ6rarbeær4arteæ6r7eldære5ne_ære7nesæresa4mære6skræ4retekærmÃ¥8laær4s5ilær7s6noøbe6levød6s5ekød6sku6ød8t5omøglo8veøgn6s7pøg5res_øka8ve_ø6kerelø4ke5ruø5kjareø4le5teøl4geraøl4leseøl9letiøl4sereøl4se3søl4v3eiølv7erkøl4v3inøm4meroøm4metrøn4n5itønns5alønn4s3eønns5kuønst9raøps8legø2r1a2mø4r3antø9reletø4r5engø2re5o4ø6reretøre6s7vør4keriørla8gaør4nereør4nes4ø4r3ostør4r5isørsa8kaørs6levørs9tarørste5iørs5tigør6ti9aør4tideøsa6me_ø8sararøse4n5oøserie6øst9astøst9ettø2t5eksø5tela_øtsÃ¥9reøt4teroøt6testøtt5eksøtt5etaøtt5eteøveren8øv6l7ut9øy8ansøy4dereøy7e4deøy5rer_øy5s4ar5øysundøy4tereøyte5s6øyti7daøy2t3y6Ã¥an8ka_Ã¥an6ke_Ã¥ba8ne_Ã¥d3s4laÃ¥d3s4peÃ¥d6s7teÃ¥3e6re_Ã¥4k3enhÃ¥klist7Ã¥5l6ampÃ¥l5einiÃ¥4l5enhÃ¥le6risÃ¥2le1s2Ã¥lla6gaÃ¥lsy8naÃ¥lul8laÃ¥lÃ¥8te_Ã¥pe4n3aÃ¥pe4n5iÃ¥rd5strÃ¥s9keneÃ¥ta5le_Ã¥ta5lenÃ¥4t5armÃ¥te6ke_5Ã¥tferdÃ¥tva5raÃ¥tva7reÃ¥un8ge_Ã¥væ4re_", + 8: "_akter5e_albu5en_al5m6in_an5d4ra_arie5ne_as5kese_av7inde_ban4k3l_be4d5et_ber6ett_be6sten_ble5k4e_bor8ti8_de4l5ei_de4r5et_de6r3i4_de4r5om_dings7a_ein5og5_ek5s4ta_en6t5ra_fan3t4o_fes3t6e_fla4t5o_for5en__for7s6o_gang5s4_grunn5s_ha6v5ak_he6r5i6_he6r5o6_he9r6oe_he7r6oi_he7r6ol_he9r8os_het7s6e_hus6val_hvi3t4e_i8lande_ilbo8da_imø5te__isla8ga_jern5s4_kje3de5_kne4p3r_kring5s_kva4r1a_lega5ta_lei5er__let6tan_li4v5en_liv4s5v_løye5ne_mat5t8o_me6d5ei_me6d7in_mei5er__mel3l6o_me2t6a3_min5k4e_mi6s3t4_mor5d6e_ni5o6g5_over3i4_over5k8_pa6n7eu_plen5g6_plus6s5_ran7s6a_rap5s4e_rei5er__re8klar_ro4tek4_san7d8e_san7d8i_ser7vel_sha9ke__sik5k6e_sinn6s5_skinns6_sko7de__slotts5_slu5ke__spri5s6_stev9na_stÃ¥l5l6_sund5s6_sva5ra__sær3e4g_tak9s8p_to5o6g5_tor4s5v_tre5s6t_u6lende_unde6ri_urte5m8_vann5s4_va6reta_ve5l4ar_ve5l4os_ve4l5ov_ver5ste_vi4d5Ã¥4_vi6seri_vok5s6e_ære4s5a_øve4r6saarie9nea5de4serad4s5amtad5s4letad5s6tekafore5neaf4t5e4lagang7s8age5riskag5s6ingagsmÃ¥6laakk5erstak4s5andakse3l4oak4s5elvakst7renakta6le_akt5s4laa5lande_albu7er_ale6s5kralla6ge_alle6ge_all5erstal6list_al7skarealta8le_5alternaal4t5etaal4t5etea2l5y4teamen8de_am8periaam6perieam5p4letanak8te_an4da5m6anderle7and8sendand7sleta5netikean5e4tisanfø5re_an4g5enhang5ermean8gesteangs6troang4t5reang5t6veann6s7kÃ¥an9s6und5ansundaan5t6andapo5s4tiarau9kenarba8ne_ardfø5rearen5tesa4r5erfaarev6ne_ar4k5løfar6s5ersarta6le_arvi8se_a4s5kopia5s6kulaa6standeas4t5enhastu8ve_ateke7taa6t5ektea6t5opprat7s6katattfø7reatvi5er_atyr8ke_auba6ne_au5e6te_au6s8tasaus8tett3a4van5savar6ta_av5isingavspe9g4ba4k5endbak6kersbak5s6tibari6e7nbebo5er_be4g5re_belle5sabel4te5sbes6s7a6bes7tensbe5stes_bevi5se_billa8gabjek4t5oblings6iboksi8dabo4l5o4rbor6t7efbor6t7etbose8te_bus6sentbørs8ta_ca5s4tilce4ne5s4cen4ti9mdalbu8er6d5ameridata6le_del5ei4d6d3e4levdel6lerfdel4s5atdel6taladelø6pa_den4s3t8den6t5u65de7rastde4r5edd8derest_6derestedero8se_de8s9hopdesi4s5t6de5s6prdeta8ka_deva8ne_devi9er_dheim2s5di8g9anddi3ge4s56d5i6meldisie5ned6jingand6jingardland7asdlei7er_dog4me5sdoli8ne_dom8s5e66d7on6kldor6gestdrei5er_drei7ernds3a6deldsak6se_dsel4s5ad6s7endadsen8de_d4s5e4skds5identd6s5kjøtd9slott_dste6ma_d6s5tempd5stillidsva8ne_dsvi6ka_eate6renebe4d3e6ebei7er_eben6s5kebo5ers_ebu4e5reedi6a5needle6ge_edok8se_edyr6ke_efisken8efle6ge_3e4genskei4m5a6le4k5ret_ek7s6telek6t7armektori6ae4k5ve4delak8se_e4li5g4reli6v7enelli7ga_el3se6s37elskandels5kareel5s6Ã¥peelta8le_el4t5ettelun6ge_elvæ6re_emini6stemse8te_enat6s5pen4d5andenge6r5uenne4s5vensi8de_ensi5erten7s6opten6s7talen7timenen4t5rolentropi5e5rande_er5a4pine5rasaneerau9kenerbo8de_er5e4gene6r5ektee4r3e4leer5endene4r3e4vae4r5e4veerev6ne_erhø6re_e7ri6ma_6eringarering6sieri5stilerkeri6eer6k5etterle6ge_erle7s8termo8de_ermÃ¥6la_5ero4b7rers5tenser4te3s4ertÃ¥7renervæ6re_e6r5ør6se4r5øy7ee4r5øys_esei8ge_eskinns5e7s4mettes6sendies4s5enkess5e4vaess5tilte8s7ter_e5s6terkesterne8est5reneestÃ¥5renetall5s6etnings7etsla8gaetta6le_etter5atet5t6erfettvi5see5t6vange4v5antafal6lersfan7teskfa6t7ersfentleg5fers9karfikalie6fil6lerifil7letifil8m7atfil7tresfin6slegfin6te5sfisk5a6dfisk5andfis6kartfiti6me_fjæ4res8fol5lesefolke5s6for9drevforlø9paforlø9seforsi9dafortei9eforti5daforva9refosfo5refred8selfres7ko_fres5koefri5a6refsle6ge_ften5s6vfte4r5a4ftsla6gaft5s4lanft6s5topft5s6trifug6l7egfy4r5a4bgamme6l5gan5g6en4g5antregass5ettgas7t6ragdevi8sageak6te_7gedommegeen8de_gehø8ve_gelei5er3gem4s5tgene5ve_ge4r5antg9er8ma_ger4s5afgerø6re_ge4r3ø4vges6tekkgest5ridges5vik_geta6le_gg5s4par6gingenigiste6rugje8v9akgle6deroglei7er_glori6anglun8ge_go4n5and3g6or4a5grand3s4gra4v3akgrei6enegres6sakgri5setegs5akersgsel4s5ags6ende_gsen6ke_gsle6ge_g9s6mertg6s5porsg9s8tandgste6ma_g5s4terfg5s4terkg5s4terng5s4tersg5s4tervg5stredeg5strekeg5s4trofgstyr8kagtrÃ¥d5s6ham6nesthams4t7rhand7skrhan5n4o5heder6s5he4l5ei4hel6lesuhenfø5reherle9geherli9gaher6resiher6ska_heste5rihet4s3a4he6v7armhof4f3a4hof4f3e4hof5f6erhog7strahudsÃ¥9rehu5s6a6rhu6s7arrhusa7r8ehust9ranhÃ¥nd5skria4l5ettia5r6e8l5identif5identiti9de5re_iderle7gidsla6gaien6delaie4r5engi5e4tabli6gedommigedoms5igli6se_ik6k7entiksmÃ¥8laillan8daillæ9re_il4m5estilset8jeilsle7geilsva9railsva5reilt5rettina4t5ak5industrines8ke_ine5s4tiin4g5aldin5n6ovain9s8kasins5kjøtins8legain8s5te_ins5ten_ins9tens3in3s4ti4in3s6toinst5relin8t7egein5te4t5iorla8gaiota6le_i4p5ingsippel7s6ippsy8naipru8te_irti6g5ri2s2e3g4isk9art_isk5arteiskla8gais6k5rinis5pane_iste6ma_i8s8tre_i4st5reni6strer_itan7s6vit7jaranitma6le_itostra6itsla8gaitte4l5oium4f5ari4um5s4tivle6ge_ivyr8ke_jak7kelejar5tet_jek6kerujek4t5injelei7erjell5angje4r5antjer6n5asjet4t5anjet6termkaf5ferekal6lero5k6ande_kat6term5kegladhkel5eierkels7karkelø8pa_5kenattskenne4l3ke6r5engke4r5ert6keringi6keringj8kerist_8kerista6keristekero6se_keru6se_kerø6re_8ker8øya6ker6øye7kesdalek9es8ka_4ke5sted4ke5stei4ke5struketa6le_ketøy6s5keva8ne_kevi6sa_king5andki4v5enhkjel7legk6kandenkkar6ta_kk5e4levk6kerentk6kestadk4k5jernklon7a8lklyse7tekna5t4reko4g5engkoi4e5nekone5l6Ã¥kord5s4ø4ko7rei97k8ra4sjkrin6s7t7krisenekses6selksla8ga_kslø8ve_ks4t5rekk9s8vakeksva8ne_k7s6vertk6t5elskkt5e4litkterie5nktes6ke_k4t5e4taktev6ne_k6togramktori9e8kt4s5ambktyr8ke_kund5s6lkuru9kenkuru7kerkyrie5nekyse8te_køy4e5nelan6germlang4s5elan6g5ø6la6r7etalari6e7nlat4t5isl6derklælderle9gldsla8gale6bostalefa6ne_le9geranle9geraslei5endelei4e5nelei7ger_lekt5ordlekt4s5tlen4s5aklen8t9rale2r3amb4le9r8eileru8se_leta8le_lge4r5anlg5s4kreli4g5enhlig5s4tilil5lebe6l5inntrlis6terk4lis6tillis4t3u4lit6telelit6terklit6terml6je5t6rlkali9e8l5kestadl6l5ekstllen6da_ll5endenllmue9nellmu7ensllsa6me_llun6ge_lmyr8ke_lob9byanlo6g5e8vlole6ge_lo3ve7d66l5overs6l5overtlsan6ke_lse8s5trl2s3kildlskinns5lsle6ge_lson6de_lsve8en_l4t5erstltle8ge_l5t4restltsa8me_ltu5r6enltu5r6erlub6bandluk6keri3lu5t6helut4t5atlvin5g6rlvly8se_lyk6kerily4s5a4klyse6te_mali9e8nmal4t5ekma4t5rasma6t7romm8at7t8rme5l4aks6m5e6lemme4l5engmello6m34me5l4Ã¥5me4r5antme6rensem5fru5s6mi4n5ersmisha9gem8jinganm8jingarmlei5er_m6le5s8vmman6dolmme5t6remnes9tiemofo6bi_4m3o4riemorla8ga6motsagdm4p5antam6peressm4p5erfampun6ge_m5s6toppm8strandm5stranemutsa8lamÃ¥lø6pe_mÃ¥4ne5s6na4l5ettnari4e5n7nariksknditori5ndit4t5and4om4s3nd5resennd4s5ambnds5endendsla6gands6lettnds5trekndta6ka_ndun6ge_6n5eddik5ne4e4r5neg5lesp7neleggjnelei5er6n3en5trnere6de_nerla8ganers8ten4ne5skar5neskinsnes9tas_neta6le_netÃ¥5ker6ne8ventnfor9en_n8gan8dan5g6ros5ngst5ridnian5depnings5ten4k5erfan5k6langnland6senlei7er_nmusik7kn6n7antan5nes4lannhø8re_nni4s3t6nnle6ge_nnlø6pe_n4n3o4venn4s5ambnn6s5enknnse6te_nn4s5i6snn6s5jaknn5s4klinn6s5tabnns5teltnn6s5trennte6se_nodi4e5nnors6ka_nose8te_nsak6se_n5saren_nseri7e6n4se3s4vn6s5jordn6s5kaukn6skjelen7slararnsle6ge_n3s4lektnsmÃ¥6la_nson6de_nste6ma_n4s5tilsns4t3i4sn5s4villn6t5arvin6terestnte6riskn4ti5stintrol6linæ8rast_oak6kanaoar4d5inoa4r5e4goa4r5enhobers5taobers5teod5s4tolo6gi7strogs5t6raoka4n5i6ok6serinokto4r5iolbo7ge_oldo7ve7old3s4kroll5overo6l7o6seolun8ge_omsku9laomvæ8re_omyr8ke_o4ne3s8tonsla6gaonst5rumo4p5landop4p5artord7e6plor4d5iseore6o5g6orfa6re_orfø9re_ori4e5neorko6se_orse7te_orsk5ei4orsmÃ¥8laorsva9reorta8la_or4t5andorte5i6gor6t5erfor4t5ermosi6e7neossis5teote6k7laotel6lanotel6leko4t5endeoten8de_otes6terotno7te_o6togramove8r5es5oversikovta6le_pakk7eslpekt7rospe5l4akspensa8laperie8nspero6se_per6regjper4t5rÃ¥peva8ne_pike5r6opillega6pille6rapio6n5anpita7la_platina5p6le5n4upol6s4kapor4t5ropp7e6senpp5e4tasppir8re_ppropri6ppse6te_prei7er_pres6sakp6restasprø5velspslø6ve_psmÃ¥8la_psøy9enepunk5t6erali5e6nramperi8r4an9de_rand5s6aran4n5inrans7kar8rarinna6rarinneraska8rara5s4tilra5t6røyrav8l9utravlø8par4d5erstrdi6gresrdon8na_rdvi8ka_rein6skjreis6ledre5k6lirrele8ge_rel6landremi6eneremti9da6r7entit4r3en5tr6re9rangrero6se_resi7ereres6sortres9tanerett6set5retøya_reva5re_re6v7enhre4v5innrhÃ¥nd6s9rien5t4rril6lestring4sa4rings5akring8spa4ri5stedritt8s7trko6seler4k5ve6dr4l5e4rirling3s4r4m5altermin5skir6m5instrn5e4tabrnsle7gern6s3ovn5robølgjrok6keri3ro5m8an6ronista8roniste6ronistirot5ekters5e4rikrsk7innsrs5kjensrso7n6alr4s5tabbrstev9nar4s5tilfr4s5tilhr4s5tilsr4s5tilvrsvar4s5rt5e4litrten4s5krtentle8r4ti5strrtma6le_r4t5rekort4s5tøyrts5unde6r3underr5unders6r7u6sikru4s4t3rruta8la_ru9tene_rveis7e6rville9d8r3æ4renrønn5s4a6røy4s3krÃ¥ta8ka_4s5alarmsan7d8al5s6ande_4s3a6nek5s4ansen4s5ans8l4s3atmos6s5atten4s2e7g8rsek2t3ansekte9ra4s3e4lev4s3e4lit8s5elskese6l7u6rsel4v5akselø8pa_sen6delasene8se_4s5ensemseperso5ses4s5ins5ettersseure9neseva6ne_sfisken8sik4k5elsit6termsjek4t5os6j3t6sj5s4kal8a9s8kapa_5skapen_skei5er_s3ke4t3j6skjemas4s5kjærlskjø5res6s5kulis7slegare5s6legasslei5er_s6len6t37slottetslum5p6eslæ6rari5s4makensolei5ersommar5a5s6paser8s9plantsport6s58sprinsi5s6prosssrÃ¥6dersssar8ve_ssau6se_ssel5v6Ã¥ss5endenssen6ke_s5s6jargsstel6li6stande_stang5s6s6t5antr5stegspl5s4tenen4ste5nesstep7pers6terests6teri6vstga6ve_stgÃ¥8ve_stile9ge5s4tilt_6s5tiltas6t5jent6s8t5ord5s6tore_stra8na_st7rast_5s4traum7s6treik3s4t6rip6s4t5romst7ro6pastsa6me_stta6le_8s5under4s3u4reisverd5s44s5viktis6vindelsving5s4ll6svint8s3æ4ren7s6æ5te4søk6s3e6sø4r5endsÃ¥r9ast_ta6d3e4ttal8ligntall6s9at5altern5t6ande_t7andel_t5andeletandør5e4t5anstr6t7antre4t9arenatart7estta6r5Ã¥8kta4si5s4tate8se_tbe6t8ratedo6en_tedo8et_t7ei6ge_5te4l5artel8ligntelø8pa_tempe8l7ten4t5intep6perete4r5engteren6gater5estiterla6gaterle7ge5tersjøoter7s6kotervi6set9es6ka_5tes7te_4te5steite5s6tivteta6le_tifa8ne_6tikular5timedie4tim6o8rtin5ge4stise8ra_ti4v5andti4v5arttlei5er_tokk5endto4l5armtoli8ne_tol6lettto5mene_tomlø8pa6t5opple4t5opplæto4r5ant6t9rabattran7ske4t3rekor3t6re7nat5represt5rettedtsak6se_tsen6ke_t5s6ers_5t6sjov_t4s5kjedtsmÃ¥6la_t2s3piket2s3tabbt4s5trenttem6ne_t4t5ensettes6ke_ttle6de_ttsla6gatt5stillttun6ge_tun5gesvtut6tenkt8viklast4vi5l4itørs7ta_tørs7tertørs5tinudle6ge_u5e6rastuf4f5ermuft5s4laugrei9erug5s4va7uinnsmi8ukt5e4skuk4t5oriuktue5reu5leste_ulleg8gaul4le3s4ulling7sul4l3o6sul8s3t6rulyk5kesumau7kenumen4t5i5underskun4n5ersun4n5ervunnta8launst5e6lurau9kenuregist5uri6a7neuri4e5neurle6ge_urle8se_u6s5endiusle6ge_u6standeust9etteu7s6valtusvi8ka_u6t5a6sau6t5a6seutda7ta_u5t4radiut5toreautun8ge_uærle9gevann6stivan5s6kivar4s5tivarta9lava6t7e8lvding5s4ve5g6lødveg5rettveks4t5rvek4t5anve6r7engverfø5rever8ska_ve6s3pervest5o4v5vesyndsve5te6s79vetoks_vgjer6s7vil4l5anvil6tretvin5gom_vi4t5øy4v4s5e4livsre6de_vste6ma_vven7n6ivvi8s9anvøy7ene_vøy9enesvÃ¥9kene_war6d7erwestern7y4d4r5auyk4k5enhyk8k5vi6ym4fe5d6yns9ket_yn4s5very5reste_yres6tenyri6ene_yrs7teneyrs5tensyrul8la_yrÃ¥6dersyseri7e6y4se5s6lyter5skeyt8tien_æri6e7neærle6ge_øffe8l7aø6keradaølge5s6vønhø8re_ønns5kjeønns5kreøpsla8gaørele8seør8k9lagørsa6me_ørs5tensør8tien_øs5terseøttsÃ¥7reÃ¥kva8la_Ã¥rsla8gaÃ¥seri7e6Ã¥tri6pa_Ã¥tri8pe_", + 9: "_be6d5ene_blek4k3f_bo4k4en__brudd7s6_bruddsÃ¥7_de7r4i5v_ein5s6ta_ein8s7to_fem5o6g5_for3d6ri_for7d6ra_fri5e6re_ge5s6tap_hand5s6l_handsla9_høy6st5æ_hÃ¥nd5s6l_in6n7eks_in6n7ets_in6n7ett_kalve5l8_ka5r6a5v_kor6s5ed_liv8s7u6_mak6t5at_me3ta4ll_mons6t5r_mor3t6a5_nær9ast__overen6d_plus7s6e_rap5s4o4_re5s6tan_san8s7ku_sel4v5i6_sju5o6g5_skudd5s6_skuddsÃ¥7_sky6f7la_snitt5s6_stein7a8_stein7s8_strek5s6_torsk6e5_tota9la__tre5o6g5_tre6skja_tre3s8ko_ut6e7sko_ve6l5art_ysterie8adsle6ge_akelei9eraktle6ge_a4l5en5tralere6de_alvak8se_al8v9er8mand5s6trean5e6tikaan5e6tikkangs8t9rÃ¥ankra8na_armle6ne_arneva7laasseri7e6assku6le_aus6t7isebaken6de_bi3o8m3s4blesse9nebobba6ne_brevi9er_bunnla8gabusse6te_cerba6ne_dan9s8kandatali8na6d5engen_den6t5antdfø6rararding8s5ending6s5erdleva8ne_8do9b8landomsla6gadyrle8ge_eftle8ge_egøy6e5neeiseri9e8eli5e6rerelo7vers_eme6triskemp9lane_endelø7seentun6ge_erdsto8gae4ri5s6toerland7aser8skarane8s9kjer_esstu8en_5e6s5timaetal6list5e6tasjesetsku8le_fangst7evferi8e5nefis6k5endfjel6lendfor9e8te_for9e8tenforsi7de_forta8le_fri5s6tilfrite8re_friti8me_fronta9lefruta6le_ftsle6ge_fullfø7regares6ke_gart5s6lagenle6ge_gesta7b6lg6ges6tiogi6st5rerglere8de_glorie7ne6gometrisgres6sentgstatsrÃ¥7gst7evnengstri8de_hek6serinhimme6l5ohøyse6te_8icanarariderla8gaiktsla8gaildsfa9reili5s6tikin6n7etteio6n5erstipplæ8re_ipsle6ge_ita6l5ersjamhø8ve_jor6d7ervjor6d7is_kan6t7endkelei8ke_6k5en6den6k5en4derkesle6ge_4ke5s4tenket6t7enhkil6le5stkinnsi8dakinsi6de_kinti8me_kke5r6undkor6s5innkos6t5erskrani6e7nkspor6t5r6k6s5porskstev6ne_kterie7nskti6v7endktsle6ge_kumen6talkvari6e5nkyn6skjerkøn6skjerlakterie6lder5s6telder6s5tile6sk9u8tlesse6ne_ling7sen_l6l5e6rikllet6telelob9byar_ltesa8me_mari8e9nemarmo9ra_menle6ge_m5funn8s5mmatik7kamo6te6g6empera8te_mperi6e7nmse8t9jasmuske6l5a7na7bortrnatori5e6nderla6ganditorie6ne9a8r9anned5over76n5en6denngsmÃ¥6la_nnomsy8nanor6d5endnormlø7senstar8ta_olele6ge_ordre8gi_ordsa6me_orgi6e5neoriti6me_osseri7e6otekla8gaotshusvæ86p5enden_pil4le5s6pis9t8ra_plun6d7rip8p9ender3pr6in6s5rambu9ensramse8te_ramta8la_ramta6le_ran6n5ett8r7a6telir7d6æ5r6ere7a6r7anred7s6ledren8ne8slrennes9lare6s7kje_res6t5erv7retøyetsrfø8rararrg5s6tillriferi9e8rkeslø7ser6n5apparr6n9a6visrnele6ge_rolle8ge_rolle8se_ronta6le_rote7sterr7rebart_rt7s6trek7r4under_ryl4l5i8sr6ørende_røy8senessand5s6lo5s6a5v6in5se4au3sk6sedvanlesei8e9nessel9s8lagsen6s5endseri6e5nesfri5e6re7sh6e4rifsing4s5a4s8k5e4lev5sk8inns5spe4r5andssari8e9nssi7e6rerssi6v7endste6in6s5v4s5tekstsøren6de_8t7allergtamba6ne_tek6lede_6t5en6denterba6ne_terle6ve_tersø6ke_4te5s4til5t6jingan5t6jingar5t6retteltsje5t6sjttaba6ne_tteli6te_ub7lande_uguay7ansuinnsmig9uk7kestaluktu8e9raulele8ge_umsku8le_unele6ge_un7s6tenkuntun8ge_uran6t5reusove7r6eutse8t9javar4t5i4svatle6ge_verta8la_verta6le_ves6t5endville6de_vit6te6s7vitun6ge_y4d4r5oksyenle6ge_ykke6s5tayns7kjeleys6a7kersysterie7nyttsa6me_ønn4s5i4døn8skjer_Ã¥køy8rar_Ã¥le9s6und", + 10: "_fire5o6g5_gra4v3end_oppla8te__skritt9s8_sy6v5o6g5_tver6r5a6_ut3kan6t5_vil5l6a5l_vil5l6a5t_øyele8ge__Ã¥tte5o6g5amen6t7arvansport7s6augele8ge_be4g5rene_ber4g5endeb5s6e6a5m46d5en6den_dritun8ge_en6s7a6kerer9s6kararframma8ne_fremma8ne_fullen8de_funnsla8gagestri8de_her8s7kareil6l7enderkinnsi8de_kses8serie8lemetriskle8p9endenlistyr8ke_mse6t7jarengstyr8ke_nteriø7ra_5og5s6y4v33pr6in7s6e3pr6in7s6irdenta8le_9relandsk_9relandskerifiserba88s7en5trepsikk8artet5s6kjer4m33skjer5m4es6k5undervsomme6r5e6tentle8ge_ukteslø9seungele8ge_us7edvanlevi6n5o6vervnor9s8kasvve8g9ing_vve6g7ingaykjeva8ne_ylkesla8gayn8s9kjer_ytte8r9endø7reskrivi", + 11: "_blekk3s4t6_blekk9s8v4_rett7s8kri_sek4s5o6g5anseri8e9nedgjø6re7n6hgjen1opp3s4inseri8e9nentres9kjareonstitue9raonstitue9re" + }, + exceptions: 'atten-de, aust-røn, aviser, betre, bortan-for, bortre, Dansk-øya, der-etter, dess-uak-tet, dit-over, fram-ifrÃ¥, før-enn, her-etter, her-etter-dags, hvor-etter, hvor-over, høyt-ærede, gi-vet-vis, lands-øl, lands-ølet, lands-ølets, langt-ifra, ned-imot, noens, Not-odden, Not-oddens, nøye-reg-nen-de, opp-imot, oven-ikjøpet, promp-te, spleen, sel-ves-te, smal-enden, sørpe-is, sørpe-isen, skrov-is, skrov-isen, Steins-land, syd-enden, tvert-om, velan, velet, welt-schmerz' +}; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/or.js b/resources/viewer/hyphenate/patterns/or.js index ae81395aa6..96b585ebc3 100644 --- a/resources/viewer/hyphenate/patterns/or.js +++ b/resources/viewer/hyphenate/patterns/or.js @@ -1,14 +1,14 @@ -// For questions about the Oriya hyphenation patterns +// For questions about the Oriya hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.or = { +Hyphenator.languages['or'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 3, - specialChars : unescape('ଆଅଇଈଉଊଋà¬à¬à¬”କଗଖଘଙଚଛଜà¬à¬žà¬Ÿà¬ à¬¡à¬¢à¬£à¬¤à¬¥à¬¦à¬§à¬¨à¬ªà¬«à¬¬à¬­à¬®à¬¯à¬°à¬²à¬µà¬¶à¬·à¬¸à¬¹à¬³à¬¿à­€à¬¾à­à­‚ୃୋୋୈୌୗà­à¬ƒà¬‚%u200D'), + specialChars : unescape("ଆଅଇଈଉଊଋà¬à¬à¬”କଗଖଘଙଚଛଜà¬à¬žà¬Ÿà¬ à¬¡à¬¢à¬£à¬¤à¬¥à¬¦à¬§à¬¨à¬ªà¬«à¬¬à¬­à¬®à¬¯à¬°à¬²à¬µà¬¶à¬·à¬¸à¬¹à¬³à¬¿à­€à¬¾à­à­‚ୃୋୋୈୌୗà­à¬ƒà¬‚%u200D"), patterns : { - 2 : 'ଅ1ଆ1ଇ1ଈ1ଉ1ଊ1ଋ1à¬1à¬1ଔ1ି1ା1à­€1à­1à­‚1à­ƒ1à­‡1à­‹1à­Œ1à­—1à­2ଃ1ଂ11କ1ଖ1ଘ1ଙ1ଚ1ଛ1ଜ1à¬1ଞ1ଟ1ଠ1ଡ1ଢ1ଣ1ତ1ଥ1ଦ1ଧ1ନ1ପ1ଫ1ବ1ଭ1ମ1ଯ1ର1ଲ1ଵ1ଶ1ଷ1ସ1ହ1ଳ', - 3 : '1ଗ1', - 4 : unescape('2ନà­%u200D2ରà­%u200D2ଲà­%u200D2ଳà­%u200D2ଣà­%u200D') + 2 : "ଅ1ଆ1ଇ1ଈ1ଉ1ଊ1ଋ1à¬1à¬1ଔ1ି1ା1à­€1à­1à­‚1à­ƒ1à­‡1à­‹1à­Œ1à­—1à­2ଃ1ଂ11କ1ଖ1ଘ1ଙ1ଚ1ଛ1ଜ1à¬1ଞ1ଟ1ଠ1ଡ1ଢ1ଣ1ତ1ଥ1ଦ1ଧ1ନ1ପ1ଫ1ବ1ଭ1ମ1ଯ1ର1ଲ1ଵ1ଶ1ଷ1ସ1ହ1ଳ", + 3 : "1ଗ1", + 4 : unescape("2ନà­%u200D2ରà­%u200D2ଲà­%u200D2ଳà­%u200D2ଣà­%u200D") } }; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/pa.js b/resources/viewer/hyphenate/patterns/pa.js index f08239f84b..37bcc3bbd1 100644 --- a/resources/viewer/hyphenate/patterns/pa.js +++ b/resources/viewer/hyphenate/patterns/pa.js @@ -1,12 +1,12 @@ -// For questions about the Panjabi hyphenation patterns +// For questions about the Panjabi hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.pa = { +Hyphenator.languages['pa'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 1, - specialChars : unescape('ਆਅਇਈਉਊà¨à¨à¨”ਕਗਖਘਙਚਛਜà¨à¨žà¨Ÿà¨ à¨¡à¨¢à¨£à¨¤à¨¥à¨¦à¨§à¨¨à¨ªà¨«à¨¬à¨­à¨®à¨¯à¨°à¨²à¨µà¨¶à¨¸à¨¹à¨³à¨¿à©€à¨¾à©à©‚ੇਾੋੈੌà©à¨ƒ%u0A02%u200D'), + specialChars : unescape("ਆਅਇਈਉਊà¨à¨à¨”ਕਗਖਘਙਚਛਜà¨à¨žà¨Ÿà¨ à¨¡à¨¢à¨£à¨¤à¨¥à¨¦à¨§à¨¨à¨ªà¨«à¨¬à¨­à¨®à¨¯à¨°à¨²à¨µà¨¶à¨¸à¨¹à¨³à¨¿à©€à¨¾à©à©‚ੇਾੋੈੌà©à¨ƒ%u0A02%u200D"), patterns : { - 2 : unescape('ਅ1ਆ1ਇ1ਈ1ਉ1ਊ1à¨1à¨1ਔ1ਿ1ਾ1à©€1à©1à©‚1ੇ1à©‹1ੌ1à©2ਃ1%u0A0211ਕ1ਗ1ਖ1ਘ1ਙ1ਚ1ਛ1ਜ1à¨1ਞ1ਟ1ਠ1ਡ1ਢ1ਣ1ਤ1ਥ1ਦ1ਧ1ਨ1ਪ1ਫ1ਬ1ਭ1ਮ1ਯ1ਰ1ਲ1ਵ1ਸ਼1ਸ1ਹ1ਲ਼') + 2 : unescape("ਅ1ਆ1ਇ1ਈ1ਉ1ਊ1à¨1à¨1ਔ1ਿ1ਾ1à©€1à©1à©‚1ੇ1à©‹1ੌ1à©2ਃ1%u0A0211ਕ1ਗ1ਖ1ਘ1ਙ1ਚ1ਛ1ਜ1à¨1ਞ1ਟ1ਠ1ਡ1ਢ1ਣ1ਤ1ਥ1ਦ1ਧ1ਨ1ਪ1ਫ1ਬ1ਭ1ਮ1ਯ1ਰ1ਲ1ਵ1ਸ਼1ਸ1ਹ1ਲ਼") } }; diff --git a/resources/viewer/hyphenate/patterns/pl.js b/resources/viewer/hyphenate/patterns/pl.js index bde7e7abae..74beb9631e 100644 --- a/resources/viewer/hyphenate/patterns/pl.js +++ b/resources/viewer/hyphenate/patterns/pl.js @@ -1,27 +1,27 @@ -Hyphenator.languages.pl = { +Hyphenator.languages['pl'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 15, - specialChars : unescape('ąćęłńóśźżਂ%u200D'), + specialChars : unescape("ąćęłńóśźżਂ%u200D"), patterns : { - 2 : 'a1Ä…1e1Ä™1i1o1ó1u1y1', - 3 : '_a1_b8_c8_ć8_d8_e1_f8_g8_h8_i1_j8_k8_l8_Å‚8_m8_n8_Å„8_o1_p8_r8_s8_Å›8_t8_u1_v8_w8_x8_z8_ź8_ż8Å›1cc4hc4zd4zd4źd4żr4zs4z8b_8c_8ć_8d_8f_8g_8h_8j_8k_8l_8Å‚_8m_8n_8Å„_8p_8r_8s_8Å›_8t_8v_8w_8x_8z_8ź_8ż_ae2ai2ao2be1bi1bo1bu1ca1cu1de1du1ea2ei2eo2fi1fo1ga1go1hi1hu1ja1ka1ki1ko1le1lu1ly1ma1mi1mo1mu1na1oa2oe2oi2ou2pa1po1ro1se1so1sy1to1tu1ty1ua2ue2ui2uo2vo1we1ya2ye2yi2yo2yu2ze1', - 4 : '_ae2_be1_bh8_bj8_bl8_bÅ‚8_br8_bv8_bw8_bx8_ca1_ci1_cj8_cÅ‚8_cr8_cv8_cw8_cx8_ćh8_ćj8_ćl8_ćł8_ćr8_ćv8_ćw8_ćx8_da1_de1_dh8_dj8_dl8_dÅ‚8_do1_dr8_dv8_dw8_dx8_dy1_fb8_fć8_fd8_fg8_fh8_fj8_fl8_fÅ‚8_fÅ„8_fp8_fr8_fs8_fÅ›8_ft8_fv8_fw8_fx8_fz8_fź8_fż8_ge1_gh8_gj8_gl8_gÅ‚8_gn8_go1_gr8_gv8_gw8_gx8_hi1_hv8_hx8_ja1_jv8_jx8_kh8_ki1_kj8_kl8_kÅ‚8_ko1_kr8_kv8_kw8_kx8_lu1_lv8_lx8_Å‚v8_Å‚x8_mi1_mo1_mv8_mx8_na1_ne1_ni1_nv8_nx8_Å„v8_Å„x8_ot2_oa2_oc2_oć2_of2_og2_oh2_ok2_om2_op2_os2_oÅ›2_ow2_oz2_oź2_oż2_pe1_ph8_pi1_pj8_pl8_pÅ‚8_po1_pó1_pr8_pv8_pw8_px8_re1_ro1_rv8_rx8_sa1_sc8_sć8_sh8_si1_sj8_sk8_sl8_sÅ‚8_sm8_sn8_sÅ„8_so1_sp8_sr8_sÅ›8_st8_su1_sv8_sw8_sx8_ść8_Å›h8_Å›j8_Å›l8_śł8_Å›m8_Å›n8_śń8_Å›r8_Å›v8_Å›w8_Å›x8_ta1_te1_th8_tj8_tl8_tÅ‚8_to1_tr8_tv8_tw8_tx8_ty1_uć2_uÅ›2_vb8_vc8_vć8_vd8_vf8_vg8_vh8_vj8_vk8_vl8_vÅ‚8_vm8_vn8_vÅ„8_vp8_vr8_vs8_vÅ›8_vt8_vv8_vw8_vx8_vz8_vź8_vż8_we1_wh8_wi1_wo1_wv8_wx8_wy1_xb8_xc8_xć8_xd8_xf8_xg8_xh8_xj8_xk8_xl8_xÅ‚8_xm8_xn8_xÅ„8_xp8_xr8_xs8_xÅ›8_xt8_xv8_xw8_xx8_xz8_xź8_xż8_za1_zb8_ze1_zg8_zh8_zi1_zj8_zl8_zÅ‚8_zm8_zn8_zÅ„8_zo1_zr8_zv8_zw8_zx8_zź8_zż8_źh8_źj8_źł8_źń8_źr8_źv8_źx8_żh8_żv8_żx82b1c2b1ć2b1d2b1f2b1g2b1k2b1m2b1n2b1Å„2b1p2b1s2b1Å›2b1t2b1z2b1ź2b1ż2c1b2c1ć2c1d2c1f2c1g2c1k2c1l2c1m2c1n2c1Å„2c1p2c1s2c1Å›2c1t2c1ź2c1ż2ć1b2ć1c2ć1d2ć1f2ć1g2ć1k2ć1m2ć1n2ć1Å„2ć1p2ć1s2ć1Å›2ć1t2ć1z2ć1ź2ć1ż2d1b2d1c2d1ć2d1f2d1g2d1k2d1m2d1n2d1Å„2d1p2d1s2d1Å›2d1t2f1c2f1k2f1m2f1n2g1b2g1c2g1ć2g1d2g1f2g1k2g1m2g1Å„2g1p2g1s2g1Å›2g1t2g1z2g1ź2g1ż2h1b2h1c2h1ć2h1d2h1f2h1g2h1j2h1k2h1l2h1Å‚2h1m2h1n2h1Å„2h1p2h1r2h1s2h1Å›2h1t2h1w2h1z2h1ź2h1ż2j1b2j1c2j1ć2j1d2j1f2j1g2j1h2j1k2j1l2j1Å‚2j1m2j1n2j1Å„2j1p2j1r2j1s2j1Å›2j1t2j1w2j1z2j1ź2j1ż2k1b2k1c2k1ć2k1d2k1f2k1g2k1m2k1n2k1Å„2k1p2k1s2k1Å›2k1t2k1z2k1ź2k1ż2l1b2l1c2l1ć2l1d2l1f2l1g2l1h2l1j2l1k2l1Å‚2l1m2l1n2l1Å„2l1p2l1r2l1s2l1Å›2l1t2l1w2l1z2l1ź2l1ż2Å‚1b2Å‚1c2Å‚1ć2Å‚1d2Å‚1f2Å‚1g2Å‚1h2Å‚1j2Å‚1k2Å‚1l2Å‚1m2Å‚1n2Å‚1Å„2Å‚1p2Å‚1r2Å‚1s2Å‚1Å›2Å‚1t2Å‚1w2Å‚1z2Å‚1ź2Å‚1ż2m1b2m1c2m1ć2m1d2m1f2m1g2m1h2m1j2m1k2m1l2m1Å‚2m1n2m1Å„2m1p2m1r2m1s2m1Å›2m1t2m1w2m1z2m1ź2m1ż2n1b2n1c2n1ć2n1d2n1f2n1g2n1h2n1j2n1k2n1l2n1Å‚2n1m2n1Å„2n1p2n1r2n1s2n1Å›2n1t2n1w2n1z2n1ź2n1ż2Å„1b2Å„1c2Å„1ć2Å„1d2Å„1f2Å„1g2Å„1h2Å„1j2Å„1k2Å„1l2Å„1Å‚2Å„1m2Å„1n2Å„1Å„2Å„1p2Å„1r2Å„1s2Å„1Å›2Å„1t2Å„1w2Å„1z2Å„1ź2Å„1ż2p1b2p1c2p1ć2p1d2p1f2p1g2p1k2p1m2p1n2p1Å„2p1s2p1Å›2p1t2p1z2p1ź2p1ż2r1b2r1c2r1ć2r1d2r1f2r1g2r1h2r1j2r1k2r1l2r1Å‚2r1m2r1n2r1Å„2r1p2r1s2r1Å›2r1t2r1w2r1ź2r1ż2s1b2s1d2s1f2s1g2s1s2s1ź2s1ż2Å›1b2Å›1d2Å›1f2Å›1g2Å›1k2Å›1p2Å›1s2Å›1Å›2Å›1t2Å›1z2Å›1ź2Å›1ż2t1b2t1c2t1ć2t1d2t1f2t1g2t1k2t1m2t1n2t1Å„2t1p2t1s2t1Å›2t1z2t1ź2t1żtr4z2w1b2w1c2w1ć2w1d2w1f2w1g2w1j2w1k2w1l2w1Å‚2w1m2w1n2w1Å„2w1p2w1r2w1s2w1Å›2w1t2w1z2w1ź2w1ż2z1c2z1ć2z1d2z1f2z1k2z1p2z1s2z1Å›2z1t2ź1b2ź1c2ź1ć2ź1d2ź1f2ź1g2ź1k2ź1l2ź1m2ź1n2ź1p2ź1s2ź1Å›2ź1t2ź1w2ź1z2ź1ż2ż1b2ż1c2ż1ć2ż1d2ż1f2ż1g2ż1j2ż1k2ż1l2ż1Å‚2ż1m2ż1n2ż1Å„2ż1p2ż1r2ż1s2ż1Å›2ż1t2ż1w2ż1z2ż1źdni1mne1pne1wc4zwÅ‚a1wÅ‚o14b3b4c3c4ć3ć4d3d4f3f4g3g4h3h4j3j4k3k4l3l4Å‚3Å‚4m3m4n3n4p3p4r3r4t3t4w3w4z3z4ź3ź4ż3żbr4zdr4zpr4zrs4zsc4ha2u1a2y1a1a2blo1bro1chu1dże1er4ze2u1e2y1e1e2gra1gro1i2a1i2Ä…1i2e1i2Ä™1i2i1i2o1i2ó1i2u1i2y1o2y1oc4ho1o2pre1roe2sko1sza1sze1szy1u2y1u1u2_by1', - 5 : '_a2d3_a2u1_c4h8_c4z8_cza1_ćwi1_dÅ‚u1_dro1_dwó1_d4z8_dzi1_d4ź8_d4ż8_ego1_gru1_i2n3_izo1_kro1_kró1_na2j_o2b2_o2d2_ob3r_oa3z_obu1_oda1_odu1_ogó1_oka1_okr2_ole1_osi1_pÅ‚a1_poe2_pra1_pre1_r4z8_skÄ…1_skl8_skr8_spo1_spó1_ste1_s4z8_sze1_Å›1c8_Å›ró1_Å›wi1_toa3_tra1_tró1_u3b2_u3c2_u3d2_u3f2_u3g2_u3h2_u3k2_u3l2_u3Å‚2_u3m2_u3n2_u3p2_u3r2_u3s2_u3t2_u3w2_u3z2_u3ź2_u3ż2_ube1_ubr2_ukr2_upo1_uro1_utr2_uze1_wni1_ws4z_wyo2_wye2_wyi2_zao2_zai2_zde1_zdy1_zÅ‚o1_zma1_zni1_zro12cz1b2cz1g2cz1l2cz1m2cz1n2cz1Å„2cz1ź2cz1żd2Å‚1s2dz1b2dz1g2dz1l2dz1m2dz1n2dz1Å„2dz1ź2dz1ż2dź1Å„2rz1b2rz1g2rz1h2rz1j2rz1l2rz1Å‚2rz1m2rz1n2rz1Å„2rz1r2rz1w2rz1ź2rz1żs2t1s2sz1l2sz1m2sz1n2sz1wwcza18b8b_8b8c_8b8ć_8b8d_8b8f_8b8g_8b8h_8b8j_8b8k_8b8l_8b8Å‚_8b8m_8b8n_8b8Å„_8b8p_8b8r_8b8s_8b8Å›_8b8t_8b8v_8b8w_8b8x_8b8z_8b8ź_8b8ż_8c8b_8c8c_8c8ć_8c8d_8c8f_8c8g_8c8h_c2h2Å‚c2h2rchr4zc2h2w8c8j_8c8k_8c8l_8c8Å‚_8c8m_8c8n_8c8Å„_8c8p_8c8r_8c8s_8c8Å›_8c8t_8c8v_8c8w_8c8x_8c8z_8c8ź_8c8ż_8ć8b_8ć8c_8ć8ć_8ć8d_8ć8f_8ć8g_8ć8h_8ć8j_8ć8k_8ć8l_8ć8Å‚_8ć8m_8ć8n_8ć8Å„_8ć8p_8ć8r_8ć8s_8ć8Å›_8ć8t_8ć8v_8ć8w_8ć8x_8ć8z_8ć8ź_8ć8ż_8d8b_8d8c_8d8ć_8d8d_8d8f_8d8g_8d8h_8d8j_8d8k_8d8l_8d8Å‚_8d8m_8d8n_8d8Å„_8d8p_8d8r_8d8s_8d8Å›_8d8t_8d8v_8d8w_8d8x_8d8z_8d8ź_8d8ż_8f8b_8f8c_8f8ć_8f8d_8f8f_8f8g_8f8h_8f8j_8f8k_8f8l_8f8Å‚_8f8m_8f8n_8f8Å„_8f8p_8f8r_8f8s_8f8Å›_8f8t_8f8v_8f8w_8f8x_8f8z_8f8ź_8f8ż_8g8b_8g8c_8g8ć_8g8d_8g8f_8g8g_8g8h_8g8j_8g8k_8g8l_8g8Å‚_8g8m_8g8n_8g8Å„_8g8p_8g8r_8g8s_8g8Å›_8g8t_8g8v_8g8w_8g8x_8g8z_8g8ź_8g8ż_8h8b_8h8c_8h8ć_8h8d_8h8f_8h8g_8h8h_8h8j_8h8k_8h8l_8h8Å‚_8h8m_8h8n_8h8Å„_8h8p_8h8r_8h8s_8h8Å›_8h8t_8h8v_8h8w_8h8x_8h8z_8h8ź_8h8ż_8j8b_8j8c_8j8ć_8j8d_8j8f_8j8g_8j8h_8j8j_8j8k_8j8l_8j8Å‚_8j8m_8j8n_8j8Å„_8j8p_8j8r_8j8s_8j8Å›_8j8t_8j8v_8j8w_8j8x_8j8z_8j8ź_8j8ż_8k8b_8k8c_8k8ć_8k8d_8k8f_8k8g_8k8h_8k8j_8k8k_8k8l_8k8Å‚_8k8m_8k8n_8k8Å„_8k8p_8k8r_8k8s_8k8Å›_8k8t_8k8v_8k8w_8k8x_8k8z_8k8ź_8k8ż_8l8b_8l8c_8l8ć_8l8d_8l8f_8l8g_8l8h_8l8j_8l8k_8l8l_8l8Å‚_8l8m_8l8n_8l8Å„_8l8p_8l8r_8l8s_8l8Å›_8l8t_8l8v_8l8w_8l8x_8l8z_8l8ź_8l8ż_8Å‚8b_8Å‚8c_8Å‚8ć_8Å‚8d_8Å‚8f_8Å‚8g_8Å‚8h_8Å‚8j_8Å‚8k_8Å‚8l_8Å‚8Å‚_8Å‚8m_8Å‚8n_8Å‚8Å„_8Å‚8p_8Å‚8r_8Å‚8s_8Å‚8Å›_8Å‚8t_8Å‚8v_8Å‚8w_8Å‚8x_8Å‚8z_8Å‚8ź_8Å‚8ż_8m8b_8m8c_8m8ć_8m8d_8m8f_8m8g_8m8h_8m8j_8m8k_8m8l_8m8Å‚_8m8m_8m8n_8m8Å„_8m8p_8m8r_8m8s_8m8Å›_8m8t_8m8v_8m8w_8m8x_8m8z_8m8ź_8m8ż_8n8b_8n8c_8n8ć_8n8d_8n8f_8n8g_8n8h_8n8j_8n8k_8n8l_8n8Å‚_8n8m_8n8n_8n8Å„_8n8p_8n8r_8n8s_8n8Å›_8n8t_8n8v_8n8w_8n8x_8n8z_8n8ź_8n8ż_8Å„8b_8Å„8c_8Å„8ć_8Å„8d_8Å„8f_8Å„8g_8Å„8h_8Å„8j_8Å„8k_8Å„8l_8Å„8Å‚_8Å„8m_8Å„8n_8Å„8Å„_8Å„8p_8Å„8r_8Å„8s_8Å„8Å›_8Å„8t_8Å„8v_8Å„8w_8Å„8x_8Å„8z_8Å„8ź_8Å„8ż_8p8b_8p8c_8p8ć_8p8d_8p8f_8p8g_8p8h_8p8j_8p8k_8p8l_8p8Å‚_8p8m_8p8n_8p8Å„_8p8p_8p8r_8p8s_8p8Å›_8p8t_8p8v_8p8w_8p8x_8p8z_8p8ź_8p8ż_8r8b_8r8c_8r8ć_8r8d_8r8f_8r8g_8r8h_8r8j_8r8k_8r8l_8r8Å‚_8r8m_8r8n_8r8Å„_8r8p_8r8r_8r8s_8r8Å›_8r8t_8r8v_8r8w_8r8x_8r8z_8r8ź_8r8ż_8s8b_8s8c_8s8ć_8s8d_8s8f_8s8g_8s8h_8s8j_8s8k_skr4z8s8l_8s8Å‚_8s8m_8s8n_8s8Å„_8s8p_8s8r_8s8s_8s8Å›_8s8t_str4z8s8v_8s8w_8s8x_8s8z_szc4z8s8ź_8s8ż_8Å›8b_8Å›8c_8Å›8ć_8Å›8d_8Å›8f_8Å›8g_8Å›8h_8Å›8j_8Å›8k_8Å›8l_8Å›8Å‚_8Å›8m_8Å›8n_8Å›8Å„_8Å›8p_8Å›8r_8Å›8s_8Å›8Å›_8Å›8t_8Å›8v_8Å›8w_8Å›8x_8Å›8z_8Å›8ź_8Å›8ż_8t8b_8t8c_8t8ć_8t8d_8t8f_8t8g_8t8h_8t8j_8t8k_8t8l_8t8Å‚_8t8m_8t8n_8t8Å„_8t8p_8t8r_8t8s_8t8Å›_8t8t_8t8v_8t8w_8t8x_8t8z_8t8ź_8t8ż_8v8b_8v8c_8v8ć_8v8d_8v8f_8v8g_8v8h_8v8j_8v8k_8v8l_8v8Å‚_8v8m_8v8n_8v8Å„_8v8p_8v8r_8v8s_8v8Å›_8v8t_8v8v_8v8w_8v8x_8v8z_8v8ź_8v8ż_8w8b_8w8c_8w8ć_8w8d_8w8f_8w8g_8w8h_8w8j_8w8k_8w8l_8w8Å‚_8w8m_8w8n_8w8Å„_8w8p_8w8r_8w8s_8w8Å›_8w8t_8w8v_8w8w_8w8x_8w8z_8w8ź_8w8ż_8x8b_8x8c_8x8ć_8x8d_8x8f_8x8g_8x8h_8x8j_8x8k_8x8l_8x8Å‚_8x8m_8x8n_8x8Å„_8x8p_8x8r_8x8s_8x8Å›_8x8t_8x8v_8x8w_8x8x_8x8z_8x8ź_8x8ż_8z8b_8z8c_8z8ć_8z8d_zdr4z8z8f_8z8g_8z8h_8z8j_8z8k_8z8l_8z8Å‚_8z8m_8z8n_8z8Å„_8z8p_8z8r_8z8s_8z8Å›_8z8t_8z8v_8z8w_8z8x_8z8z_8z8ź_8z8ż_8ź8b_8ź8c_8ź8ć_8ź8d_8ź8f_8ź8g_8ź8h_8ź8j_8ź8k_8ź8l_8ź8Å‚_8ź8m_8ź8n_8ź8Å„_8ź8p_8ź8r_8ź8s_8ź8Å›_8ź8t_8ź8v_8ź8w_8ź8x_8ź8z_8ź8ź_8ź8ż_8ż8b_8ż8c_8ż8ć_8ż8d_8ż8f_8ż8g_8ż8h_8ż8j_8ż8k_8ż8l_8ż8Å‚_8ż8m_8ż8n_8ż8Å„_8ż8p_8ż8r_8ż8s_8ż8Å›_8ż8t_8ż8v_8ż8w_8ż8x_8ż8z_8ż8ź_8ż8ż_be1e2bino1bis4zb2r2dbroa2bus4zbusi1c2h2jc2h2lcur4zde2u1dus4zd2ż2jd2ż2ld2ż2Å‚d2ż2rd2ż2werza1fis4zfor4zgado1his4zhuc4zi4n3ni2n1sj2t1Å‚j2t1rled1wly2o2mar4zmis4zmi2e1moza1mur4zo4f3fó2w1cpoli1poÅ‚u1p2r1cprc4hs2m2rsowi1syno1szto1to2y1tygo1we1e2ź2d4ź_gd4z_ina1', - 6 : '_a2b1s_ad4e1_ad4i1_ad4o1_ad4u1_ad4y1_ad5op_ad5or_a2n1t_anty1_a2r1c_arcy1_au3g2_au3k2_au3t2_auto1_4b3b8_2b1c8_2b1ć8_2b1d8_be2z3_beza1_bezi1_bezm2_bezo2_bezw2_2b1f8_2b1g8_2b1k8_2b1m8_2b1n8_2b1Å„8_2b1p8_br4z8_2b1s8_2b1Å›8_2b1t8_2b1z8_2b1ź8_2b1ż8_caÅ‚o1_2c1b8_4c3c8_2c1ć8_2c1d8_2c1f8_2c1g8_c2h2r_ci2e1_2c1k8_2c1l8_2c1m8_2c1n8_2c1Å„8_2c1p8_2c1s8_2c1Å›8_2c1t8_czte1_czwó1_2c1ź8_2c1ż8_2ć1b8_2ć1c8_4ć3ć8_2ć1d8_2ć1f8_2ć1g8_2ć1k8_2ć1m8_2ć1n8_2ć1Å„8_2ć1p8_2ć1s8_2ć1Å›8_2ć1t8_2ć1z8_2ć1ź8_2ć1ż8_dale1_2d1b8_2d1c8_2d1ć8_4d3d8_de2z3_deza2_dezo2_2d1f8_2d1g8_2d1k8_2d1m8_2d1n8_2d1Å„8_do3b2_do3c2_do3ć2_do3d2_do3f2_do3g2_do3h2_do3k2_do3l2_do3Å‚2_do3m2_do3p2_do3r2_do3s2_do3Å›2_do3t2_do3w2_do3z2_do3ź2_do3ż2_dobr2_dosm2_dotr2_2d1p8_dr4z8_2d1s8_2d1Å›8_2d1t8_dy2s3_dy2z3_dyzu2_e1me1_e1se1_e2s1t_egoa2_egoi2_egou2_e1le1_2f1c8_4f3f8_2f1k8_2f1m8_2f1n8_2g1b8_2g1c8_2g1ć8_2g1d8_ge2o3_2g1f8_4g3g8_2g1k8_2g1m8_2g1Å„8_go2u3_2g1p8_gr4z8_2g1s8_2g1Å›8_2g1t8_2g1z8_2g1ź8_2g1ż8_2h1b8_2h1c8_2h1ć8_2h1d8_2h1f8_2h1g8_4h3h8_hipe1_2h1j8_2h1k8_2h1l8_2h1Å‚8_2h1m8_2h1n8_2h1Å„8_2h1p8_2h1r8_2h1s8_2h1Å›8_2h1t8_2h1w8_2h1z8_2h1ź8_2h1ż8_i2s3l_i1ni1_i2n1f_izoa2_izoe2_izou2_2j1b8_2j1c8_2j1ć8_2j1d8_2j1f8_2j1g8_2j1h8_4j3j8_2j1k8_2j1l8_2j1Å‚8_2j1m8_2j1n8_2j1Å„8_2j1p8_2j1r8_2j1s8_2j1Å›8_2j1t8_2j1w8_2j1z8_2j1ź8_2j1ż8_2k1b8_2k1c8_2k1ć8_2k1d8_2k1f8_2k1g8_4k3k8_2k1m8_2k1n8_2k1Å„8_2k1p8_kr4z8_2k1s8_2k1Å›8_2k1t8_2k1z8_2k1ź8_2k1ż8_2l1b8_2l1c8_2l1ć8_2l1d8_2l1f8_2l1g8_2l1h8_2l1j8_2l1k8_4l3l8_2l1Å‚8_2l1m8_2l1n8_2l1Å„8_2l1p8_2l1r8_2l1s8_2l1Å›8_2l1t8_ludo1_2l1w8_2l1z8_2l1ź8_2l1ż8_2Å‚1b8_2Å‚1c8_2Å‚1ć8_2Å‚1d8_2Å‚1f8_2Å‚1g8_2Å‚1h8_2Å‚1j8_2Å‚1k8_2Å‚1l8_4Å‚3Å‚8_2Å‚1m8_2Å‚1n8_2Å‚1Å„8_2Å‚1p8_2Å‚1r8_2Å‚1s8_2Å‚1Å›8_2Å‚1t8_2Å‚1w8_2Å‚1z8_2Å‚1ź8_2Å‚1ż8_2m1b8_2m1c8_2m1ć8_2m1d8_2m1f8_2m1g8_2m1h8_2m1j8_2m1k8_2m1l8_2m1Å‚8_4m3m8_2m1n8_2m1Å„8_2m1p8_2m1r8_2m1s8_2m1Å›8_2m1t8_2m1w8_2m1z8_2m1ź8_2m1ż8_na2d2_na3b2_na3c2_na3ć2_na3f2_na3g2_na3h2_na3k2_na3l2_na3Å‚2_na3m2_na3p2_na3r2_na3s2_na3Å›2_na3t2_na3u2_na3w2_na3z2_na3ź2_na3ż2_nakr2_napo1_naro1_nasm2_nazw2_2n1b8_2n1c8_2n1ć8_2n1d8_ne2o3_2n1f8_2n1g8_2n1h8_ni2e1_nieo2_2n1j8_2n1k8_2n1l8_2n1Å‚8_2n1m8_4n3n8_2n1Å„8_2n1p8_2n1r8_2n1s8_2n1Å›8_2n1t8_2n1w8_2n1z8_2n1ź8_2n1ż8_2Å„1b8_2Å„1c8_2Å„1ć8_2Å„1d8_2Å„1f8_2Å„1g8_2Å„1h8_2Å„1j8_2Å„1k8_2Å„1l8_2Å„1Å‚8_2Å„1m8_2Å„1n8_2Å„1Å„8_2Å„1p8_2Å„1r8_2Å„1s8_2Å„1Å›8_2Å„1t8_2Å„1w8_2Å„1z8_2Å„1ź8_2Å„1ż8_o2t1c_otc4h_ob3l2_oblu1_ob3Å‚2_obra1_obry1_o3be1_o3bi1_od3i2_od3r2_odra1_odrÄ™1_odru1_od5z2_odzi1_o3de1_o2l1Å›_ob3h2_ob3j2_o1bo1_ob3w2_oc4h2_oc4z2_od3h2_od3j2_od3l2_o1do1_od3w2_od5ż2_odbe1_od4ź2_ogni1_o2p1c_o2r1t_or4z2_os4z2_oÅ›mi1_2p1b8_2p1c8_pc4h8_2p1ć8_2p1d8_pe2r3_pe1e2_2p1f8_2p1g8_pi2e1_pi2Ä™1_pi2o1_2p1k8_2p1m8_2p1n8_2p1Å„8_po2d2_po3b2_po3c2_po3ć2_podi1_po3f2_po3g2_po3h2_po3k2_po3l2_po3Å‚2_po3m2_po3p2_po3r2_po3s2_po3Å›2_po3t2_po3w2_po3z2_po3ź2_po3ż2_podó1_pobr2_pokl2_pokr2_pona1_poni1_posm2_potr2_poza1_pozw2_pó2Å‚3_półe1_póło2_4p3p8_pr4z8_prze1_przy1_2p1s8_2p1Å›8_2p1t8_2p1z8_2p1ź8_2p1ż8_2r1b8_2r1c8_2r1ć8_2r1d8_2r1f8_2r1g8_2r1h8_2r1j8_2r1k8_2r1l8_2r1Å‚8_2r1m8_2r1n8_2r1Å„8_ro2z3_rozi2_rozm2_rozw2_2r1p8_4r3r8_2r1s8_2r1Å›8_2r1t8_2r1w8_2r1ź8_2r1ż8_samo1_2s1b8_sc4h8_2s1d8_2s1f8_2s1g8_si2e1_2s1s8_su2b3_subi1_subo1_supe1_2s1ź8_2s1ż8_2Å›1b8_2Å›1d8_2Å›1f8_2Å›1g8_2Å›1k8_2Å›1p8_2Å›1s8_2Å›1Å›8_2Å›1t8_2Å›1z8_2Å›1ź8_2Å›1ż8_ta2o3_tar4z_2t1b8_2t1c8_tc4h8_2t1ć8_2t1d8_te2o3_2t1f8_2t1g8_2t1k8_2t1m8_2t1n8_2t1Å„8_2t1p8_tr4z8_trze1_2t1s8_2t1Å›8_4t3t8_tysi1_2t1z8_2t1ź8_2t1ż8_u4d3k_u4f3n_ukle1_u4l3s_u4l3t_u2m1b_u4n3c_u4n3d_u4p3p_u4r3s_uc4h2_uc4z2_ud4z2_ud4ź2_ud4ż2_u2p1c_ur4z2_us4z2_2w1b8_2w1c8_2w1ć8_2w1d8_we3b2_we3c2_we3ć2_we3d2_we3f2_we3g2_we3h2_we3k2_we3l2_we3Å‚2_we3m2_we3n2_we3p2_we3r2_we3s2_we3Å›2_we3t2_we3w2_we3z2_we3ż2_2w1f8_2w1g8_wi2e1_2w1j8_2w1k8_2w1l8_2w1Å‚8_2w1m8_2w1n8_2w1Å„8_2w1p8_2w1r8_2w1s8_wspó1_wsze1_2w1Å›8_2w1t8_4w3w8_wy3b2_wy3c2_wy3ć2_wy3d2_wy3f2_wy3g2_wy3h2_wy3k2_wy3l2_wy3Å‚2_wy3m2_wy3p2_wy3r2_wy3s2_wy3Å›2_wy3t2_wy3w2_wy3z2_wy3ź2_wy3ż2_wybr2_wydr2_wykl2_wykr2_wysm2_wytr2_2w1z8_2w1ź8_2w1ż8_za3b2_za3c2_za3ć2_za3d2_za3f2_za3g2_za3h2_za3k2_za3l2_za3Å‚2_za3m2_za3p2_za3r2_za3s2_za3Å›2_za3t2_za3u2_za3w2_za3z2_za3ź2_za3ż2_zabr2_zado1_zadr2_zady1_zakl2_zakr2_zani1_zasm2_zatr2_2z1c8_2z1ć8_2z1d8_ze3b2_ze3c2_ze3ć2_ze3d2_ze3f2_ze3g2_ze3h2_ze3k2_ze3l2_ze3Å‚2_ze3m2_ze3p2_ze3r2_ze3s2_ze3Å›2_ze3t2_ze3w2_ze3z2_ze3ź2_ze3ż2_zekl2_zesm4_2z1f8_2z1k8_zo2o3_2z1p8_2z1s8_2z1Å›8_2z1t8_4z3z8_2ź1b8_2ź1c8_2ź1ć8_2ź1d8_2ź1f8_2ź1g8_2ź1k8_2ź1l8_2ź1m8_2ź1n8_2ź1p8_2ź1s8_2ź1Å›8_2ź1t8_2ź1w8_2ź1z8_4ź3ź8_2ź1ż8_2ż1b8_2ż1c8_2ż1ć8_2ż1d8_2ż1f8_2ż1g8_2ż1j8_2ż1k8_2ż1l8_2ż1Å‚8_2ż1m8_2ż1n8_2ż1Å„8_2ż1p8_2ż1r8_2ż1s8_2ż1Å›8_2ż1t8_2ż1w8_2ż1z8_2ż1ź8_4ż3ż81Å›2ci12b2Å‚1k2b2r1n2c2h1b2c2h1c2c2h1ć2c2h1d2c2h1f2c2h1g2c2h1k2c2h1m2c2h1n2c2h1Å„2c2h1p2c2h1s2c2h1Å›2c2h1t2c2h1z2c2h1ź2c2h1ż2c2z1c2c2z1ć2c2z1d2c2z1f2c2z1k2c2z1p2c2z1s2c2z1Å›2c2z1t2c4z3z2d2Å‚1b2dÅ‚s4z2d2r1n2d2z1c2d2z1ć2d2z1d2d2z1f2d2z1k2d2z1p2d2z1s2d2z1Å›2d2z1t2d4z3z2d2ź1b2d2ź1c2d2ź1ć2d2ź1d2d2ź1f2d2ź1g2d2ź1k2d2ź1m2d2ź1n2d2ź1p2d2ź1s2d2ź1Å›2d2ź1t2d2ź1z2d4ź3ź2d2ź1ż2d2ż1b2d2ż1c2d2ż1ć2d2ż1d2d2ż1f2d2ż1g2d2ż1k2d2ż1m2d2ż1n2d2ż1Å„2d2ż1p2d2ż1s2d2ż1Å›2d2ż1t2d2ż1z2d2ż1ź2d4ż3ż2g2Å‚1b2k1s4z2k2Å‚1b2n2t1n2p1s4z2p2l1n2r2z1c2r2z1ć2r2z1d2r2z1f2r2z1k2r2z1p2r2z1s2r2z1Å›2r2z1t2s2Å‚1b2s2n1k2s2t1k2s2t1n2sts4z2s2z1c2s2z1ć2s2z1f2s2z1k2s2z1p2s2z1s2s2z1Å›2s2z1t2s4z3z2Å›2ć1c2Å›2l1m2Å›2l1n2t2l1n2t2r1k2z2d1k2z2d1ndni2o13m2k2n3w2Å‚ad3w2Å‚osbe2ethbizne1bi2r1mbu2k1sca2l1dchus1tcurzo1d2rz2wfisha1fo2k1sforza1fo2l1kfo2s1ffosfa1ga2d1ggadge1go2l1fhuxle1in2n1sin2s1bja4z3zka2r1lki2r1ckirc4hko2n1glu2k1smier4zmo2n1tmozai2murza1na2Å‚1knaÅ‚ko1na4r3vochmi1offse1pa1na1po2d1npodni1po2m1npo2r1tpo2w1spows4zprcha1pres4zskor4zsyste1sze4śćto1yo2tu2r1bturbo1vo2l1kze4p3p_byna1_gdzi1_o2w1s_ows4z_póła1', - 7 : '_a1d4a1_ae3ro1_aeroi2_aerou2_antye2_antyi2_antyo2_antyu2_arcye2_arcyi2_arcyo2_arcyu2_autoe2_autoi2_be1ze1_be2z1c_be4z3z_bezzw2_chr4z8_2c2z1t_ćwi2e1_de1ze1_dÅ‚ugo1_do4k3t_do4l3n_do4Å‚3k_do4m3k_do4r3s_do4w3c_doc4h2_doc4z2_dod4z2_dod4ź2_dod4ż2_do2p1c_dor4z2_dos4z2_dwó2j3_dy3s4z_dzi2e1_e2k2s3_emes4z_e1goe2_ego1o2_eks4y1_grubo1_i3n4ic_i3n4o1_i3n4u1_infla1_ino3w2_i1zoi2_izo1o2_jadÅ‚o1_ki2l1k_kilku1_ko1Å‚o1_ko2n1t_kro2ć3_mi1li1_mo2ż1n_nad3i2_nad3Å‚2_nadÅ‚u1_nadmu1_nad3r2_nadre1_nadrÄ™1_nadru1_nad3w2_nadwo1_na1da1_na3daj_na3dÄ…1_na3de1_na3dÄ™1_na3do1_na3dy1_nad4z2_na1ja1_na3jÄ…1_na3je1_na3jÄ™1_na4f3c_na4f3t_na4r3c_na4r3d_na4r3k_na4r3r_na4r3t_nac4h2_nac4z2_nad3h2_nad3j2_nad3l2_nad3u2_nad5ż2_nadtr2_naj3i2_naj3o2_najro1_naj3u2_najbe1_najdo1_najkr2_najsm2_najzw2_nar4z2_nas4z2_na2t1c_naz3m2_nie3b2_nie3c2_nie3ć2_nie3d2_nie3f2_nie3g2_nie3h2_nie3k2_nie3l2_nie3Å‚2_nie3m2_nie3p2_nie3r2_nie3s2_nie3Å›2_nie3t2_nie3u2_nie3w2_nie3z2_nie3ź2_nie3ż2_niedo1_nieob2_nieoc2_nieoć2_nieod2_nieof2_nieog2_nieoh2_nieok2_nieol2_nieoÅ‚2_nieom2_nieop2_nieor2_nieos2_nieoÅ›2_nieot2_nieow2_nieoz2_nieoź2_nieoż2_niepo1_niero1_niesu1_nietr2_nieuw2_niewy1_niezw2_o1bÅ‚o1_o1bro1_o1dro1_od2r1w_odr4z2_odrze1_o3l2Å›n_obrze1_obrzÄ™1_obrzu1_obrzy1_o2b3c2_o2b3ć2_o2b3d2_o2b3f2_o2b3g2_o2b3k2_o2b3m2_o2b3n2_o2b3p2_o2b3s2_o2b3Å›2_o2b3t2_o2b3ź2_o2b3ż2_obc4h2_obc4z2_obd4z2_obd4ź2_obd4ż2_obe3b2_obe3c2_obe3ć2_obe3d2_obe3f2_obe3g2_obe3h2_obe3k2_obe3l2_obe3Å‚2_obe3m2_obe3p2_obe3r2_obe3s2_obe3Å›2_obe3t2_obe3w2_obe3z2_obe3ź2_obe3ż2_obi3b2_obs4z2_oc2h2r_o2d3b2_o2d3c2_o2d3ć2_o4d3d2_o2d3f2_o2d3g2_o2d3k2_o2d3m2_o2d3n2_od3o2s_o2d3p2_o2d3s2_o2d3Å›2_o2d3t2_odc4h2_odc4z2_odd4z2_odd4ź2_odd4ż2_ode3b2_ode3c2_ode3ć2_ode3d2_ode3f2_ode3g2_ode3h2_ode3k2_ode3l2_ode3Å‚2_ode3m2_ode3p2_ode3r2_ode3s2_ode3Å›2_ode3t2_ode3w2_ode3z2_ode3ź2_ode3ż2_ods4z2_oka3m2_opc4h2_or2tÄ™1_o2r2ż2_osi2e1_pe3c2k_pe2Å‚1n_peÅ‚no1_pe1pe1_pe1ze1_piÄ™2ć3_pod3Å‚2_podmu1_podna1_pod3r2_podra1_podre1_podrÄ™1_podró1_podru1_podry1_podr4z_pod3w2_podwa1_podwó1_po3da1_po3dÄ…1_po3de1_po3dej_po3dÄ™1_po3do1_po3du1_po3dy1_po3r1ż_poc4z2_podza1_podzi1_po4l3s_po4m3p_po4Å„3c_po4r3c_po4r3f_po4r3n_po4r3t_poc4h2_pod3h2_pod3j2_pod3l2_pod5ż2_podsm2_po2p1c_po1po1_po1ro1_por4z2_pos4z2_poz4m2_półkr2_pó2Å‚1p_pra3s2_predy1_przyo2_retra1_ro1zo2_ro2z1p_roztr2_skÄ…d4ż_so1bo1_spo2d2_spo3b2_spo3c2_spo3ć2_spo3f2_spo3g2_spo3h2_spo3k2_spo3l2_spo3Å‚2_spo3m2_spo3p2_spo3r2_spo3s2_spo3Å›2_spo3t2_spo3w2_spo3z2_spo3ź2_spo3ż2_spó2Å‚3_sze2s3_szeÅ›1c_Å›ró2d5_Å›ródr2_Å›wi2a1_tró2j3_tróje1_u4m3br_ube2z3_ubezw2_u2m1k2_upc4h2_upo2d2_upo3b2_upo3c2_upo3ć2_upo3f2_upo3g2_upo3h2_upo3k2_upo3l2_upo3Å‚2_upo3m2_upo3p2_upo3r2_upo3s2_upo3Å›2_upo3t2_upo3w2_upo3z2_upo3ź2_upo3ż2_uro2z3_u2r1ż2_usc4h2_u2t1k2_uze3w2_we4k3t_we4l3w_we4Å‚3n_we4n3d_we4n3t_we4r3b_we4r3d_we4r3n_we4r3s_we4r3t_wec4h2_wec4z2_wed4z2_wed4ź2_wed4ż2_we2p1c_wer4z2_wes4z2_we2w1n_wewnÄ…1_wielo1_wielu1_wi2l1c_wilc4z_wni2e1_wo1do1_wyc4z2_wy2ż1s_wyc4h2_wyd4z2_wyd4ź2_wyd4ż2_wy2p1c_wyr4z2_wys4z2_wy2t1c_za4k3t_za4l3g_za4l3k_za4l3t_za4m3k_za2r1c_zac4h2_zac4z2_zad4z2_zad4ź2_zad4ż2_zai2n3_zar4z2_zas4z2_zde2z3_zdeza1_ze4r3k_ze1te1_zetha1_zec4h2_zec4z2_zed4z2_zed4ź2_zed4ż2_ze2p1c_zer4z2_zes4z2_zi2m1n_zimno1_zÅ‚o3w2_zni2e1_zro2z3_ź2d4ź82sz2l1n2t2rz1n3d2niow3m2nest3m2nezj3w2czas8b8r8z_8c8h8Å‚_8c8h8w_8c8z8t_8d8r8z_8k8s8t_8m8s8t_8p8r8z_8r8s8z_8r8z8Å‚_8s8c8h_8s8t8r_8s8t8w_sz2cz1b8s8z8k_8s8z8n_8s8z8t_8t8r8z_8z8d8r_be1khe1biszko1bi1rmi1blokha1bu2sz1mbusine1caldwe1deu2t1sduszpa1dże4z3bdże4z3me2r5zace3u2s4zgol2f3sgra2n1dgrandi1gro4t3rhu2cz1winn2s1binsbru1kar2l1skongre1luftwa1luk2s1fluksfe1mi2sz1mmiszma1montre1o2c2h1mó4w3c4zpaname1pa1sca1por2t1sportla1poli2e1poli2u1powsze1pr2chalroe2n1tro1kro1ro1sto1sowi3z2s4zas4zszezlo1szy2n1k_inac4z_ni2g1d_nigdy1_nigd4z_owsze1_skÄ…di1_trója1', - 8 : '_a2b2s3t_ad5i2u1_a1eroa2_ae1roe2_aero1o2_a1ntya2_arcy3b2_arcy3k2_arcy3Å‚2_arcy3m2_a1rcya2_a1utoa2_auto1o2_au1tou2_be3z4an_be3z4ec_be3z4ik_bezc4h2_caÅ‚o3k2_caÅ‚o3Å›2_cie2n1k_cienko1_ciepÅ‚o1_cza2r1n_czarno1_2c2z1k8_cztero1_czwó2r3_daleko1_dezabi1_de3z4el_de3z4er_de3z4y1_dobr4z2_dogr4z2_dopc4h2_dopr4z2_do2r1ż2_dosc4h2_do2t1k2_dro1go1_dy3s4e1_dy3s4o1_dy3s4y1_dy3z4e1_e2s1ha1_ele2k1t_hipe2r3_hipera2_i4n5o2k_koÅ‚o3w2_kontru2_kró2t1k_krótko1_ludo3w2_mili2a1_mo1żno1_na3d4ir_na2d3m2_na3dzi1_na3d4ź2_nadoki1_nadrze1_nabr4z2_na2d3b2_na2d3c2_na2d3ć2_na4d3d2_nade3t2_na2d3f2_na2d3g2_na2d3k2_na2d3n2_na2d3p2_na2d3s2_na2d3Å›2_na2d3t2_na2dz1m_nadzmy1_nad5zo1_nad5zó1_nadzwy1_nadc4h2_nadc4z2_nadd4ź2_nade3b2_nade3c2_nade3ć2_nade3d2_nade3f2_nade3g2_nade3h2_nade3k2_nade3l2_nade3Å‚2_nade3m2_nade3p2_nade3r2_nade3s2_nade3Å›2_nade3w2_nade3z2_nade3ź2_nade3ż2_nads4z2_nadÅ›ro1_nagr4z2_na2j3b2_na2j3c2_na2j3ć2_na2j3d2_na2j3f2_na2j3g2_na2j3h2_na2j3k2_na2j3l2_na2j3Å‚2_na2j3m2_na2j3p2_na2j3r2_na2j3s2_na2j3Å›2_na2j3t2_na2j3w2_na2j3z2_na2j3ź2_na2j3ż2_najc4h2_najc4z2_najd4z2_najd4ź2_najd4ż2_najr4z2_najs4z2_napo2d2_napo3b2_napo3c2_napo3ć2_napo3f2_napo3g2_napo3h2_napo3k2_napo3l2_napo3Å‚2_napo3m2_napo3p2_napo3r2_napo3s2_napo3Å›2_napo3t2_napo3w2_napo3z2_napo3ź2_napo3ż2_napr4z2_naro2z3_na2r1ż2_natc4h2_na2t1k2_nie4c3c_nie4c3k_nie4m3c_nie4m3k_niec4h2_niec4z2_nied4z2_nied4ż2_nieodw2_niepr4z_nier4z2_nies4z2_o3b4łą1_o3b4łę1_o3b4Å‚oc_o3b4rać_o3b4ron_o3b4roÅ„_o3b4ryz_o3b4ryź_o3d4rap_o3d4rÄ™t_odrobi1_o3d4rut_ob3u2m2_obe3r3t_obe4c3n_obe4z3w_obec4h2_obec4z2_obed4z2_obed4ź2_obed4ż2_obe2r3m_ober4z2_obes4z2_ochr4z2_od3a2u1_od3u2m2_odbe2z3_odec4h2_odec4z2_oded4z2_oded4ź2_oded4ż2_ode2p1c_oder4z2_odes4z2_ode2t1c_odkr4z2_ogó2l1n_o1le2o3_osie2m3_pe3r4e1_pe3r4i1_pe3r4o1_pe3r4u1_pe3r4y1_pepee2r_pepee2s_pie2r1w_pierwo1_pi1Ä™ci1_piÄ™2ć1s_pięćse1_pio1no1_pÅ‚asko1_po2d3m2_po2d3n2_pod2r1w_po1dro1_po1dwo1_po3d4z2_po3d4ź2_pode3k2_podobi1_podobó1_podoc4h_podoki1_podopi1_podory1_podosi1_po4d3ów_podura1_podus4z_po2dz1b_po4st3h_po4st3l_pobr4z2_poc2h2r_po2d3b2_po2d3c2_po2d3ć2_po4d3d2_po2d3f2_po2d3g2_pod3i2n_po2d3k2_po2d3p2_po2d3s2_po2d3Å›2_podÅ›ró1_po2d3t2_podc4h2_podc4z2_podd4ź2_podd4ż2_pode3b2_pode3c2_pode3ć2_pode3d2_pode3f2_pode3g2_pode3h2_pode3l2_pode3Å‚2_pode3m2_pode3p2_pode3r2_pode3s2_pode3Å›2_pode3t2_pode3w2_pode3z2_pode3ź2_pode3ż2_pods4z2_pogr4z2_po2Å‚1k2_pom4p1k_po2m1k2_pona2d2_pona3b2_pona3c2_pona3ć2_pona3f2_pona3g2_pona3h2_pona3k2_pona3l2_pona3Å‚2_pona3m2_pona3p2_pona3r2_pona3s2_pona3Å›2_pona3t2_pona3w2_pona3z2_pona3ź2_pona3ż2_ponasm2_ponazw2_poni2e1_popc4h2_popo3w2_popr4z2_por4t1w_por4t1f_por4t1m_poro2z3_posc4h2_po2t1k2_poza3u2_pó3Å‚4Ä…1_pó3Å‚4Ä™1_pó3Å‚4y1_pó2Å‚1k2_pó2Å‚1m2_półob3r_półpr4z_pra2w1n_pra3w2z_prze2d2_prze3b2_prze3c2_prze3ć2_prze1e2_prze3f2_prze3g2_prze3h2_prze3k2_prze3l2_prze3Å‚2_prze3m2_prze3n2_prze3p2_prze3r2_prze3s2_prze3Å›2_prze3t2_prze3u2_prze3w2_prze3z2_prze3ź2_prze3ż2_przebr2_przeci1_przeda1_przekl2_przekr2_przesm2_przetr2_przy3b2_przy3c2_przy3ć2_przy3d2_przy3f2_przy3g2_przy3h2_przy3k2_przy3l2_przy3Å‚2_przy3m2_przy3p2_przy3r2_przy3s2_przy3Å›2_przy3t2_przy3w2_przy3z2_przy3ź2_przy3ż2_przybr2_przyoz2_ro3z4a1_ro3z4e1_ro3z4ej_ro3z4u1_rozani1_ro2z1d2_ro1zpo1_ro2z1Å›2_ro2z1t2_samo3k2_samo3p2_samo3w2_sie1de1_sie2d1m_sobo3w2_spo4r3n_spo4r3t_spoc4h2_spoc4z2_spo4d3d_spod4ź2_spod4ż2_spor4z2_spos4z2_ste1re1_supe2r3_supera1_superi1_super4z_supero1_ta1rza1_transi1_transo2_tysi2Ä…1_u4k3lej_u4p3p2s_u4s2t3n_u4s2t1c_u4s2t1k_u4z3be1_upo3da1_upoc4h2_upoc4z2_upo4d3d_upod4ź2_upod4ż2_upor4z2_upos4z2_wes2t1c_we4z3br_we4z3gÅ‚_we2m1k2_wepc4h2_we2t1k2_wilczo1_wniebo1_wodo3w2_wspó2Å‚3_współi2_współo1_współu2_wybr4z2_wygr4z2_wyi2zo1_wykr4z2_wy2m1k2_wypc4h2_wypr4z2_wy2r1ż2_wysc4h2_wytc4h2_wy2t1k2_za4uto1_zabr4z2_zagr4z2_zai2zo1_zai1ni1_zain4ic_zakr4z2_zani2e1_za2r1ż2_zasc4h2_za2t1k2_zde1ze1_zdysko1_ze3t1k2_zepc4h2_ze2r1ż2_zesc4h2_zma2r1t_znie3b2_znie3c2_znie3ć2_znie3d2_znie3f2_znie3g2_znie3h2_znie3k2_znie3l2_znie3Å‚2_znie3m2_znie3n2_znie3Å„2_znie3p2_znie3r2_znie3s2_znie3Å›2_znie3t2_znie3w2_znie3z2_znie3ź2_znie3ż23k2s2z2t3m2s2k2n3p2ne2u18ch8r8z_8sk8r8z_8sz8c8z_8sz8t8r_bi2s2z1kbi2z3nesbo2s3ma1bu2k1s4zbukszpa1cu2r7zondeutsc4hdu2s2z1pfi1szbi1fo2k2s3tfo2r5zacfo1lklo1ga3d2getgado2p1tgolfs4z2hi2s2z3pinnsbru1in4sbrucja4z4z3bja4z4z3mkarlsru1kirc4h3hkirchho1ma2r5z1lma2r5z1Å‚ma2r5z1nmontrea2moza2i3kmurzasi1of2f3setpa2s3calpa2s3c4hpodni2e1po3m2nÄ…1po3m2nÄ™1po3m2ni1poli3e2tpoÅ‚u2d1nroen2t1gse2t3le1sko1rzo1sy2s1temszynkwa1to3y2o3tturbo1o2tygo2d1nwe1e1ke1we4s2t3fwe4s2t3m_bezac4h_bezami1_gdzi2e1_inacze1_półac4h_półami1_przyna1', - 9 : '_ad5a2p1t_bezo2b1j_czte1re1_dÅ‚ugo3w2_do5m4k2n_drogo3w2_dwó3j4a1_dwó3j4Ä…1_dwó3j4e1_dwó3j4Ä™1_dwó3j4o1_dy3s4ta1_dzi1esi1_dzi1ewi1_elektro1_grubo3w2_hipe1re2_in4f3lan_jadÅ‚o3w2_kilkuse1_kon2t2r3_ko1ntro2_możno3w2_na3d4Å‚ub_na3d4r2w_na3d4ruk_na3d4r4z_nado1bo1_nado2l1b_nadzi2e1_na4j3e2f_na4j3e2g_na4j3e2n_na4j3e2r_na4j3e2s_na4j3e2w_na1deta1_nade4p3c_nade4p3n_nade4p3t_nadec4h2_nadec4z2_naded4z2_naded4ź2_naded4ż2_nader4z2_nades4z2_naj3a2u1_naj3o2b2_naj3o2c2_naj3o2ć2_naj3o2d2_naj3o2f2_naj3o2g2_naj3o2h2_naj3o2k2_naj3o2l2_naj3o2Å‚2_naj3o2m2_naj3o2p2_naj3o2r2_naj3o2s2_naj3o2Å›2_naj3o2t2_naj3o2w2_naj3o2z2_naj3o2ź2_naj3o2ż2_najbe2z3_najbezw2_najdo3b2_najdo3c2_najdo3ć2_najdo3d2_najdo3f2_najdo3g2_najdo3h2_najdo3k2_najdo3l2_najdo3Å‚2_najdo3m2_najdo3p2_najdo3r2_najdo3s2_najdo3Å›2_najdo3t2_najdo3w2_najdo3z2_najdo3ź2_najdo3ż2_najob3h2_najob3j2_najob3l2_najob3Å‚2_najob3w2_najoc4h2_najoc4z2_najod3h2_najod3j2_najod3l2_najod3w2_najod5ż2_najod4z2_najod4ź2_najor4z2_najos4z2_naj2t1k2_naj2t1r2_najuc4z2_napo4m3p_napoc4h2_napoc4z2_napo4d3d_napod4ź2_napod4ż2_napor4z2_napos4z2_nie4d4ź3_niedo3b2_niedo3c2_niedo3ć2_niedo3d2_niedo3f2_niedo3g2_niedo3h2_niedo3k2_niedo3l2_niedo3Å‚2_niedo3m2_niedo3p2_niedo3r2_niedo3s2_niedo3Å›2_niedo3t2_niedo3w2_niedo3z2_niedo3ź2_niedo3ż2_niedokr2_nieob3h2_nieob3j2_nieob3w2_nieoc4h2_nieoc4z2_nieod3h2_nieod3j2_nieod3l2_nieod3Å‚2_nieod5ż2_nieod4z2_nieod4ź2_nieor4z2_nieos4z2_niepo2d2_niepo3b2_niepo3c2_niepo3ć2_niepo3f2_niepo3g2_niepo3h2_niepo3k2_niepo3l2_niepo3Å‚2_niepo3m2_niepo3p2_niepo3r2_niepo3s2_niepo3Å›2_niepo3t2_niepo3w2_niepo3z2_niepo3ź2_niepo3ż2_niepod5ż_nieposm2_niero2z3_nierozm2_niesu2b3_nie2t1k2_nieuc4z2_niewy3b2_niewy3c2_niewy3ć2_niewy3d2_niewy3f2_niewy3g2_niewy3h2_niewy3k2_niewy3l2_niewy3Å‚2_niewy3m2_niewy3p2_niewy3r2_niewy3s2_niewy3Å›2_niewy3t2_niewy3w2_niewy3z2_niewy3ź2_niewy3ż2_niewytr2_o3b4luzg_o3b4r4z2_o3d4i2u1_o3d4rwi1_o3d4rzeć_o3d4rz2w_o4b5rzÄ…1_o4b5rzez_o4b5rzÄ™d_o4b5rzuc_o4b5rzut_o4b5rzyn_o4d7ziar_o4d7ziem_obe2r1ż2_obesc4h2_obe2t1k2_od3u2c4z_ode3m1k2_odepc4h2_ode2r1ż2_odetc4h2_ode2t1k2_o1gni2o1_o1gólno1_osie2m1s_o1Å›mi2o1_oÅ›mio3Å›2_pe4r5i2n_pe1e1se1_pee2se2l_pe1pe1e2_peze2t1p_piÄ™ci2o1_piono3w2_po3d4Å‚u1_po3d4naw_po3d4rap_po3d4raż_po3d4roż_po3d4róż_po3d4ryg_po3d4waj_po3d4woj_po3d4wór_po3di2u1_po4c2z3d_po4c2z3t_podobra1_po4d3o2f_po4d3o2g_podokre1_podokrÄ™1_podo2b1s_podo2l1b_po4d5zam_po4d5ze1_podzi2e1_po4s2t3d_po4s2t3f_po4s2t3g_po4st3i2_po4s2t3k_po4s2t3m_po4s2t3p_po1stro1_po4s2t3s_po5r4tÄ™1_pochr4z2_podec4h2_podec4z2_poded4z2_poded4ź2_poded4ż2_pode2p1c_poder4z2_podes4z2_podro2z3_pona4f3t_ponac4h2_pona4d3d_ponad3h2_ponad3j2_ponad3l2_ponad4z2_ponar4z2_ponas4z2_ponaz3m2_ponie3k2_ponie3w2_póło2m2d_półprzy1_pra1pra1_przed3Å‚2_przedÅ‚u1_przedmu1_przed3o2_przed3r2_przedra1_przedru1_przedry1_przed3u2_prze3dÄ…1_prze3dÄ™1_prze3dy1_przedzi1_przec4h2_przec4z2_prze1de1_przed3h2_przed3i2_przed3j2_przed3l2_przedsi1_przed3w2_prze2p1c_przes4z2_przetra1_przyc4h2_przyc4z2_przyd4z2_przyd4ź2_przyd4ż2_przy2p1c_przys4z2_rozbr4z2_rozec4h2_rozec4z2_rozed4z2_rozed4ź2_rozed4ż2_roze2p1c_rozer4z2_rozes4z2_rozpo3w2_samo1ro1_siede2m3_si1edmi1_spo3d4z2_stere2o3_stereoa2_stereoi2_stereou2_supe1re2_sze4Å›2ć3_szeÅ›2ć1s_Å›wiatÅ‚o1_ta2r7zan_tra2n2s3_tran3s4z_tra1nsa2_tró3j4Ä…1_tró3j4Ä™1_tysiÄ…2c3_wielo3d2_wielo3k2_wielo3Å›2_wszecho2_wy3o2d3r_wy4ż3s4z_wye2k2s3_za3o2b3r_za3o2b3s_za4r3c4h_za5m4k2n_zado2ść3_zadośću4_zanie3d2_zde3z4el_zde3z4er_zde3z4y1_zdyskre1_zdyskwa1_ze4t3hap_zmartwy1_znie4m3c_zniec4h2_zniec4z2_znied4z2_znied4ż2_znier4z2_znies4z2_zro3z4u18s8t8r8z_8szc8z8b_8z8d8r8z_be2f3s4z2bi2sz3kopbirmi2n1gblokha2u1broa1dwa1bu2sz3me1buk2s2z1pfi2sz3binfol2k1lorfo1sfazo1karlskro1lu2ks1fermie2r5z1Å‚po1rtsmo1portsmou2pre2s2z1proe1ntge1skorzone1szto1kho1vo2l2k2s3_byna2j1m_n8i9gdy__ni1gdzi1_niechby1_trójac4h_trójami1_podó2w1c', - 10 : '_arcy3b1z2_auto3c4h2_a1utotra1_cienko3w2_czarno3k2_cztero3Å›2_czwó3r4a1_czwó3r4Ä…1_czwó3r4e1_czwó3r4Ä™1_czwó3r4o1_ćwie2r2ć3_daleko3w2_dÅ‚ugo3tr2_dziesi2Ä™1_dziewi2Ä™1_e1me1sze1_elektroa2_elektroi2_elektrou2_hipe3r4o1_kon3tr4a1_kon3tr4e1_kon3tr4y1_krótko3w2_nadre2p1c_na3ja2z1d_nado1bro1_nadoki2e1_na4d5rzÄ…1_na4d5rzÄ™1_na4d5rzy1_na4d5ziem_na4j3e2u1_nad3e2tat_nad5z2mys_nade2r1ż2_nadÅ›rod4z_naj3a2k1t_naj3ro2z3_najdoc4h2_najdoc4z2_najdod4z2_najdod4ź2_najdod4ż2_najdor4z2_najdos4z2_najo2b3c2_najo2b3ć2_najo2b3d2_najo2b3f2_najo2b3g2_najo2b3k2_najo2b3m2_najo2b3n2_najo2b3p2_najo2b3s2_najo2b3Å›2_najo2b3t2_najo2b3ź2_najo2b3ż2_najobc4h2_najobc4z2_najobd4z2_najobd4ź2_najobd4ż2_najobr4z2_najobs4z2_najo2d3c2_najo2d3ć2_najo4d3d2_najo2d3f2_najo2d3g2_najo2d3k2_najo2d3m2_najo2d3n2_najo2d3p2_najo2d3s2_najo2d3Å›2_najo2d3t2_najodc4h2_najodc4z2_najodd4z2_najodd4ź2_najodd4ż2_najods4z2_napo2m1k2_niedoc4h2_niedoc4z2_niedod4z2_niedod4ź2_niedod4ż2_niedo2p1c_niedor4z2_niedos4z2_nieo2b3c2_nieo2b3ć2_nieo2b3d2_nieo2b3f2_nieo2b3g2_nieo2b3k2_nieo2b3m2_nieo2b3p2_nieo2b3s2_nieo2b3Å›2_nieo2b3ź2_nieo2b3ż2_nieobc4h2_nieobc4z2_nieobd4z2_nieobd4ź2_nieobd4ż2_nieobs4z2_nieo2d3c2_nieo2d3ć2_nieo4d3d2_nieo2d3f2_nieo2d3g2_nieo2d3k2_nieo2d3n2_nieo2d3p2_nieo2d3s2_nieo2d3Å›2_nieo2d3t2_nieod3w1r_nieodc4h2_nieodc4z2_nieodd4z2_nieodd4ź2_nieodd4ż2_nieods4z2_niepod3Å‚2_niepodmu1_niepod3r2_niepodra1_niepodrÄ™1_niepod3w2_niepodwa1_niepo3do1_niepo3du1_niepoc4h2_niepoc4z2_niepod3h2_niepod3j2_niepod3l2_niepodsm2_niepor4z2_niepos4z2_nie1prze1_niero2z1t_nieroztr2_ni1esubi1_niewyc4h2_niewyc4z2_niewyd4z2_niewyd4ź2_niewyd4ż2_niewyr4z2_niewys4z2_o2t3c2h2Å‚_o3b4raso1_o3d4robin_o3d6zi2a1_o3d6zi2e1_o4b5Å‚oc4z_o1d3i2zo1_ognio3tr2_ogólno3k2_osie1mse1_peÅ‚no3kr2_pierwo3w2_piÄ™cio3Å›2_pięćse2t3_pÅ‚asko3w2_podre2p1c_po3d4rÄ™tw_po3d4ruzg_po3d4rze1_po3d4woi2_po3e2k2s3_podobi2a1_po1do1bo1_podoki2e1_podopi2e1_po4d5zakr_po4d5zast_po4d5zbi1_po4d5ziem_po1dzi2o1_po4d5ziom_po4st3rom_pod3a2l1p_pode3t1k2_podepc4h2_pode2r1ż2_podesc4h2_pona3c4z2_po1na3do1_pona3d4ź2_ponabr4z2_pona2d3c2_pona2d3ć2_pona2d3f2_pona2d3g2_pona2d3k2_pona2d3p2_pona2d3s2_pona2d3Å›2_pona2d3t2_poro3z4u1_pó3Å‚4ec4z_pra3w2nu1_prze2d3m2_prze3d4um_prze3d4z2_prze3d4ź2_prze4d5zj_przedzwo1_prze4d5ż2_przec2h2r_przeci2w3_przeciwa2_przedago1_prze2d3b2_prze2d3c2_prze2d3ć2_prze4d3d2_prze2d3f2_prze2d3g2_prze2d3k2_prze2d3n2_prze2d3p2_prze2d3s2_prze2d3Å›2_prze2d3t2_przedc4h2_przedc4z2_przedd4z2_przedd4ź2_przedd4ż2_prze2Å‚1k2_prze2m1k2_przepc4h2_pr4zer4z2_prze2r1ż2_przesc4h2_prze2t1k2_przy2m1k2_przypc4h2_pr4zyr4z2_przy2r1ż2_przysc4h2_przy2t1k2_ro3z4e3b2_ro3z4e3c2_ro3z4e3ć2_ro3z4e3d2_ro3z4e3f2_ro3z4e3g2_ro3z4e3h2_ro3z4e3k2_ro3z4e3l2_ro3z4e3Å‚2_ro3z4e3m2_ro3z4e3p2_ro3z4e3r2_ro3z4e3s2_ro3z4e3Å›2_ro3z4e3t2_ro3z4e3w2_ro3z4e3z2_ro3z4e3ź2_ro3z4e3ż2_rozepc4h2_roze2r1ż2_rozesc4h2_samo3c4h2_samoro2z3_siede2m1s_siedmi2o1_skÄ…2d5że1_stereo1o2_su3b4i2e1_supe3r4at_sze1Å›2ci1_szeÅ›ci2o1_sze1śćse1_tran3s4e1_tran3s4y1_trze2c4h3_tysiÄ…3c4z_we4s3pr4z_wie1luse1_wilczo3m2_wniebo3w2_wspó2Å‚1w2_wsze2c4h3_wy4cz3ha1_ze1te1me1_ze1te1se1_zimno3kr2_znie4d4ź3bi2n3o2ku1birmingha1blo2k1hauzbuk2sz3panbusine2s2sdeutsc2h2ldeutschla1du2sz3pasthu2x3le2y1kongre2s3mluftwa4f3fmi1e2r5zi1mon2t3realmurzasic4hpa2n3a2merpoli3u2re1poÅ‚u3d2ni1powsze2d1npre2sz3pa1ro2k3roc4zsy2n3o2p1tsza2sz1Å‚y1szyn2k1wasturboodr4ztygo3d2ni1_bynaj2m1n_bynajmni1_be9z8ami__gdzi1eni1_n8a9da8l__nigdzi2e1_nie2c2h1ż_nie1chże1_nie2c2h1b_ow9sze8m__pó9Å‚8ami__pó9Å‚8e8k__skÄ…1dinÄ…1_podówcza1', - 11 : '_ciepÅ‚o3kr2_de3z4a3bil_de3z4a3wu1_dziewiÄ™2ć3_elektro1o2_kilkuse2t3_kilkuseto2_kon3tr4o3l_kon3tr4o3w_krótko3tr2_mili3a2m1p_na3d4muc4h_na3d4rÄ™c4z_na4d3o2b2Å‚_nadobo2j1c_na4j3e2k2s_na4j3e2ko1_na4j3e2m1f_nad5zwyc4z_nadÅ›rodzi1_najdo2t1k2_najro3z4u1_niedobr4z2_niedo2m1k2_niedopc4h2_niedo2t1k2_niepo2d3m2_nie1podre1_niepo1dwo1_niepo3d4z2_niepo3d4ź2_niepodoc4h_niepo2d3b2_niepo2d3c2_niepo2d3ć2_niepo4d3d2_niepo2d3f2_niepo2d3g2_niepo2d3k2_niepo2d3n2_niepo2d3p2_niepo2d3s2_niepo2d3Å›2_niepo2d3t2_niepodc4h2_niepodc4z2_niepodd4ź2_niepodd4ż2_niepods4z2_nieprze2d2_nieprze3b2_nieprze3c2_nieprze3ć2_nieprze3f2_nieprze3g2_nieprze3h2_nieprze3k2_nieprze3l2_nieprze3Å‚2_nieprze3m2_nieprze3n2_nieprze3p2_nieprze3r2_nieprze3s2_nieprze3Å›2_nieprze3t2_nieprze3w2_nieprze3z2_nieprze3ź2_nieprze3ż2_nieprzekl2_nieprzekr2_nieprzesm2_nieprzetr2_niero3z4u1_nieroze3r2_niero2z1Å›2_niewybr4z2_niewy2t1k2_ob3o2str4z_osiemse2t3_pe1ze1tpe1_po3d4muc4h_po3d4r2wi1_po3d4rÄ™c4z_po3d4roba1_po3d4robó1_po3d4roby1_po3d4roc4z_po3d4wor4z_podobo2j1c_po4d3o2bóz_po1do1cho1_po4d3o2d1m_po4d3o2k1n_po4d3o2ryw_podosi1ni1_po4d3obs4z_po4d3o4d3d_po4d3u2c4z_po4d3u2d4z_po4d3u2pa1_po4d3u2ral_podu2s2z1c_podzie1le1_po4d5z2w2r_poduszczy1_pod3Å›ró2d5_ponad3c4h2_ponad3c4z2_ponad3d4ź2_prapra2w1n_prze3d4Å‚uż_prze3d4ruk_prze3d4ryl_przedÅ‚uży1_przedosta1_prze4d5za1_prze4d5zim_prze4d5z1l_pr4zebr4z2_przeci1wi1_przedsi2Ä™1_przed3s4z2_pr4zegr4z2_pr4zygr4z2_retra2n2s3_ro4z5a2gi1_ro4z5e2mo1_ro4z5e4g3z_ro4z5e4n3t_siedmio3Å›2_ste1re1oe2_su3b4o2t1n_supe2r5z2b_superodr4z_szeÅ›cio3Å›2_sześćse2t3_Å›wiatÅ‚o3w2_tró3j4ec4z_trze2c2h1s_trze1chse1_tysiÄ…3c4a1_tysiÄ…3c4e1_tysiÄ…4c5zÅ‚_we4s3tc4h2_wieluse2t3_współo2b3w_wszec2h2w2_zady2s3po1_zde3z4awu1_zdy2s3kred_zdy2s3kwal_ze4t3e2m1pbe2k1he2n1dbi2z3ne2s3mbusine2ss3mfi2s3ha2r1mfos2f1a2zotga1do3p2ta1gran2d1ilo1karl2s1kronna4Å‚3ko2w1soch3mistr4zro2e3nt2genro2s3to3c2ksko2r5zoner_n8i9gdzie__nie8ch9że__nie8ch9by__przyna2j1m_tró9j8ami__tró9j8e8k__podó4w3c4z', - 12 : '_cztere2c4h3_dziewiÄ™2ć1s_e2s1e2s1ma1_e1le1ktroe2_na3d4repc4z_na3d4re2p1t_na3d4wo2r1n_na4d3o2brot_na4d3o2dr4z_na4d3o2kien_na4d3olbr4z_na4d5rzec4z_niepo3d4Å‚u1_niepo3d4rap_niepo3d4raż_niepo3d4waj_niepo3d4woj_nieprzed3Å‚2_nieprzedÅ‚u1_nieprzedmu1_nieprzed3r2_nieprzedra1_nieprzedru1_nieprzedry1_nieprzed3u2_nieprze3dy1_nie1prze1e2_nieprzec4h2_nieprzec4z2_nieprzed3h2_nieprzed3j2_nieprzed3l2_nieprzed3w2_nieprze2p1c_nieprzes4z2_nie1ro3z4e1_nierozbr4z2_po3d4repc4z_po3d4re2p1t_po3d4ro1bo1_po3d4wó2j1n_po4d3e4k2s3_po4d3o2biad_po4d3o2braz_po4d3o2choc_po4d3o2kien_po4d3o2kres_po4d3o2krÄ™g_podosini2a1_po4d3olbr4z_po4d3u2sta1_półprzy3m2k_predy2s3po1_prze3d4o3br_prze3d4o3st_przedra1ma1_prze3e2k2s3_prze4d5z1g2_prze4d5zwoj_pr4zechr4z2_przeci4w3w2_przed3a2gon_przed3a2k1c_przed3a2l1p_przed3e2g1z_prze1de1me1_przed3e2mer_pr4zedgr4z2_sie1de1mse1_siedemse2t3_supe3r4i2o1_supe4r5a2tr_tran3s4i2e1_tran4s5e2u1_trzechse2t3_wewnÄ…2tr4z3birmin2g1hamcal2d1we4l3lin4nsbru2c1kkarl2s1ruhe1kir2chho4f3flu2ft3waffe1mi2s4z1mas4zpo3d4niepr4zpo4rt3la2n1dpowsze3d2ni1sze2z1lo2n1gtu1rboodrzu1we2e2k1e2n1d_bynajmni2e1_be9z8a8c8h__in8a9cze8j__pó9Å‚8a8c8h__przynaj2m1n_przynajmni1_podó3w2czas', - 13 : '_autotra2n2s3_cztere2c2h1s_dzi1esi1Ä™ci1_dziesiÄ™ci2o1_dzi1ewi1Ä™ci1_dziewiÄ™ci2o1_dzie1więćse1_e2m3e2s5ze2t_kon4tr5a2gi1_kon4tr5a2se1_kon4tr5a2sy1_kon4tr5a2ta1_kon4tr5a2d1m_kon4tr5a2k1c_kon4tr5a2l1t_kon4tr5a2r1g_na4d3o2bowi1_nadÅ›rodzi2e1_nadÅ›rod5ziem_niepodre2p1c_nieprze2d3m2_nieprze3d4um_nieprze3d4z2_nieprze3d4ź2_ni1eprzedzi1_nieprze4d5zj_nieprzedzwo1_nieprze4d5ż2_nieprze2d3c2_nieprze2d3ć2_nieprze4d3d2_nieprze2d3f2_nieprze2d3g2_ni1eprzed3i2_nieprze2d3k2_nieprze2d3n2_nieprze2d3p2_nieprze2d3s2_nieprze2d3Å›2_nieprze2d3t2_nieprzedc4h2_nieprzedc4z2_nieprzedd4z2_nieprzedd4ź2_nieprzedd4ż2_nieprze2Å‚1k2_nieprzepc4h2_niepr4zer4z2_nieprze2r1ż2_nieprzesc4h2_nieprze2t1k2_pe1ze1tpe1e2_peze2t1pee2r_po4d3o2str4z_po4d3u2szc4z_po4d5rÄ™2cz1n_podzi1eleni1_po5d4uszczyn_prapra3w2nu1_prze3d4muc4h_prze3d4o3zo1_prze3d4ramat_pr4ze3d4r4z2_prze4d5Å‚użyc_prze4d5z2w2r_przed3siÄ™3w2_przedy2s3ku1_przetra2n2s3_ro4z5a2ni2e1_su1perodrzu1_zdy2s3ko2n1t_ze4t3e2m1e2s_ze4t3e2s1e2l_zmartwy2c4h3bro2a2d3wa2y1szto2k1ho2l1mturboo2d3rzut_gdzi2e1ni2e1_skÄ…d9i8nÄ…8d__tró9j8a8c8h_', - 14 : '_czte1re1chse1_czterechse2t3_dziesiÄ™cio3Å›2_dziewiÄ™cio3Å›2_dziewięćse2t3_na4d3o2bojc4z_niepo3d4muc4h_niepo3d4rÄ™c4z_niepo1do1cho1_nieprze3d4Å‚uż_nieprze3d4ruk_nieprze3d4ryl_nieprzedÅ‚uży1_nieprze4d5zim_nieprze4d5z1l_nieprzed3s4z2_niepr4zegr4z2_po4d3o2bojc4z_po4d3o2piec4z_po4d3o2siniak_po4d5zielenic_po4d5zielenić_po4d5zielenil_po4d5zieleniÅ‚_po4d5zielenim_po4d5zielenis_prze4d5o4stat_supero2d1rzut_zmartwyc2h2w2mu2r7zasic2h3lpo4rt2s3mo2uth_gd4zieniegd4z_przynajmni2e1', - 15 : '_niepo3d4repc4z_niepo3d4re2p1t_niepo4d3o2choc_niepr4ze3br4z2_nieprzedra1ma1_nieprze3e2k2s3_nieprze4d5z2a1_nieprze4d5z1g2_nieprze4d5zwoj_ni2e1su3b4i2e1_po4d5zielenien_prze1ci3w4i2e1deut4sch3la2n1d_2g1dzienie2g1d', - 16 : '_niepo4d3o2str4z_nieprze3d4muc4h_nieprze3d4ramat_niepr4ze3d4r4z2_nieprze4d5Å‚użyc_nieprze4d5z2w2r_po4d5zieleni2Ä…1_po4d5zieleni2Ä™1_po4d5zieleni2o1_by9naj9m8nie8j__gdzi1eni1egdzi1', - 17 : '_podzi2e1le1ni2e1_gdzienie9g8dzie__po8d9ó8w9cza8s_', - 18 : '_przy9naj9m8nie8j_', - 20 : '_gdzi2e1ni2e1gdzi2e1' + 2 : "a1Ä…1e1Ä™1i1o1ó1u1y1", + 3 : "_a1_b8_c8_ć8_d8_e1_f8_g8_h8_i1_j8_k8_l8_Å‚8_m8_n8_Å„8_o1_p8_r8_s8_Å›8_t8_u1_v8_w8_x8_z8_ź8_ż8Å›1cc4hc4zd4zd4źd4żr4zs4z8b_8c_8ć_8d_8f_8g_8h_8j_8k_8l_8Å‚_8m_8n_8Å„_8p_8r_8s_8Å›_8t_8v_8w_8x_8z_8ź_8ż_ae2ai2ao2be1bi1bo1bu1ca1cu1de1du1ea2ei2eo2fi1fo1ga1go1hi1hu1ja1ka1ki1ko1le1lu1ly1ma1mi1mo1mu1na1oa2oe2oi2ou2pa1po1ro1se1so1sy1to1tu1ty1ua2ue2ui2uo2vo1we1ya2ye2yi2yo2yu2ze1", + 4 : "_ae2_be1_bh8_bj8_bl8_bÅ‚8_br8_bv8_bw8_bx8_ca1_ci1_cj8_cÅ‚8_cr8_cv8_cw8_cx8_ćh8_ćj8_ćl8_ćł8_ćr8_ćv8_ćw8_ćx8_da1_de1_dh8_dj8_dl8_dÅ‚8_do1_dr8_dv8_dw8_dx8_dy1_fb8_fć8_fd8_fg8_fh8_fj8_fl8_fÅ‚8_fÅ„8_fp8_fr8_fs8_fÅ›8_ft8_fv8_fw8_fx8_fz8_fź8_fż8_ge1_gh8_gj8_gl8_gÅ‚8_gn8_go1_gr8_gv8_gw8_gx8_hi1_hv8_hx8_ja1_jv8_jx8_kh8_ki1_kj8_kl8_kÅ‚8_ko1_kr8_kv8_kw8_kx8_lu1_lv8_lx8_Å‚v8_Å‚x8_mi1_mo1_mv8_mx8_na1_ne1_ni1_nv8_nx8_Å„v8_Å„x8_ot2_oa2_oc2_oć2_of2_og2_oh2_ok2_om2_op2_os2_oÅ›2_ow2_oz2_oź2_oż2_pe1_ph8_pi1_pj8_pl8_pÅ‚8_po1_pó1_pr8_pv8_pw8_px8_re1_ro1_rv8_rx8_sa1_sc8_sć8_sh8_si1_sj8_sk8_sl8_sÅ‚8_sm8_sn8_sÅ„8_so1_sp8_sr8_sÅ›8_st8_su1_sv8_sw8_sx8_ść8_Å›h8_Å›j8_Å›l8_śł8_Å›m8_Å›n8_śń8_Å›r8_Å›v8_Å›w8_Å›x8_ta1_te1_th8_tj8_tl8_tÅ‚8_to1_tr8_tv8_tw8_tx8_ty1_uć2_uÅ›2_vb8_vc8_vć8_vd8_vf8_vg8_vh8_vj8_vk8_vl8_vÅ‚8_vm8_vn8_vÅ„8_vp8_vr8_vs8_vÅ›8_vt8_vv8_vw8_vx8_vz8_vź8_vż8_we1_wh8_wi1_wo1_wv8_wx8_wy1_xb8_xc8_xć8_xd8_xf8_xg8_xh8_xj8_xk8_xl8_xÅ‚8_xm8_xn8_xÅ„8_xp8_xr8_xs8_xÅ›8_xt8_xv8_xw8_xx8_xz8_xź8_xż8_za1_zb8_ze1_zg8_zh8_zi1_zj8_zl8_zÅ‚8_zm8_zn8_zÅ„8_zo1_zr8_zv8_zw8_zx8_zź8_zż8_źh8_źj8_źł8_źń8_źr8_źv8_źx8_żh8_żv8_żx82b1c2b1ć2b1d2b1f2b1g2b1k2b1m2b1n2b1Å„2b1p2b1s2b1Å›2b1t2b1z2b1ź2b1ż2c1b2c1ć2c1d2c1f2c1g2c1k2c1l2c1m2c1n2c1Å„2c1p2c1s2c1Å›2c1t2c1ź2c1ż2ć1b2ć1c2ć1d2ć1f2ć1g2ć1k2ć1m2ć1n2ć1Å„2ć1p2ć1s2ć1Å›2ć1t2ć1z2ć1ź2ć1ż2d1b2d1c2d1ć2d1f2d1g2d1k2d1m2d1n2d1Å„2d1p2d1s2d1Å›2d1t2f1c2f1k2f1m2f1n2g1b2g1c2g1ć2g1d2g1f2g1k2g1m2g1Å„2g1p2g1s2g1Å›2g1t2g1z2g1ź2g1ż2h1b2h1c2h1ć2h1d2h1f2h1g2h1j2h1k2h1l2h1Å‚2h1m2h1n2h1Å„2h1p2h1r2h1s2h1Å›2h1t2h1w2h1z2h1ź2h1ż2j1b2j1c2j1ć2j1d2j1f2j1g2j1h2j1k2j1l2j1Å‚2j1m2j1n2j1Å„2j1p2j1r2j1s2j1Å›2j1t2j1w2j1z2j1ź2j1ż2k1b2k1c2k1ć2k1d2k1f2k1g2k1m2k1n2k1Å„2k1p2k1s2k1Å›2k1t2k1z2k1ź2k1ż2l1b2l1c2l1ć2l1d2l1f2l1g2l1h2l1j2l1k2l1Å‚2l1m2l1n2l1Å„2l1p2l1r2l1s2l1Å›2l1t2l1w2l1z2l1ź2l1ż2Å‚1b2Å‚1c2Å‚1ć2Å‚1d2Å‚1f2Å‚1g2Å‚1h2Å‚1j2Å‚1k2Å‚1l2Å‚1m2Å‚1n2Å‚1Å„2Å‚1p2Å‚1r2Å‚1s2Å‚1Å›2Å‚1t2Å‚1w2Å‚1z2Å‚1ź2Å‚1ż2m1b2m1c2m1ć2m1d2m1f2m1g2m1h2m1j2m1k2m1l2m1Å‚2m1n2m1Å„2m1p2m1r2m1s2m1Å›2m1t2m1w2m1z2m1ź2m1ż2n1b2n1c2n1ć2n1d2n1f2n1g2n1h2n1j2n1k2n1l2n1Å‚2n1m2n1Å„2n1p2n1r2n1s2n1Å›2n1t2n1w2n1z2n1ź2n1ż2Å„1b2Å„1c2Å„1ć2Å„1d2Å„1f2Å„1g2Å„1h2Å„1j2Å„1k2Å„1l2Å„1Å‚2Å„1m2Å„1n2Å„1Å„2Å„1p2Å„1r2Å„1s2Å„1Å›2Å„1t2Å„1w2Å„1z2Å„1ź2Å„1ż2p1b2p1c2p1ć2p1d2p1f2p1g2p1k2p1m2p1n2p1Å„2p1s2p1Å›2p1t2p1z2p1ź2p1ż2r1b2r1c2r1ć2r1d2r1f2r1g2r1h2r1j2r1k2r1l2r1Å‚2r1m2r1n2r1Å„2r1p2r1s2r1Å›2r1t2r1w2r1ź2r1ż2s1b2s1d2s1f2s1g2s1s2s1ź2s1ż2Å›1b2Å›1d2Å›1f2Å›1g2Å›1k2Å›1p2Å›1s2Å›1Å›2Å›1t2Å›1z2Å›1ź2Å›1ż2t1b2t1c2t1ć2t1d2t1f2t1g2t1k2t1m2t1n2t1Å„2t1p2t1s2t1Å›2t1z2t1ź2t1żtr4z2w1b2w1c2w1ć2w1d2w1f2w1g2w1j2w1k2w1l2w1Å‚2w1m2w1n2w1Å„2w1p2w1r2w1s2w1Å›2w1t2w1z2w1ź2w1ż2z1c2z1ć2z1d2z1f2z1k2z1p2z1s2z1Å›2z1t2ź1b2ź1c2ź1ć2ź1d2ź1f2ź1g2ź1k2ź1l2ź1m2ź1n2ź1p2ź1s2ź1Å›2ź1t2ź1w2ź1z2ź1ż2ż1b2ż1c2ż1ć2ż1d2ż1f2ż1g2ż1j2ż1k2ż1l2ż1Å‚2ż1m2ż1n2ż1Å„2ż1p2ż1r2ż1s2ż1Å›2ż1t2ż1w2ż1z2ż1źdni1mne1pne1wc4zwÅ‚a1wÅ‚o14b3b4c3c4ć3ć4d3d4f3f4g3g4h3h4j3j4k3k4l3l4Å‚3Å‚4m3m4n3n4p3p4r3r4t3t4w3w4z3z4ź3ź4ż3żbr4zdr4zpr4zrs4zsc4ha2u1a2y1a1a2blo1bro1chu1dże1er4ze2u1e2y1e1e2gra1gro1i2a1i2Ä…1i2e1i2Ä™1i2i1i2o1i2ó1i2u1i2y1o2y1oc4ho1o2pre1roe2sko1sza1sze1szy1u2y1u1u2_by1", + 5 : "_a2d3_a2u1_c4h8_c4z8_cza1_ćwi1_dÅ‚u1_dro1_dwó1_d4z8_dzi1_d4ź8_d4ż8_ego1_gru1_i2n3_izo1_kro1_kró1_na2j_o2b2_o2d2_ob3r_oa3z_obu1_oda1_odu1_ogó1_oka1_okr2_ole1_osi1_pÅ‚a1_poe2_pra1_pre1_r4z8_skÄ…1_skl8_skr8_spo1_spó1_ste1_s4z8_sze1_Å›1c8_Å›ró1_Å›wi1_toa3_tra1_tró1_u3b2_u3c2_u3d2_u3f2_u3g2_u3h2_u3k2_u3l2_u3Å‚2_u3m2_u3n2_u3p2_u3r2_u3s2_u3t2_u3w2_u3z2_u3ź2_u3ż2_ube1_ubr2_ukr2_upo1_uro1_utr2_uze1_wni1_ws4z_wyo2_wye2_wyi2_zao2_zai2_zde1_zdy1_zÅ‚o1_zma1_zni1_zro12cz1b2cz1g2cz1l2cz1m2cz1n2cz1Å„2cz1ź2cz1żd2Å‚1s2dz1b2dz1g2dz1l2dz1m2dz1n2dz1Å„2dz1ź2dz1ż2dź1Å„2rz1b2rz1g2rz1h2rz1j2rz1l2rz1Å‚2rz1m2rz1n2rz1Å„2rz1r2rz1w2rz1ź2rz1żs2t1s2sz1l2sz1m2sz1n2sz1wwcza18b8b_8b8c_8b8ć_8b8d_8b8f_8b8g_8b8h_8b8j_8b8k_8b8l_8b8Å‚_8b8m_8b8n_8b8Å„_8b8p_8b8r_8b8s_8b8Å›_8b8t_8b8v_8b8w_8b8x_8b8z_8b8ź_8b8ż_8c8b_8c8c_8c8ć_8c8d_8c8f_8c8g_8c8h_c2h2Å‚c2h2rchr4zc2h2w8c8j_8c8k_8c8l_8c8Å‚_8c8m_8c8n_8c8Å„_8c8p_8c8r_8c8s_8c8Å›_8c8t_8c8v_8c8w_8c8x_8c8z_8c8ź_8c8ż_8ć8b_8ć8c_8ć8ć_8ć8d_8ć8f_8ć8g_8ć8h_8ć8j_8ć8k_8ć8l_8ć8Å‚_8ć8m_8ć8n_8ć8Å„_8ć8p_8ć8r_8ć8s_8ć8Å›_8ć8t_8ć8v_8ć8w_8ć8x_8ć8z_8ć8ź_8ć8ż_8d8b_8d8c_8d8ć_8d8d_8d8f_8d8g_8d8h_8d8j_8d8k_8d8l_8d8Å‚_8d8m_8d8n_8d8Å„_8d8p_8d8r_8d8s_8d8Å›_8d8t_8d8v_8d8w_8d8x_8d8z_8d8ź_8d8ż_8f8b_8f8c_8f8ć_8f8d_8f8f_8f8g_8f8h_8f8j_8f8k_8f8l_8f8Å‚_8f8m_8f8n_8f8Å„_8f8p_8f8r_8f8s_8f8Å›_8f8t_8f8v_8f8w_8f8x_8f8z_8f8ź_8f8ż_8g8b_8g8c_8g8ć_8g8d_8g8f_8g8g_8g8h_8g8j_8g8k_8g8l_8g8Å‚_8g8m_8g8n_8g8Å„_8g8p_8g8r_8g8s_8g8Å›_8g8t_8g8v_8g8w_8g8x_8g8z_8g8ź_8g8ż_8h8b_8h8c_8h8ć_8h8d_8h8f_8h8g_8h8h_8h8j_8h8k_8h8l_8h8Å‚_8h8m_8h8n_8h8Å„_8h8p_8h8r_8h8s_8h8Å›_8h8t_8h8v_8h8w_8h8x_8h8z_8h8ź_8h8ż_8j8b_8j8c_8j8ć_8j8d_8j8f_8j8g_8j8h_8j8j_8j8k_8j8l_8j8Å‚_8j8m_8j8n_8j8Å„_8j8p_8j8r_8j8s_8j8Å›_8j8t_8j8v_8j8w_8j8x_8j8z_8j8ź_8j8ż_8k8b_8k8c_8k8ć_8k8d_8k8f_8k8g_8k8h_8k8j_8k8k_8k8l_8k8Å‚_8k8m_8k8n_8k8Å„_8k8p_8k8r_8k8s_8k8Å›_8k8t_8k8v_8k8w_8k8x_8k8z_8k8ź_8k8ż_8l8b_8l8c_8l8ć_8l8d_8l8f_8l8g_8l8h_8l8j_8l8k_8l8l_8l8Å‚_8l8m_8l8n_8l8Å„_8l8p_8l8r_8l8s_8l8Å›_8l8t_8l8v_8l8w_8l8x_8l8z_8l8ź_8l8ż_8Å‚8b_8Å‚8c_8Å‚8ć_8Å‚8d_8Å‚8f_8Å‚8g_8Å‚8h_8Å‚8j_8Å‚8k_8Å‚8l_8Å‚8Å‚_8Å‚8m_8Å‚8n_8Å‚8Å„_8Å‚8p_8Å‚8r_8Å‚8s_8Å‚8Å›_8Å‚8t_8Å‚8v_8Å‚8w_8Å‚8x_8Å‚8z_8Å‚8ź_8Å‚8ż_8m8b_8m8c_8m8ć_8m8d_8m8f_8m8g_8m8h_8m8j_8m8k_8m8l_8m8Å‚_8m8m_8m8n_8m8Å„_8m8p_8m8r_8m8s_8m8Å›_8m8t_8m8v_8m8w_8m8x_8m8z_8m8ź_8m8ż_8n8b_8n8c_8n8ć_8n8d_8n8f_8n8g_8n8h_8n8j_8n8k_8n8l_8n8Å‚_8n8m_8n8n_8n8Å„_8n8p_8n8r_8n8s_8n8Å›_8n8t_8n8v_8n8w_8n8x_8n8z_8n8ź_8n8ż_8Å„8b_8Å„8c_8Å„8ć_8Å„8d_8Å„8f_8Å„8g_8Å„8h_8Å„8j_8Å„8k_8Å„8l_8Å„8Å‚_8Å„8m_8Å„8n_8Å„8Å„_8Å„8p_8Å„8r_8Å„8s_8Å„8Å›_8Å„8t_8Å„8v_8Å„8w_8Å„8x_8Å„8z_8Å„8ź_8Å„8ż_8p8b_8p8c_8p8ć_8p8d_8p8f_8p8g_8p8h_8p8j_8p8k_8p8l_8p8Å‚_8p8m_8p8n_8p8Å„_8p8p_8p8r_8p8s_8p8Å›_8p8t_8p8v_8p8w_8p8x_8p8z_8p8ź_8p8ż_8r8b_8r8c_8r8ć_8r8d_8r8f_8r8g_8r8h_8r8j_8r8k_8r8l_8r8Å‚_8r8m_8r8n_8r8Å„_8r8p_8r8r_8r8s_8r8Å›_8r8t_8r8v_8r8w_8r8x_8r8z_8r8ź_8r8ż_8s8b_8s8c_8s8ć_8s8d_8s8f_8s8g_8s8h_8s8j_8s8k_skr4z8s8l_8s8Å‚_8s8m_8s8n_8s8Å„_8s8p_8s8r_8s8s_8s8Å›_8s8t_str4z8s8v_8s8w_8s8x_8s8z_szc4z8s8ź_8s8ż_8Å›8b_8Å›8c_8Å›8ć_8Å›8d_8Å›8f_8Å›8g_8Å›8h_8Å›8j_8Å›8k_8Å›8l_8Å›8Å‚_8Å›8m_8Å›8n_8Å›8Å„_8Å›8p_8Å›8r_8Å›8s_8Å›8Å›_8Å›8t_8Å›8v_8Å›8w_8Å›8x_8Å›8z_8Å›8ź_8Å›8ż_8t8b_8t8c_8t8ć_8t8d_8t8f_8t8g_8t8h_8t8j_8t8k_8t8l_8t8Å‚_8t8m_8t8n_8t8Å„_8t8p_8t8r_8t8s_8t8Å›_8t8t_8t8v_8t8w_8t8x_8t8z_8t8ź_8t8ż_8v8b_8v8c_8v8ć_8v8d_8v8f_8v8g_8v8h_8v8j_8v8k_8v8l_8v8Å‚_8v8m_8v8n_8v8Å„_8v8p_8v8r_8v8s_8v8Å›_8v8t_8v8v_8v8w_8v8x_8v8z_8v8ź_8v8ż_8w8b_8w8c_8w8ć_8w8d_8w8f_8w8g_8w8h_8w8j_8w8k_8w8l_8w8Å‚_8w8m_8w8n_8w8Å„_8w8p_8w8r_8w8s_8w8Å›_8w8t_8w8v_8w8w_8w8x_8w8z_8w8ź_8w8ż_8x8b_8x8c_8x8ć_8x8d_8x8f_8x8g_8x8h_8x8j_8x8k_8x8l_8x8Å‚_8x8m_8x8n_8x8Å„_8x8p_8x8r_8x8s_8x8Å›_8x8t_8x8v_8x8w_8x8x_8x8z_8x8ź_8x8ż_8z8b_8z8c_8z8ć_8z8d_zdr4z8z8f_8z8g_8z8h_8z8j_8z8k_8z8l_8z8Å‚_8z8m_8z8n_8z8Å„_8z8p_8z8r_8z8s_8z8Å›_8z8t_8z8v_8z8w_8z8x_8z8z_8z8ź_8z8ż_8ź8b_8ź8c_8ź8ć_8ź8d_8ź8f_8ź8g_8ź8h_8ź8j_8ź8k_8ź8l_8ź8Å‚_8ź8m_8ź8n_8ź8Å„_8ź8p_8ź8r_8ź8s_8ź8Å›_8ź8t_8ź8v_8ź8w_8ź8x_8ź8z_8ź8ź_8ź8ż_8ż8b_8ż8c_8ż8ć_8ż8d_8ż8f_8ż8g_8ż8h_8ż8j_8ż8k_8ż8l_8ż8Å‚_8ż8m_8ż8n_8ż8Å„_8ż8p_8ż8r_8ż8s_8ż8Å›_8ż8t_8ż8v_8ż8w_8ż8x_8ż8z_8ż8ź_8ż8ż_be1e2bino1bis4zb2r2dbroa2bus4zbusi1c2h2jc2h2lcur4zde2u1dus4zd2ż2jd2ż2ld2ż2Å‚d2ż2rd2ż2werza1fis4zfor4zgado1his4zhuc4zi4n3ni2n1sj2t1Å‚j2t1rled1wly2o2mar4zmis4zmi2e1moza1mur4zo4f3fó2w1cpoli1poÅ‚u1p2r1cprc4hs2m2rsowi1syno1szto1to2y1tygo1we1e2ź2d4ź_gd4z_ina1", + 6 : "_a2b1s_ad4e1_ad4i1_ad4o1_ad4u1_ad4y1_ad5op_ad5or_a2n1t_anty1_a2r1c_arcy1_au3g2_au3k2_au3t2_auto1_4b3b8_2b1c8_2b1ć8_2b1d8_be2z3_beza1_bezi1_bezm2_bezo2_bezw2_2b1f8_2b1g8_2b1k8_2b1m8_2b1n8_2b1Å„8_2b1p8_br4z8_2b1s8_2b1Å›8_2b1t8_2b1z8_2b1ź8_2b1ż8_caÅ‚o1_2c1b8_4c3c8_2c1ć8_2c1d8_2c1f8_2c1g8_c2h2r_ci2e1_2c1k8_2c1l8_2c1m8_2c1n8_2c1Å„8_2c1p8_2c1s8_2c1Å›8_2c1t8_czte1_czwó1_2c1ź8_2c1ż8_2ć1b8_2ć1c8_4ć3ć8_2ć1d8_2ć1f8_2ć1g8_2ć1k8_2ć1m8_2ć1n8_2ć1Å„8_2ć1p8_2ć1s8_2ć1Å›8_2ć1t8_2ć1z8_2ć1ź8_2ć1ż8_dale1_2d1b8_2d1c8_2d1ć8_4d3d8_de2z3_deza2_dezo2_2d1f8_2d1g8_2d1k8_2d1m8_2d1n8_2d1Å„8_do3b2_do3c2_do3ć2_do3d2_do3f2_do3g2_do3h2_do3k2_do3l2_do3Å‚2_do3m2_do3p2_do3r2_do3s2_do3Å›2_do3t2_do3w2_do3z2_do3ź2_do3ż2_dobr2_dosm2_dotr2_2d1p8_dr4z8_2d1s8_2d1Å›8_2d1t8_dy2s3_dy2z3_dyzu2_e1me1_e1se1_e2s1t_egoa2_egoi2_egou2_e1le1_2f1c8_4f3f8_2f1k8_2f1m8_2f1n8_2g1b8_2g1c8_2g1ć8_2g1d8_ge2o3_2g1f8_4g3g8_2g1k8_2g1m8_2g1Å„8_go2u3_2g1p8_gr4z8_2g1s8_2g1Å›8_2g1t8_2g1z8_2g1ź8_2g1ż8_2h1b8_2h1c8_2h1ć8_2h1d8_2h1f8_2h1g8_4h3h8_hipe1_2h1j8_2h1k8_2h1l8_2h1Å‚8_2h1m8_2h1n8_2h1Å„8_2h1p8_2h1r8_2h1s8_2h1Å›8_2h1t8_2h1w8_2h1z8_2h1ź8_2h1ż8_i2s3l_i1ni1_i2n1f_izoa2_izoe2_izou2_2j1b8_2j1c8_2j1ć8_2j1d8_2j1f8_2j1g8_2j1h8_4j3j8_2j1k8_2j1l8_2j1Å‚8_2j1m8_2j1n8_2j1Å„8_2j1p8_2j1r8_2j1s8_2j1Å›8_2j1t8_2j1w8_2j1z8_2j1ź8_2j1ż8_2k1b8_2k1c8_2k1ć8_2k1d8_2k1f8_2k1g8_4k3k8_2k1m8_2k1n8_2k1Å„8_2k1p8_kr4z8_2k1s8_2k1Å›8_2k1t8_2k1z8_2k1ź8_2k1ż8_2l1b8_2l1c8_2l1ć8_2l1d8_2l1f8_2l1g8_2l1h8_2l1j8_2l1k8_4l3l8_2l1Å‚8_2l1m8_2l1n8_2l1Å„8_2l1p8_2l1r8_2l1s8_2l1Å›8_2l1t8_ludo1_2l1w8_2l1z8_2l1ź8_2l1ż8_2Å‚1b8_2Å‚1c8_2Å‚1ć8_2Å‚1d8_2Å‚1f8_2Å‚1g8_2Å‚1h8_2Å‚1j8_2Å‚1k8_2Å‚1l8_4Å‚3Å‚8_2Å‚1m8_2Å‚1n8_2Å‚1Å„8_2Å‚1p8_2Å‚1r8_2Å‚1s8_2Å‚1Å›8_2Å‚1t8_2Å‚1w8_2Å‚1z8_2Å‚1ź8_2Å‚1ż8_2m1b8_2m1c8_2m1ć8_2m1d8_2m1f8_2m1g8_2m1h8_2m1j8_2m1k8_2m1l8_2m1Å‚8_4m3m8_2m1n8_2m1Å„8_2m1p8_2m1r8_2m1s8_2m1Å›8_2m1t8_2m1w8_2m1z8_2m1ź8_2m1ż8_na2d2_na3b2_na3c2_na3ć2_na3f2_na3g2_na3h2_na3k2_na3l2_na3Å‚2_na3m2_na3p2_na3r2_na3s2_na3Å›2_na3t2_na3u2_na3w2_na3z2_na3ź2_na3ż2_nakr2_napo1_naro1_nasm2_nazw2_2n1b8_2n1c8_2n1ć8_2n1d8_ne2o3_2n1f8_2n1g8_2n1h8_ni2e1_nieo2_2n1j8_2n1k8_2n1l8_2n1Å‚8_2n1m8_4n3n8_2n1Å„8_2n1p8_2n1r8_2n1s8_2n1Å›8_2n1t8_2n1w8_2n1z8_2n1ź8_2n1ż8_2Å„1b8_2Å„1c8_2Å„1ć8_2Å„1d8_2Å„1f8_2Å„1g8_2Å„1h8_2Å„1j8_2Å„1k8_2Å„1l8_2Å„1Å‚8_2Å„1m8_2Å„1n8_2Å„1Å„8_2Å„1p8_2Å„1r8_2Å„1s8_2Å„1Å›8_2Å„1t8_2Å„1w8_2Å„1z8_2Å„1ź8_2Å„1ż8_o2t1c_otc4h_ob3l2_oblu1_ob3Å‚2_obra1_obry1_o3be1_o3bi1_od3i2_od3r2_odra1_odrÄ™1_odru1_od5z2_odzi1_o3de1_o2l1Å›_ob3h2_ob3j2_o1bo1_ob3w2_oc4h2_oc4z2_od3h2_od3j2_od3l2_o1do1_od3w2_od5ż2_odbe1_od4ź2_ogni1_o2p1c_o2r1t_or4z2_os4z2_oÅ›mi1_2p1b8_2p1c8_pc4h8_2p1ć8_2p1d8_pe2r3_pe1e2_2p1f8_2p1g8_pi2e1_pi2Ä™1_pi2o1_2p1k8_2p1m8_2p1n8_2p1Å„8_po2d2_po3b2_po3c2_po3ć2_podi1_po3f2_po3g2_po3h2_po3k2_po3l2_po3Å‚2_po3m2_po3p2_po3r2_po3s2_po3Å›2_po3t2_po3w2_po3z2_po3ź2_po3ż2_podó1_pobr2_pokl2_pokr2_pona1_poni1_posm2_potr2_poza1_pozw2_pó2Å‚3_półe1_póło2_4p3p8_pr4z8_prze1_przy1_2p1s8_2p1Å›8_2p1t8_2p1z8_2p1ź8_2p1ż8_2r1b8_2r1c8_2r1ć8_2r1d8_2r1f8_2r1g8_2r1h8_2r1j8_2r1k8_2r1l8_2r1Å‚8_2r1m8_2r1n8_2r1Å„8_ro2z3_rozi2_rozm2_rozw2_2r1p8_4r3r8_2r1s8_2r1Å›8_2r1t8_2r1w8_2r1ź8_2r1ż8_samo1_2s1b8_sc4h8_2s1d8_2s1f8_2s1g8_si2e1_2s1s8_su2b3_subi1_subo1_supe1_2s1ź8_2s1ż8_2Å›1b8_2Å›1d8_2Å›1f8_2Å›1g8_2Å›1k8_2Å›1p8_2Å›1s8_2Å›1Å›8_2Å›1t8_2Å›1z8_2Å›1ź8_2Å›1ż8_ta2o3_tar4z_2t1b8_2t1c8_tc4h8_2t1ć8_2t1d8_te2o3_2t1f8_2t1g8_2t1k8_2t1m8_2t1n8_2t1Å„8_2t1p8_tr4z8_trze1_2t1s8_2t1Å›8_4t3t8_tysi1_2t1z8_2t1ź8_2t1ż8_u4d3k_u4f3n_ukle1_u4l3s_u4l3t_u2m1b_u4n3c_u4n3d_u4p3p_u4r3s_uc4h2_uc4z2_ud4z2_ud4ź2_ud4ż2_u2p1c_ur4z2_us4z2_2w1b8_2w1c8_2w1ć8_2w1d8_we3b2_we3c2_we3ć2_we3d2_we3f2_we3g2_we3h2_we3k2_we3l2_we3Å‚2_we3m2_we3n2_we3p2_we3r2_we3s2_we3Å›2_we3t2_we3w2_we3z2_we3ż2_2w1f8_2w1g8_wi2e1_2w1j8_2w1k8_2w1l8_2w1Å‚8_2w1m8_2w1n8_2w1Å„8_2w1p8_2w1r8_2w1s8_wspó1_wsze1_2w1Å›8_2w1t8_4w3w8_wy3b2_wy3c2_wy3ć2_wy3d2_wy3f2_wy3g2_wy3h2_wy3k2_wy3l2_wy3Å‚2_wy3m2_wy3p2_wy3r2_wy3s2_wy3Å›2_wy3t2_wy3w2_wy3z2_wy3ź2_wy3ż2_wybr2_wydr2_wykl2_wykr2_wysm2_wytr2_2w1z8_2w1ź8_2w1ż8_za3b2_za3c2_za3ć2_za3d2_za3f2_za3g2_za3h2_za3k2_za3l2_za3Å‚2_za3m2_za3p2_za3r2_za3s2_za3Å›2_za3t2_za3u2_za3w2_za3z2_za3ź2_za3ż2_zabr2_zado1_zadr2_zady1_zakl2_zakr2_zani1_zasm2_zatr2_2z1c8_2z1ć8_2z1d8_ze3b2_ze3c2_ze3ć2_ze3d2_ze3f2_ze3g2_ze3h2_ze3k2_ze3l2_ze3Å‚2_ze3m2_ze3p2_ze3r2_ze3s2_ze3Å›2_ze3t2_ze3w2_ze3z2_ze3ź2_ze3ż2_zekl2_zesm4_2z1f8_2z1k8_zo2o3_2z1p8_2z1s8_2z1Å›8_2z1t8_4z3z8_2ź1b8_2ź1c8_2ź1ć8_2ź1d8_2ź1f8_2ź1g8_2ź1k8_2ź1l8_2ź1m8_2ź1n8_2ź1p8_2ź1s8_2ź1Å›8_2ź1t8_2ź1w8_2ź1z8_4ź3ź8_2ź1ż8_2ż1b8_2ż1c8_2ż1ć8_2ż1d8_2ż1f8_2ż1g8_2ż1j8_2ż1k8_2ż1l8_2ż1Å‚8_2ż1m8_2ż1n8_2ż1Å„8_2ż1p8_2ż1r8_2ż1s8_2ż1Å›8_2ż1t8_2ż1w8_2ż1z8_2ż1ź8_4ż3ż81Å›2ci12b2Å‚1k2b2r1n2c2h1b2c2h1c2c2h1ć2c2h1d2c2h1f2c2h1g2c2h1k2c2h1m2c2h1n2c2h1Å„2c2h1p2c2h1s2c2h1Å›2c2h1t2c2h1z2c2h1ź2c2h1ż2c2z1c2c2z1ć2c2z1d2c2z1f2c2z1k2c2z1p2c2z1s2c2z1Å›2c2z1t2c4z3z2d2Å‚1b2dÅ‚s4z2d2r1n2d2z1c2d2z1ć2d2z1d2d2z1f2d2z1k2d2z1p2d2z1s2d2z1Å›2d2z1t2d4z3z2d2ź1b2d2ź1c2d2ź1ć2d2ź1d2d2ź1f2d2ź1g2d2ź1k2d2ź1m2d2ź1n2d2ź1p2d2ź1s2d2ź1Å›2d2ź1t2d2ź1z2d4ź3ź2d2ź1ż2d2ż1b2d2ż1c2d2ż1ć2d2ż1d2d2ż1f2d2ż1g2d2ż1k2d2ż1m2d2ż1n2d2ż1Å„2d2ż1p2d2ż1s2d2ż1Å›2d2ż1t2d2ż1z2d2ż1ź2d4ż3ż2g2Å‚1b2k1s4z2k2Å‚1b2n2t1n2p1s4z2p2l1n2r2z1c2r2z1ć2r2z1d2r2z1f2r2z1k2r2z1p2r2z1s2r2z1Å›2r2z1t2s2Å‚1b2s2n1k2s2t1k2s2t1n2sts4z2s2z1c2s2z1ć2s2z1f2s2z1k2s2z1p2s2z1s2s2z1Å›2s2z1t2s4z3z2Å›2ć1c2Å›2l1m2Å›2l1n2t2l1n2t2r1k2z2d1k2z2d1ndni2o13m2k2n3w2Å‚ad3w2Å‚osbe2ethbizne1bi2r1mbu2k1sca2l1dchus1tcurzo1d2rz2wfisha1fo2k1sforza1fo2l1kfo2s1ffosfa1ga2d1ggadge1go2l1fhuxle1in2n1sin2s1bja4z3zka2r1lki2r1ckirc4hko2n1glu2k1smier4zmo2n1tmozai2murza1na2Å‚1knaÅ‚ko1na4r3vochmi1offse1pa1na1po2d1npodni1po2m1npo2r1tpo2w1spows4zprcha1pres4zskor4zsyste1sze4śćto1yo2tu2r1bturbo1vo2l1kze4p3p_byna1_gdzi1_o2w1s_ows4z_póła1", + 7 : "_a1d4a1_ae3ro1_aeroi2_aerou2_antye2_antyi2_antyo2_antyu2_arcye2_arcyi2_arcyo2_arcyu2_autoe2_autoi2_be1ze1_be2z1c_be4z3z_bezzw2_chr4z8_2c2z1t_ćwi2e1_de1ze1_dÅ‚ugo1_do4k3t_do4l3n_do4Å‚3k_do4m3k_do4r3s_do4w3c_doc4h2_doc4z2_dod4z2_dod4ź2_dod4ż2_do2p1c_dor4z2_dos4z2_dwó2j3_dy3s4z_dzi2e1_e2k2s3_emes4z_e1goe2_ego1o2_eks4y1_grubo1_i3n4ic_i3n4o1_i3n4u1_infla1_ino3w2_i1zoi2_izo1o2_jadÅ‚o1_ki2l1k_kilku1_ko1Å‚o1_ko2n1t_kro2ć3_mi1li1_mo2ż1n_nad3i2_nad3Å‚2_nadÅ‚u1_nadmu1_nad3r2_nadre1_nadrÄ™1_nadru1_nad3w2_nadwo1_na1da1_na3daj_na3dÄ…1_na3de1_na3dÄ™1_na3do1_na3dy1_nad4z2_na1ja1_na3jÄ…1_na3je1_na3jÄ™1_na4f3c_na4f3t_na4r3c_na4r3d_na4r3k_na4r3r_na4r3t_nac4h2_nac4z2_nad3h2_nad3j2_nad3l2_nad3u2_nad5ż2_nadtr2_naj3i2_naj3o2_najro1_naj3u2_najbe1_najdo1_najkr2_najsm2_najzw2_nar4z2_nas4z2_na2t1c_naz3m2_nie3b2_nie3c2_nie3ć2_nie3d2_nie3f2_nie3g2_nie3h2_nie3k2_nie3l2_nie3Å‚2_nie3m2_nie3p2_nie3r2_nie3s2_nie3Å›2_nie3t2_nie3u2_nie3w2_nie3z2_nie3ź2_nie3ż2_niedo1_nieob2_nieoc2_nieoć2_nieod2_nieof2_nieog2_nieoh2_nieok2_nieol2_nieoÅ‚2_nieom2_nieop2_nieor2_nieos2_nieoÅ›2_nieot2_nieow2_nieoz2_nieoź2_nieoż2_niepo1_niero1_niesu1_nietr2_nieuw2_niewy1_niezw2_o1bÅ‚o1_o1bro1_o1dro1_od2r1w_odr4z2_odrze1_o3l2Å›n_obrze1_obrzÄ™1_obrzu1_obrzy1_o2b3c2_o2b3ć2_o2b3d2_o2b3f2_o2b3g2_o2b3k2_o2b3m2_o2b3n2_o2b3p2_o2b3s2_o2b3Å›2_o2b3t2_o2b3ź2_o2b3ż2_obc4h2_obc4z2_obd4z2_obd4ź2_obd4ż2_obe3b2_obe3c2_obe3ć2_obe3d2_obe3f2_obe3g2_obe3h2_obe3k2_obe3l2_obe3Å‚2_obe3m2_obe3p2_obe3r2_obe3s2_obe3Å›2_obe3t2_obe3w2_obe3z2_obe3ź2_obe3ż2_obi3b2_obs4z2_oc2h2r_o2d3b2_o2d3c2_o2d3ć2_o4d3d2_o2d3f2_o2d3g2_o2d3k2_o2d3m2_o2d3n2_od3o2s_o2d3p2_o2d3s2_o2d3Å›2_o2d3t2_odc4h2_odc4z2_odd4z2_odd4ź2_odd4ż2_ode3b2_ode3c2_ode3ć2_ode3d2_ode3f2_ode3g2_ode3h2_ode3k2_ode3l2_ode3Å‚2_ode3m2_ode3p2_ode3r2_ode3s2_ode3Å›2_ode3t2_ode3w2_ode3z2_ode3ź2_ode3ż2_ods4z2_oka3m2_opc4h2_or2tÄ™1_o2r2ż2_osi2e1_pe3c2k_pe2Å‚1n_peÅ‚no1_pe1pe1_pe1ze1_piÄ™2ć3_pod3Å‚2_podmu1_podna1_pod3r2_podra1_podre1_podrÄ™1_podró1_podru1_podry1_podr4z_pod3w2_podwa1_podwó1_po3da1_po3dÄ…1_po3de1_po3dej_po3dÄ™1_po3do1_po3du1_po3dy1_po3r1ż_poc4z2_podza1_podzi1_po4l3s_po4m3p_po4Å„3c_po4r3c_po4r3f_po4r3n_po4r3t_poc4h2_pod3h2_pod3j2_pod3l2_pod5ż2_podsm2_po2p1c_po1po1_po1ro1_por4z2_pos4z2_poz4m2_półkr2_pó2Å‚1p_pra3s2_predy1_przyo2_retra1_ro1zo2_ro2z1p_roztr2_skÄ…d4ż_so1bo1_spo2d2_spo3b2_spo3c2_spo3ć2_spo3f2_spo3g2_spo3h2_spo3k2_spo3l2_spo3Å‚2_spo3m2_spo3p2_spo3r2_spo3s2_spo3Å›2_spo3t2_spo3w2_spo3z2_spo3ź2_spo3ż2_spó2Å‚3_sze2s3_szeÅ›1c_Å›ró2d5_Å›ródr2_Å›wi2a1_tró2j3_tróje1_u4m3br_ube2z3_ubezw2_u2m1k2_upc4h2_upo2d2_upo3b2_upo3c2_upo3ć2_upo3f2_upo3g2_upo3h2_upo3k2_upo3l2_upo3Å‚2_upo3m2_upo3p2_upo3r2_upo3s2_upo3Å›2_upo3t2_upo3w2_upo3z2_upo3ź2_upo3ż2_uro2z3_u2r1ż2_usc4h2_u2t1k2_uze3w2_we4k3t_we4l3w_we4Å‚3n_we4n3d_we4n3t_we4r3b_we4r3d_we4r3n_we4r3s_we4r3t_wec4h2_wec4z2_wed4z2_wed4ź2_wed4ż2_we2p1c_wer4z2_wes4z2_we2w1n_wewnÄ…1_wielo1_wielu1_wi2l1c_wilc4z_wni2e1_wo1do1_wyc4z2_wy2ż1s_wyc4h2_wyd4z2_wyd4ź2_wyd4ż2_wy2p1c_wyr4z2_wys4z2_wy2t1c_za4k3t_za4l3g_za4l3k_za4l3t_za4m3k_za2r1c_zac4h2_zac4z2_zad4z2_zad4ź2_zad4ż2_zai2n3_zar4z2_zas4z2_zde2z3_zdeza1_ze4r3k_ze1te1_zetha1_zec4h2_zec4z2_zed4z2_zed4ź2_zed4ż2_ze2p1c_zer4z2_zes4z2_zi2m1n_zimno1_zÅ‚o3w2_zni2e1_zro2z3_ź2d4ź82sz2l1n2t2rz1n3d2niow3m2nest3m2nezj3w2czas8b8r8z_8c8h8Å‚_8c8h8w_8c8z8t_8d8r8z_8k8s8t_8m8s8t_8p8r8z_8r8s8z_8r8z8Å‚_8s8c8h_8s8t8r_8s8t8w_sz2cz1b8s8z8k_8s8z8n_8s8z8t_8t8r8z_8z8d8r_be1khe1biszko1bi1rmi1blokha1bu2sz1mbusine1caldwe1deu2t1sduszpa1dże4z3bdże4z3me2r5zace3u2s4zgol2f3sgra2n1dgrandi1gro4t3rhu2cz1winn2s1binsbru1kar2l1skongre1luftwa1luk2s1fluksfe1mi2sz1mmiszma1montre1o2c2h1mó4w3c4zpaname1pa1sca1por2t1sportla1poli2e1poli2u1powsze1pr2chalroe2n1tro1kro1ro1sto1sowi3z2s4zas4zszezlo1szy2n1k_inac4z_ni2g1d_nigdy1_nigd4z_owsze1_skÄ…di1_trója1", + 8 : "_a2b2s3t_ad5i2u1_a1eroa2_ae1roe2_aero1o2_a1ntya2_arcy3b2_arcy3k2_arcy3Å‚2_arcy3m2_a1rcya2_a1utoa2_auto1o2_au1tou2_be3z4an_be3z4ec_be3z4ik_bezc4h2_caÅ‚o3k2_caÅ‚o3Å›2_cie2n1k_cienko1_ciepÅ‚o1_cza2r1n_czarno1_2c2z1k8_cztero1_czwó2r3_daleko1_dezabi1_de3z4el_de3z4er_de3z4y1_dobr4z2_dogr4z2_dopc4h2_dopr4z2_do2r1ż2_dosc4h2_do2t1k2_dro1go1_dy3s4e1_dy3s4o1_dy3s4y1_dy3z4e1_e2s1ha1_ele2k1t_hipe2r3_hipera2_i4n5o2k_koÅ‚o3w2_kontru2_kró2t1k_krótko1_ludo3w2_mili2a1_mo1żno1_na3d4ir_na2d3m2_na3dzi1_na3d4ź2_nadoki1_nadrze1_nabr4z2_na2d3b2_na2d3c2_na2d3ć2_na4d3d2_nade3t2_na2d3f2_na2d3g2_na2d3k2_na2d3n2_na2d3p2_na2d3s2_na2d3Å›2_na2d3t2_na2dz1m_nadzmy1_nad5zo1_nad5zó1_nadzwy1_nadc4h2_nadc4z2_nadd4ź2_nade3b2_nade3c2_nade3ć2_nade3d2_nade3f2_nade3g2_nade3h2_nade3k2_nade3l2_nade3Å‚2_nade3m2_nade3p2_nade3r2_nade3s2_nade3Å›2_nade3w2_nade3z2_nade3ź2_nade3ż2_nads4z2_nadÅ›ro1_nagr4z2_na2j3b2_na2j3c2_na2j3ć2_na2j3d2_na2j3f2_na2j3g2_na2j3h2_na2j3k2_na2j3l2_na2j3Å‚2_na2j3m2_na2j3p2_na2j3r2_na2j3s2_na2j3Å›2_na2j3t2_na2j3w2_na2j3z2_na2j3ź2_na2j3ż2_najc4h2_najc4z2_najd4z2_najd4ź2_najd4ż2_najr4z2_najs4z2_napo2d2_napo3b2_napo3c2_napo3ć2_napo3f2_napo3g2_napo3h2_napo3k2_napo3l2_napo3Å‚2_napo3m2_napo3p2_napo3r2_napo3s2_napo3Å›2_napo3t2_napo3w2_napo3z2_napo3ź2_napo3ż2_napr4z2_naro2z3_na2r1ż2_natc4h2_na2t1k2_nie4c3c_nie4c3k_nie4m3c_nie4m3k_niec4h2_niec4z2_nied4z2_nied4ż2_nieodw2_niepr4z_nier4z2_nies4z2_o3b4łą1_o3b4łę1_o3b4Å‚oc_o3b4rać_o3b4ron_o3b4roÅ„_o3b4ryz_o3b4ryź_o3d4rap_o3d4rÄ™t_odrobi1_o3d4rut_ob3u2m2_obe3r3t_obe4c3n_obe4z3w_obec4h2_obec4z2_obed4z2_obed4ź2_obed4ż2_obe2r3m_ober4z2_obes4z2_ochr4z2_od3a2u1_od3u2m2_odbe2z3_odec4h2_odec4z2_oded4z2_oded4ź2_oded4ż2_ode2p1c_oder4z2_odes4z2_ode2t1c_odkr4z2_ogó2l1n_o1le2o3_osie2m3_pe3r4e1_pe3r4i1_pe3r4o1_pe3r4u1_pe3r4y1_pepee2r_pepee2s_pie2r1w_pierwo1_pi1Ä™ci1_piÄ™2ć1s_pięćse1_pio1no1_pÅ‚asko1_po2d3m2_po2d3n2_pod2r1w_po1dro1_po1dwo1_po3d4z2_po3d4ź2_pode3k2_podobi1_podobó1_podoc4h_podoki1_podopi1_podory1_podosi1_po4d3ów_podura1_podus4z_po2dz1b_po4st3h_po4st3l_pobr4z2_poc2h2r_po2d3b2_po2d3c2_po2d3ć2_po4d3d2_po2d3f2_po2d3g2_pod3i2n_po2d3k2_po2d3p2_po2d3s2_po2d3Å›2_podÅ›ró1_po2d3t2_podc4h2_podc4z2_podd4ź2_podd4ż2_pode3b2_pode3c2_pode3ć2_pode3d2_pode3f2_pode3g2_pode3h2_pode3l2_pode3Å‚2_pode3m2_pode3p2_pode3r2_pode3s2_pode3Å›2_pode3t2_pode3w2_pode3z2_pode3ź2_pode3ż2_pods4z2_pogr4z2_po2Å‚1k2_pom4p1k_po2m1k2_pona2d2_pona3b2_pona3c2_pona3ć2_pona3f2_pona3g2_pona3h2_pona3k2_pona3l2_pona3Å‚2_pona3m2_pona3p2_pona3r2_pona3s2_pona3Å›2_pona3t2_pona3w2_pona3z2_pona3ź2_pona3ż2_ponasm2_ponazw2_poni2e1_popc4h2_popo3w2_popr4z2_por4t1w_por4t1f_por4t1m_poro2z3_posc4h2_po2t1k2_poza3u2_pó3Å‚4Ä…1_pó3Å‚4Ä™1_pó3Å‚4y1_pó2Å‚1k2_pó2Å‚1m2_półob3r_półpr4z_pra2w1n_pra3w2z_prze2d2_prze3b2_prze3c2_prze3ć2_prze1e2_prze3f2_prze3g2_prze3h2_prze3k2_prze3l2_prze3Å‚2_prze3m2_prze3n2_prze3p2_prze3r2_prze3s2_prze3Å›2_prze3t2_prze3u2_prze3w2_prze3z2_prze3ź2_prze3ż2_przebr2_przeci1_przeda1_przekl2_przekr2_przesm2_przetr2_przy3b2_przy3c2_przy3ć2_przy3d2_przy3f2_przy3g2_przy3h2_przy3k2_przy3l2_przy3Å‚2_przy3m2_przy3p2_przy3r2_przy3s2_przy3Å›2_przy3t2_przy3w2_przy3z2_przy3ź2_przy3ż2_przybr2_przyoz2_ro3z4a1_ro3z4e1_ro3z4ej_ro3z4u1_rozani1_ro2z1d2_ro1zpo1_ro2z1Å›2_ro2z1t2_samo3k2_samo3p2_samo3w2_sie1de1_sie2d1m_sobo3w2_spo4r3n_spo4r3t_spoc4h2_spoc4z2_spo4d3d_spod4ź2_spod4ż2_spor4z2_spos4z2_ste1re1_supe2r3_supera1_superi1_super4z_supero1_ta1rza1_transi1_transo2_tysi2Ä…1_u4k3lej_u4p3p2s_u4s2t3n_u4s2t1c_u4s2t1k_u4z3be1_upo3da1_upoc4h2_upoc4z2_upo4d3d_upod4ź2_upod4ż2_upor4z2_upos4z2_wes2t1c_we4z3br_we4z3gÅ‚_we2m1k2_wepc4h2_we2t1k2_wilczo1_wniebo1_wodo3w2_wspó2Å‚3_współi2_współo1_współu2_wybr4z2_wygr4z2_wyi2zo1_wykr4z2_wy2m1k2_wypc4h2_wypr4z2_wy2r1ż2_wysc4h2_wytc4h2_wy2t1k2_za4uto1_zabr4z2_zagr4z2_zai2zo1_zai1ni1_zain4ic_zakr4z2_zani2e1_za2r1ż2_zasc4h2_za2t1k2_zde1ze1_zdysko1_ze3t1k2_zepc4h2_ze2r1ż2_zesc4h2_zma2r1t_znie3b2_znie3c2_znie3ć2_znie3d2_znie3f2_znie3g2_znie3h2_znie3k2_znie3l2_znie3Å‚2_znie3m2_znie3n2_znie3Å„2_znie3p2_znie3r2_znie3s2_znie3Å›2_znie3t2_znie3w2_znie3z2_znie3ź2_znie3ż23k2s2z2t3m2s2k2n3p2ne2u18ch8r8z_8sk8r8z_8sz8c8z_8sz8t8r_bi2s2z1kbi2z3nesbo2s3ma1bu2k1s4zbukszpa1cu2r7zondeutsc4hdu2s2z1pfi1szbi1fo2k2s3tfo2r5zacfo1lklo1ga3d2getgado2p1tgolfs4z2hi2s2z3pinnsbru1in4sbrucja4z4z3bja4z4z3mkarlsru1kirc4h3hkirchho1ma2r5z1lma2r5z1Å‚ma2r5z1nmontrea2moza2i3kmurzasi1of2f3setpa2s3calpa2s3c4hpodni2e1po3m2nÄ…1po3m2nÄ™1po3m2ni1poli3e2tpoÅ‚u2d1nroen2t1gse2t3le1sko1rzo1sy2s1temszynkwa1to3y2o3tturbo1o2tygo2d1nwe1e1ke1we4s2t3fwe4s2t3m_bezac4h_bezami1_gdzi2e1_inacze1_półac4h_półami1_przyna1", + 9 : "_ad5a2p1t_bezo2b1j_czte1re1_dÅ‚ugo3w2_do5m4k2n_drogo3w2_dwó3j4a1_dwó3j4Ä…1_dwó3j4e1_dwó3j4Ä™1_dwó3j4o1_dy3s4ta1_dzi1esi1_dzi1ewi1_elektro1_grubo3w2_hipe1re2_in4f3lan_jadÅ‚o3w2_kilkuse1_kon2t2r3_ko1ntro2_możno3w2_na3d4Å‚ub_na3d4r2w_na3d4ruk_na3d4r4z_nado1bo1_nado2l1b_nadzi2e1_na4j3e2f_na4j3e2g_na4j3e2n_na4j3e2r_na4j3e2s_na4j3e2w_na1deta1_nade4p3c_nade4p3n_nade4p3t_nadec4h2_nadec4z2_naded4z2_naded4ź2_naded4ż2_nader4z2_nades4z2_naj3a2u1_naj3o2b2_naj3o2c2_naj3o2ć2_naj3o2d2_naj3o2f2_naj3o2g2_naj3o2h2_naj3o2k2_naj3o2l2_naj3o2Å‚2_naj3o2m2_naj3o2p2_naj3o2r2_naj3o2s2_naj3o2Å›2_naj3o2t2_naj3o2w2_naj3o2z2_naj3o2ź2_naj3o2ż2_najbe2z3_najbezw2_najdo3b2_najdo3c2_najdo3ć2_najdo3d2_najdo3f2_najdo3g2_najdo3h2_najdo3k2_najdo3l2_najdo3Å‚2_najdo3m2_najdo3p2_najdo3r2_najdo3s2_najdo3Å›2_najdo3t2_najdo3w2_najdo3z2_najdo3ź2_najdo3ż2_najob3h2_najob3j2_najob3l2_najob3Å‚2_najob3w2_najoc4h2_najoc4z2_najod3h2_najod3j2_najod3l2_najod3w2_najod5ż2_najod4z2_najod4ź2_najor4z2_najos4z2_naj2t1k2_naj2t1r2_najuc4z2_napo4m3p_napoc4h2_napoc4z2_napo4d3d_napod4ź2_napod4ż2_napor4z2_napos4z2_nie4d4ź3_niedo3b2_niedo3c2_niedo3ć2_niedo3d2_niedo3f2_niedo3g2_niedo3h2_niedo3k2_niedo3l2_niedo3Å‚2_niedo3m2_niedo3p2_niedo3r2_niedo3s2_niedo3Å›2_niedo3t2_niedo3w2_niedo3z2_niedo3ź2_niedo3ż2_niedokr2_nieob3h2_nieob3j2_nieob3w2_nieoc4h2_nieoc4z2_nieod3h2_nieod3j2_nieod3l2_nieod3Å‚2_nieod5ż2_nieod4z2_nieod4ź2_nieor4z2_nieos4z2_niepo2d2_niepo3b2_niepo3c2_niepo3ć2_niepo3f2_niepo3g2_niepo3h2_niepo3k2_niepo3l2_niepo3Å‚2_niepo3m2_niepo3p2_niepo3r2_niepo3s2_niepo3Å›2_niepo3t2_niepo3w2_niepo3z2_niepo3ź2_niepo3ż2_niepod5ż_nieposm2_niero2z3_nierozm2_niesu2b3_nie2t1k2_nieuc4z2_niewy3b2_niewy3c2_niewy3ć2_niewy3d2_niewy3f2_niewy3g2_niewy3h2_niewy3k2_niewy3l2_niewy3Å‚2_niewy3m2_niewy3p2_niewy3r2_niewy3s2_niewy3Å›2_niewy3t2_niewy3w2_niewy3z2_niewy3ź2_niewy3ż2_niewytr2_o3b4luzg_o3b4r4z2_o3d4i2u1_o3d4rwi1_o3d4rzeć_o3d4rz2w_o4b5rzÄ…1_o4b5rzez_o4b5rzÄ™d_o4b5rzuc_o4b5rzut_o4b5rzyn_o4d7ziar_o4d7ziem_obe2r1ż2_obesc4h2_obe2t1k2_od3u2c4z_ode3m1k2_odepc4h2_ode2r1ż2_odetc4h2_ode2t1k2_o1gni2o1_o1gólno1_osie2m1s_o1Å›mi2o1_oÅ›mio3Å›2_pe4r5i2n_pe1e1se1_pee2se2l_pe1pe1e2_peze2t1p_piÄ™ci2o1_piono3w2_po3d4Å‚u1_po3d4naw_po3d4rap_po3d4raż_po3d4roż_po3d4róż_po3d4ryg_po3d4waj_po3d4woj_po3d4wór_po3di2u1_po4c2z3d_po4c2z3t_podobra1_po4d3o2f_po4d3o2g_podokre1_podokrÄ™1_podo2b1s_podo2l1b_po4d5zam_po4d5ze1_podzi2e1_po4s2t3d_po4s2t3f_po4s2t3g_po4st3i2_po4s2t3k_po4s2t3m_po4s2t3p_po1stro1_po4s2t3s_po5r4tÄ™1_pochr4z2_podec4h2_podec4z2_poded4z2_poded4ź2_poded4ż2_pode2p1c_poder4z2_podes4z2_podro2z3_pona4f3t_ponac4h2_pona4d3d_ponad3h2_ponad3j2_ponad3l2_ponad4z2_ponar4z2_ponas4z2_ponaz3m2_ponie3k2_ponie3w2_póło2m2d_półprzy1_pra1pra1_przed3Å‚2_przedÅ‚u1_przedmu1_przed3o2_przed3r2_przedra1_przedru1_przedry1_przed3u2_prze3dÄ…1_prze3dÄ™1_prze3dy1_przedzi1_przec4h2_przec4z2_prze1de1_przed3h2_przed3i2_przed3j2_przed3l2_przedsi1_przed3w2_prze2p1c_przes4z2_przetra1_przyc4h2_przyc4z2_przyd4z2_przyd4ź2_przyd4ż2_przy2p1c_przys4z2_rozbr4z2_rozec4h2_rozec4z2_rozed4z2_rozed4ź2_rozed4ż2_roze2p1c_rozer4z2_rozes4z2_rozpo3w2_samo1ro1_siede2m3_si1edmi1_spo3d4z2_stere2o3_stereoa2_stereoi2_stereou2_supe1re2_sze4Å›2ć3_szeÅ›2ć1s_Å›wiatÅ‚o1_ta2r7zan_tra2n2s3_tran3s4z_tra1nsa2_tró3j4Ä…1_tró3j4Ä™1_tysiÄ…2c3_wielo3d2_wielo3k2_wielo3Å›2_wszecho2_wy3o2d3r_wy4ż3s4z_wye2k2s3_za3o2b3r_za3o2b3s_za4r3c4h_za5m4k2n_zado2ść3_zadośću4_zanie3d2_zde3z4el_zde3z4er_zde3z4y1_zdyskre1_zdyskwa1_ze4t3hap_zmartwy1_znie4m3c_zniec4h2_zniec4z2_znied4z2_znied4ż2_znier4z2_znies4z2_zro3z4u18s8t8r8z_8szc8z8b_8z8d8r8z_be2f3s4z2bi2sz3kopbirmi2n1gblokha2u1broa1dwa1bu2sz3me1buk2s2z1pfi2sz3binfol2k1lorfo1sfazo1karlskro1lu2ks1fermie2r5z1Å‚po1rtsmo1portsmou2pre2s2z1proe1ntge1skorzone1szto1kho1vo2l2k2s3_byna2j1m_n8i9gdy__ni1gdzi1_niechby1_trójac4h_trójami1_podó2w1c", + 10 : "_arcy3b1z2_auto3c4h2_a1utotra1_cienko3w2_czarno3k2_cztero3Å›2_czwó3r4a1_czwó3r4Ä…1_czwó3r4e1_czwó3r4Ä™1_czwó3r4o1_ćwie2r2ć3_daleko3w2_dÅ‚ugo3tr2_dziesi2Ä™1_dziewi2Ä™1_e1me1sze1_elektroa2_elektroi2_elektrou2_hipe3r4o1_kon3tr4a1_kon3tr4e1_kon3tr4y1_krótko3w2_nadre2p1c_na3ja2z1d_nado1bro1_nadoki2e1_na4d5rzÄ…1_na4d5rzÄ™1_na4d5rzy1_na4d5ziem_na4j3e2u1_nad3e2tat_nad5z2mys_nade2r1ż2_nadÅ›rod4z_naj3a2k1t_naj3ro2z3_najdoc4h2_najdoc4z2_najdod4z2_najdod4ź2_najdod4ż2_najdor4z2_najdos4z2_najo2b3c2_najo2b3ć2_najo2b3d2_najo2b3f2_najo2b3g2_najo2b3k2_najo2b3m2_najo2b3n2_najo2b3p2_najo2b3s2_najo2b3Å›2_najo2b3t2_najo2b3ź2_najo2b3ż2_najobc4h2_najobc4z2_najobd4z2_najobd4ź2_najobd4ż2_najobr4z2_najobs4z2_najo2d3c2_najo2d3ć2_najo4d3d2_najo2d3f2_najo2d3g2_najo2d3k2_najo2d3m2_najo2d3n2_najo2d3p2_najo2d3s2_najo2d3Å›2_najo2d3t2_najodc4h2_najodc4z2_najodd4z2_najodd4ź2_najodd4ż2_najods4z2_napo2m1k2_niedoc4h2_niedoc4z2_niedod4z2_niedod4ź2_niedod4ż2_niedo2p1c_niedor4z2_niedos4z2_nieo2b3c2_nieo2b3ć2_nieo2b3d2_nieo2b3f2_nieo2b3g2_nieo2b3k2_nieo2b3m2_nieo2b3p2_nieo2b3s2_nieo2b3Å›2_nieo2b3ź2_nieo2b3ż2_nieobc4h2_nieobc4z2_nieobd4z2_nieobd4ź2_nieobd4ż2_nieobs4z2_nieo2d3c2_nieo2d3ć2_nieo4d3d2_nieo2d3f2_nieo2d3g2_nieo2d3k2_nieo2d3n2_nieo2d3p2_nieo2d3s2_nieo2d3Å›2_nieo2d3t2_nieod3w1r_nieodc4h2_nieodc4z2_nieodd4z2_nieodd4ź2_nieodd4ż2_nieods4z2_niepod3Å‚2_niepodmu1_niepod3r2_niepodra1_niepodrÄ™1_niepod3w2_niepodwa1_niepo3do1_niepo3du1_niepoc4h2_niepoc4z2_niepod3h2_niepod3j2_niepod3l2_niepodsm2_niepor4z2_niepos4z2_nie1prze1_niero2z1t_nieroztr2_ni1esubi1_niewyc4h2_niewyc4z2_niewyd4z2_niewyd4ź2_niewyd4ż2_niewyr4z2_niewys4z2_o2t3c2h2Å‚_o3b4raso1_o3d4robin_o3d6zi2a1_o3d6zi2e1_o4b5Å‚oc4z_o1d3i2zo1_ognio3tr2_ogólno3k2_osie1mse1_peÅ‚no3kr2_pierwo3w2_piÄ™cio3Å›2_pięćse2t3_pÅ‚asko3w2_podre2p1c_po3d4rÄ™tw_po3d4ruzg_po3d4rze1_po3d4woi2_po3e2k2s3_podobi2a1_po1do1bo1_podoki2e1_podopi2e1_po4d5zakr_po4d5zast_po4d5zbi1_po4d5ziem_po1dzi2o1_po4d5ziom_po4st3rom_pod3a2l1p_pode3t1k2_podepc4h2_pode2r1ż2_podesc4h2_pona3c4z2_po1na3do1_pona3d4ź2_ponabr4z2_pona2d3c2_pona2d3ć2_pona2d3f2_pona2d3g2_pona2d3k2_pona2d3p2_pona2d3s2_pona2d3Å›2_pona2d3t2_poro3z4u1_pó3Å‚4ec4z_pra3w2nu1_prze2d3m2_prze3d4um_prze3d4z2_prze3d4ź2_prze4d5zj_przedzwo1_prze4d5ż2_przec2h2r_przeci2w3_przeciwa2_przedago1_prze2d3b2_prze2d3c2_prze2d3ć2_prze4d3d2_prze2d3f2_prze2d3g2_prze2d3k2_prze2d3n2_prze2d3p2_prze2d3s2_prze2d3Å›2_prze2d3t2_przedc4h2_przedc4z2_przedd4z2_przedd4ź2_przedd4ż2_prze2Å‚1k2_prze2m1k2_przepc4h2_pr4zer4z2_prze2r1ż2_przesc4h2_prze2t1k2_przy2m1k2_przypc4h2_pr4zyr4z2_przy2r1ż2_przysc4h2_przy2t1k2_ro3z4e3b2_ro3z4e3c2_ro3z4e3ć2_ro3z4e3d2_ro3z4e3f2_ro3z4e3g2_ro3z4e3h2_ro3z4e3k2_ro3z4e3l2_ro3z4e3Å‚2_ro3z4e3m2_ro3z4e3p2_ro3z4e3r2_ro3z4e3s2_ro3z4e3Å›2_ro3z4e3t2_ro3z4e3w2_ro3z4e3z2_ro3z4e3ź2_ro3z4e3ż2_rozepc4h2_roze2r1ż2_rozesc4h2_samo3c4h2_samoro2z3_siede2m1s_siedmi2o1_skÄ…2d5że1_stereo1o2_su3b4i2e1_supe3r4at_sze1Å›2ci1_szeÅ›ci2o1_sze1śćse1_tran3s4e1_tran3s4y1_trze2c4h3_tysiÄ…3c4z_we4s3pr4z_wie1luse1_wilczo3m2_wniebo3w2_wspó2Å‚1w2_wsze2c4h3_wy4cz3ha1_ze1te1me1_ze1te1se1_zimno3kr2_znie4d4ź3bi2n3o2ku1birmingha1blo2k1hauzbuk2sz3panbusine2s2sdeutsc2h2ldeutschla1du2sz3pasthu2x3le2y1kongre2s3mluftwa4f3fmi1e2r5zi1mon2t3realmurzasic4hpa2n3a2merpoli3u2re1poÅ‚u3d2ni1powsze2d1npre2sz3pa1ro2k3roc4zsy2n3o2p1tsza2sz1Å‚y1szyn2k1wasturboodr4ztygo3d2ni1_bynaj2m1n_bynajmni1_be9z8ami__gdzi1eni1_n8a9da8l__nigdzi2e1_nie2c2h1ż_nie1chże1_nie2c2h1b_ow9sze8m__pó9Å‚8ami__pó9Å‚8e8k__skÄ…1dinÄ…1_podówcza1", + 11 : "_ciepÅ‚o3kr2_de3z4a3bil_de3z4a3wu1_dziewiÄ™2ć3_elektro1o2_kilkuse2t3_kilkuseto2_kon3tr4o3l_kon3tr4o3w_krótko3tr2_mili3a2m1p_na3d4muc4h_na3d4rÄ™c4z_na4d3o2b2Å‚_nadobo2j1c_na4j3e2k2s_na4j3e2ko1_na4j3e2m1f_nad5zwyc4z_nadÅ›rodzi1_najdo2t1k2_najro3z4u1_niedobr4z2_niedo2m1k2_niedopc4h2_niedo2t1k2_niepo2d3m2_nie1podre1_niepo1dwo1_niepo3d4z2_niepo3d4ź2_niepodoc4h_niepo2d3b2_niepo2d3c2_niepo2d3ć2_niepo4d3d2_niepo2d3f2_niepo2d3g2_niepo2d3k2_niepo2d3n2_niepo2d3p2_niepo2d3s2_niepo2d3Å›2_niepo2d3t2_niepodc4h2_niepodc4z2_niepodd4ź2_niepodd4ż2_niepods4z2_nieprze2d2_nieprze3b2_nieprze3c2_nieprze3ć2_nieprze3f2_nieprze3g2_nieprze3h2_nieprze3k2_nieprze3l2_nieprze3Å‚2_nieprze3m2_nieprze3n2_nieprze3p2_nieprze3r2_nieprze3s2_nieprze3Å›2_nieprze3t2_nieprze3w2_nieprze3z2_nieprze3ź2_nieprze3ż2_nieprzekl2_nieprzekr2_nieprzesm2_nieprzetr2_niero3z4u1_nieroze3r2_niero2z1Å›2_niewybr4z2_niewy2t1k2_ob3o2str4z_osiemse2t3_pe1ze1tpe1_po3d4muc4h_po3d4r2wi1_po3d4rÄ™c4z_po3d4roba1_po3d4robó1_po3d4roby1_po3d4roc4z_po3d4wor4z_podobo2j1c_po4d3o2bóz_po1do1cho1_po4d3o2d1m_po4d3o2k1n_po4d3o2ryw_podosi1ni1_po4d3obs4z_po4d3o4d3d_po4d3u2c4z_po4d3u2d4z_po4d3u2pa1_po4d3u2ral_podu2s2z1c_podzie1le1_po4d5z2w2r_poduszczy1_pod3Å›ró2d5_ponad3c4h2_ponad3c4z2_ponad3d4ź2_prapra2w1n_prze3d4Å‚uż_prze3d4ruk_prze3d4ryl_przedÅ‚uży1_przedosta1_prze4d5za1_prze4d5zim_prze4d5z1l_pr4zebr4z2_przeci1wi1_przedsi2Ä™1_przed3s4z2_pr4zegr4z2_pr4zygr4z2_retra2n2s3_ro4z5a2gi1_ro4z5e2mo1_ro4z5e4g3z_ro4z5e4n3t_siedmio3Å›2_ste1re1oe2_su3b4o2t1n_supe2r5z2b_superodr4z_szeÅ›cio3Å›2_sześćse2t3_Å›wiatÅ‚o3w2_tró3j4ec4z_trze2c2h1s_trze1chse1_tysiÄ…3c4a1_tysiÄ…3c4e1_tysiÄ…4c5zÅ‚_we4s3tc4h2_wieluse2t3_współo2b3w_wszec2h2w2_zady2s3po1_zde3z4awu1_zdy2s3kred_zdy2s3kwal_ze4t3e2m1pbe2k1he2n1dbi2z3ne2s3mbusine2ss3mfi2s3ha2r1mfos2f1a2zotga1do3p2ta1gran2d1ilo1karl2s1kronna4Å‚3ko2w1soch3mistr4zro2e3nt2genro2s3to3c2ksko2r5zoner_n8i9gdzie__nie8ch9że__nie8ch9by__przyna2j1m_tró9j8ami__tró9j8e8k__podó4w3c4z", + 12 : "_cztere2c4h3_dziewiÄ™2ć1s_e2s1e2s1ma1_e1le1ktroe2_na3d4repc4z_na3d4re2p1t_na3d4wo2r1n_na4d3o2brot_na4d3o2dr4z_na4d3o2kien_na4d3olbr4z_na4d5rzec4z_niepo3d4Å‚u1_niepo3d4rap_niepo3d4raż_niepo3d4waj_niepo3d4woj_nieprzed3Å‚2_nieprzedÅ‚u1_nieprzedmu1_nieprzed3r2_nieprzedra1_nieprzedru1_nieprzedry1_nieprzed3u2_nieprze3dy1_nie1prze1e2_nieprzec4h2_nieprzec4z2_nieprzed3h2_nieprzed3j2_nieprzed3l2_nieprzed3w2_nieprze2p1c_nieprzes4z2_nie1ro3z4e1_nierozbr4z2_po3d4repc4z_po3d4re2p1t_po3d4ro1bo1_po3d4wó2j1n_po4d3e4k2s3_po4d3o2biad_po4d3o2braz_po4d3o2choc_po4d3o2kien_po4d3o2kres_po4d3o2krÄ™g_podosini2a1_po4d3olbr4z_po4d3u2sta1_półprzy3m2k_predy2s3po1_prze3d4o3br_prze3d4o3st_przedra1ma1_prze3e2k2s3_prze4d5z1g2_prze4d5zwoj_pr4zechr4z2_przeci4w3w2_przed3a2gon_przed3a2k1c_przed3a2l1p_przed3e2g1z_prze1de1me1_przed3e2mer_pr4zedgr4z2_sie1de1mse1_siedemse2t3_supe3r4i2o1_supe4r5a2tr_tran3s4i2e1_tran4s5e2u1_trzechse2t3_wewnÄ…2tr4z3birmin2g1hamcal2d1we4l3lin4nsbru2c1kkarl2s1ruhe1kir2chho4f3flu2ft3waffe1mi2s4z1mas4zpo3d4niepr4zpo4rt3la2n1dpowsze3d2ni1sze2z1lo2n1gtu1rboodrzu1we2e2k1e2n1d_bynajmni2e1_be9z8a8c8h__in8a9cze8j__pó9Å‚8a8c8h__przynaj2m1n_przynajmni1_podó3w2czas", + 13 : "_autotra2n2s3_cztere2c2h1s_dzi1esi1Ä™ci1_dziesiÄ™ci2o1_dzi1ewi1Ä™ci1_dziewiÄ™ci2o1_dzie1więćse1_e2m3e2s5ze2t_kon4tr5a2gi1_kon4tr5a2se1_kon4tr5a2sy1_kon4tr5a2ta1_kon4tr5a2d1m_kon4tr5a2k1c_kon4tr5a2l1t_kon4tr5a2r1g_na4d3o2bowi1_nadÅ›rodzi2e1_nadÅ›rod5ziem_niepodre2p1c_nieprze2d3m2_nieprze3d4um_nieprze3d4z2_nieprze3d4ź2_ni1eprzedzi1_nieprze4d5zj_nieprzedzwo1_nieprze4d5ż2_nieprze2d3c2_nieprze2d3ć2_nieprze4d3d2_nieprze2d3f2_nieprze2d3g2_ni1eprzed3i2_nieprze2d3k2_nieprze2d3n2_nieprze2d3p2_nieprze2d3s2_nieprze2d3Å›2_nieprze2d3t2_nieprzedc4h2_nieprzedc4z2_nieprzedd4z2_nieprzedd4ź2_nieprzedd4ż2_nieprze2Å‚1k2_nieprzepc4h2_niepr4zer4z2_nieprze2r1ż2_nieprzesc4h2_nieprze2t1k2_pe1ze1tpe1e2_peze2t1pee2r_po4d3o2str4z_po4d3u2szc4z_po4d5rÄ™2cz1n_podzi1eleni1_po5d4uszczyn_prapra3w2nu1_prze3d4muc4h_prze3d4o3zo1_prze3d4ramat_pr4ze3d4r4z2_prze4d5Å‚użyc_prze4d5z2w2r_przed3siÄ™3w2_przedy2s3ku1_przetra2n2s3_ro4z5a2ni2e1_su1perodrzu1_zdy2s3ko2n1t_ze4t3e2m1e2s_ze4t3e2s1e2l_zmartwy2c4h3bro2a2d3wa2y1szto2k1ho2l1mturboo2d3rzut_gdzi2e1ni2e1_skÄ…d9i8nÄ…8d__tró9j8a8c8h_", + 14 : "_czte1re1chse1_czterechse2t3_dziesiÄ™cio3Å›2_dziewiÄ™cio3Å›2_dziewięćse2t3_na4d3o2bojc4z_niepo3d4muc4h_niepo3d4rÄ™c4z_niepo1do1cho1_nieprze3d4Å‚uż_nieprze3d4ruk_nieprze3d4ryl_nieprzedÅ‚uży1_nieprze4d5zim_nieprze4d5z1l_nieprzed3s4z2_niepr4zegr4z2_po4d3o2bojc4z_po4d3o2piec4z_po4d3o2siniak_po4d5zielenic_po4d5zielenić_po4d5zielenil_po4d5zieleniÅ‚_po4d5zielenim_po4d5zielenis_prze4d5o4stat_supero2d1rzut_zmartwyc2h2w2mu2r7zasic2h3lpo4rt2s3mo2uth_gd4zieniegd4z_przynajmni2e1", + 15 : "_niepo3d4repc4z_niepo3d4re2p1t_niepo4d3o2choc_niepr4ze3br4z2_nieprzedra1ma1_nieprze3e2k2s3_nieprze4d5z2a1_nieprze4d5z1g2_nieprze4d5zwoj_ni2e1su3b4i2e1_po4d5zielenien_prze1ci3w4i2e1deut4sch3la2n1d_2g1dzienie2g1d", + 16 : "_niepo4d3o2str4z_nieprze3d4muc4h_nieprze3d4ramat_niepr4ze3d4r4z2_nieprze4d5Å‚użyc_nieprze4d5z2w2r_po4d5zieleni2Ä…1_po4d5zieleni2Ä™1_po4d5zieleni2o1_by9naj9m8nie8j__gdzi1eni1egdzi1", + 17 : "_podzi2e1le1ni2e1_gdzienie9g8dzie__po8d9ó8w9cza8s_", + 18 : "_przy9naj9m8nie8j_", + 20 : "_gdzi2e1ni2e1gdzi2e1" } }; diff --git a/resources/viewer/hyphenate/patterns/pt.js b/resources/viewer/hyphenate/patterns/pt.js index d48d8bc561..b25014f461 100644 --- a/resources/viewer/hyphenate/patterns/pt.js +++ b/resources/viewer/hyphenate/patterns/pt.js @@ -1,16 +1,16 @@ -// For questions about the portuguese hyphenation patterns -// ask Lailson Bandeira (lailsonbm dot bloemen at gmail dot com) +// For questions about the portuguese hyphenation patterns +// ask Lailson Bandeira (lailsonbm at gmail dot com) // based on LaTeX patterns in Portuguese, by Pedro J. de Rezende and J.Joao Dias Almeida (http://www.ctan.org/tex-archive/language/hyph-utf8/tex/generic/hyph-utf8/patterns/) -Hyphenator.languages.pt = { - 'leftmin' : 2, - 'rightmin' : 4, - 'shortestPattern' : 1, - 'longestPattern' : 3, - 'specialChars' : 'áéíóúãõàçâêô', - 'patterns' : { - 2 : '1-', - 3 : '1ba1be1bi1bo1bu1bá1bâ1bã1bé1bí1bó1bú1bê1bõ1ca1ce1ci1co1cu1cá1câ1cã1cé1cí1có1cú1cê1cõ1ça1çe1çi1ço1çu1çá1çâ1çã1çé1çí1çó1çú1çê1çõ1da1de1di1do1du1dá1dâ1dã1dé1dí1dó1dú1dê1dõ1fa1fe1fi1fo1fu1fá1fâ1fã1fé1fí1fó1fú1fê1fõ1ga1ge1gi1go1gu1gá1gâ1gã1gé1gí1gó1gú1gê1gõ1ja1je1ji1jo1ju1já1jâ1jã1jé1jí1jó1jú1jê1jõ1ka1ke1ki1ko1ku1ká1kâ1kã1ké1kí1kó1kú1kê1kõ1la1le1li1lo1lu1lá1lâ1lã1lé1lí1ló1lú1lê1lõ1ma1me1mi1mo1mu1má1mâ1mã1mé1mí1mó1mú1mê1mõ1na1ne1ni1no1nu1ná1nâ1nã1né1ní1nó1nú1nê1nõ1pa1pe1pi1po1pu1pá1pâ1pã1pé1pí1pó1pú1pê1põ1ra1re1ri1ro1ru1rá1râ1rã1ré1rí1ró1rú1rê1rõ1sa1se1si1so1su1sá1sâ1sã1sé1sí1só1sú1sê1sõ1ta1te1ti1to1tu1tá1tâ1tã1té1tí1tó1tú1tê1tõ1va1ve1vi1vo1vu1vá1vâ1vã1vé1ví1vó1vú1vê1võ1xa1xe1xi1xo1xu1xá1xâ1xã1xé1xí1xó1xú1xê1xõ1za1ze1zi1zo1zu1zá1zâ1zã1zé1zí1zó1zú1zê1zõa3aa3ea3oc3ce3ae3ee3oi3ai3ei3ii3oi3âi3êi3ôo3ao3eo3or3rs3su3au3eu3ou3u', - 4 : '1b2l1b2r1c2h1c2l1c2r1d2l1d2r1f2l1f2r1g2l1g2r1k2l1k2r1l2h1n2h1p2l1p2r1t2l1t2r1v2l1v2r1w2l1w2r', - 5 : '1gu4a1gu4e1gu4i1gu4o1qu4a1qu4e1qu4i1qu4o' +Hyphenator.languages['pt'] = { + leftmin : 2, + rightmin : 4, + shortestPattern : 1, + longestPattern : 3, + specialChars : "áéíóúãõàçâêô", + patterns : { + 2 : "1-", + 3 : "1ba1be1bi1bo1bu1bá1bâ1bã1bé1bí1bó1bú1bê1bõ1ca1ce1ci1co1cu1cá1câ1cã1cé1cí1có1cú1cê1cõ1ça1çe1çi1ço1çu1çá1çâ1çã1çé1çí1çó1çú1çê1çõ1da1de1di1do1du1dá1dâ1dã1dé1dí1dó1dú1dê1dõ1fa1fe1fi1fo1fu1fá1fâ1fã1fé1fí1fó1fú1fê1fõ1ga1ge1gi1go1gu1gá1gâ1gã1gé1gí1gó1gú1gê1gõ1ja1je1ji1jo1ju1já1jâ1jã1jé1jí1jó1jú1jê1jõ1ka1ke1ki1ko1ku1ká1kâ1kã1ké1kí1kó1kú1kê1kõ1la1le1li1lo1lu1lá1lâ1lã1lé1lí1ló1lú1lê1lõ1ma1me1mi1mo1mu1má1mâ1mã1mé1mí1mó1mú1mê1mõ1na1ne1ni1no1nu1ná1nâ1nã1né1ní1nó1nú1nê1nõ1pa1pe1pi1po1pu1pá1pâ1pã1pé1pí1pó1pú1pê1põ1ra1re1ri1ro1ru1rá1râ1rã1ré1rí1ró1rú1rê1rõ1sa1se1si1so1su1sá1sâ1sã1sé1sí1só1sú1sê1sõ1ta1te1ti1to1tu1tá1tâ1tã1té1tí1tó1tú1tê1tõ1va1ve1vi1vo1vu1vá1vâ1vã1vé1ví1vó1vú1vê1võ1xa1xe1xi1xo1xu1xá1xâ1xã1xé1xí1xó1xú1xê1xõ1za1ze1zi1zo1zu1zá1zâ1zã1zé1zí1zó1zú1zê1zõa3aa3ea3oc3ce3ae3ee3oi3ai3ei3ii3oi3âi3êi3ôo3ao3eo3or3rs3su3au3eu3ou3u", + 4 : "1b2l1b2r1c2h1c2l1c2r1d2l1d2r1f2l1f2r1g2l1g2r1k2l1k2r1l2h1n2h1p2l1p2r1t2l1t2r1v2l1v2r1w2l1w2r", + 5 : "1gu4a1gu4e1gu4i1gu4o1qu4a1qu4e1qu4i1qu4o" } }; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/ru.js b/resources/viewer/hyphenate/patterns/ru.js index 23451dea67..e24addfee0 100644 --- a/resources/viewer/hyphenate/patterns/ru.js +++ b/resources/viewer/hyphenate/patterns/ru.js @@ -2,21 +2,21 @@ // crymos at yandex dot ru // ВопроÑÑ‹ по руÑÑкоÑзычным таблицам переноÑа отправлÑть на Ð°Ð´Ñ€ÐµÑ // crymos точка yandex Ñобака ru -Hyphenator.languages.ru = { +Hyphenator.languages['ru'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 7, - specialChars : unescape('абвгдеёжзийклмнопрÑтуфхцчшщъыьÑÑŽÑÐБВГДЕÐЖЗИЙКЛМÐОПРСТУФХЦЧШЩЪЫЬЭЮЯਂ%u200D'), + specialChars : unescape("абвгдеёжзийклмнопрÑтуфхцчшщъыьÑÑŽÑÐБВГДЕÐЖЗИЙКЛМÐОПРСТУФХЦЧШЩЪЫЬЭЮЯਂ%u200D"), patterns : { - 2 : '1г1ж1м1п1Ñ„1ц1ш1щъ1Ñ‹1ÑŒ11Ñ1ÑŽ', - 3 : 'а1ба1да1еа1иа1ка1уа1ча1Ñ1баб1вбг21бе2бжб1л1боб1Ñ‚2бф2бц2бш2бщ1бы1бь1бÑ1вав1дв1л2вмвф22вц2вш2вщвъ21вы1вÑг2а2ггг2и2гп2гф1дадв21де1дид1л1до2дп1ду2дфд1Ñ…2дщ2дъ1ды1дÑе1а2ебе1ее1и2еоеÑ2е1Ñжг2ж2м2жф2жц2жъ2зг1зе1зиз1лз1н2зт1зу2зцз1ч2зш1зы1зÑи1аи1еи1ии1ки1л2ипи1ри1ти1чи1Ñ2й1йд2йÑ12кг1ке2кмк2о2кп2кÑк2у2кф2кц2кш1кьк2ÑŽ2лб1ли2лм1ло2лпл1Ñ‚2лцл1чл2ÑŽ1лÑ2мж2мм2мп2мф2мц2мщ2мÑм2ÑŽ1на2нг1не1нин1л1но1нун1Ñ…2нц2нш2нщ1нын2Ñ1нÑо1вог2о1ео3и2ойо1ко1Ñ‚2оюо1Ñпе1пх22пц2пш2пщ2рг2рз2рм2рп2рф2рх2рц2рш2рщ2рър2ÑŽ1ÑаÑг2Ñ1зÑ2мÑ1н1ÑоÑп21ÑÑ€1ÑуÑч2Ñш21ÑÑ‹1ÑÑ2тг2тжтм22тф4тц2тщ2тъ2ть2Ñ‚ÑÑ‚2юу1ау1еу1иу1оу1у2уÑу1Ñ2фгф4и2фм2фф1ха2хг1хе1хи1хохп22хшца12цгци12цм3цу2цц3цыцю11чач1в1чеч2ж1чи1чм3чо1чуч2хш2в2шм2шфш1Ñ…2шц2шь2щмъю2ÑŠÑ2ые2ыи2ыу2ьб2ÑŒ2еь2оь2ÑŽÑŒ2ÑÑ1в2ÑгÑ2мÑ2нÑ2пÑÑ1Ñ2Ñ„ÑÑ…2Ñ2цÑÑ2ÑŽ1аю1бю1вю1ею1ию1к2юмю1Ñ…ÑŽ1чю1ÑÑ1еÑ1иÑ1кÑ1лÑ1уа1Ñ‘1бё1дёе1Ñ‘2ёб1зёи1Ñ‘1кё1нёо1ёпё1у1Ñ‘1чёь2ёю1Ñ‘', - 4 : '_аи2_ау2_ии2_ио2_иÑ3_ль2_оз4_Ñк2_ÑÑ‚2_уб2_уд2_уе2_ук2_уо3_уп2_уÑ2_ую2_ÑŽÑ14а3ааа2паа2раа2ца3буав1ва1веа1виа1воа2вта1вуа2вх2агаа2гд2агоа3гу2адва2длад2цае2ла2епае2Ñазв2азг2аз1ра2ихак1в1аккак2лак1Ñа1лаа1леа3лиа1луа1лыа1лю2амаамб42амоа2мчан1ра1нь2а1оао2дао2као2рао2Ñ2апоа1раа1реа1риа1роа1руар1ха1рыа1рюа1Ñ€Ñа1таа1тиа1тоа1туат2ха1тыа1тюа1Ñ‚Ñа2убау2дау2хау2чауÑ1ах2аах3Ñ2ачаа2члач1та2шла2ÑраÑ2баÑ2ваÑ2зба1зба2о2б1ббвы22б1д3бев3бее3бец2бещб1з21б2и3биаби2б2биж3бик3биоби1Ñ…2б3к2блы2блÑ2б3н3бот2бр_2брÑб1ру2брьб1Ñ€Ñб3ÑкбÑ4л1б2убу1Ñ2б1Ñ…2б1чбы2Ñ2бь_2бьÑ2бьтбÑ1Ñ€3б2ÑŽ3вагва1звах13вац3ваÑ2в1бв1вив1вр2вг21вев3вег1вее1вез1веÑ1вец1вею1веÑвзг2взд2взъ21визви1овиу3ви2Ñ„2в1квк2лв2ла2вли2влю2влÑ1вме2в1нвно1в3нывов21вод1воквоп21вох1вою2вп22вр_1врюв1Ñ€Ñв1Ñ‚21вуаву3г2вуиву3п1вхо2в1чвып2вых22вь_1вье2вьÑ2вьт1вью1вьÑ1в2юга1зга2у2г3бгба2г1ви3ге_2г3ж2г1з2г1кг1ле2г3мг3нÑго1з3гойг2ол3гою2гр_2грюг4Ñаг4Ñб2г3тгу1вгу1Ñ2г1ч2г3ш2г3Ñда1зда2о2д1бд1ве1двид3вкд1вл2двÑ2дг23дез2дж_2джÑдип2диу3ди1Ñ…2д1к2д1нд3надо1здоп2до1Ñ2др_д1ред1рид1рыд1Ñ€ÑдÑк22д1тду3гду2оду1Ñ…2дцу2дцы2д1ч2дыг2дыд2дыт2дыщ2дь_1дье2дьк2дьт1дью1дьÑ1д2юеа2деа2зе1вее1вие1вое2вте1вуе1вхе1вьег2дед2жее2хе2жг2ежее3зее3зÑеи2деи2меи2ое1каек2зе1кие1куе1лае1лее1луе1лые1люе3лÑе2мче3наенÑ2е1нÑе1оде2оие2омеоп2еоÑ22епее2пле4пн2епое4пте1рае2рве1рее1рие1рое1руе1рые1рюе1Ñ€Ñе1Ñге1Ñк2еÑле3Ñо2еÑпе1Ñте1тае1тие1тоет1ре1туе1тые1тюе1Ñ‚Ñе1у22еубеуз2еф2л2ецве1чле2шлею2геÑ2зжа1з2ж1в2жгаж2гиж2гу2ж1дж2диждо3жду14ждь3жев2жжаж2жежи1о2ж1к2ж1лж3ма2ж1нжно1жоу32жп2жпо1ж2ру2ж1Ñ2ж1ч2жь_2жьÑ2жьт1за1заа2заб2заг4зап2заÑ2зат2зау2зах2заÑ2з1б2з1вез1виз1воз1вр1звуз1вьз3га2зж2з3з23зи_3зиÑ3зич2з1кзко12зм2з3мн2зне2зно2зну1зов1зое1зои1зон1зоозоÑ21зохзош21зоÑ1зоюз1раз1роз1руз2рюз1Ñ€Ñ2з1Ñз1ти3зу_зу1в3зуе2зупзы2з2зыщ1зье1зьи1зью3зьÑ1з2юи2аби2авиаг2иао2и2апи2аф2и1би1вии1ву2ивыиг2ди3ге2игли2гни1двид1ри1дьие2гие2дие2ри1зоиз1рийÑ2и3кои3куилп2и2ль2имаи3мии2мчинд21инжинÑ21инф1инъи1оби2оги1оди1ози1они1ори1ошип3ни2рви2рж1ирри2Ñби2ÑдиÑ1ки4ÑÑи1Ñти2тми1у2иу3пиф1ли2фри1хуи2штию4лию2нию2тиÑ2дйно1йп2лй2Ñбй2Ñнй2Ñшй2тмй2хм1кавк2ад1кае1кай1кам1кан1кат1ках1каю2к1бк1вик1ву2к1дкда22кеа2к1з1кивки1о1киткк3Ñк3лы2кль1клю2к1н1ков1код1коз1коÑ1кош2кр_кÑ3гкÑ3мк3Ñок3Ñу2к1ткт2Ñ€3куе1куй3кум1кур1кут2к1ч1ла_1лаел2аклау11лаÑл1брл1вел1вил1вол1вул2гллго11ле_1лен1лехл1зо2л1клк2в2л1лл2льллю12л1нлÑ3б1лу_лу1влу3г1луе1лунлу1Ñ1лую1лы_1лые1лыж1лый1лым4ль_2льд3лье3льи2льк2льм2льн3льо2льт2льц2льч3лью3льÑ1лю_1люж3лÑ_2лÑд3лÑм3лÑÑ…3магма2умаф23мач4м1бм3бимб2л2мг22м1д3мкн2м1л2м1н3мод3мон3моп3мофмп2л2мрим1ры2м1ÑмÑ2кмÑ2н2м1тмфи32м1Ñ…2мш2мым1мы2Ñ2мь_2мьÑмью1мÑ1рмÑ1Ñ€2нач2нащ3наÑ2н1внг4лнг2Ñ€2н1днд2жн2длн2дцнег23недне3енеи23неунеÑ23нийниу3ни1Ñ…3ниц3нищ2н1кнк2внк2лнк1Ñ2н1нноб2ноÑ2н3п2н1ро2н1Ñн2Ñгн2Ñлн2Ñн2н1тн2тмну1Ñ…3ную2нф2нхо12н1чн2члнш2Ñ‚3ны_2нь_1нье1ньи2ньк1ньо2ньÑ2ньт2ньч1нью1ньÑ1н2юо3авоап12оба1обмоб1Ñ€1объ2обьов2то2вхо1дьое1бое2дое1оое2цо1зооие3ои2зои2мои2оойÑ2ок2в1окто3лао1лео3лоо1луо1лыо1люо3лÑо3ма2омеом2чо2мьо3наонд2о1нронÑ2о1о2о2оло2офо1рао1рео1рио1ро2орцо1рыо1рюо1Ñ€ÑоÑ2бо1ÑÑ‚2оÑхотв21отг1отдо3тио2тм1отхо1у2оуп2о3фе2охио1хро1хуо2цооч2ло1чтош2тоÑ2воÑ2доÑ2зпа3Ñ„2п1дпе2з4п3к2пл_2п1нп3нап3ны3пой2пп22пр_при12прÑп2руп3Ñо2п1тп3ту3пуб2пф24п3ч2пь_2пьтп2ÑŽ11ра_раа21раю1раÑ2Ñ€1бр1вир1вор1вьр2гвр2гнрг2Ñ€2Ñ€1дрд2жр2длр2дц1ре_Ñ€1зори3ариб2Ñ€2ин1риу1риц1риш2Ñ€1кр2кврк1ÑÑ€2льрлю1Ñ€3лÑÑ€2мч2Ñ€1н1ро_1роу2Ñ€1Ñ€4Ñ€1ÑÑ€Ñ2кр2ÑнрÑ2п2Ñ€1тр2тм1ру_1рулрф2лр2хврх1лрх1рр2цв2Ñ€1чр2члр2чмрш2Ñ‚1ры_1рыб2рыз1рым2рь_1рье1рьи2рьк2рьÑ2рьт1рью1рьÑÑ€Ñ1л1рю_1рюÑ1Ñ€ÑÑŽ1Ñб2Ñ2бы2Ñбю1Ñ2вÑ2гиÑ2гнÑ2го1Ñд2Ñ2даÑ2деÑ3диÑ2до1Ñ2е1Ñ2ж1Ñ2и3ÑизÑи1Ñ…4Ñк_Ñк2л2ÑкнÑк2Ñ€Ñк1Ñ2Ñль2ÑноÑ2овÑо1дÑ3пн2Ñпь2ÑÑ€_2Ñ1ÑÑ2ÑбÑÑ2лÑ2ÑнÑÑ2пÑÑÑ‚2ÑÑ2ч2ÑÑ‚_2ÑтбÑ2те1Ñти2Ñтк2Ñтм2Ñтн2Ñтп2ÑÑ‚Ñ2Ñтф2Ñтц1ÑтыÑ4тьÑу2бÑу1вÑу2зÑу1Ñ…Ñ1Ñ…22Ñца2Ñцо1ÑчаÑ1чл2ÑчоÑ3шн1ÑÑŠ2ÑÑ‹2зÑÑ‹2Ñ2ÑÑŒ_1Ñье2Ñьк2Ñьт1Ñью1ÑÑŒÑÑÑ1Ñ€Ñ2ÑÑ1Ñ2ÑŽÑÑŽ1Ñ2ÑÑз1тагт2ан1таÑ1тащ2тв_2тви2тву2твы2твÑ2Ñ‚1д1Ñ‚2ете1д2Ñ‚1зтии2тик23ткн2Ñ‚1лт2льт3мщ2Ñ‚1нто1д1тощ2тп22трб2трв2трг2трд2трм2трн2трп2трр2трф2трщ2трът1рыт2Ñб2Ñ‚1тт2тм1тущ2Ñ‚1Ñ…2Ñ‚1ч2тш24ть_3тье3тьить2м4тьттью1тю1Ñ‚1Ñ‚Ñг1Ñ‚Ñж1Ñ‚Ñпу2аÑуб1ру1виув2лу1воу1вуу2гву2глу2гнуд2ву3дууе2дуе2луе1Ñуе2ху2жжу1зоу1каук1ву1киу1коу1лау1леу1луу1люу2мчу3нау1ньуо2буо2вуо2куо2пуо2Ñуо2фу2плу1рау1реу1риу1роу3руу1рыу1рюу1Ñ€Ñу1ÑгуÑ2лу1Ñму2ÑнуÑ2пуÑ3Ñу1ÑÑ„2уÑцу2Ñчу2Ñьу1тау1тиу1тоу1туу1ты1утюу1Ñ‚Ñууг2уу2Ñу3фиуф1лу2фру2хвух1лух1Ñ€1учру1чьу3шеу3шиу2шлу2шпуÑ2зфа2Ñ…3фашфаÑ12Ñ„1б2Ñ„1в2Ñ„1дфи2жфи1о3фит2Ñ„1кф2лаф2лиф2ло2Ñ„1н3фон3фотф1риф1роф1ру2Ñ„3Ñ2Ñ„1тф2тм2фуф2Ñ„1ч2фш22фь_Ñ„2ÑŽ1ха2дхао32Ñ…1б1Ñ…2вх3вых3д2хео3Ñ…1з2хие2Ñ…1к2Ñ…1лу2Ñ…1нхоп2хоф2хоÑ2Ñ…1рых1Ñ€Ñ2Ñ…1Ñ‚1ху_2хуе2хуй1хун1хуÑ1хуш2хуюх1Ñ…2хью13ца_3цам3цах2ц1бц2ве2цвы2ц1дце1зце1кце1Ñ‚2ц1зцип2циу32ц1л2ц1н2цп22ц1Ñ€2ц1Ñ2ц1тцы2п2ч1б2ч1дче1очжо23чик3чиц2ч1кч2ле2чли2чма2чмеч2мо2ч1н2ч1Ñч2те2чтм3чук2ч1ч2чь_1чье1чьи2чьÑ2чьт1чью1чьÑ2ш1бше1кш1лыш2лю2ш1н4шниш2п2ш3пр2ш1Ñ€2ш1Ñш1ти2штÑ2ш1ч4шь_3шье3шьи3шью3шьÑш2ÑŽ1щеи2ще1Ñще1хщеш22щ1н2щ1Ñ€2щь_ъе2гъе2дъе2лъе2ÑÑŠÑ3ны2блы3гаы3гиыг2лы2гны2длыз2ды2злы2зныиг1ык2лык1ÑÑ‹2льы2мчы3поыр2вы3Ñаы3Ñеы2Ñны3ÑоыÑ2пы2ÑÑ…Ñ‹Ñ2чы2Ñшыт2ры3шьь2вÑÑŒ2дцье1кь2знь2и1ÑŒ2кльмо1ÑŒÑ2кь2Ñнь2тмьхо2ÑŒ2щаь2щеь2щуьÑ1вÑв1Ñ€Ñд1Ñ€Ñк1лÑкÑ1Ñ3маÑ3ньÑо2зÑ1реÑ1риÑ1руÑ1рыÑÑк2ÑÑ3мÑ2ÑоÑ2теÑхо3ÑŽ2бвю2блю1дьюз2гю1зою1лаю1лею2лию1люю2мчю2нью1о1ÑŽ1раю1рею1рию1рою1рую1рыю1тию1тою1тую1тыю2щьÑ2брÑ1воÑ1вуÑ2гнÑд1вÑд1Ñ€Ñ1зоÑк1ÑÑ2льÑ2мьÑ3наÑнÑ2Ñ1раÑ1риÑ1роÑ1рьÑÑ1кÑÑ1лÑÑ2Ñ‚Ñ1таÑÑ‚3вÑ3тиÑ1тоÑ1туÑ1тыÑ1Ñ‚ÑÑÑ…1лÑ1хуÑце1Ñ2шл2ÑÑŽ_2Ñ1Ñ6зь_й2кь6тр_а1вёа1лёа1рё1веё1вёз1вёÑ1вмё1вьёг1лёд1вёд1рё1дьёе1вё2ежёе3зёе1лё2епёе1рёё1веё1воё1ву2ёжеё3зеё1каё1киё1куё1лаё1леё1луё1лыё2мчё3наёнÑ22ёпеё2плё4пн2ёпоё4птё1раё1реё1риё1роё1руё1рыё1Ñк2Ñ‘Ñлё3Ñоё1Ñтё1таё1тиё1тоёт1рё1туё1тыё1тюё1Ñ‚Ñ3жёвж2жёз1вё2знё3зуё1каё3куё1лён1лёх1луё3льёне3Ñ‘1ньёо1лё2омёо1рёо3фё1рьёÑ2дё1Ñ2Ñ‘Ñ2тё1Ñьё1Ñ‚2Ñ‘3тьё_уё2у1лёу1рёу3шёц2вёч2тё1чьё3шьёы3Ñёь2щё_не88не_8бъ_8въ_8гъ_8дъ_8жъ_8зъ_8къ_8лъ_8мъ_8нъ_8пъ_8ръ_8ÑÑŠ_8тъ_8фъ_8Ñ…ÑŠ_8цъ_8чъ_8шъ_8щъ_', - 5 : '_аб1Ñ€_ади2_ак1Ñ€_би2о_го2Ñ„_дек2_ди1о_до3п_епи3_за3п_иг1Ñ€_изг2_из3н_ик1Ñ€_ле2о_на1в_на3Ñ‚_не3Ñ‚_ово1_ог3н_оÑ2п_от1в_ри2ч_ро2Ñ…_Ñу2ж_тиа3_ти2г_ти2о_ум2ч_ур2в_ут2ра3блааб2люаб1риав3зоави2ааво1Ñа2вотав1раав2Ñеа2глеаг2лиа2двеад2жиад1роаду3ча2дынае2гоае2диае2реаз1влаз1драз1обаи2г1аи3глако3Ñ‚2акриа3лаг2алекало1залу2ша2льщ2аметамои2а2нафан2ÑпанÑ1уаоÑÑ‚1а3плаап2ра1аргуар2жа2аÑ1каÑ3миаÑ3ноа1Ñьи1атакат3ваат1виат1ву2атезато2шат1риа1тьеа3тьюа3тьÑау3доа2улеаут1рау3чьа2Ñ„1лахми2аÑ2лиаю1таба2бвба2дрба3зубалю1баÑ3мба1Ñтба1трбе2глбе2гн3бе2збе3зибез3нбез1рбеÑ3пби2обби2одби2онби2орби2тв1благб2ланб3ленб2луд2б2льб2людб2люеб2люлбо3вшбо2гдбо1з2бо2мчбо3мшбону1бо1рубо2Ñабо1Ñкбо2твбот2рбоÑ2рб3рабб2равб2ран1браÑб1рахб1рейб1рекб2ремб2рехб2ридб1рол1б2рю2б1Ñ2бук1лбы2г1быÑ1кбыÑÑ‚1бю1тава2брвадь2ванÑ2ва1Ñтва1трв2дохвед1рве3ду3везе3везлвез2у1вей_ве2п12вердвет3Ñ€1в2з2взо1бви2азви2акви2арвиа1тви3афви2гвви2гл1винт1винчв2левв2лекв2летв2лечв2лиÑв2люб4в3нав2неÑв3ну_во1б2во3вкво1двво1дрво2ерво2жжво3м2во1ру2ворц2ворьвоÑ1кво1Ñмво1Ñнвот2рво1хл2вра_в2равв1раÑ2врац2вре_1вридв1риив1рикв1рилв1риÑв1рит2в1ро2в1ры2в1Ñ23вÑе33в2Ñп3в2Ñювто3ш1ву1з2ву1кву1Ñ2вух3вву1члвы3г2вы3знвы3Ñ‚21вьин1в2Ñ1г3дан2г3диге2б1гено1ге2обге2одге1орги2блги3брги2грги1ÑлгиÑÑ‚22гла_г2лавг1лай2глаÑг2лет2гли_г2лин2гло_2глов2глог2глое2глой2глою2глую2г1лыг2лÑж2глÑкг2навг2нанг3не_г2невг3ненг3непг3неÑг2нирг2ноег2ноиг2ноÑго1б2го2влго2злгоз2нгоиг2гоми2го2Ñдго1Ñн2готдгоу3тго1члг1раег1райг1рарг1регг1рекг1рецг1рикг1рилг1ринг1риÑг1ричг1ровг2розг1рокг1ронг1ропг1ротг1рофгру2пг1рывг1Ñ€Ñег1Ñ€Ñлг1Ñ€ÑÑ‚2г3Ñ2да2б1да2грдат1Ñ€2двиз2дводд1воз2д1д23деврде2зиде2зудеио2де1кл3демеде2оддео3пде3плдеÑ2кде2Ñрде1хлд2жамд2ж3м2д1з2ди2аддиа2зди2арди2аÑди2обди2ордио1Ñди2пиди3птди3фрд2лев2д3м2днеа2дноÑ24д3ныдо2блдов2лдо1д2до3дндоз2ндои2Ñ€2доктдо3плдоÑ2п2дотд2дотл2дотъдо3ть3дохлдо2щуд1рабд1рард1рахд1рачд2раюд2реб2дрезд2релд2ремд2рий2дринд2рипд2рихд1родд1роед1ройд1ролд1ронд1роÑд1ротд1роюд1руб1друг1дружд1румд1рую2дрывд2Ñ€Ñбд2Ñ€ÑÑ…2д1Ñ2дÑ3кндуб3Ñ€2д1удду2дадуп1лдуÑ1кд1уÑлду1Ñтду2чидуÑ1Ñ‚2д3це2д3ш2дъе2м2дымедь3Ñреади3еа3доеат1реба2Ñе1браеб1рие1броеб1ры2евер2еволев1риев2хое2глее2глие2глоег2наег2но2ег2ред1вое1джее2дохе1друе2дуге2дуÑе2дынее2гиее1Ñ2ее2Ñтеж3дие2ж1резау3езд1реззу3е3зитез1обе1зомез1опез1отез1ошез2Ñ€Ñез1упез1уÑеи2г1еиÑ1лека2б2е1ко2е1крек2роек1Ñкеми3кемо1Ñ2емуж2емыÑ2е1нрен3ш2е1о2бео3даео2деео2дое1о2жео3кле1ол_е1олаео3лие1олке1олые1олье1он_е2онае2ониео3ное1онÑе1опеео2прео4пуео1Ñке1оÑме1оÑнео3Ñхе1отле1о2че1о2щепат2е3плаеп1луе3плые4п3Ñер1вее3ре_ере3перо2б2еролер3Ñке3Ñ2аеÑ2бае2Ñкее1Ñлуе1Ñлые1Ñ4ме2Ñпуе2Ñтле3Ñтует1веет1вие1тво2етечето1Ñет2Ñ€Ñе1тьее3тьюе3тьÑеуб3реф1рееха2тех1обех1реех1ружа2блжа2бржат1в2ж1б23ж2глж2дакж2дачж2деп4ж2дл3ж2дÑже3д2же1клже1о2же3п2же1Ñ2же3Ñк2жжев2ж1з22жирр2ж3мо2ж1обжоу1Ñз1авуз1адрзае2дзае2хза3з2з1акт3з2анза3назанÑ2зар2взар2жзаÑÑ‚2за3ткзач2тза3ш2з2вавз2ван2зваÑз2везз3в2кз1вла2зволз2глизг2наз2гнуз1д2вз2дешздож3зе2б1зе2евзе2од3зий_з1интзи2оззи1опзиу3мз2лащз2лобз2лопз2лорз2лющ2зна_з2навз2наез2найз2накз2нанз2натз2наю2знаÑ2з3ни2з3ныз2обезо2бизо2глзо1дрзо1з21зой_1зок_з1окÑ1зол2зо1лгзо1лжзо3м21зом_2зомн2зонрзо2оÑзо2паз2оплз2опрз1оргз1оÑнзо1Ñпзо2твз2отез1откз2отозо2шиз2ракзра2Ñз2рачз2ренз1реÑз2риш2зуве2зу2г2зу1к3зумезу2прз1урбзъе2м2зыме2зымчи2агри2адеи2адииа2муи3анаианд2и3атуи2а1хиа2цеи2б1Ñ€2иваж2и1веи2в3з2и1вои1в2ри3в2Ñив2хои2глеи2глиигни3иг1роиг1руиг1рыи2дейи1д2жие3деие2зуи3ениие1о2иепи1и3ж2диз1в21из1дизо2ои3к2аик2ваи2квии2клÑик1роик1Ñкильт2имои2им3пли2м1рим2чаино1Ñ1инÑп1инÑуио2боио2врио2деио3зои1окÑи1олеи1опти3ораио1руио2Ñаи1отаи1отки1отÑиоуг2ио2хоипат2ип2лÑириу3иÑ3кеиÑ3кииÑ1лыиÑ3меиÑ3муиÑ3нои2Ñтли1Ñьиита2вит3ваит1виит1вуи2Ñ‚1ри3тьюи3тьÑиф2люиха3ди3Ñ…2оихо3ких1реих1рииш2лии2шлыию3тай2д3вй2о1Ñйо2трй3ÑкайÑ2кейÑ4мой2Ñ3фйх2Ñ3ка2блказ3нка1зо1кал_1кало1калÑ3к2аÑка1Ñтк2вакк2ваÑк2вашк2возке2глкед1ркиоÑ1ки2пл2к1к22клемк3ленк1леок2ликк2линк3лиÑк2лозк3ломкло3Ñ‚1клук2клÑ_2клÑм2клÑхк2ноп3ковако1др3конÑкоп2рко1руко1ÑккоÑ3мко1Ñп1котнко2фрк1релкре1ок1реч1крибк1ридк2ризк2ритк1рихк1роак1робк2роек1рокк1роок1рорк1роÑк1рофк1рохк1роÑкру1Ñк1Ñ€Ñдк2Ñ3вк2Ñ3дк2Ñибк1ÑкикÑ1клк1ÑкокÑ3тек1ÑтокÑ1трк1Ñтукта2ккто1Ñку1ве1кулÑкуп1лку3рокуÑ1кку1Ñтку3ть1куче1куют3кующ2к1Ñ…22лабела2бл2лагола2грла1золак2Ñ€1лам_ла2уÑла2фр1ла1Ñ…2л3д2ле1влле1джле3доле1зрлек1л2лемнле2Ñбле2Ñкле1твле1хрлиа2м3ливо3ливылиг2ллие3рли2кв2лимплио1Ñли2пллиÑ3мли2твлиу3мли1хлли1хрл2к1ллни2ело2блло2влло1др2лоенло1звло2клло2рвло1рулоÑ1к2лотдлот2рло2шл2л1Ñ2лу1брлу1знлу1крлуо2длу3ть2л3Ñ„22л1Ñ…2л2Ñ…3в1лых_2льÑк1льща1льще1льщу1люÑьлю1талÑ1ви3лÑво3лÑвылÑ1релÑ1рума2взма2гнма2дрма2дьма1зомаÑ3лма2чтм3блÑ2м3в23м2глмеан2ме2егме2елме1зомеч1Ñ‚2м1з2ми1зв2миздми1знми2крми2озми2ор2м1к2м2леем2лел4м3намне1д4мноем2нож4мной4мномм2нор4мноюм2нут4м3нымо1б2мо3влмо1дрмо2жжмо1звмо1зрмо3м2мо1румо1Ñммо1Ñн3мотим1раб2м1рому1Ñтмут1рму3тьм2чавм2чалм2читм2чиш3м2щемы2мрмÑ1Ñтнаб2рнаг2нна3ждна1з2на2илна2ин4наккнап2лна1Ñ2на1твна1Ñ…2наÑ1Ñ€2н1б2н2г1внги2онго1Ñн2дакн2д1внде3знде2Ñн3д2знд2рен2дрÑнд2Ñпне1б22невннед2оне3дунее2дне1звне1знне1зоне1зрне1клне2олне3п2неÑ2кнеÑÑ‚2не2фрне1хрне3шк2н1з2нзо1Ñни3б2ни2енни2клнила2ни1ÑлниÑ3пнкоб2но1брно2влно1двно1дрно2ерно1звно2здно1зрно3кн3номеном3шно2рвно1руно2Ñч2нотдно3Ñ„22н1ре2н1рин2Ñ3внÑ2кен3Ñлан2Ñ3мнÑÑ‚2рнÑу2рн2Ñ3фн2ÑÑŠ3н2Ñ‚1внт2рант2рент2рунт2рынут1рнÑ1ви2о1а22обиоо1блюобо2Ñ2обото3влаов3ноов2Ñе2о3гео3грÑ2одано3де_о2дыно2дьбое2жиое1Ñ2ое2Ñто2етоо3жди2озавоз2вио1здрозе1ооз3но2озоно2зопоз1уго2зымо3зыÑои2г1оиг2нои3мо2ок2ло3клюоко1бок1Ñк2окти2окумом2блом1риом2шео3мьÑоно1боо3пÑооÑ3мо2отио3пако3паро2плиоп2лоо2плÑоп2риоп2тоо1Ñ€2вор2тро1руео1руко1руÑо3Ñадо2ÑкеоÑ1кио1Ñ2лоÑ3миоÑ2пÑоÑ2ÑвоÑ2тао2Ñучо1Ñ2чот3ваот1веот1виот1вло3терот1риот3Ñмоту2ао3тьюо3тьÑоуÑ2коу3таоу3то2офаш2офит2офон2офото2фриох1лыо2хлÑох2ме2охороча1Ñоч1лео3члиош3ваош2лаоÑ1тиоÑ2рипави3пав3лпа2вьпа2дрпа2енпа1зопаÑ1лпа2унпа1хупа2шт2п1в2пе2двпе3запе3зопе2льпе4плпе2Ñнпе2Ñцпе2Ñчпе2трпе2шт3пинк3пиÑÑ4пла_пла1Ñ2пленп1лею2плив2пло_2плов2плог2плый2плымп1лынп1лых2плю_п1лютп2лÑÑп2лÑшп3но1по1б2по3влпое2лпое2хпо1знпои2щ3полкп1оргпор2жпо1рупо1Ñ43поÑлпо3ÑÑпот2впот2рпо1Ñ…2поÑ3мппо1д3превпре1зпрей2пре1л3претпри3вприг2при3кпри3лприп2п2риц3проипро3п2п1Ñ2п3Ñинп2Ñ‚3впуг3нпу1Ñтпу3тьпÑ1рара2бл1рабора2гвра2глрад2жра2дцрак2в1ралг1рамк1рамн1раÑлраÑ3праÑ1трат1в2рахи1ращи2раÑтрб2лар2блерб2лорб2люрбо3ÑÑ€3вакр3варр3вежр2вео1рветр3винр2витр2г1лрда1ÑÑ€2д1врди2ардоÑ2ре1вррег2нрее2врее2дрее2л1резкре1зррез2у1рейш1рекш3ремо1ренк1реньре1онре1опре1ох1репьре3Ñ€2ре1Ñлре1Ñчре1твре1чтре3шлр3жа_Ñ€3жамр3жанр3ж2др1з2ври3бр2риги2риджрие2лрие3рриз2врик2Ñ€1ринÑрио2зрио2Ñри1отри3Ñ€2ри1Ñ2ри3Ñб2риÑпри2флри3фрри1хлр2к1л2Ñ€1л2рнаÑ4рне3оро2влро1двро1длро1др1родьрое2лрое2мрое2хро1зр1рокрро3пÑро1руро1Ñк1роÑлро1ÑмроÑ2Ñ„1роÑш1роÑÑŽ1роткроуг2ро2фрро1хлрош2лро3шн1роÑзрп2лор2плюрÑтв2Ñ€2Ñ‚1врт3варт2влрт1рарт1рерт1риртуÑ1Ñ€3тьюрт1Ñч1рубаруг3н2рукÑруÑ1круÑ3лру3ть1руха1рухо1ручнр3ш2мры2двры2клры2Ñ…1Ñ€Ñ1виÑа2блÑа2дьÑа2квÑа2клÑ1аппÑа1трÑа2унÑа1Ñ…22Ñ3буÑег2нÑе1з2Ñе1квÑек1лÑекÑ4Ñеми1Ñе2ÑкÑе2ÑÑ‚Ñи1омÑи1опÑи2пл2Ñкам2ÑкахÑк2ваÑ2квиÑ2клÑÑ1кон2ÑкошÑ1кра2Ñкуе1Ñлав1ÑладÑ1ламÑ3левÑ3лееÑ1лейÑлео2Ñ1летÑ3лею2ÑлицÑ2ложÑ1люÑ2Ñ3лÑ1ÑмеÑÑ4меÑÑ3мурÑ2наÑ2ÑнаÑ2Ñную2Ñ3ныÑов2Ñ€Ñо1з2Ñо3м2Ñо1руÑо1ÑкÑо2ÑÑŒÑот2Ñ€Ñо1члÑош2лÑ2павÑ2пееÑ2пелÑ2пенÑ2пехÑ2пешÑ2пеюÑ2пим2ÑполÑ2поÑÑ2рабÑра2ÑÑ1ратÑÑ3во4Ñ5ÑиÑ3Ñ2к1Ñта_4Ñтв_2ÑтвлÑÑ‚2вÑ1Ñтей1ÑтелÑте3Ñ…Ñ3тешÑ2тиеÑ2тииÑ2тичÑ2тиюÑÑ‚2ла2Ñтли2ÑтлÑ1Ñто_1Ñтов1Ñтог1Ñтод1Ñтое1Ñток1Ñтом1Ñтон1ÑтоÑ1ÑтотÑ2тоц1Ñтою2Ñтр_Ñ1тут1ÑтуюÑ2тыв2Ñть_2ÑтьÑ3Ñтью1ÑтьÑ1ÑÑ‚Ñм1ÑÑ‚ÑÑ…Ñуб1оÑу3глÑу2евÑу1крÑума1Ñупе2ÑуÑ3лÑуÑ3пÑу1ÑÑ‚Ñут1Ñ€Ñу2Ñ„31Ñ2фе1Ñ2хе2Ñ3циÑ2чаÑÑ3чив2ÑчикÑ2читÑъе3дÑъе3лÑÑ‹2г1ÑÑ3тьта2блтаб2рта2гнта1з2та2плта1Ñтта1тр2Ñ‚1б22Ñ‚2ват1вейт1велт1ветт1воет1воÑ2твою2Ñ‚1врте2гнте1зо3текатек1л3текште1ох3терзтер3к3терÑтеÑÑ‚2те2хотиа2мти2блти3д2тииÑ1Ñ‚1импт1инд2тинж2тинфти1Ñ…Ñ€2Ñ‚1к2тло2бтми2Ñ2тобъто2влто1з2ток2Ñ€2томÑ2тонг1торг1торж1торÑто1ру1торш2тотдто3тктпа1ттрдо2Ñ‚1реат1регт1редт1реет1рецт1рею1трибт1ривт1рилт1римтри1от1риттри3фт1рищ2тройт1рортро3Ñ‚2трою1трубт2руд2трукт2румт2рутт1Ñ€Ñ_Ñ‚1Ñ€Ñвт1Ñ€Ñет1Ñ€Ñжт1Ñ€Ñйт3Ñ€Ñкт1Ñ€Ñтт1Ñ€Ñщт1Ñ€ÑÑ4Ñ‚1Ñ2Ñ‚2Ñ3дтÑеп2Ñ‚2Ñ3мт2Ñ3пту2грту1Ñлту1Ñтту2фл1туша1тушо1тушьты2г12Ñ‚Ñ2чу2алеу3белубо1дубоÑ21убрауб3рюу1ве_уг2науг2неуг1реуг1Ñ€Ñуда1Ñуд1роуеÑ2лу1з2вузо3пуко1бу1ку1у1лыху2озауоÑÑ‚1уо2Ñ‚1уп1люу3проурке3у2родурт2ру2ÑадуÑ1кауÑ1киуÑк3лу1ÑкруÑ3лиу1Ñтеу1ÑÑ‚Ñу3ÑÑŒÑу3терут2лÑут1риу1тьеу3тьюуф2лÑух1адуха2тух3лÑу2чебуш1лафа2б1фа2гнфа1зофан2дфа1трфев1рфед1рфе1о3фи2глфи2зо2фобъфо2рвфо1руфоÑ1кф1рабфра1зфра1ÑÑ„1ратф2ренфре2ÑÑ„2рижф2ризф2ронф2торфу3тлха2бл2Ñ…1акхан2дх1арш2Ñ…3ве2Ñ…3вихиат1хи1Ñ2Ñ…1лавх1лаÑÑ…1латх1лац1хлебх2леÑÑ…1летх3ло_Ñ…2лоп1Ñ…2му3Ñ…2ныхо2пехо1рух1оÑмхох1лх1раз1хранх1рейх2риÑÑ…1ров1хром2Ñ…1Ñ2Ñ…1у2гх1у2рху3ра2Ñ…1ч2ца2плце1отцеп1лцеÑ2лци2к1цик3лци2олци2Ñкциф1Ñ€2ц1к2ц1о2б2ц1от2ц3ш2цып3лча2дрча2дцча2ер3чато3чатыче1влче2глчер2Ñче1Ñл1ч2лач3легч3лежч2ли_1ч2ло2ч1таша2блша2гнша2дрша1Ñтш3венше2глше1о2ше3плше1Ñ2ши2блши2плшиф1Ñ€2ш1к22шленш2ли_2шлив2шлилш2линш2лиÑш2лифш2ло_2шловш2лог2шлÑе2шлÑкш2лÑп2шлÑÑ‚2шлÑч2шлÑÑŽ3ш2мыш2нуршу2евшуÑÑ‚12щ3в2ще2глщед1рщеиÑ1ще3шкъе3доъ2е2ръе2хиыд2реы2дрÑÑ‹3ж2дыз2ваыз2наы2к1выко1зыре2Ñ…Ñ‹Ñ1киыÑ1куыт1виы3тьюы3тьÑÑ‹2ш1лье1зоьми3дьми3кьне2оь2п1ль2Ñтиь2ÑÑ‚Ñьти3мь2тотьт2реьт2руьт2рыьхоз1ÑŒ3ÑгÑÑк2ÑÑ‚Ñле1оÑпи3кÑÑ3теÑÑ‚1раюзи2кю2к1вюре4мю2Ñ1кю1Ñтаю1Ñтею1Ñтою1ÑÑ‚Ñюха1ÑÑб1раÑб3реÑб1риÑб3рюÑ1в2Ñ…Ñ2г1лÑз2гнÑ2к1вÑ2к1лÑÑÑ‚3вÑ1ÑтоÑÑÑ‚1Ñ€Ñти1зÑ3тьюÑ3тьÑа2ньшгÑÑ‚4ре2мьдзаи2лзао2ззаю2лз2Ñ€Ñтзу2мьпое2ж2Ñтьт6хуÑ_Ñ‹2рьмыÑ2вÑьбат2а2двё2алёк2амёта1тьёб3лёнб2люёб1рёкб2рёмб2рёх3везёвёд1Ñ€2вёрдв2лёкв2лётв2нёÑ3вÑÑ‘3г2лётг2нёвг3нёнг2ноёд2рёбд2рёмдъё2м2евёре2глёер1вёет1вёе1тьёё1браёб1рыё1друё1зом2Ñ‘1ко2Ñ‘1крёк2ро2ёмужёпат2Ñ‘3плаёп1луё3плыё3ре_ёр3Ñкё3Ñ2аё2Ñкеё3Ñту2ётечёто1Ñёха2тёх1ружё1Ñ2з2вёзз2наёз2отёзъё2м2зымё2и1вёих1рёк3лёнк2роёлё3долёк1ллё2Ñк2лоён1льщё3м2щёнд2рёнё1б23номёоё2жио2Ñкёот1вёо3тёрпё2тр2плёнп1лёюпоё2ж3прётр2блё1рвёт1рёзкрёз2у1рёкш3рёмо1рёнкроё2мÑёкÑ4ÑÑ‘2ÑÑ‚2ÑкуёÑ1лёт1ÑтёлÑтё3Ñ…Ñ3тёшт1вёлт1воётё2гнтё1зо3тёкатёк1л3тёкштёр3ктё2хоуг2нёуг1рёу1Ñтёу3тёру1тьёу2чёб2Ñ…3вё1хлёбх2лёÑчёр2Ñ2шлёнъ2Ñ‘2рыд2рёырё2хьё1зоÑб3рё', - 6 : '_аг1ро_аль3Ñ_аÑ1то_аÑÑ‚1Ñ€_де1кв_ди2ак_до3Ñ‚2_зав2Ñ€_ио4на_леÑ1к_люÑÑ‚1_ми1ом_мо2к1_на3ш2_не3вн_не1др_не1з2_не1Ñл_ноÑ1к_нук1л_оÑ2ка_оÑ3пи_от1ро_от1ру_от1уж_по3в2_по3ж2_поз2н_проÑ2_ре2бр_ри2Ñк_Ñепт2_те2о3_тиг1Ñ€_уз2наабе3Ñта3в2чеага1Ñ2а2гитиа2глоÑаг2лотади2ода2д1руаза4ш3аз3веза2зовьа2зольа1зориаз2о1Ñак3лемако1б22аконÑалуш1та2минтам2нетамо1з2ана2дцан2драан2Ñура2н1узап2ломапо4вÑап1релара2Ñтар2бокар2валаре1дваре1олар2торар2Ñ‚1Ñ€1аÑÑигаÑÑ‚1вуаÑ3темаÑ2тинаÑ2тиÑаÑ1тооаÑ1туха1ÑтьеаÑ2шедаÑ2шеÑат1обеа2томнат1рахба2г1рбе2д1рбез1а2без5д4без1о2бе2Ñ1кбе2Ñ1тбеÑ3тебеÑ3ти1б2лазб3лази1б2лее1б2леÑ1б2луж2б3лю_бо1брабо1драбо1л2жбо1льÑбо3м2лбо3Ñкобо3Ñтибра1зо1б2рал2б1рамб2рать1б2рач2б3раÑ1б2редб2ритоб2ритыб1ром_3брукÑ2б3рю_бу2г1рва2д1рва3ж2два2Ñтрве2Ñ1квзъе3д3в2куÑ2в3лаб3в2нук3в2нучвои2Ñ1воÑ3пево2Ñтрво3Ñ…2Ñ‚2в1рам2в1рах2в1рен1в2ризвро3Ñ‚2в3ÑкаÑ4в3Ñки4в3Ñкувто1б2ву2Ñ…1а3в2шиввы3ш2лга1ÑÑ‚2г1лами2глаÑÑŒ3г2лифг3лоблгнит2рго3ж2дго2Ñ1аго1Ñклго1Ñпагу2Ñ1кда2гендаÑÑ‚1Ñ€2д1вид2двинт2двинч2д1виÑ2д1вит1дворьде1б2лде1б2рдез1о2дераÑ2де2Ñ3вди2алиди2алодио3деди1отиди3фто3дневн4д3но1дно3д23д2нÑшдо3в2мдо3ж2д2долимдо2м1Ñ€2допледо2предо2рубдот2ридо2ш3вдо3ш2кдо2шлы1дравш2дразвд1ране2д3реж1дрема1дремлдрем3н1дремы2д3рендре2Ñкд2реÑÑ1д2рож2д3роз1д2рыг1д2Ñ€Ñгду2Ñта2дут1рды2г1Ñ€2ды2Ñ1еб1ренеб1рове2б3рюе3в2меев2нимев2нÑтевра1Ñ2е1вреев1рееев1рейев1реÑега1Ñ2е2гланедноу3ед1опре2дотве2д1още2дру_е2ду2бед1убое2дувеед1уÑÑ‚2е3душе2евидее2в1рееÑÑ‚1ре4ждевеза2вре1з2ваез1о2гез1о2рез1у2дез1у2кезу2Ñоезу2Ñыез1у2хез1учаеиÑ1трек1Ñтееле3Ñкеле1Ñцеми3д2ен2д1реоб2рое2о3глео2гроеоде3зе2о3роеоÑÑ‚1реот2руепа1трепиÑ2кеп1лешеп1лющер1актере3доере1дрере1к2ере1Ñ…4ерио3зер1обл2ерови2ерокреро3Ñ„2еÑ1кале2ÑковеÑ1лаÑеÑ2линеÑ2ловеÑ2ломеÑ2пекеÑ3полеÑ2танеÑ2четеук2лоефи3б2ех1атоех3валех3лопех1опоех1у2ч3ж2дел4ждемеже1к2вза2вруза3ж2дза3мнеза3Ñ€2д2з3ва_з3валь1з2вон2з1вуюзи2онози3Ñ‚2рзко3п2зо3в2мзо2о3пзот2резот2ризро2Ñ3зу2б3Ñ€2з1уз3з1у2моз1у2тезу2чаÑ2зы2г12зы2Ñ1иа2зовиа2налиа1Ñ2киа1Ñтаиа1Ñтоиат1роиг1рени2г1Ñ€Ñиди1омиди1оти2еводиз2гнеиз2налика1Ñ2ик2Ñ1тило1Ñки2менои2мену2имень1инÑтии3оновио3Ñклио1Ñ2пио2Ñ‚1випа1трипо3к2ира2Ñти2Ñ€1ауири2Ñкиро1з2иÑ3ка_иÑ3камиÑ3кахиÑ3ковиÑ3ку_и2ÑламиÑо2Ñки2Ñ3при2ÑÑ‚1виÑ1Ñ‚Ñзи2Ñ‚1веит2реÑит3роми2Ñ‚1учи2Ñ…1аÑих2ло2ихлор1й2Ñ3мука2брика3днека2д1рка2п1лка2прекар3трка1Ñ‚2рка2ш1тке2Ñ1кке2ÑÑ‚12к3ла_2к3ле_к3лем_2к3ли_2к3лив2к3лиÑ2к3ло_2к3лоÑ2к3лю_3к2ниж3к2нÑж1кольÑ2коминко2Ñ€3вкре2Ñлкри2о3кÑанд2к1Ñтамк1Ñтан3к2то_ку2п1рла3ж2д1лами_ла1ÑталаÑÑ‚1вла1Ñтела1Ñтола1Ñтула1ÑÑ‚Ñла1Ñ‚2Ñ€1л2галлев1рале2г1лле1онтле1о2Ñле4Ñкале1Ñ2лле1Ñпеле1Ñ‚2рли2гро2л1иÑпли2Ñ…3вло1б2Ñ€2ловиÑ3ловодло2г3длого1Ñлок3ла3лопаÑ2л1оргло1Ñ2плу1д4Ñ€1льÑти1льÑÑ‚Ñма2к1Ñ€2м1аллма1Ñ4тма2тобма2Ñ‚1рме2Ñ1кми2гремик1рими1опими1Ñ2л3м2нешмоиÑ1тмо2к3вмоÑ1камо1Ñ2пмо2Ñ‚1рм2Ñ1ор3м2Ñтиму1Ñ2кму1Ñ4лнаби1она1в2рна3м2нна1рвана1Ñ‚2рн1а2фрна3ш2лнд1рагнд1ражнд2риане1в2дне3внÑне1д2лне2дране1дроне3ж2дне1з2лне1к2вне3м2н3не1о2не2одане1Ñ€2жне3Ñ2нне1Ñ2пне1Ñ2хне1Ñ2чне1Ñ‚2вне3Ñ‚2лне1Ñ‚2Ñ€2нинÑпниÑÑ‚2рнко3п2н2к1ронно3п2но3з2оно1Ñклно2Ñлино1Ñ2пн2Ñконн2Ñ1окн3Ñ2пентр1ажн2трарнтраÑ2н2тривн2трокнтр1удн2Ñ‚1Ñ€Ñ2н3ÑŽ2роб2левоб2лемобо3м2о2бра_о1браво1брано3в2лоо2в1риов3Ñкоог3ла_ог3ли_ог3ло_од1вое2оди3а2о3димод2литодо3про2доÑио1драгод1ражод1разод1рако1дралод3ребо1дробод1рово2дымао2дымуо2е1вло3ежеко3ж2дуо1з2ваоз2вено1з2вÑоз2глооз2доро2з1обозо1ру2о3кан2о3колол2ган1олимполу3д2о3множоне3Ñ„2он2труооÑÑ‚1ро2пле_оп2литоп3лю_о3плÑÑопо4вÑопоз2но3п2теора2Ñ3ор2б3л2о3регоре2Ñкор1иÑпор1укÑоÑа3ж2о2Ñ3баоÑ3кароÑк1воо2Ñки_о2ÑковоÑ1койоÑ1комоÑ1коюоÑ1куюоÑ3лейоÑ3логоÑ3лыхоÑ3моÑоÑ2нÑлоÑ2паÑо1Ñ2пуоÑ2Ñ3мо3ÑтраоÑ2цен2о3тек2о3техо3ткалот1работ1радот1разотра2Ñот1режот1рекот1речот1решот1родот1роеот1рокот1роÑот1рочот1ругот1у2чо2форио2ч1топаÑ1тапа1ÑтепаÑ1топаÑ1тупа1тропери1опе2Ñ1кпиаÑÑ‚1пи2ж3мпи2к1рп1лем_п1лемÑп2ленкп1ле2оплеÑ1к3п2ликпо3в2Ñпод1вопо1звепо1здопо1з2лпо3мнопо3мну3по3п2по2шлопо2шлыпо2шлÑпре1огпри3д2приль2про1блпрод2лпро3ж2про1з2п1розопрофо23п2Ñал3п2Ñих3п2тихпуÑ1кура2б1Ñ€1равнÑра2журра2зийра2зуб1ракизра2к3лра2нохран2Ñцра2п1лраÑ3к21раÑтара2такра1Ñ‚2Ñ€1Ñ€2вавр3ватарег2лÑре2доÑре3ж2дре1з2лре1зна1ре1зоре1к2лре3мноре1о2рре1о2фре1о2цреÑ1кире1Ñ2пре3Ñтаре3Ñторе1Ñ‚2рреуч3три3в2нри2глори3г2нри1д2рри3м2нри3м2чри3Ñтври3Ñ‚2рриÑти2рне1Ñ2рно3Ñлро2блюро1б2Ñ€1рогол1рогруро3д2зрод2ле1розарро1з2в3розыÑрои2Ñ31рокон1ролиÑ1ролиц1ромор1ронаж1ронап1роноÑрооп1рро2плю2Ñ€1оргро1Ñ€2жро2Ñкиро2Ñкуро1Ñ2п1рот2врот2рир3Ñтвлр2таккр2Ñ‚1обрт1оргрт2ранру2дар1ружейру1ÑтаруÑÑ‚1рр2Ñ…1инр1Ñ…2лор2Ñ…1опры2Ñ1к2Ñ1арк2Ñ1атлÑа2Ñ„1Ñ€Ñбезо3Ñбе3Ñ22Ñ3венÑе2к1Ñ€Ñере2бÑе3ÑтаÑе3ÑтеÑеÑÑ‚1Ñ€Ñ2канд1Ñ2каф3ÑкиноÑк3лÑв2ÑконаÑ2копÑ2Ñкриб2Ñ3ла_2Ñ3лаÑ2Ñ3ли_2Ñ3ло_Ñ3лому2Ñ3лоÑ2Ñ3лую2Ñ3лые2Ñ3лый2Ñ3лым1Ñ2наб1Ñ2неж2Ñ3никÑно1з2Ñо1б2Ñ€Ñо1л2гÑо2риеÑо1Ñ2п1Ñ2пец2ÑпиÑÑÑпо1з2Ñре2б1Ñре3доÑÑанд2Ñ3Ñ2неÑ2ÑориÑÑ‚1верÑÑ‚2вол1Ñ4те_1Ñтен_Ñ3тет_Ñ3тете2Ñтимп2Ñтинд2Ñтинф2ÑтинъÑ2тишкÑ3Ñ‚2леÑÑ‚2лилÑÑ‚2литÑ2то1б3Ñ2тои2Ñторг2Ñторж2ÑторÑÑтраÑ24ÑтраÑ2ÑтредÑÑ‚1рей2ÑтривÑÑ‚1риз2Ñтрил2ÑтрищÑÑ‚1роаÑÑ‚1родÑÑ‚1рохÑÑ‚2рубÑÑ‚1рушÑуб1а2Ñ2ценаÑÑ‹2п1лÑÑ‹Ñ1ката1вритак3лет1во1з2Ñ‚1войтеле1отем2б1те2о3дте4п1лте2рактере2оте2Ñкате2Ñкути1знатила2м2Ñ‚1инвти1Ñ2лти3Ñтвти3Ñ„2Ñ€3Ñ‚2кав3Ñ‚2кан3Ñ‚2кеттмиÑÑ‚1то2беÑто1б2лто3д2Ñ€2Ñ‚1оммто1Ñ2нто1Ñ2пто1Ñ2цт1рага2Ñ‚1раж1требо1требут1ребьт1ревет1ревшт1резат1резнтреп1л3тре2ÑтреÑ1кт1реÑтт1ретут2решь4тринÑÑ‚1роглт1роидтро3плт1роÑо4Ñ‚3роц2Ñ‚1Ñ€Ñдту2жинты2Ñ1к1у2бытуд1рамуе2Ñ1кун2д1руро2длуÑ1комуÑ1ку_у3Ñ…4вофанд1рфе2Ñ1кфиа2к1фи2нин2Ñ„1оргфор3трфото3п2Ñ„1у2п2Ñ…1изы1Ñ…2лор2Ñ…1о2кхо2пор2Ñ…1оÑнхри2плхро2мч2цетат2ц1о2дча2евоча2евычаÑÑ‚1вча1Ñтеча1Ñтуча1ÑÑ‚ÑчерÑÑ‚1ша2г1ршан2кршар3Ñ‚2ша1тро3ш2кол2ш1лейш2лите4ш3мы_ще1б2лщи2п1лы2д1роы2к3лоыноÑ3лыра2Ñ3ье2Ñ1кь3п2тоь2трабÑри4трÑро1Ñ2ÑÑ2Ñ‚1Ñ€Ñтил1аю2б1рею2идалюри2Ñк3ÑвикÑÑм2б3л_вÑÑ‚2Ñ€_реа2нбезу2Ñвиз2гнвыб2редоÑ2нÑ4ж3дик4ж3дичла2б1рлу3Ñ4нни4ÑÑŒ_о2плюÑоти4днпти4днреж4ди2Ñтче_ÑÑ‹2мит2ÑÑŒÑÑ_аз3вёзам2нётаÑ3тёмбё2д1Ñ€2в1рён2доплёдо2прё2д3рёж1дрёма1дрёмы2д3рёнеб1рён2е1врёерё3доерё1к2еÑ2чёт2Ñ‘1вре2Ñ‘3душёз1о2гён2д1рёÑ2танёх1атоёх3валёх3лопёх1опоза3мнёзот2рёиг1рёнла1Ñтёлё4Ñка3м2нёшод3рёб2о3тёкот1рёкот1рёшп2лёнкплёÑ1к_рё2бррё1зна1рё1зорё3Ñтарё3Ñтород2лёÑе3ÑтёÑÑ‘ÑÑ‚1Ñ€1Ñтён_Ñ3тёт_Ñ3тётеÑ3Ñ‚2лётё4п1лтё2Ñкатё2Ñку3Ñ‚2кётт1ревёт2рёшьчёрÑÑ‚1', - 7 : '_во2б3л_во3ж2д_за3м2н_ле2п3Ñ€_му2шт1_не1Ñ2ц_обо3ж2_ра2Ñ3Ñ‚_ре2з3в_ро2з3в_ро2Ñ3л_хо2Ñ€3в_че2Ñ1ка2д1облаз2о1бра2н1о2бан1о2храпо3ч2тбили3Ñ‚2б2леÑ1к2б3люÑÑŒ1б2роди1б2роÑибро2Ñ1кве2ÑÑ‚1вви2а1Ñ2ви1Ñ2ниво2б3лагри4в3нде2з1а2ди2Ñ1тр2д1обладо1б2рад1о2Ñенд1о2Ñин2д1оÑно2д1отрÑ1д2разнд1ра2Ñ3дро2г3неан2д1ре1д2лине1о2Ñвие3п2лодере3м2не2Ñ€1у2пе2Ñ1ка_е4Ñ1ку_2ж1о2Ñ‚1за2в1ри1з2о3ре2з1у2беи2л1а2ци2л1у2пино2к3лино3п2лиÑан2д1ки1Ñ2ни2к3лаÑько1б2рикохо2Ñ€3ла2д1аглан2д1рла2ÑÑ‚1рле1з2о3лу3п2ломан2д1рме2ж1атме2ÑÑ‚1рна2и1Ñ2на1Ñ€2вине2Ñ€1отни2л1ални2л1ам2н1инÑтнти1о2кобо1л2го3в2нуш1о2деÑло2д1отчо2д1у2чоза2б3воко3п2ло3м2немо3м2нето2п1лейопо2ш3лоро2Ñ3ло2Ñ1ка_о1Ñ2копо2Ñ1ку_о1Ñ2нимо1Ñ2шивошпа2к3па2Ñ1тыпе2д1инпе2к1лапе2ÑÑ‚1рподо3м2радо1б2раÑ3Ñ‚2лрво1з2дремо2г3реÑ2Ñ3мро2д1отро2Ñ„1акр2Ñ‚1акт2Ñ1альп2Ñбе3з2Ñто2г3нÑ4Ñ‚1ровÑче2Ñ1кте2Ñ1ките2Ñ1ко3Ñ‚2ре2хтри2г1л2Ñ‚1у2пруре2Ñ‚3руÑла4ж3уто3п2ÑÑ…1ра1Ñ2ÑŒ2Ñ‚1амп_бо2дра_об2люю_об2рее_об2рей_об2рею_об2рив_об2рил_об2рит_пом2ну_Ñо2плаатро2Ñкбино2Ñкдро2ж3ж2дружейилло3к2ме2динÑмиÑ4Ñ3ннар2ватне2о3рен2траÑÑо4ж3девойÑ4ково2м3че_он2тратоÑо4м3нпо2додепо2Ñтинпрем2норедо4плроб2лею2Ñбрук1б2лёÑ1кё2Ñ1ка_Ñ‘4Ñ1ку_1з2о3рёлё1з2о3о3м2нёмо3м2нёто2п1лёйпё2ÑÑ‚1Ñ€Ñчё2Ñ1ктё2Ñ1китё2Ñ1ко3Ñ‚2рё2Ñ…_чё2Ñ1к', - 8 : '_ар2Ñ‚1о2_ме2ж1у2а2н1а2ме2д1о2бедло2к1а2ун2тр1а2го2д1о2пео2д1о2пыпо2д1о2кре2д1о2пр2Ñ‚1у2чи_доб2рел_до1б2ри_па2н1иÑ_ро2Ñ3пиди1Ñ2лове2о3позиере3Ñ2Ñо2з1а2хавни1Ñ2коло1и2Ñ1трони3л2ампере1Ñ2нÑо2ÑтритÑо3Ñ‚2калтро2етеÑ_доб2рёлтро2етёÑ', - 9 : 'е2о3платои2л1а2минме2д1о2Ñммети2л1амо2д1о2болпо2д1у2роприче2Ñ1крни3л2а3мпричё2Ñ1к', - 10 : 'но4л1а2мин' + 2 : "1г1ж1м1п1Ñ„1ц1ш1щъ1Ñ‹1ÑŒ11Ñ1ÑŽ", + 3 : "а1ба1да1еа1иа1ка1уа1ча1Ñ1баб1вбг21бе2бжб1л1боб1Ñ‚2бф2бц2бш2бщ1бы1бь1бÑ1вав1дв1л2вмвф22вц2вш2вщвъ21вы1вÑг2а2ггг2и2гп2гф1дадв21де1дид1л1до2дп1ду2дфд1Ñ…2дщ2дъ1ды1дÑе1а2ебе1ее1и2еоеÑ2е1Ñжг2ж2м2жф2жц2жъ2зг1зе1зиз1лз1н2зт1зу2зцз1ч2зш1зы1зÑи1аи1еи1ии1ки1л2ипи1ри1ти1чи1Ñ2й1йд2йÑ12кг1ке2кмк2о2кп2кÑк2у2кф2кц2кш1кьк2ÑŽ2лб1ли2лм1ло2лпл1Ñ‚2лцл1чл2ÑŽ1лÑ2мж2мм2мп2мф2мц2мщ2мÑм2ÑŽ1на2нг1не1нин1л1но1нун1Ñ…2нц2нш2нщ1нын2Ñ1нÑо1вог2о1ео3и2ойо1ко1Ñ‚2оюо1Ñпе1пх22пц2пш2пщ2рг2рз2рм2рп2рф2рх2рц2рш2рщ2рър2ÑŽ1ÑаÑг2Ñ1зÑ2мÑ1н1ÑоÑп21ÑÑ€1ÑуÑч2Ñш21ÑÑ‹1ÑÑ2тг2тжтм22тф4тц2тщ2тъ2ть2Ñ‚ÑÑ‚2юу1ау1еу1иу1оу1у2уÑу1Ñ2фгф4и2фм2фф1ха2хг1хе1хи1хохп22хшца12цгци12цм3цу2цц3цыцю11чач1в1чеч2ж1чи1чм3чо1чуч2хш2в2шм2шфш1Ñ…2шц2шь2щмъю2ÑŠÑ2ые2ыи2ыу2ьб2ÑŒ2еь2оь2ÑŽÑŒ2ÑÑ1в2ÑгÑ2мÑ2нÑ2пÑÑ1Ñ2Ñ„ÑÑ…2Ñ2цÑÑ2ÑŽ1аю1бю1вю1ею1ию1к2юмю1Ñ…ÑŽ1чю1ÑÑ1еÑ1иÑ1кÑ1лÑ1уа1Ñ‘1бё1дёе1Ñ‘2ёб1зёи1Ñ‘1кё1нёо1ёпё1у1Ñ‘1чёь2ёю1Ñ‘", + 4 : "_аи2_ау2_ии2_ио2_иÑ3_ль2_оз4_Ñк2_ÑÑ‚2_уб2_уд2_уе2_ук2_уо3_уп2_уÑ2_ую2_ÑŽÑ14а3ааа2паа2раа2ца3буав1ва1веа1виа1воа2вта1вуа2вх2агаа2гд2агоа3гу2адва2длад2цае2ла2епае2Ñазв2азг2аз1ра2ихак1в1аккак2лак1Ñа1лаа1леа3лиа1луа1лыа1лю2амаамб42амоа2мчан1ра1нь2а1оао2дао2као2рао2Ñ2апоа1раа1реа1риа1роа1руар1ха1рыа1рюа1Ñ€Ñа1таа1тиа1тоа1туат2ха1тыа1тюа1Ñ‚Ñа2убау2дау2хау2чауÑ1ах2аах3Ñ2ачаа2члач1та2шла2ÑраÑ2баÑ2ваÑ2зба1зба2о2б1ббвы22б1д3бев3бее3бец2бещб1з21б2и3биаби2б2биж3бик3биоби1Ñ…2б3к2блы2блÑ2б3н3бот2бр_2брÑб1ру2брьб1Ñ€Ñб3ÑкбÑ4л1б2убу1Ñ2б1Ñ…2б1чбы2Ñ2бь_2бьÑ2бьтбÑ1Ñ€3б2ÑŽ3вагва1звах13вац3ваÑ2в1бв1вив1вр2вг21вев3вег1вее1вез1веÑ1вец1вею1веÑвзг2взд2взъ21визви1овиу3ви2Ñ„2в1квк2лв2ла2вли2влю2влÑ1вме2в1нвно1в3нывов21вод1воквоп21вох1вою2вп22вр_1врюв1Ñ€Ñв1Ñ‚21вуаву3г2вуиву3п1вхо2в1чвып2вых22вь_1вье2вьÑ2вьт1вью1вьÑ1в2юга1зга2у2г3бгба2г1ви3ге_2г3ж2г1з2г1кг1ле2г3мг3нÑго1з3гойг2ол3гою2гр_2грюг4Ñаг4Ñб2г3тгу1вгу1Ñ2г1ч2г3ш2г3Ñда1зда2о2д1бд1ве1двид3вкд1вл2двÑ2дг23дез2дж_2джÑдип2диу3ди1Ñ…2д1к2д1нд3надо1здоп2до1Ñ2др_д1ред1рид1рыд1Ñ€ÑдÑк22д1тду3гду2оду1Ñ…2дцу2дцы2д1ч2дыг2дыд2дыт2дыщ2дь_1дье2дьк2дьт1дью1дьÑ1д2юеа2деа2зе1вее1вие1вое2вте1вуе1вхе1вьег2дед2жее2хе2жг2ежее3зее3зÑеи2деи2меи2ое1каек2зе1кие1куе1лае1лее1луе1лые1люе3лÑе2мче3наенÑ2е1нÑе1оде2оие2омеоп2еоÑ22епее2пле4пн2епое4пте1рае2рве1рее1рие1рое1руе1рые1рюе1Ñ€Ñе1Ñге1Ñк2еÑле3Ñо2еÑпе1Ñте1тае1тие1тоет1ре1туе1тые1тюе1Ñ‚Ñе1у22еубеуз2еф2л2ецве1чле2шлею2геÑ2зжа1з2ж1в2жгаж2гиж2гу2ж1дж2диждо3жду14ждь3жев2жжаж2жежи1о2ж1к2ж1лж3ма2ж1нжно1жоу32жп2жпо1ж2ру2ж1Ñ2ж1ч2жь_2жьÑ2жьт1за1заа2заб2заг4зап2заÑ2зат2зау2зах2заÑ2з1б2з1вез1виз1воз1вр1звуз1вьз3га2зж2з3з23зи_3зиÑ3зич2з1кзко12зм2з3мн2зне2зно2зну1зов1зое1зои1зон1зоозоÑ21зохзош21зоÑ1зоюз1раз1роз1руз2рюз1Ñ€Ñ2з1Ñз1ти3зу_зу1в3зуе2зупзы2з2зыщ1зье1зьи1зью3зьÑ1з2юи2аби2авиаг2иао2и2апи2аф2и1би1вии1ву2ивыиг2ди3ге2игли2гни1двид1ри1дьие2гие2дие2ри1зоиз1рийÑ2и3кои3куилп2и2ль2имаи3мии2мчинд21инжинÑ21инф1инъи1оби2оги1оди1ози1они1ори1ошип3ни2рви2рж1ирри2Ñби2ÑдиÑ1ки4ÑÑи1Ñти2тми1у2иу3пиф1ли2фри1хуи2штию4лию2нию2тиÑ2дйно1йп2лй2Ñбй2Ñнй2Ñшй2тмй2хм1кавк2ад1кае1кай1кам1кан1кат1ках1каю2к1бк1вик1ву2к1дкда22кеа2к1з1кивки1о1киткк3Ñк3лы2кль1клю2к1н1ков1код1коз1коÑ1кош2кр_кÑ3гкÑ3мк3Ñок3Ñу2к1ткт2Ñ€3куе1куй3кум1кур1кут2к1ч1ла_1лаел2аклау11лаÑл1брл1вел1вил1вол1вул2гллго11ле_1лен1лехл1зо2л1клк2в2л1лл2льллю12л1нлÑ3б1лу_лу1влу3г1луе1лунлу1Ñ1лую1лы_1лые1лыж1лый1лым4ль_2льд3лье3льи2льк2льм2льн3льо2льт2льц2льч3лью3льÑ1лю_1люж3лÑ_2лÑд3лÑм3лÑÑ…3магма2умаф23мач4м1бм3бимб2л2мг22м1д3мкн2м1л2м1н3мод3мон3моп3мофмп2л2мрим1ры2м1ÑмÑ2кмÑ2н2м1тмфи32м1Ñ…2мш2мым1мы2Ñ2мь_2мьÑмью1мÑ1рмÑ1Ñ€2нач2нащ3наÑ2н1внг4лнг2Ñ€2н1днд2жн2длн2дцнег23недне3енеи23неунеÑ23нийниу3ни1Ñ…3ниц3нищ2н1кнк2внк2лнк1Ñ2н1нноб2ноÑ2н3п2н1ро2н1Ñн2Ñгн2Ñлн2Ñн2н1тн2тмну1Ñ…3ную2нф2нхо12н1чн2члнш2Ñ‚3ны_2нь_1нье1ньи2ньк1ньо2ньÑ2ньт2ньч1нью1ньÑ1н2юо3авоап12оба1обмоб1Ñ€1объ2обьов2то2вхо1дьое1бое2дое1оое2цо1зооие3ои2зои2мои2оойÑ2ок2в1окто3лао1лео3лоо1луо1лыо1люо3лÑо3ма2омеом2чо2мьо3наонд2о1нронÑ2о1о2о2оло2офо1рао1рео1рио1ро2орцо1рыо1рюо1Ñ€ÑоÑ2бо1ÑÑ‚2оÑхотв21отг1отдо3тио2тм1отхо1у2оуп2о3фе2охио1хро1хуо2цооч2ло1чтош2тоÑ2воÑ2доÑ2зпа3Ñ„2п1дпе2з4п3к2пл_2п1нп3нап3ны3пой2пп22пр_при12прÑп2руп3Ñо2п1тп3ту3пуб2пф24п3ч2пь_2пьтп2ÑŽ11ра_раа21раю1раÑ2Ñ€1бр1вир1вор1вьр2гвр2гнрг2Ñ€2Ñ€1дрд2жр2длр2дц1ре_Ñ€1зори3ариб2Ñ€2ин1риу1риц1риш2Ñ€1кр2кврк1ÑÑ€2льрлю1Ñ€3лÑÑ€2мч2Ñ€1н1ро_1роу2Ñ€1Ñ€4Ñ€1ÑÑ€Ñ2кр2ÑнрÑ2п2Ñ€1тр2тм1ру_1рулрф2лр2хврх1лрх1рр2цв2Ñ€1чр2члр2чмрш2Ñ‚1ры_1рыб2рыз1рым2рь_1рье1рьи2рьк2рьÑ2рьт1рью1рьÑÑ€Ñ1л1рю_1рюÑ1Ñ€ÑÑŽ1Ñб2Ñ2бы2Ñбю1Ñ2вÑ2гиÑ2гнÑ2го1Ñд2Ñ2даÑ2деÑ3диÑ2до1Ñ2е1Ñ2ж1Ñ2и3ÑизÑи1Ñ…4Ñк_Ñк2л2ÑкнÑк2Ñ€Ñк1Ñ2Ñль2ÑноÑ2овÑо1дÑ3пн2Ñпь2ÑÑ€_2Ñ1ÑÑ2ÑбÑÑ2лÑ2ÑнÑÑ2пÑÑÑ‚2ÑÑ2ч2ÑÑ‚_2ÑтбÑ2те1Ñти2Ñтк2Ñтм2Ñтн2Ñтп2ÑÑ‚Ñ2Ñтф2Ñтц1ÑтыÑ4тьÑу2бÑу1вÑу2зÑу1Ñ…Ñ1Ñ…22Ñца2Ñцо1ÑчаÑ1чл2ÑчоÑ3шн1ÑÑŠ2ÑÑ‹2зÑÑ‹2Ñ2ÑÑŒ_1Ñье2Ñьк2Ñьт1Ñью1ÑÑŒÑÑÑ1Ñ€Ñ2ÑÑ1Ñ2ÑŽÑÑŽ1Ñ2ÑÑз1тагт2ан1таÑ1тащ2тв_2тви2тву2твы2твÑ2Ñ‚1д1Ñ‚2ете1д2Ñ‚1зтии2тик23ткн2Ñ‚1лт2льт3мщ2Ñ‚1нто1д1тощ2тп22трб2трв2трг2трд2трм2трн2трп2трр2трф2трщ2трът1рыт2Ñб2Ñ‚1тт2тм1тущ2Ñ‚1Ñ…2Ñ‚1ч2тш24ть_3тье3тьить2м4тьттью1тю1Ñ‚1Ñ‚Ñг1Ñ‚Ñж1Ñ‚Ñпу2аÑуб1ру1виув2лу1воу1вуу2гву2глу2гнуд2ву3дууе2дуе2луе1Ñуе2ху2жжу1зоу1каук1ву1киу1коу1лау1леу1луу1люу2мчу3нау1ньуо2буо2вуо2куо2пуо2Ñуо2фу2плу1рау1реу1риу1роу3руу1рыу1рюу1Ñ€Ñу1ÑгуÑ2лу1Ñму2ÑнуÑ2пуÑ3Ñу1ÑÑ„2уÑцу2Ñчу2Ñьу1тау1тиу1тоу1туу1ты1утюу1Ñ‚Ñууг2уу2Ñу3фиуф1лу2фру2хвух1лух1Ñ€1учру1чьу3шеу3шиу2шлу2шпуÑ2зфа2Ñ…3фашфаÑ12Ñ„1б2Ñ„1в2Ñ„1дфи2жфи1о3фит2Ñ„1кф2лаф2лиф2ло2Ñ„1н3фон3фотф1риф1роф1ру2Ñ„3Ñ2Ñ„1тф2тм2фуф2Ñ„1ч2фш22фь_Ñ„2ÑŽ1ха2дхао32Ñ…1б1Ñ…2вх3вых3д2хео3Ñ…1з2хие2Ñ…1к2Ñ…1лу2Ñ…1нхоп2хоф2хоÑ2Ñ…1рых1Ñ€Ñ2Ñ…1Ñ‚1ху_2хуе2хуй1хун1хуÑ1хуш2хуюх1Ñ…2хью13ца_3цам3цах2ц1бц2ве2цвы2ц1дце1зце1кце1Ñ‚2ц1зцип2циу32ц1л2ц1н2цп22ц1Ñ€2ц1Ñ2ц1тцы2п2ч1б2ч1дче1очжо23чик3чиц2ч1кч2ле2чли2чма2чмеч2мо2ч1н2ч1Ñч2те2чтм3чук2ч1ч2чь_1чье1чьи2чьÑ2чьт1чью1чьÑ2ш1бше1кш1лыш2лю2ш1н4шниш2п2ш3пр2ш1Ñ€2ш1Ñш1ти2штÑ2ш1ч4шь_3шье3шьи3шью3шьÑш2ÑŽ1щеи2ще1Ñще1хщеш22щ1н2щ1Ñ€2щь_ъе2гъе2дъе2лъе2ÑÑŠÑ3ны2блы3гаы3гиыг2лы2гны2длыз2ды2злы2зныиг1ык2лык1ÑÑ‹2льы2мчы3поыр2вы3Ñаы3Ñеы2Ñны3ÑоыÑ2пы2ÑÑ…Ñ‹Ñ2чы2Ñшыт2ры3шьь2вÑÑŒ2дцье1кь2знь2и1ÑŒ2кльмо1ÑŒÑ2кь2Ñнь2тмьхо2ÑŒ2щаь2щеь2щуьÑ1вÑв1Ñ€Ñд1Ñ€Ñк1лÑкÑ1Ñ3маÑ3ньÑо2зÑ1реÑ1риÑ1руÑ1рыÑÑк2ÑÑ3мÑ2ÑоÑ2теÑхо3ÑŽ2бвю2блю1дьюз2гю1зою1лаю1лею2лию1люю2мчю2нью1о1ÑŽ1раю1рею1рию1рою1рую1рыю1тию1тою1тую1тыю2щьÑ2брÑ1воÑ1вуÑ2гнÑд1вÑд1Ñ€Ñ1зоÑк1ÑÑ2льÑ2мьÑ3наÑнÑ2Ñ1раÑ1риÑ1роÑ1рьÑÑ1кÑÑ1лÑÑ2Ñ‚Ñ1таÑÑ‚3вÑ3тиÑ1тоÑ1туÑ1тыÑ1Ñ‚ÑÑÑ…1лÑ1хуÑце1Ñ2шл2ÑÑŽ_2Ñ1Ñ6зь_й2кь6тр_а1вёа1лёа1рё1веё1вёз1вёÑ1вмё1вьёг1лёд1вёд1рё1дьёе1вё2ежёе3зёе1лё2епёе1рёё1веё1воё1ву2ёжеё3зеё1каё1киё1куё1лаё1леё1луё1лыё2мчё3наёнÑ22ёпеё2плё4пн2ёпоё4птё1раё1реё1риё1роё1руё1рыё1Ñк2Ñ‘Ñлё3Ñоё1Ñтё1таё1тиё1тоёт1рё1туё1тыё1тюё1Ñ‚Ñ3жёвж2жёз1вё2знё3зуё1каё3куё1лён1лёх1луё3льёне3Ñ‘1ньёо1лё2омёо1рёо3фё1рьёÑ2дё1Ñ2Ñ‘Ñ2тё1Ñьё1Ñ‚2Ñ‘3тьё_уё2у1лёу1рёу3шёц2вёч2тё1чьё3шьёы3Ñёь2щё_не88не_8бъ_8въ_8гъ_8дъ_8жъ_8зъ_8къ_8лъ_8мъ_8нъ_8пъ_8ръ_8ÑÑŠ_8тъ_8фъ_8Ñ…ÑŠ_8цъ_8чъ_8шъ_8щъ_", + 5 : "_аб1Ñ€_ади2_ак1Ñ€_би2о_го2Ñ„_дек2_ди1о_до3п_епи3_за3п_иг1Ñ€_изг2_из3н_ик1Ñ€_ле2о_на1в_на3Ñ‚_не3Ñ‚_ово1_ог3н_оÑ2п_от1в_ри2ч_ро2Ñ…_Ñу2ж_тиа3_ти2г_ти2о_ум2ч_ур2в_ут2ра3блааб2люаб1риав3зоави2ааво1Ñа2вотав1раав2Ñеа2глеаг2лиа2двеад2жиад1роаду3ча2дынае2гоае2диае2реаз1влаз1драз1обаи2г1аи3глако3Ñ‚2акриа3лаг2алекало1залу2ша2льщ2аметамои2а2нафан2ÑпанÑ1уаоÑÑ‚1а3плаап2ра1аргуар2жа2аÑ1каÑ3миаÑ3ноа1Ñьи1атакат3ваат1виат1ву2атезато2шат1риа1тьеа3тьюа3тьÑау3доа2улеаут1рау3чьа2Ñ„1лахми2аÑ2лиаю1таба2бвба2дрба3зубалю1баÑ3мба1Ñтба1трбе2глбе2гн3бе2збе3зибез3нбез1рбеÑ3пби2обби2одби2онби2орби2тв1благб2ланб3ленб2луд2б2льб2людб2люеб2люлбо3вшбо2гдбо1з2бо2мчбо3мшбону1бо1рубо2Ñабо1Ñкбо2твбот2рбоÑ2рб3рабб2равб2ран1браÑб1рахб1рейб1рекб2ремб2рехб2ридб1рол1б2рю2б1Ñ2бук1лбы2г1быÑ1кбыÑÑ‚1бю1тава2брвадь2ванÑ2ва1Ñтва1трв2дохвед1рве3ду3везе3везлвез2у1вей_ве2п12вердвет3Ñ€1в2з2взо1бви2азви2акви2арвиа1тви3афви2гвви2гл1винт1винчв2левв2лекв2летв2лечв2лиÑв2люб4в3нав2неÑв3ну_во1б2во3вкво1двво1дрво2ерво2жжво3м2во1ру2ворц2ворьвоÑ1кво1Ñмво1Ñнвот2рво1хл2вра_в2равв1раÑ2врац2вре_1вридв1риив1рикв1рилв1риÑв1рит2в1ро2в1ры2в1Ñ23вÑе33в2Ñп3в2Ñювто3ш1ву1з2ву1кву1Ñ2вух3вву1члвы3г2вы3знвы3Ñ‚21вьин1в2Ñ1г3дан2г3диге2б1гено1ге2обге2одге1орги2блги3брги2грги1ÑлгиÑÑ‚22гла_г2лавг1лай2глаÑг2лет2гли_г2лин2гло_2глов2глог2глое2глой2глою2глую2г1лыг2лÑж2глÑкг2навг2нанг3не_г2невг3ненг3непг3неÑг2нирг2ноег2ноиг2ноÑго1б2го2влго2злгоз2нгоиг2гоми2го2Ñдго1Ñн2готдгоу3тго1члг1раег1райг1рарг1регг1рекг1рецг1рикг1рилг1ринг1риÑг1ричг1ровг2розг1рокг1ронг1ропг1ротг1рофгру2пг1рывг1Ñ€Ñег1Ñ€Ñлг1Ñ€ÑÑ‚2г3Ñ2да2б1да2грдат1Ñ€2двиз2дводд1воз2д1д23деврде2зиде2зудеио2де1кл3демеде2оддео3пде3плдеÑ2кде2Ñрде1хлд2жамд2ж3м2д1з2ди2аддиа2зди2арди2аÑди2обди2ордио1Ñди2пиди3птди3фрд2лев2д3м2днеа2дноÑ24д3ныдо2блдов2лдо1д2до3дндоз2ндои2Ñ€2доктдо3плдоÑ2п2дотд2дотл2дотъдо3ть3дохлдо2щуд1рабд1рард1рахд1рачд2раюд2реб2дрезд2релд2ремд2рий2дринд2рипд2рихд1родд1роед1ройд1ролд1ронд1роÑд1ротд1роюд1руб1друг1дружд1румд1рую2дрывд2Ñ€Ñбд2Ñ€ÑÑ…2д1Ñ2дÑ3кндуб3Ñ€2д1удду2дадуп1лдуÑ1кд1уÑлду1Ñтду2чидуÑ1Ñ‚2д3це2д3ш2дъе2м2дымедь3Ñреади3еа3доеат1реба2Ñе1браеб1рие1броеб1ры2евер2еволев1риев2хое2глее2глие2глоег2наег2но2ег2ред1вое1джее2дохе1друе2дуге2дуÑе2дынее2гиее1Ñ2ее2Ñтеж3дие2ж1резау3езд1реззу3е3зитез1обе1зомез1опез1отез1ошез2Ñ€Ñез1упез1уÑеи2г1еиÑ1лека2б2е1ко2е1крек2роек1Ñкеми3кемо1Ñ2емуж2емыÑ2е1нрен3ш2е1о2бео3даео2деео2дое1о2жео3кле1ол_е1олаео3лие1олке1олые1олье1он_е2онае2ониео3ное1онÑе1опеео2прео4пуео1Ñке1оÑме1оÑнео3Ñхе1отле1о2че1о2щепат2е3плаеп1луе3плые4п3Ñер1вее3ре_ере3перо2б2еролер3Ñке3Ñ2аеÑ2бае2Ñкее1Ñлуе1Ñлые1Ñ4ме2Ñпуе2Ñтле3Ñтует1веет1вие1тво2етечето1Ñет2Ñ€Ñе1тьее3тьюе3тьÑеуб3реф1рееха2тех1обех1реех1ружа2блжа2бржат1в2ж1б23ж2глж2дакж2дачж2деп4ж2дл3ж2дÑже3д2же1клже1о2же3п2же1Ñ2же3Ñк2жжев2ж1з22жирр2ж3мо2ж1обжоу1Ñз1авуз1адрзае2дзае2хза3з2з1акт3з2анза3назанÑ2зар2взар2жзаÑÑ‚2за3ткзач2тза3ш2з2вавз2ван2зваÑз2везз3в2кз1вла2зволз2глизг2наз2гнуз1д2вз2дешздож3зе2б1зе2евзе2од3зий_з1интзи2оззи1опзиу3мз2лащз2лобз2лопз2лорз2лющ2зна_з2навз2наез2найз2накз2нанз2натз2наю2знаÑ2з3ни2з3ныз2обезо2бизо2глзо1дрзо1з21зой_1зок_з1окÑ1зол2зо1лгзо1лжзо3м21зом_2зомн2зонрзо2оÑзо2паз2оплз2опрз1оргз1оÑнзо1Ñпзо2твз2отез1откз2отозо2шиз2ракзра2Ñз2рачз2ренз1реÑз2риш2зуве2зу2г2зу1к3зумезу2прз1урбзъе2м2зыме2зымчи2агри2адеи2адииа2муи3анаианд2и3атуи2а1хиа2цеи2б1Ñ€2иваж2и1веи2в3з2и1вои1в2ри3в2Ñив2хои2глеи2глиигни3иг1роиг1руиг1рыи2дейи1д2жие3деие2зуи3ениие1о2иепи1и3ж2диз1в21из1дизо2ои3к2аик2ваи2квии2клÑик1роик1Ñкильт2имои2им3пли2м1рим2чаино1Ñ1инÑп1инÑуио2боио2врио2деио3зои1окÑи1олеи1опти3ораио1руио2Ñаи1отаи1отки1отÑиоуг2ио2хоипат2ип2лÑириу3иÑ3кеиÑ3кииÑ1лыиÑ3меиÑ3муиÑ3нои2Ñтли1Ñьиита2вит3ваит1виит1вуи2Ñ‚1ри3тьюи3тьÑиф2люиха3ди3Ñ…2оихо3ких1реих1рииш2лии2шлыию3тай2д3вй2о1Ñйо2трй3ÑкайÑ2кейÑ4мой2Ñ3фйх2Ñ3ка2блказ3нка1зо1кал_1кало1калÑ3к2аÑка1Ñтк2вакк2ваÑк2вашк2возке2глкед1ркиоÑ1ки2пл2к1к22клемк3ленк1леок2ликк2линк3лиÑк2лозк3ломкло3Ñ‚1клук2клÑ_2клÑм2клÑхк2ноп3ковако1др3конÑкоп2рко1руко1ÑккоÑ3мко1Ñп1котнко2фрк1релкре1ок1реч1крибк1ридк2ризк2ритк1рихк1роак1робк2роек1рокк1роок1рорк1роÑк1рофк1рохк1роÑкру1Ñк1Ñ€Ñдк2Ñ3вк2Ñ3дк2Ñибк1ÑкикÑ1клк1ÑкокÑ3тек1ÑтокÑ1трк1Ñтукта2ккто1Ñку1ве1кулÑкуп1лку3рокуÑ1кку1Ñтку3ть1куче1куют3кующ2к1Ñ…22лабела2бл2лагола2грла1золак2Ñ€1лам_ла2уÑла2фр1ла1Ñ…2л3д2ле1влле1джле3доле1зрлек1л2лемнле2Ñбле2Ñкле1твле1хрлиа2м3ливо3ливылиг2ллие3рли2кв2лимплио1Ñли2пллиÑ3мли2твлиу3мли1хлли1хрл2к1ллни2ело2блло2влло1др2лоенло1звло2клло2рвло1рулоÑ1к2лотдлот2рло2шл2л1Ñ2лу1брлу1знлу1крлуо2длу3ть2л3Ñ„22л1Ñ…2л2Ñ…3в1лых_2льÑк1льща1льще1льщу1люÑьлю1талÑ1ви3лÑво3лÑвылÑ1релÑ1рума2взма2гнма2дрма2дьма1зомаÑ3лма2чтм3блÑ2м3в23м2глмеан2ме2егме2елме1зомеч1Ñ‚2м1з2ми1зв2миздми1знми2крми2озми2ор2м1к2м2леем2лел4м3намне1д4мноем2нож4мной4мномм2нор4мноюм2нут4м3нымо1б2мо3влмо1дрмо2жжмо1звмо1зрмо3м2мо1румо1Ñммо1Ñн3мотим1раб2м1рому1Ñтмут1рму3тьм2чавм2чалм2читм2чиш3м2щемы2мрмÑ1Ñтнаб2рнаг2нна3ждна1з2на2илна2ин4наккнап2лна1Ñ2на1твна1Ñ…2наÑ1Ñ€2н1б2н2г1внги2онго1Ñн2дакн2д1внде3знде2Ñн3д2знд2рен2дрÑнд2Ñпне1б22невннед2оне3дунее2дне1звне1знне1зоне1зрне1клне2олне3п2неÑ2кнеÑÑ‚2не2фрне1хрне3шк2н1з2нзо1Ñни3б2ни2енни2клнила2ни1ÑлниÑ3пнкоб2но1брно2влно1двно1дрно2ерно1звно2здно1зрно3кн3номеном3шно2рвно1руно2Ñч2нотдно3Ñ„22н1ре2н1рин2Ñ3внÑ2кен3Ñлан2Ñ3мнÑÑ‚2рнÑу2рн2Ñ3фн2ÑÑŠ3н2Ñ‚1внт2рант2рент2рунт2рынут1рнÑ1ви2о1а22обиоо1блюобо2Ñ2обото3влаов3ноов2Ñе2о3гео3грÑ2одано3де_о2дыно2дьбое2жиое1Ñ2ое2Ñто2етоо3жди2озавоз2вио1здрозе1ооз3но2озоно2зопоз1уго2зымо3зыÑои2г1оиг2нои3мо2ок2ло3клюоко1бок1Ñк2окти2окумом2блом1риом2шео3мьÑоно1боо3пÑооÑ3мо2отио3пако3паро2плиоп2лоо2плÑоп2риоп2тоо1Ñ€2вор2тро1руео1руко1руÑо3Ñадо2ÑкеоÑ1кио1Ñ2лоÑ3миоÑ2пÑоÑ2ÑвоÑ2тао2Ñучо1Ñ2чот3ваот1веот1виот1вло3терот1риот3Ñмоту2ао3тьюо3тьÑоуÑ2коу3таоу3то2офаш2офит2офон2офото2фриох1лыо2хлÑох2ме2охороча1Ñоч1лео3члиош3ваош2лаоÑ1тиоÑ2рипави3пав3лпа2вьпа2дрпа2енпа1зопаÑ1лпа2унпа1хупа2шт2п1в2пе2двпе3запе3зопе2льпе4плпе2Ñнпе2Ñцпе2Ñчпе2трпе2шт3пинк3пиÑÑ4пла_пла1Ñ2пленп1лею2плив2пло_2плов2плог2плый2плымп1лынп1лых2плю_п1лютп2лÑÑп2лÑшп3но1по1б2по3влпое2лпое2хпо1знпои2щ3полкп1оргпор2жпо1рупо1Ñ43поÑлпо3ÑÑпот2впот2рпо1Ñ…2поÑ3мппо1д3превпре1зпрей2пре1л3претпри3вприг2при3кпри3лприп2п2риц3проипро3п2п1Ñ2п3Ñинп2Ñ‚3впуг3нпу1Ñтпу3тьпÑ1рара2бл1рабора2гвра2глрад2жра2дцрак2в1ралг1рамк1рамн1раÑлраÑ3праÑ1трат1в2рахи1ращи2раÑтрб2лар2блерб2лорб2люрбо3ÑÑ€3вакр3варр3вежр2вео1рветр3винр2витр2г1лрда1ÑÑ€2д1врди2ардоÑ2ре1вррег2нрее2врее2дрее2л1резкре1зррез2у1рейш1рекш3ремо1ренк1реньре1онре1опре1ох1репьре3Ñ€2ре1Ñлре1Ñчре1твре1чтре3шлр3жа_Ñ€3жамр3жанр3ж2др1з2ври3бр2риги2риджрие2лрие3рриз2врик2Ñ€1ринÑрио2зрио2Ñри1отри3Ñ€2ри1Ñ2ри3Ñб2риÑпри2флри3фрри1хлр2к1л2Ñ€1л2рнаÑ4рне3оро2влро1двро1длро1др1родьрое2лрое2мрое2хро1зр1рокрро3пÑро1руро1Ñк1роÑлро1ÑмроÑ2Ñ„1роÑш1роÑÑŽ1роткроуг2ро2фрро1хлрош2лро3шн1роÑзрп2лор2плюрÑтв2Ñ€2Ñ‚1врт3варт2влрт1рарт1рерт1риртуÑ1Ñ€3тьюрт1Ñч1рубаруг3н2рукÑруÑ1круÑ3лру3ть1руха1рухо1ручнр3ш2мры2двры2клры2Ñ…1Ñ€Ñ1виÑа2блÑа2дьÑа2квÑа2клÑ1аппÑа1трÑа2унÑа1Ñ…22Ñ3буÑег2нÑе1з2Ñе1квÑек1лÑекÑ4Ñеми1Ñе2ÑкÑе2ÑÑ‚Ñи1омÑи1опÑи2пл2Ñкам2ÑкахÑк2ваÑ2квиÑ2клÑÑ1кон2ÑкошÑ1кра2Ñкуе1Ñлав1ÑладÑ1ламÑ3левÑ3лееÑ1лейÑлео2Ñ1летÑ3лею2ÑлицÑ2ложÑ1люÑ2Ñ3лÑ1ÑмеÑÑ4меÑÑ3мурÑ2наÑ2ÑнаÑ2Ñную2Ñ3ныÑов2Ñ€Ñо1з2Ñо3м2Ñо1руÑо1ÑкÑо2ÑÑŒÑот2Ñ€Ñо1члÑош2лÑ2павÑ2пееÑ2пелÑ2пенÑ2пехÑ2пешÑ2пеюÑ2пим2ÑполÑ2поÑÑ2рабÑра2ÑÑ1ратÑÑ3во4Ñ5ÑиÑ3Ñ2к1Ñта_4Ñтв_2ÑтвлÑÑ‚2вÑ1Ñтей1ÑтелÑте3Ñ…Ñ3тешÑ2тиеÑ2тииÑ2тичÑ2тиюÑÑ‚2ла2Ñтли2ÑтлÑ1Ñто_1Ñтов1Ñтог1Ñтод1Ñтое1Ñток1Ñтом1Ñтон1ÑтоÑ1ÑтотÑ2тоц1Ñтою2Ñтр_Ñ1тут1ÑтуюÑ2тыв2Ñть_2ÑтьÑ3Ñтью1ÑтьÑ1ÑÑ‚Ñм1ÑÑ‚ÑÑ…Ñуб1оÑу3глÑу2евÑу1крÑума1Ñупе2ÑуÑ3лÑуÑ3пÑу1ÑÑ‚Ñут1Ñ€Ñу2Ñ„31Ñ2фе1Ñ2хе2Ñ3циÑ2чаÑÑ3чив2ÑчикÑ2читÑъе3дÑъе3лÑÑ‹2г1ÑÑ3тьта2блтаб2рта2гнта1з2та2плта1Ñтта1тр2Ñ‚1б22Ñ‚2ват1вейт1велт1ветт1воет1воÑ2твою2Ñ‚1врте2гнте1зо3текатек1л3текште1ох3терзтер3к3терÑтеÑÑ‚2те2хотиа2мти2блти3д2тииÑ1Ñ‚1импт1инд2тинж2тинфти1Ñ…Ñ€2Ñ‚1к2тло2бтми2Ñ2тобъто2влто1з2ток2Ñ€2томÑ2тонг1торг1торж1торÑто1ру1торш2тотдто3тктпа1ттрдо2Ñ‚1реат1регт1редт1реет1рецт1рею1трибт1ривт1рилт1римтри1от1риттри3фт1рищ2тройт1рортро3Ñ‚2трою1трубт2руд2трукт2румт2рутт1Ñ€Ñ_Ñ‚1Ñ€Ñвт1Ñ€Ñет1Ñ€Ñжт1Ñ€Ñйт3Ñ€Ñкт1Ñ€Ñтт1Ñ€Ñщт1Ñ€ÑÑ4Ñ‚1Ñ2Ñ‚2Ñ3дтÑеп2Ñ‚2Ñ3мт2Ñ3пту2грту1Ñлту1Ñтту2фл1туша1тушо1тушьты2г12Ñ‚Ñ2чу2алеу3белубо1дубоÑ21убрауб3рюу1ве_уг2науг2неуг1реуг1Ñ€Ñуда1Ñуд1роуеÑ2лу1з2вузо3пуко1бу1ку1у1лыху2озауоÑÑ‚1уо2Ñ‚1уп1люу3проурке3у2родурт2ру2ÑадуÑ1кауÑ1киуÑк3лу1ÑкруÑ3лиу1Ñтеу1ÑÑ‚Ñу3ÑÑŒÑу3терут2лÑут1риу1тьеу3тьюуф2лÑух1адуха2тух3лÑу2чебуш1лафа2б1фа2гнфа1зофан2дфа1трфев1рфед1рфе1о3фи2глфи2зо2фобъфо2рвфо1руфоÑ1кф1рабфра1зфра1ÑÑ„1ратф2ренфре2ÑÑ„2рижф2ризф2ронф2торфу3тлха2бл2Ñ…1акхан2дх1арш2Ñ…3ве2Ñ…3вихиат1хи1Ñ2Ñ…1лавх1лаÑÑ…1латх1лац1хлебх2леÑÑ…1летх3ло_Ñ…2лоп1Ñ…2му3Ñ…2ныхо2пехо1рух1оÑмхох1лх1раз1хранх1рейх2риÑÑ…1ров1хром2Ñ…1Ñ2Ñ…1у2гх1у2рху3ра2Ñ…1ч2ца2плце1отцеп1лцеÑ2лци2к1цик3лци2олци2Ñкциф1Ñ€2ц1к2ц1о2б2ц1от2ц3ш2цып3лча2дрча2дцча2ер3чато3чатыче1влче2глчер2Ñче1Ñл1ч2лач3легч3лежч2ли_1ч2ло2ч1таша2блша2гнша2дрша1Ñтш3венше2глше1о2ше3плше1Ñ2ши2блши2плшиф1Ñ€2ш1к22шленш2ли_2шлив2шлилш2линш2лиÑш2лифш2ло_2шловш2лог2шлÑе2шлÑкш2лÑп2шлÑÑ‚2шлÑч2шлÑÑŽ3ш2мыш2нуршу2евшуÑÑ‚12щ3в2ще2глщед1рщеиÑ1ще3шкъе3доъ2е2ръе2хиыд2реы2дрÑÑ‹3ж2дыз2ваыз2наы2к1выко1зыре2Ñ…Ñ‹Ñ1киыÑ1куыт1виы3тьюы3тьÑÑ‹2ш1лье1зоьми3дьми3кьне2оь2п1ль2Ñтиь2ÑÑ‚Ñьти3мь2тотьт2реьт2руьт2рыьхоз1ÑŒ3ÑгÑÑк2ÑÑ‚Ñле1оÑпи3кÑÑ3теÑÑ‚1раюзи2кю2к1вюре4мю2Ñ1кю1Ñтаю1Ñтею1Ñтою1ÑÑ‚Ñюха1ÑÑб1раÑб3реÑб1риÑб3рюÑ1в2Ñ…Ñ2г1лÑз2гнÑ2к1вÑ2к1лÑÑÑ‚3вÑ1ÑтоÑÑÑ‚1Ñ€Ñти1зÑ3тьюÑ3тьÑа2ньшгÑÑ‚4ре2мьдзаи2лзао2ззаю2лз2Ñ€Ñтзу2мьпое2ж2Ñтьт6хуÑ_Ñ‹2рьмыÑ2вÑьбат2а2двё2алёк2амёта1тьёб3лёнб2люёб1рёкб2рёмб2рёх3везёвёд1Ñ€2вёрдв2лёкв2лётв2нёÑ3вÑÑ‘3г2лётг2нёвг3нёнг2ноёд2рёбд2рёмдъё2м2евёре2глёер1вёет1вёе1тьёё1браёб1рыё1друё1зом2Ñ‘1ко2Ñ‘1крёк2ро2ёмужёпат2Ñ‘3плаёп1луё3плыё3ре_ёр3Ñкё3Ñ2аё2Ñкеё3Ñту2ётечёто1Ñёха2тёх1ружё1Ñ2з2вёзз2наёз2отёзъё2м2зымё2и1вёих1рёк3лёнк2роёлё3долёк1ллё2Ñк2лоён1льщё3м2щёнд2рёнё1б23номёоё2жио2Ñкёот1вёо3тёрпё2тр2плёнп1лёюпоё2ж3прётр2блё1рвёт1рёзкрёз2у1рёкш3рёмо1рёнкроё2мÑёкÑ4ÑÑ‘2ÑÑ‚2ÑкуёÑ1лёт1ÑтёлÑтё3Ñ…Ñ3тёшт1вёлт1воётё2гнтё1зо3тёкатёк1л3тёкштёр3ктё2хоуг2нёуг1рёу1Ñтёу3тёру1тьёу2чёб2Ñ…3вё1хлёбх2лёÑчёр2Ñ2шлёнъ2Ñ‘2рыд2рёырё2хьё1зоÑб3рё", + 6 : "_аг1ро_аль3Ñ_аÑ1то_аÑÑ‚1Ñ€_де1кв_ди2ак_до3Ñ‚2_зав2Ñ€_ио4на_леÑ1к_люÑÑ‚1_ми1ом_мо2к1_на3ш2_не3вн_не1др_не1з2_не1Ñл_ноÑ1к_нук1л_оÑ2ка_оÑ3пи_от1ро_от1ру_от1уж_по3в2_по3ж2_поз2н_проÑ2_ре2бр_ри2Ñк_Ñепт2_те2о3_тиг1Ñ€_уз2наабе3Ñта3в2чеага1Ñ2а2гитиа2глоÑаг2лотади2ода2д1руаза4ш3аз3веза2зовьа2зольа1зориаз2о1Ñак3лемако1б22аконÑалуш1та2минтам2нетамо1з2ана2дцан2драан2Ñура2н1узап2ломапо4вÑап1релара2Ñтар2бокар2валаре1дваре1олар2торар2Ñ‚1Ñ€1аÑÑигаÑÑ‚1вуаÑ3темаÑ2тинаÑ2тиÑаÑ1тооаÑ1туха1ÑтьеаÑ2шедаÑ2шеÑат1обеа2томнат1рахба2г1рбе2д1рбез1а2без5д4без1о2бе2Ñ1кбе2Ñ1тбеÑ3тебеÑ3ти1б2лазб3лази1б2лее1б2леÑ1б2луж2б3лю_бо1брабо1драбо1л2жбо1льÑбо3м2лбо3Ñкобо3Ñтибра1зо1б2рал2б1рамб2рать1б2рач2б3раÑ1б2редб2ритоб2ритыб1ром_3брукÑ2б3рю_бу2г1рва2д1рва3ж2два2Ñтрве2Ñ1квзъе3д3в2куÑ2в3лаб3в2нук3в2нучвои2Ñ1воÑ3пево2Ñтрво3Ñ…2Ñ‚2в1рам2в1рах2в1рен1в2ризвро3Ñ‚2в3ÑкаÑ4в3Ñки4в3Ñкувто1б2ву2Ñ…1а3в2шиввы3ш2лга1ÑÑ‚2г1лами2глаÑÑŒ3г2лифг3лоблгнит2рго3ж2дго2Ñ1аго1Ñклго1Ñпагу2Ñ1кда2гендаÑÑ‚1Ñ€2д1вид2двинт2двинч2д1виÑ2д1вит1дворьде1б2лде1б2рдез1о2дераÑ2де2Ñ3вди2алиди2алодио3деди1отиди3фто3дневн4д3но1дно3д23д2нÑшдо3в2мдо3ж2д2долимдо2м1Ñ€2допледо2предо2рубдот2ридо2ш3вдо3ш2кдо2шлы1дравш2дразвд1ране2д3реж1дрема1дремлдрем3н1дремы2д3рендре2Ñкд2реÑÑ1д2рож2д3роз1д2рыг1д2Ñ€Ñгду2Ñта2дут1рды2г1Ñ€2ды2Ñ1еб1ренеб1рове2б3рюе3в2меев2нимев2нÑтевра1Ñ2е1вреев1рееев1рейев1реÑега1Ñ2е2гланедноу3ед1опре2дотве2д1още2дру_е2ду2бед1убое2дувеед1уÑÑ‚2е3душе2евидее2в1рееÑÑ‚1ре4ждевеза2вре1з2ваез1о2гез1о2рез1у2дез1у2кезу2Ñоезу2Ñыез1у2хез1учаеиÑ1трек1Ñтееле3Ñкеле1Ñцеми3д2ен2д1реоб2рое2о3глео2гроеоде3зе2о3роеоÑÑ‚1реот2руепа1трепиÑ2кеп1лешеп1лющер1актере3доере1дрере1к2ере1Ñ…4ерио3зер1обл2ерови2ерокреро3Ñ„2еÑ1кале2ÑковеÑ1лаÑеÑ2линеÑ2ловеÑ2ломеÑ2пекеÑ3полеÑ2танеÑ2четеук2лоефи3б2ех1атоех3валех3лопех1опоех1у2ч3ж2дел4ждемеже1к2вза2вруза3ж2дза3мнеза3Ñ€2д2з3ва_з3валь1з2вон2з1вуюзи2онози3Ñ‚2рзко3п2зо3в2мзо2о3пзот2резот2ризро2Ñ3зу2б3Ñ€2з1уз3з1у2моз1у2тезу2чаÑ2зы2г12зы2Ñ1иа2зовиа2налиа1Ñ2киа1Ñтаиа1Ñтоиат1роиг1рени2г1Ñ€Ñиди1омиди1оти2еводиз2гнеиз2налика1Ñ2ик2Ñ1тило1Ñки2менои2мену2имень1инÑтии3оновио3Ñклио1Ñ2пио2Ñ‚1випа1трипо3к2ира2Ñти2Ñ€1ауири2Ñкиро1з2иÑ3ка_иÑ3камиÑ3кахиÑ3ковиÑ3ку_и2ÑламиÑо2Ñки2Ñ3при2ÑÑ‚1виÑ1Ñ‚Ñзи2Ñ‚1веит2реÑит3роми2Ñ‚1учи2Ñ…1аÑих2ло2ихлор1й2Ñ3мука2брика3днека2д1рка2п1лка2прекар3трка1Ñ‚2рка2ш1тке2Ñ1кке2ÑÑ‚12к3ла_2к3ле_к3лем_2к3ли_2к3лив2к3лиÑ2к3ло_2к3лоÑ2к3лю_3к2ниж3к2нÑж1кольÑ2коминко2Ñ€3вкре2Ñлкри2о3кÑанд2к1Ñтамк1Ñтан3к2то_ку2п1рла3ж2д1лами_ла1ÑталаÑÑ‚1вла1Ñтела1Ñтола1Ñтула1ÑÑ‚Ñла1Ñ‚2Ñ€1л2галлев1рале2г1лле1онтле1о2Ñле4Ñкале1Ñ2лле1Ñпеле1Ñ‚2рли2гро2л1иÑпли2Ñ…3вло1б2Ñ€2ловиÑ3ловодло2г3длого1Ñлок3ла3лопаÑ2л1оргло1Ñ2плу1д4Ñ€1льÑти1льÑÑ‚Ñма2к1Ñ€2м1аллма1Ñ4тма2тобма2Ñ‚1рме2Ñ1кми2гремик1рими1опими1Ñ2л3м2нешмоиÑ1тмо2к3вмоÑ1камо1Ñ2пмо2Ñ‚1рм2Ñ1ор3м2Ñтиму1Ñ2кму1Ñ4лнаби1она1в2рна3м2нна1рвана1Ñ‚2рн1а2фрна3ш2лнд1рагнд1ражнд2риане1в2дне3внÑне1д2лне2дране1дроне3ж2дне1з2лне1к2вне3м2н3не1о2не2одане1Ñ€2жне3Ñ2нне1Ñ2пне1Ñ2хне1Ñ2чне1Ñ‚2вне3Ñ‚2лне1Ñ‚2Ñ€2нинÑпниÑÑ‚2рнко3п2н2к1ронно3п2но3з2оно1Ñклно2Ñлино1Ñ2пн2Ñконн2Ñ1окн3Ñ2пентр1ажн2трарнтраÑ2н2тривн2трокнтр1удн2Ñ‚1Ñ€Ñ2н3ÑŽ2роб2левоб2лемобо3м2о2бра_о1браво1брано3в2лоо2в1риов3Ñкоог3ла_ог3ли_ог3ло_од1вое2оди3а2о3димод2литодо3про2доÑио1драгод1ражод1разод1рако1дралод3ребо1дробод1рово2дымао2дымуо2е1вло3ежеко3ж2дуо1з2ваоз2вено1з2вÑоз2глооз2доро2з1обозо1ру2о3кан2о3колол2ган1олимполу3д2о3множоне3Ñ„2он2труооÑÑ‚1ро2пле_оп2литоп3лю_о3плÑÑопо4вÑопоз2но3п2теора2Ñ3ор2б3л2о3регоре2Ñкор1иÑпор1укÑоÑа3ж2о2Ñ3баоÑ3кароÑк1воо2Ñки_о2ÑковоÑ1койоÑ1комоÑ1коюоÑ1куюоÑ3лейоÑ3логоÑ3лыхоÑ3моÑоÑ2нÑлоÑ2паÑо1Ñ2пуоÑ2Ñ3мо3ÑтраоÑ2цен2о3тек2о3техо3ткалот1работ1радот1разотра2Ñот1режот1рекот1речот1решот1родот1роеот1рокот1роÑот1рочот1ругот1у2чо2форио2ч1топаÑ1тапа1ÑтепаÑ1топаÑ1тупа1тропери1опе2Ñ1кпиаÑÑ‚1пи2ж3мпи2к1рп1лем_п1лемÑп2ленкп1ле2оплеÑ1к3п2ликпо3в2Ñпод1вопо1звепо1здопо1з2лпо3мнопо3мну3по3п2по2шлопо2шлыпо2шлÑпре1огпри3д2приль2про1блпрод2лпро3ж2про1з2п1розопрофо23п2Ñал3п2Ñих3п2тихпуÑ1кура2б1Ñ€1равнÑра2журра2зийра2зуб1ракизра2к3лра2нохран2Ñцра2п1лраÑ3к21раÑтара2такра1Ñ‚2Ñ€1Ñ€2вавр3ватарег2лÑре2доÑре3ж2дре1з2лре1зна1ре1зоре1к2лре3мноре1о2рре1о2фре1о2цреÑ1кире1Ñ2пре3Ñтаре3Ñторе1Ñ‚2рреуч3три3в2нри2глори3г2нри1д2рри3м2нри3м2чри3Ñтври3Ñ‚2рриÑти2рне1Ñ2рно3Ñлро2блюро1б2Ñ€1рогол1рогруро3д2зрод2ле1розарро1з2в3розыÑрои2Ñ31рокон1ролиÑ1ролиц1ромор1ронаж1ронап1роноÑрооп1рро2плю2Ñ€1оргро1Ñ€2жро2Ñкиро2Ñкуро1Ñ2п1рот2врот2рир3Ñтвлр2таккр2Ñ‚1обрт1оргрт2ранру2дар1ружейру1ÑтаруÑÑ‚1рр2Ñ…1инр1Ñ…2лор2Ñ…1опры2Ñ1к2Ñ1арк2Ñ1атлÑа2Ñ„1Ñ€Ñбезо3Ñбе3Ñ22Ñ3венÑе2к1Ñ€Ñере2бÑе3ÑтаÑе3ÑтеÑеÑÑ‚1Ñ€Ñ2канд1Ñ2каф3ÑкиноÑк3лÑв2ÑконаÑ2копÑ2Ñкриб2Ñ3ла_2Ñ3лаÑ2Ñ3ли_2Ñ3ло_Ñ3лому2Ñ3лоÑ2Ñ3лую2Ñ3лые2Ñ3лый2Ñ3лым1Ñ2наб1Ñ2неж2Ñ3никÑно1з2Ñо1б2Ñ€Ñо1л2гÑо2риеÑо1Ñ2п1Ñ2пец2ÑпиÑÑÑпо1з2Ñре2б1Ñре3доÑÑанд2Ñ3Ñ2неÑ2ÑориÑÑ‚1верÑÑ‚2вол1Ñ4те_1Ñтен_Ñ3тет_Ñ3тете2Ñтимп2Ñтинд2Ñтинф2ÑтинъÑ2тишкÑ3Ñ‚2леÑÑ‚2лилÑÑ‚2литÑ2то1б3Ñ2тои2Ñторг2Ñторж2ÑторÑÑтраÑ24ÑтраÑ2ÑтредÑÑ‚1рей2ÑтривÑÑ‚1риз2Ñтрил2ÑтрищÑÑ‚1роаÑÑ‚1родÑÑ‚1рохÑÑ‚2рубÑÑ‚1рушÑуб1а2Ñ2ценаÑÑ‹2п1лÑÑ‹Ñ1ката1вритак3лет1во1з2Ñ‚1войтеле1отем2б1те2о3дте4п1лте2рактере2оте2Ñкате2Ñкути1знатила2м2Ñ‚1инвти1Ñ2лти3Ñтвти3Ñ„2Ñ€3Ñ‚2кав3Ñ‚2кан3Ñ‚2кеттмиÑÑ‚1то2беÑто1б2лто3д2Ñ€2Ñ‚1оммто1Ñ2нто1Ñ2пто1Ñ2цт1рага2Ñ‚1раж1требо1требут1ребьт1ревет1ревшт1резат1резнтреп1л3тре2ÑтреÑ1кт1реÑтт1ретут2решь4тринÑÑ‚1роглт1роидтро3плт1роÑо4Ñ‚3роц2Ñ‚1Ñ€Ñдту2жинты2Ñ1к1у2бытуд1рамуе2Ñ1кун2д1руро2длуÑ1комуÑ1ку_у3Ñ…4вофанд1рфе2Ñ1кфиа2к1фи2нин2Ñ„1оргфор3трфото3п2Ñ„1у2п2Ñ…1изы1Ñ…2лор2Ñ…1о2кхо2пор2Ñ…1оÑнхри2плхро2мч2цетат2ц1о2дча2евоча2евычаÑÑ‚1вча1Ñтеча1Ñтуча1ÑÑ‚ÑчерÑÑ‚1ша2г1ршан2кршар3Ñ‚2ша1тро3ш2кол2ш1лейш2лите4ш3мы_ще1б2лщи2п1лы2д1роы2к3лоыноÑ3лыра2Ñ3ье2Ñ1кь3п2тоь2трабÑри4трÑро1Ñ2ÑÑ2Ñ‚1Ñ€Ñтил1аю2б1рею2идалюри2Ñк3ÑвикÑÑм2б3л_вÑÑ‚2Ñ€_реа2нбезу2Ñвиз2гнвыб2редоÑ2нÑ4ж3дик4ж3дичла2б1рлу3Ñ4нни4ÑÑŒ_о2плюÑоти4днпти4днреж4ди2Ñтче_ÑÑ‹2мит2ÑÑŒÑÑ_аз3вёзам2нётаÑ3тёмбё2д1Ñ€2в1рён2доплёдо2прё2д3рёж1дрёма1дрёмы2д3рёнеб1рён2е1врёерё3доерё1к2еÑ2чёт2Ñ‘1вре2Ñ‘3душёз1о2гён2д1рёÑ2танёх1атоёх3валёх3лопёх1опоза3мнёзот2рёиг1рёнла1Ñтёлё4Ñка3м2нёшод3рёб2о3тёкот1рёкот1рёшп2лёнкплёÑ1к_рё2бррё1зна1рё1зорё3Ñтарё3Ñтород2лёÑе3ÑтёÑÑ‘ÑÑ‚1Ñ€1Ñтён_Ñ3тёт_Ñ3тётеÑ3Ñ‚2лётё4п1лтё2Ñкатё2Ñку3Ñ‚2кётт1ревёт2рёшьчёрÑÑ‚1", + 7 : "_во2б3л_во3ж2д_за3м2н_ле2п3Ñ€_му2шт1_не1Ñ2ц_обо3ж2_ра2Ñ3Ñ‚_ре2з3в_ро2з3в_ро2Ñ3л_хо2Ñ€3в_че2Ñ1ка2д1облаз2о1бра2н1о2бан1о2храпо3ч2тбили3Ñ‚2б2леÑ1к2б3люÑÑŒ1б2роди1б2роÑибро2Ñ1кве2ÑÑ‚1вви2а1Ñ2ви1Ñ2ниво2б3лагри4в3нде2з1а2ди2Ñ1тр2д1обладо1б2рад1о2Ñенд1о2Ñин2д1оÑно2д1отрÑ1д2разнд1ра2Ñ3дро2г3неан2д1ре1д2лине1о2Ñвие3п2лодере3м2не2Ñ€1у2пе2Ñ1ка_е4Ñ1ку_2ж1о2Ñ‚1за2в1ри1з2о3ре2з1у2беи2л1а2ци2л1у2пино2к3лино3п2лиÑан2д1ки1Ñ2ни2к3лаÑько1б2рикохо2Ñ€3ла2д1аглан2д1рла2ÑÑ‚1рле1з2о3лу3п2ломан2д1рме2ж1атме2ÑÑ‚1рна2и1Ñ2на1Ñ€2вине2Ñ€1отни2л1ални2л1ам2н1инÑтнти1о2кобо1л2го3в2нуш1о2деÑло2д1отчо2д1у2чоза2б3воко3п2ло3м2немо3м2нето2п1лейопо2ш3лоро2Ñ3ло2Ñ1ка_о1Ñ2копо2Ñ1ку_о1Ñ2нимо1Ñ2шивошпа2к3па2Ñ1тыпе2д1инпе2к1лапе2ÑÑ‚1рподо3м2радо1б2раÑ3Ñ‚2лрво1з2дремо2г3реÑ2Ñ3мро2д1отро2Ñ„1акр2Ñ‚1акт2Ñ1альп2Ñбе3з2Ñто2г3нÑ4Ñ‚1ровÑче2Ñ1кте2Ñ1ките2Ñ1ко3Ñ‚2ре2хтри2г1л2Ñ‚1у2пруре2Ñ‚3руÑла4ж3уто3п2ÑÑ…1ра1Ñ2ÑŒ2Ñ‚1амп_бо2дра_об2люю_об2рее_об2рей_об2рею_об2рив_об2рил_об2рит_пом2ну_Ñо2плаатро2Ñкбино2Ñкдро2ж3ж2дружейилло3к2ме2динÑмиÑ4Ñ3ннар2ватне2о3рен2траÑÑо4ж3девойÑ4ково2м3че_он2тратоÑо4м3нпо2додепо2Ñтинпрем2норедо4плроб2лею2Ñбрук1б2лёÑ1кё2Ñ1ка_Ñ‘4Ñ1ку_1з2о3рёлё1з2о3о3м2нёмо3м2нёто2п1лёйпё2ÑÑ‚1Ñ€Ñчё2Ñ1ктё2Ñ1китё2Ñ1ко3Ñ‚2рё2Ñ…_чё2Ñ1к", + 8 : "_ар2Ñ‚1о2_ме2ж1у2а2н1а2ме2д1о2бедло2к1а2ун2тр1а2го2д1о2пео2д1о2пыпо2д1о2кре2д1о2пр2Ñ‚1у2чи_доб2рел_до1б2ри_па2н1иÑ_ро2Ñ3пиди1Ñ2лове2о3позиере3Ñ2Ñо2з1а2хавни1Ñ2коло1и2Ñ1трони3л2ампере1Ñ2нÑо2ÑтритÑо3Ñ‚2калтро2етеÑ_доб2рёлтро2етёÑ", + 9 : "е2о3платои2л1а2минме2д1о2Ñммети2л1амо2д1о2болпо2д1у2роприче2Ñ1крни3л2а3мпричё2Ñ1к", + 10 : "но4л1а2мин" } }; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/sl.js b/resources/viewer/hyphenate/patterns/sl.js new file mode 100644 index 0000000000..5418c1c722 --- /dev/null +++ b/resources/viewer/hyphenate/patterns/sl.js @@ -0,0 +1,17 @@ +// For questions about the Slovenian hyphenation patterns +// ask Mojca Miklavec (mojca dot miklavec dot lists at gmail dot com) +Hyphenator.languages['sl'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 2, + longestPattern : 6, + specialChars : "Äšž", + patterns : { + 3 : "_Ä8_Å¡8_ž81fa1hu1kn1sc1sp1wa1ye1zi1zn1zo1zu1Äj1Äl2cc2ck2ew2ft2jh2nÄ2vÄ8Ä_8Å¡_8ž_a1aa1ba1ca1da1fa1ga1ha1ia1ja1ka1la1ma1na1oa1pa1sa1ta1va1Äa1Å¡a1žb1hb1mb1zb1žbe1bi1bo1d2ed2oe1ae1be1ce1de1ee1fe1ge1he1ie1je1ke1le1me1ne1pe1se1te1ve1ze1Äe1Å¡e1žfe1fu1go1gu1i1ai1bi1ci1di1fi1gi1hi1ii1ji1ki1li1mi1ni1pi1ri1si1ti1ui1vi1xi1zi1Å¡i1žju1ki1ko1le1lo1na1ne1nu1o1ao1bo1co1do1eo1fo1go1ho1io1jo1ko1lo1mo1no1oo1po1so1to1uo1vo1yo1zo1Äo1Å¡o1žpe1po1qu2r1fr1rr1žre1ri1ro1si1su1t1ftu1u1bu1cu1du1eu1fu1gu1hu1iu1ju1lu1mu1nu1pu1su1tu1vu1zu1Äu1Å¡u1žv1fv1gvz2wo2x1fy1jy1ly1wz1cz1gz1tz1Å¡z1žÄi1Å¡2Ä", + 4 : "_is1_iz1_od1_st41ind1inp1inÅ¡1kre1liz1loÄ1naj1nas1naz1neh1peÄ1str1usp1viv1z1r1z2a1zlj2b1c2b1d2b1k2b1n2b1s2b1t2b1v2b1Ä2b1Å¡2c1n2c1t2ch_2d1b2d1c2d1d2d1g2d1h2d1j2d1k2d1p2d1s2d1t2d1v2d1Ä2d1Å¡2d3m2f1n2f1s2g1d2g1t2h1k2h1n2h1t2h1Ä2h1Å¡2ine2iss2j1b2j1c2j1d2j1g2j1k2j1l2j1m2j1n2j1p2j1r2j1s2j1t2j1v2j1z2j1Ä2j1Å¡2jos2jus2juÄ2k1c2k1d2k1m2k1t2ks_2l1b2l1c2l1d2l1f2l1g2l1h2l1k2l1l2l1m2l1n2l1p2l1s2l1t2l1v2l1z2l1Ä2l1Å¡2l1ž2lj_2ljk2ljn2ljs2ljÄ2ljÅ¡2m1b2m1c2m1d2m1f2m1k2m1m2m1p2m1s2m1t2m1v2m1Ä2m1Å¡2m1ž2n1b2n1c2n1f2n1g2n1h2n1k2n1l2n1n2n1p2n1s2n1t2n1v2n1z2n1Å¡2n1ž2nj_2njc2njk2njs2njÅ¡2p1c2p1k2p1s2p1t2p1Å¡2r1b2r1c2r1d2r1g2r1h2r1j2r1k2r1l2r1m2r1n2r1p2r1s2r1t2r1v2r1z2r1Ä2r1Å¡2rae2s1b2s1f2s1j2s1s2sk_2st_2stk2stm2t1b2t1c2t1d2t1k2t1m2t1s2t1t2u1a2v1b2v1c2v1d2v1j2v1k2v1m2v1n2v1p2v1t2vzo2y1f2z1b2z1h2z1j2z1k2z1m2z1p2z1s2z1Ä2Ä1b2Ä1g2Ä1k2Ä1n2Ä1p2Ä1s2Å¡1j2Å¡Ä_2Å¡Äk2Å¡Än2ž1b2ž1c2ž1j2ž1k2ž1Ä3ktr3ste4bmi4eth4hl_4igh4ile4ilo4ire4job4jož4ljc4njv4ogl4opy4phs4sc_4stf4tz_4urg4vjo4vÅ¡k4zri4zru4Äop4Äup4žmia1e1a1raa1rea1ria1roa1rua1u1a1zea2uka4hma4jfa4mza4nma4pha4sÅ¡a4tfa4ufa4ula4vžad2laf1tak4sat4ib1jaba4ube4vc1kack1sd1lod2lid4urdis1e1o1e1rae1ree1rie1roe1rue1u1e4dfe4epe4ffe4rfe4rre4wte4ywe4zte4zže4Äde4Äte4Å¡peb4jed2lei2zez2gez4lh4loha4uhe4ii1e1i1o1i1Äai1Äei1Äii1Äui2zri4csi4kÄi4mhis4aiz1liz1uj1hijra1kok4ks1cks1pks1tl2i1le4en1Äan1Äen1Äin1Äun4dmn4ghn4gvn4tgn4tvnz4io1rao1reo1rio1roo1ruo2olo4aso4bzo4cro4kbo4kto4lro4omo4pmoiz2oz2noz2ooz2roz2voz4boz4gr4inr4thrz2ls2cis2kns4ids4onsis1taz4u1kau1keu1kou1rau1reu1riu4bpu4thub4jv1Äav1Äev1Äiv2zav2zuv3zpve4ivt4kz1igz1liz1luz1obz1ogz1v2z2olz3dvz3kuz3vnz4omz4ujÅ¡e2s", + 5 : "_av5r_ek3s_ek5v_si4s2d1z22j1od2n3d22p3Ä22v3zk2z1d22z1is2z1od2z1up2z1uz2z1z23inse3intr3razl3raÄu3real3rodi3v2pa3v2zg3zbir3zlil3zlog3zlož4d3vi4dind4dnas4dobÄ4idor4inÅ¡k4jime4kst_4ktra4mind4minp4minÅ¡4ploz4skre4tind4tinp4tnaj4zrez4zreÅ¡4zrež5dlet5obla5obro5oseb5redÄ5stim5tema5zlit5zliva4ksta4ziga4zoba4zraa5ju_ab5baac5ciad5uraf5gaah5miah5moai2n1aj3osaj3ugaj3uÄaj5fiaj5foaj5haaj5heaj5imaj5žnan5mian5ziao2b1ar5xaar5xoar5xuas5Å¡Äav5Å¡iav5žaay5toaz3laaz3leaz5foaz5vpaž5mib3jemb3lepb3rabb3raÅ¡b3rezb3robb4ja_b5jelb5jetb5lilb5litb5livb5ordb5rasbo5vpbu5kibu5kubu5kvbu5ryc5ko_ch5mack1o2ck5weckov3d3repd4revd5litd5livd5nivd5razde4mndi5ckdo5rddo5vÄdu5rodu5ume2Ä1ve4zobe5stae5zije5zised5iged5obed5vÄed5zbef5feef5taeiz5eeo4dleob4jeob4res5daev5haew5leew5toez4moez4reez5djez5glez5izeÄ3leeÄ5deeÄ5dieÄ5doeÄ5opeÄ5tieÄ5toeÄ5treÄ5upeÅ¡5poff5mafre4uft5vego5vzh5reni4skvii2n1ik5Äaim5hiisis4it5priv5joiz4laiz5meiz5moiz5poiÄ5raiÄ5vrj5aktjod4ljraz4ju2ž1ju5dmk5satk5vipke5tiko5kdks4poks5teku5rola4irle5melg5Äalu5kilu5kum5nivm5urnme4drmy5hin4ostnad5rnaj3ond5gand5hine3d2ne3zmnez4vng5hang5vino5rdnsis4nt5gant5gent5viny5quo2d1žo2v1zo5vzaob5glob5jooc5keoc5kiod5dvod5zdoele4ok5baok5beol5reood4lop5meou5kiou5kuov3zdov5Å¡koz5loozd5jož5mipe4ktpet3lph5sopi5zoprez4pÄ5kar3v2jrav5zre5jore5kmre5Ävriz4griz4lriz4nro5zort5haru5klrv5jory5anrž5das4lavs4tens4tirs4tiÄse5mase5vpsoni5su4bosve5tta5witch5ote5xatrt5uub5pouth5oux5emuÅ¡e3sv4pijv4pilv4Äerv5sknv5Å¡ekve4Älve4Ämvi5dvvo5rdz4gniz4venz4vokz5gotz5lasz5lomza1z2za3vpza5ukza5zdzd5juzliz5Ä5mes", + 6 : "_ob5it_obi4d_voz5l_voz5n_zliz62d3o2f3z4voj4d3nac4d3nar4d3nož4d5nap4d5naÄ4d5neb4d5niz4d5obd4j5int4l5izd4t3int4tinos4tinse4z5iÅ¡Ä4zredÄ4Ä3let5naÄela4j5eka4z3oÄa6doblab6rodad6rl_ad6rlaad6robaj6imoaj6stban6dgaan6dhiar6dwaaz4lilaz4litaz4livaz4redaz5oraaz5orob5letab5režeba6bbaban3Ä4bo6chmbr6ždabre4zgbre4zibre4zrd4i5nodd6vojde4minde4z3idi4skrdi6sprdo5v4zdre6pndteks6e3z4dre4d3oÄe4dobse4tinÅ¡e4z5ore5sti_e5stihe5stileb6lized6obeed6obrei6pziek6malek6treeo4z5nep5nikev5stvev6preev6steew6indez5imnez6ijoez6istez6lomez6maneÄ6vrsfe6ljtfi6zljfo6urige6igege6njÄgel5Ä4gi6tprhu6ffmil5Ä4kis6ertiz6odeiz6ureizli4zje4ks4jsis6tjz6vesko6vÅ¡ekoz6loks6tazla6vz_le6ipzli6dž_me4d5nme6dosmi6th_mo6vÅ¡_mo6Å¡t_na4drena4j3una4v3zna6drana6durna6jakna6joÄnavze6naz6ornteks4o6drepob5ideod5nalol6gÄaor4deÄose4m5ov5semoz5nicoz5niÅ¡oz6ložpe4tlepe4v5spev5t4po4d3lpo4dnapo6dfapo6lobpo6stdpz6ig_ra6jžnra6vzare6chtre6digre6ibare6sdare6zusre6zverev6skri5n4orob6ids4plods4tra_sek5sisi6gn_soniÄ4spod4ltek6stto6vž_tr6turud6mi_up6Äkave4tinvi6žg_vid6vavoz5lez6ane_", + 7 : "_di6spo_po4d5n_po4v5s_se4k5s3i4n3os4d5njaÄ6d5elem6tletnoera5z4rera5z4vera6z5leve6t5llju5d6jna4d5njna4j5ennje4v5so6l5avtpo4d5oÄra4z5idra4z5orre6dnjure6znaÄse4k5savetle6t", + 8 : "_pre6d7ne4z5u4m5" + } +}; diff --git a/resources/viewer/hyphenate/patterns/sv.js b/resources/viewer/hyphenate/patterns/sv.js index fc8f8fc435..59b086f1e3 100644 --- a/resources/viewer/hyphenate/patterns/sv.js +++ b/resources/viewer/hyphenate/patterns/sv.js @@ -1,19 +1,19 @@ -// Swedish hyphenation patterns by Jan Michael Rynning, jmr@nada.kth.se +// Swedish hyphenation patterns by Jan Michael Rynning, jmr@nada.kth.se // Patterns modified for Hyphenator by Andreas Johansson, andreas@ibuypink.com -Hyphenator.languages.sv = { +Hyphenator.languages['sv'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 8, - specialChars : 'åäöé', + specialChars : "åäöé", patterns : { - 2 : 'c21df21hx12y', - 3 : '_b4_d4_f4_g2_k4_l2_m2_n4_p4_r2_s4_t4_v2_x2a2ba1ja1oa1t2aua5Ã¥1b23ba4bb3be3bib3k3bo3bub3v3by3bÃ¥3bä3böc3c1ci4ck4cr4cs1cy3da2db4dc2dd3di2dj3do4ds3du3dy4dz3dödé4e1a4eb4ece2de1ee1fe1ge1me1o2epe1v4eä3faf3d3fef5h3fi1fl1fo2ft3fu4fv5fy1fä3fö2gb2gd2gg2gh2gl4gw3gyh5c4hdh3gh2ih1k2hl2hm4hnh3ph1s2hth2öi1ai2di1gi3ii1ti1ö1ja2jb2jd1je4jh1ji4jk2jmj2o4jp2jt5jé2kb4kc4kjkl2k2o2kskv41le2lh1lil1n2lv3lé1ma2mb2mc2md1me2mh1mi1mo4ms1na2nd1ne2nh2nk1no4nsn5zo1ao2bo2do1eo1go1io1jo1ko5qox5oy2o3Ã¥o3ö1pa2pc2php2jp2l1po2pp2ps1pu3péqu41ra2rb1re2rh4rj2rk2rsr3w1sa4sbs2c1se2sh1si2sm1sos2t1su1sÃ¥1sä1sö1ta2tc2th1tit2j2ts2tt2tv2tz5téu1au2bu2du1eu3ju1ou5uu5Ã¥u3ö1ve2vhv4i1vo2vs3vy1wawe2w2hxk2xs4y1ay2dy1ey1iy5wy5Ã¥1za1ze1zi1zo4zpz5s3zuÃ¥1aÃ¥1eÃ¥1fÃ¥3iÃ¥1mÃ¥3oÃ¥1pÃ¥1vä1aä2b2äcä2dä3eä3i4äk4äs2ätö1aö2dö1eö1iö1vé3e', - 4 : '_a4b_ac3_a4d_e2s_ex3_ib4_ik4_o3o_o1u_sk4_st4_u3k_up2_y2a_y4ea5beab1la5buad3jad2sa5eda1gaa1geag1la4hjaib4a3iva3kaa5kea1kiak3na1koa1ku4aköa1laa4lja1loa1lua1lyam4iam1sa3möan3ca1nua5nya3nöa1pea1piap2sa5pya5pä2ara1arb2arha1ri4arla1ro4arp4arua3rya3rä2asaa1scas2has5la3suas3va1sya2söa5tea4tja2trau5b1avgav3rbbb4bb3l4b3dbe5ebe1kbe1sbe3u4bex2b3f2b5hb3je4b3m2b3n5bonbo1sboy54b3p3bry3brö4b3sb4spbst44b3tby5r5cap1c4e4ch_4chtcim2c3kac3kec3kick5jck1lck3nc3kock3rck5äck3öco2aco4m5da_2dak5dam4daxddd4d3djdd2s3d2ed4en5derde2sd4et4dex2d1f2d1gd3gl2d5hdi1o4d5l2d1m2d1nd2ol5dondo3y2d1pd2sed4sfd2sid2sjdsk2ds1ld2sod2suds1vd2sö2d3t4dupdu1s4dut2d1vd3vr2d3w5dÃ¥g2dÃ¥s4dÃ¥t4dägdä2r4dög4döpe4ame2bre3che3coed3je3dÃ¥e2ede4eief4se3gae3geeg1legs3e5gÃ¥eig2e3ike1ine1joe3jue3jäe5jöe3kae1kie1klek3ne1koe1kue1kye1käe1lae1loel3p2enj2enye2ogeo4ie5ore1pee1pie1prep3se3pÃ¥e1rie1roerp4e1rue3rye1räe1sc2esees2ke1sle1spes2ue1sye5tie1toet2se1tue1ty2etze1täeuk44eure4vjev3r3expfac44fav4f3b4feffe2l4fex2f1ffff4ff3lff3nf3foff3rffs4f3fäf3g22f3k4f3mfma44foffol24f3p2f3sfs2kf4slf4smf4snf4spf4stf4svf3taf3tif3toft5tft1vg4av4gaxge2a2gefg4emge2o2g1fg1gag1gegg5ggg1lg4gu1g2igi1o3givgi2ög2jog3jä4glj2g1m2g1ng2no1g2o3go_3gol2g1pg2r4g4rÃ¥2g2sg4sfgs1lgs1mgs3ngs3sgs1vgs1ä2g1tg3tr1g2u4gug4gup2gut2g1v1g2Ã¥g4älg2ärgä4s1g2ö4göghav24hirhi4th4leh2na4howh5ruhu2shä4shö2ghö4sia3gi3cai5coid1rid2si3dÃ¥i4dö2i1ei5fni1frig1li1kiik3ni1koik1vi3kyi3kÃ¥i3köi1lail5ki1loi3lui5läi1mui5mÃ¥i3mäi5möi3niin5ji1nui1näi5oci1ogi3oki1oli5omion2i1opi1ori1osi1oti1pei1pii3rai1rii1roi1ruis2hi2skis3mis3nis5vi3syi4sÃ¥it5ci4tj4i1ui1vai1viiv3riv2si1vÃ¥ix2tjd3rj4duje2a5jef2j1f4j3g4jinj4klj3kojk3v2j1l2j1n3job3jouj5pl2j3r2j1sj5saj4skjts42j2u4jur1k2a3ka_2kafka3i2kak2kap3kas4kau1k2e3ke_2kepke2s4kex2k1fkfö22kh44kif1kigk3jä2k3k2kle2k1m2k2nk4ny4koc1kom1kon1kor2k1pk2r4k2sok2su4k1tk2tr4kug3kusk2vek4vok1vÃ¥4kög3la_2laf2lak2lau2lav2lb44l1c2l2dl3dj3le_2lex2l1f2l1gl2gjlgs43lif3ligli1o2lip1ljul5jÃ¥l1jä2l1kl3kel2kll2krlk3tl1lalld4ll3kll1ll1loll3pl1lull5vl5ly4l1m2loml1pel1pi4l3r2l1sl2scl2skl4sml2spls5sl2stl2sul2svl4sÃ¥4l1tltu4lu5i2lunl1val1vil1vä2lÃ¥_4läc4löl4löm3lön1lösm4dim4domeu42mex2m1fm4fnmis22m1k2m3l2m1nm4odmo4i2m1pm2plm4pÃ¥2m1rms2m2m1t4mud5mum3mur2m3v1mynmÃ¥g44mÃ¥rmÃ¥1s4mägmäk31män1mäs1mät3möj3mös4möv3na_3nad2naf2nak2nb42n1cn2chn5de3ne_2nex2ng1n2gin2go1n2i4nid3ninni1o4nip2n1jn3jän1kin1kon1kun1kö2n1l2n1m2n1nnn3dn3nenn3k2n1p2n1rns2ins2k2n1t4nug3nui3num2nup2n1v4nÃ¥r4nä_4näc3näm3nät3nöj4nölnös4oby4o3däo4flo3fro4gjo4gäo4ilok3no2kvo1la1oljo1loo1luo1lyo1lä1omron3con3jo1nyon5Ã¥o1näo3nöoo4do3oro1peo1pio3pÃ¥4orao1ri4orko1roo1ruo3ryo1räo1röo1too1tuo1tyo5tÃ¥o3täoun4oup44ourou4so1vao1viov3ro1väo3weo3än4pafpag43pappa3u2pb44pem4pex2p1f4p3g1pigpi1o3pipp3lj2p1m4p1np3ni5poa2poc2pofpo2i3pos4povp3pep1pipp3jpp1lpp1rp2pup5pypp3Ã¥p2r22pra3pro4prÃ¥4psop2sö2p1t4pug2p1v3päl4pör3que3ra_2rak3rarr4as2rav2r1c2r2dr3djr3dÃ¥r3dä3re_re3b4recre3o4rex2r1f2r1g4ribri1or3jor5jur5jör1kirk3nr1kor1kur1kä2r1lrld22r1m2r1nrn1krn3tro3b2r1pr4pö4r1rrrd4rr1sr1spr1svr1sy2r1trt3t2rut5ruö2r1vry5o4rÃ¥l4räm4räs2rögr3öi4röp3rör3sa_2safsa3i2sap2sau4s3dse2gsem22s1fsfö2s5hö5sie3sik3siosiu41s2j4sjn4sjts4ju3sjö4sk_4skhsk4i4skl4sknsk3s2skt2skv1skÃ¥2sl2s2lus3mjs4nÃ¥3soc2sod5soi2som3son3sots2p21spe4spls3ps3spö4s1r4s1sss2kss1lsss4s2sv2st_st3c2stj2stmst3t4stv1sty1stÃ¥1stä1stösu4b3sugsu3i3sum2sun2sup5suss2v24syk5syl3syn3syssyt25sÃ¥g4sÃ¥ks4äds4äl2säp5säs3sät4söd2sög4söl4söp3ta_tat22tav3tax2tb43t2e5tec4tegte3i4tej5tib3tidt2il3tisti2ö4tje2t3l2t1m3tokt2opt4ov2t1pt2r42tra2tri5trét3sets2kt2sotss4t1stt2sut5syt1tot3tutt1vt3tyt3tä5tuöt1va4tve3typ5tys3tÃ¥gtÃ¥s44tÃ¥t4täm4tög4töpu4bou5clu5deud3ru4duu4dyu2esu1geugn4u5ieu1inu3isu5kiu4kluk3nu1kouk2su3kuuk3vu1lau1lou3luu1läu1löu1muu5nuu1peu1piu2plu3reu1riu1rou5ryu3seus3nu2spus3vu4sÃ¥u4säu2sö1utbut3ju1tout3r2uttut1vu5ty2u1vu4vju4vä5vap4vau4vav2vb42v1c5vecve2k4vepves42v1f2v1gvi4c4vjo2v1l2v1m2vomvos42v1p2v2rv3ruv4scv2sov1stv2sö2v1t4vut2v1v3vägvä4l2vät3väx4vög4vöp3vörwhi2wi2ew4naxis4xli4xti2x4tÃ¥yb4sy4day4doyd3ryds4y4duy4döy1gay1gey1kiyk3ny1koy1lay3liyl5ky1loy3mÃ¥y3ory5ouy1pey5poy1riy1roy1toyt5vy3vay3viy3väå3djÃ¥1gaÃ¥1geÃ¥g3lÃ¥gÃ¥4Ã¥1kiÃ¥1laÃ¥l3kÃ¥1läå2plÃ¥4pöå1riÃ¥r5öås3nÃ¥ss4Ã¥s4tÃ¥te2äd3rä1gaä1geäg1läg3rä5joä1kiäk3näk3rä1laä4noä3peä4prä1riä4såä3toä1vaä3viä5vuöd2sö4duö4döö1ga1ögdö1geögg4ög1lög2n1ögoö3joö1kiök3nök2sö1laöl2pö5läö3peö3piö4prörb4ör3gö1riör1uör3yör1äös3növe4ö2vj', - 5 : '_ab5i_ab3r_a3dr_ad3s_a5kl_a5le_a3lu_a5mu_an5s_ap1p_as2k_as4t_a5ta_at3t_bo2k_cis4_där3_ek1v_e4nä_es4t_e3tr_gus3_he2m_im3p_i2n1_i4na_in3d_ink2_in3t_i3so_ner1_no4n_ok3t_o3kv_o2ma_o2mo_o3mu_on4k_o5sc_o3sl_o3sv_o3tr_sa2k_si5o_sjö1_ta4k_ti3o_u4ra_ur3s_u2t1_u4ta_ut5s_vä2g_Ã¥ng3_Ã¥3st_ä3ro_ö3roab4buabe2sab3laab4scab4ska5daga5deka5delad5epad3opa3dread3ruaf4fo3affäa2ge_ag1grag3roa4gurak3vea5kÃ¥rak5Ã¥ta2linal2kval4käal3lÃ¥al3tral4tual4täalu5salv3sa4mafam4pram3Ã¥tanci5a4nefan3gian1graniu4ank3rano2ia4noka4nopan4sjan1stan4tja2pe_ap3seaps5laps3papu5s4arbi2arbo4arbrar3drar3kaar5kr4arn_a2robar2saar2sva4rura5rusasbe4a2skoa4skras3kuas3paas2skas2spas2stas3taas3toas4tra4sulas2uta2s5Ã¥ati5öat4tjatt3saut5s2a1va2a1vi4a3väba4diba4dobak5lba4koba4kub4bakb4b3rbb4so4beldbe5lube3lybe3lÃ¥be5löbeng4be3nÃ¥be1röbe3slbes5sbe5sube3trbe3tvbi3d44binvb5larb5latb5len3bles5blidbo4grbo2klbo1mubo4sc4brarb5scebs3chb4sofb4stjbÃ¥ng3bÃ¥t2sbör2sceu4s3chau3chef5chocchäs3chör4ci4lucipp4ck4reckus2ck3vack3veck3väcle2acros24dadrdags35dakoda3lida3mÃ¥4d1ap4darb4dartda4trdat5tdcen3ddi4sd4dosdd3radd3redd3rid3drädds3vde1k44deko4deldde3prder1kde2rode4rude3sede3spde3trdias4di5eldi2grdi3kadi5ku4dinf4dinr4dins4dintdi4oddi3scdi4sjdis1pd3jor3djur2d3k2do5lo4domr4dori4dortd5ost2d2r2d3rad3drejd3ren5dresd3retd4ric3drifd3rigd3rind5rocd3ror4drot5dränd3rätd5rödd3skids3klds5knds4mod4smÃ¥ds5nÃ¥ds3plds3s4ds4tedu2scdu5södu4vudy4rodöds1d5öste2akeecis4edd4redi4ued1skedso4ee2k5e4en_e4ene3efteege2le5gruei5gnei5she1iskek4leek5roe1kve3eld_el3k4el3liell3sel3läe4lobel2siel5uge5luv2e1läe5mate5mise2naven4cee4nede4neken3knen5kren5käeno2men3siens2men2spen4sÃ¥e5nus2e1näe3plaep5leep4trepu3ber1ak4eraser3d4erg4ler4gue5riberlä4er5nae3robe2romer3raer5scer3sler3sve5rume5rÃ¥de2sales4hiesi4ues2mies3ples2skes2stes4tre3stÃ¥eta3beti3öe5träets1lets3met4svett3ret4vaet5vuetäc4e5um_e5up4ext4r4fans4farbfa3shfa4stfa4töfi2brfi3lifi2tifolk12f5omfo2nafra2mf4rerfre4sf4ri_5fritfrÃ¥n5f4taff4takf4tapfte4rf4texf4tinf4t3rft2saft4sjfts4tfu5rufu3tufy4mafÃ¥3töfö2rafö2riför3kfört4för1öga5br3g2ag4gakt3g2alga5läga4no2garb4garmga2ro4gartga4stga4sugaus4g3d4rge5b42ge4jg2eligel5y3gelägen5g3genj4genm4genvge5ny3genä5gesege4toget5sg4gapg4gosggs4mgh4tegi5sn3gjor2g3k2g1larg2lasg4lidg4lög5glömg4nag4gont2gord4gorm4gortgo3sl3graf5gral4gras5grecg3rig5grip3grisg5roigro2v4grum5grÃ¥_grä4ngs1ang3selgsi4dg3sjugs4kigs3kng3skyg4smegs4nigs4nögs1orgs3plgs3pogs3pugs3tjg4suggs3vigs3vÃ¥gs3ytguld34gulägu2magu5rugus4kg3utbgö5roha3blha5geha4liha5raha4scha4sphas3thavs3he4athe4frhe4lähets1h2nitho5nuhop3shos3phyg5rhys4thäll2hä4rihög5ria3fria4luia4skia3tri2b3li4ce_i5chaid4gei4domid3roids3vi4dunifes44igani2gebig5ejig3noi3kloik3rei3kuli3kumi2linil1jö3illuil2tji4lupim5smim4soi4nau1induin4gai4nif5inre1inri3inräin3slins4min3snin5te1intrint3si4nunin3ymio4krio5lii3onoions3ipos4ip5pii4resirk5liro3pi5sceisel4is3kuis3kyi2s3pis3sais3seiss5nistÃ¥4i4teii4texit4tui2t5Ã¥i2vaki4vinix5tu4jarbjas5pjo4kr4joljjo5löjs4mejs4tejuk3sjul3kjuss4jus4tjä5lojär5sjör2sjös4t3kad_ka4dr5kafäka5ju4kalf4kalg3kamp3kamr3kan_5kano3kapi3kar_ka3ra4karbka5ri4kark4karp4karvka4sk3kat_2k3d4kdom42ked_2kedake3drked4ske4er2kefu4keldkels4ke5nÃ¥3kernkes3s2k5g4kid3skik4skilt45kimÃ¥4kins2kintki4nuki4trkiv3s5kjol1klag2klat5klavk2lej2kligk2lim3klipk2lis3klos1klub4kluk1klädk4nal5knip3k4nuk5nykko5dek5odlkog3nko4gr4kola4kolj3komm5kompkom4s3konf3kontko3nu3korgko3ri2korrko3sl3kost4k3ou3kraf1krig4krivk3ryg4krälk3rätks3chk4serks2k4ks3klks5kvk3skäk3sköks2lik5slyks3plk1s4tk4texk2todk2tomkt3rekt2stkt5t4k4tugk2tutk4tälk5ugnku5la4kuld3kulö5kunnku4ro3kursk1vär3kyrkkäl4m5kämp5känn3käns3kärl5köp_kör4l2ladm4ladr5lagmlag3r5lakila5lo2larb1larnlar5s4lartlas3h4laskla4st1lat_la5trla5vuld3ral5dryle5igle2klle4kv3ler_ler5k3lernle5tÃ¥le3umle4vul3g2llg5stli5chli4golig3slik2llik3s2lind2lini5linj2lintlis3cli4volivs1l2jak4l1jol3jörl5kjul5kläll3drlle5bll2sell2soll3trll5unl5lödllör4l4mollm3stlo2af4lodllo4do2lolj4lord2lorglor4slo4vol4pakl5plalp5lölp4stl4sjol4själ3skilsk3nl3skyl3skÃ¥l3skäl3sluls4mol3spels3pll3stals4tel3stol3styl3stÃ¥l3stäl5stöl5surl4svil4tefl4tifl4tihl4tosl4trölt5sklung32lupplu4pu4lutb4lutsl4voslv3rilv3splväv4lyg3rlÃ¥g3s1lÃ¥nglÃ¥4skläg5rlä4splö4väma5frmag5nmag5sma5jumak3rma3limand4ma5nimash5mas4vmb4skm4datm3d4r2medsme4dume4klme4ko4meldmelo5me5lumen5kme5nume5nyme4somes4t2metam4fes2m1g4mid3smi4lu2mind4mink4minvmi3nömi5sfmi4spmi4tr2m1m2mme5dmm3s4m4mulm2namm4navmn5drmn3g4mn5stmn5tum2n3Ã¥2momrmo3namos3kmo2tamo4tumot3vm2pakmpos4mp5p4mps4kmp5spm4salm4skems3lämste2m1stom2strms5äp3musi1mÃ¥l_5mÃ¥n_mäns43märkmö4blnads3na5gr3nako3nakrn1akt2nalf4nalgnal3sna2lun5amb5namn4nanv2narb2nark4narm2nartn3chan3chen3chincis4n4dakn4davnd3d4nde3sn4dilnd3rind3snnd5Ã¥sne4di5nedlned3sne4döne2gr4nek_ne5ly4nenlne1ut2n1f4nfis3n4garn4getng3igngi4sng4lyng5omng3orn4gröngs1kn4gödni5ecni4kini5lin4jarn3junnju4sn3knynk3rin1kronk5slnk3spnnis42nodlno4kl2nolj2nomr2nord2norgno5sano5scno4tun1skin4socn1spins3plns3pons3s4n1svans3vin4trönts3cnt4sen4tutn3tvÃ¥n5ugnnums5n3upp2nutbny5gr4nög4nö2janö5kro2ard5o4bjo4blioc3kuode4kodi4a1odlio3droods4kod2sto4gavog3gro5gloo5glyo4grio4gröog3seo4kliok3slok4suo5lakol5auolfö4ol3kaolk3rol4kuol4käol3läolm4soln3sol4saol4tÃ¥o4lugo4lurol5Ã¥ro3menom5paom3pl4omraom1skom4trom3tvon5gion1gron1k4ons3cons3mont4soom5sop4plop4prop4puo3priop4sto3rako2rap1ordno4reh1orgaor4gror4gÃ¥or4möor4nuor4näor4plor5pror5teor2trosk4lo3somos4skos4tr4oti_4otie4otino5troot3svot5tiott2so5tunou3röova4nov4siov3slpaki3pa5lapals5pa5lä2parb4parmpar3s2paskpa2st3patr2p3d44peld5peng3penn3perspi4elpi5so3pjäs4p3k2p4lacp3lev3plex3plic1plik4plit1plomp3lop4poljpoly32porgpo4väp4paxpp3lapp5lupp3lypp3läpp3löpp5ocpp3ofpp3p4pp3rapp3ripp3rupp3rypp3räpp3tr5prax1presp3rigp3rik5prilpro3gp3ror3präs3prövp2salps2lip3snap3sodp1s4tp3tri5pung3punkpus3tpÃ¥3drpä5ro4radrra4du5ra1era3frra5isra2lora3plr4ar_4rarbr4are4rargr4ark4rarmr4arnr4ars4rartra5röras3hra2stra5yor4dafr4dosr4dulr4dös5recore5du4reft4reggre1kr4reldre3lurem5p3remsr4en_2reni2renk2renlre3nö3rer_3rern3reso3ret_4retyre5tÃ¥rg3g23rial3rifi2rifr3rifu3rigtrik2sri4mo2rind2rinr2rins2rint3riotriv3sr4jisr4kekrkes3rk2ler4klörk4ner4kodrk3trr4kupr5körr5lavrlds3rl5spr4milrm5trrnal4rn3g4r2nomrns4krns4tro2kr2roljrom4aron4vro3plro4ra2rord2rorg3rornro4snros3vro5ter4plörra4nrres4r5ribrr5k4r4robr4romrrs2kr4rurr4sexr2sinr1skir2skur3skör4sler4slors4mors5när2splr2spors3s4rs4ter1storst4rr3stur2svär2tafrt4anr4tomr3trär4tutru3brruks13rum_runn24rupprus2hru4virv4sjrÃ¥5rarÃ¥3st4räkträs3sräv5sröd5rröd3srök3srör4srö4str1övr3sad_3sade4sadjsad5ssa5lo3s2amsa2ma4sang2sanl2sarb2sarm3sarn2sart4sarv4sass5sat_sa4tus3auk2s1av2sch_1scha4schb1schi4schk4schm4schp3schy3schösci3p3seglsek3r3sel_se5ly3sen_3set_2sexp4s3g2shi1ssid5s3s2ig4sinrsis4t2sjak5sjuk4sjur2ska_s4kags2kal1skap4skar4skass2kats4kav4ske_3skif5skin5skiv3skju1skol1skot1skris4krus3kups4kve1s2kys4kyns4kÃ¥l4skÃ¥r4sla_4slass1lats2levs4lic4sliss2lits5lors3lucs3luf4slus3slut3slÃ¥_s4läks5läms2läts2maks2mals2mids2mit5smug5smygsmÃ¥5gsmÃ¥3ksmÃ¥3s3smäd3smäl4smäs3smör2s2n43snabs3nams5ner3snib3snil3snits3niv3snut5snÃ¥r5snäcs4när3snö_snö5g3snörsnö3s5sock2solj5sommso4pu3sor_2sord2sorg3sorn4sott4spas4sped2spen2sper3spirs1plaspli4s5plä4spre2spros3pry3sprÃ¥1s4pÃ¥3spÃ¥n3spÃ¥r5späns5sads5silss5klss2läss2löss3nass3vi4sta_5stacs4taf1stau4stea2stia2stib2stid2stil1stits5tju5stoc1stol4stom1stru2styp4stÃ¥g5stÃ¥l3stäl5sun_5sunes5ung5supasu2pu2s1utsu4tosu4tr5svam4svap4svass3vat4svec3sven5sveps5ves4sviss5vÃ¥ds3väss3vätsyn3ks3yrksys4tsy5thsÃ¥ng34sätas5ögasö4kosör2sta1ch4tadi2taff3taga5tak_4talf4talv3tame3tami3tan_4tanl3tar_4tarb3tarntars44tart4tarv4task3tasttats32tatt4tavetav2st3chat3che2t3d4te4aste3b4tej2ste4kl4teld5tema4temote4mute4nä5ter_5term5terster3tte4ru5tes_5testtets34texa2texp2t1f42t3g4t4hen3tial5tici5tideti4du4tidöti4ed3tighti4goti2gr3tigttik3l3tiks5tilj5time2tind2tinr2tintti4od3tionti2os4tisc5tisk3tiva4tjob2tjou4tjäl4tjäm3tjän2t3k22t5n4tne4r4todl4tol_4tolj2tomr4toms4torm3torntos4kt4raf4trar4treg4tren2troct4rogt4rup1tryc4trÃ¥k5trä_3träd3träf3träg4träkt4ränt4rött4segts4ent4sext1skits3klts3nät3snöts3plts4tets3tjt3sudt3tact4taut4tedt4temtte2nttes4t4text4tiptt3jatt3rett3ritt4rytt4sett2sit4tugtt4vÃ¥t3tör2tund5tunn2tupptu5re2tutbt3utvt3utötu4vut3vigt3vit3tvivt3vÃ¥g3tvÃ¥nt3vänty5da5tyg_ty3pi4t5äg4tärm3tävl4tö4dtö5detö4piub5alu3chau4dakuds4auf4fäuf4to4u1gaugg3sugns5ug3s4u2kebuk5laukos4ukt5suk4täul4diul4duul4döul2trum4fäum4soums4tu3mörund3run4dÃ¥ung3r3unifunk3lunk3nun4krun1skun4tr1uppgupp3sup5utur5aku4robu4romu2sakusen3u2s1kus3kaus4kru5skyus4kÃ¥us5läu4stÃ¥u4stäu4taku4tefute3sutik2u5tiluti3öu3toputo5sut4ro1utruut3slutt4jut3övu2vak1vagnval3k5valv5vama4vanp2varb4varkvar2sva1ru5vavi2v3d4ve3ke4veldve3nyve5növer5g3verkve1st3veta3vetevid3svil4tvi2novi5ny3vis_vi5savis5hvi4stvi2tr2v3k22v1n44vok_4vord2vorg5vrakv1s2kvs4miv3snivs4tevs3vÃ¥vu4d1v1und4v5up5vÃ¥ld3vÃ¥rd4vÃ¥rivÃ¥3ru3vänl4värj5värky5danygg3ryg4gÃ¥ygs4pyl4gjyl5läyl4trym2flyng3rynk5lyn4sayns4typ3riyre4syr4kuyrk5vyrs4kyr5styr5tuy1rÃ¥3ys2stys3tays3tiy2taky4te_y4teaytt3rze4roz4zinÃ¥ds4lÃ¥ge2lÃ¥g3stÃ¥2linÃ¥l3stÃ¥nd4rÃ¥n4duÃ¥ns4tÃ¥ns4vÃ¥5plaÃ¥r4doÃ¥rd2sÃ¥4relÃ¥5rorÃ¥r2svÃ¥s4keÃ¥t3riÃ¥3trååt2sjÃ¥tt5säck5vädd3säd4duäde4säd5seäd3stäg4goäg4reäg3seäl2tuämp3länd3räng5ränn3säns1län4stän4sväpp3läp4stä4rapärg5lär4grärib4är4käär2nåär4nöär5obä5rolä3ropä5rorä5rosär2siär2soär4spär2svär2trärt3säs3paäs5piäs4skäs4späs3taäst3rä4stää5treät5teätt3rät4tuät4tvä2vakö4dakö4dalö4disöd3raöd3seög5akö5garö5gerögn3eög3siög3sköj4svök3slöl4kvöl4kööman4öm2klö4nalö2nomön4soö4pelöp5liö5plo1öppnö3rasö3resö3retö5rigör5irör5ivör3olör1orör3slör5teört5sör3vrörö4dö2sakös4sjös2skös4spös3taöst3vö2taköt4stöver1öv3raöv3riöv4sk', - 6 : '_ab5ol_a5gre_al4pr_am4br_amp3l_an5go_a3sti_au3st_a4val_av3s4_bak5s_ben5s_bort1_e3l4a_en5st_e2r3i_evan5_feb3r_fram3_fres5_för1a_gu4lä_hu5sa_in3s2_is5ka_ko5li_köp5s_lak5r_lu2st_me4re_mon2s_mÃ¥n3s_mÃ¥4st_nöd5r_oc1ku_om3s4_ord3s_o1s4k_re4gr_runs4_rym2d_röve5_seg3r_sta2m_sup3p_ta3bl_tak5l_tig3r_til4l_tre3s_trä5k_ult5r_ung2e_var4t_ved5s_väg3s_Ã¥r4s5_Ã¥ter1abel4sab3ortab5ricab3rioac4kesac4kisack3ska5dran1adresad3ril1af3riaf4toraga4raag5orda4kartak5ramakri5sak3robak4sta1aktigak3trial5admali2bra5lin_a3lineal3insalk3akall3stalms4kal5ortals5paana4boan3alfan3arkan5dakan4dunan4dänang4esan5sceans5kuans3lian4stoan4styan4treape4n3ap4lanapps4kap3ricap3rifa5prisa4ranna4rarvard5sta4rendarg5siar4nalarsk5lar4troarts5par4turar4vägasis5tas3kisas3pigass5upas5terasti5oas5töra4sundata5raa3tral4atrara4t3reat3riaa3tricat3riea5trika3trisa3t4roa4tro_at4ska1attacat2takat4tosa4tungau2t5a3automa4vartbad3s4bank5lbas4taba5stub4battbb4lerbe3d4rbe4stabe4stebis3kobi5skvble4mo5blera3blikr3bliksbor4tibort3rborts22b5raf3brik_b3rika3brike3briksb5riköbru4stb4slanbund4sbus2stcens3t3centrck5lisck3orgc4kortck3sla4dand_del2sade5lutden2tode5roldes3tidfö3ra2dinspdis3kodis1krdis5todi4tredjup5pdom2skdo4pak4d5ord3d4ragd3randd5rarbd5ratu4d5rik3d4riv3droppd3räkn3dräktd2s1ands5enhds3insd3skefds4kends4lotds3tald5statdste4ad5stigds3tinds5trodu4stedy4kaneb3rile4danse5draled2skoed3s2leg2lere4graneg5rateg3rinek3latek3orrek5visel1aktel4arbeleb3rel4fraeli5kuemon1sem5ortemp5leen5artene3röen5kloens5keens4teent4haen2t1rent3rient5ruepp2s3epps5ter4gÃ¥se4rinfers4leer4staer2steer3stres5alles3arme4skanes5kares3keres5kule5slagess5läe3stales3tine3struest4röe5tri_et3risets2adets3krets5paetu4rieu4se_eu5troe4varmfac5kefes5tafe3stoffö5refin5smfisk3rflo4dafor4mofost3rfram5p5frerifri5spf4tarmft4setft2s5ifts5väfäs5tifö2renför3smför3sugall3s5g2atig5avsn3gelisgel5stgel5änge4nap3g2enigenom5gen4sag4ense1g2ent1g2era3g2erigers5n5g2ettggs4lagg3s4tgg3s4vgi4stegis4trg4lans5glaseglas5k5glasögon3s4gra2m55grans5grett4g5rikgrus5t5gränsg5sattg5skafgs4kotgs4porgs5pregs3takgs3talgs4teng3stifg3stolgs3tragst4reg3stämg4s3vegul4dagytt3jgÃ¥rds52g5Ã¥ri2g5örthal4sohalv3Ã¥ham4sthasp5lhets3thets3vhis2skhjäl3shos5tihust5rhys5tahälls1hälso3hä4varhö5genhörn5shöst5ri5brilick3u4iden3s3ifrÃ¥ni4kartik5läni5krobik5rofik5rosik5s2hik5u4til4danil5lakil4likill3s2il5läril2minim2b3rin4ge_ing5isin5kve1innehin4sem1inspein5sprin4stÃ¥in4trais5kepisk5nais4kuni5slamis3länis4priiss3täi1stalis4tesis3tigist5roit5rani5trini3trisit4t3r3jakt_jd4styje5staju4kosjus5krjus5tajäl4sa3kade_k3aktikal4lokall3s4kand_ka5plakap4prkaps5t3karnakarp5s4kart_4kartekas3ti3kats_4kensekfö3riking3r4kinnek2lamakla4mi3klass2k3läg3k4nap3k4nivkog4s3ko2linkol5tr5kolv_2k3omr3konstko5s4kko4str4krang5krerakrigs33kroppkrÃ¥k5skrÃ¥4pakräk5lksaks5k2s5asks5kraks5tidkti5gek4tinnk2tinskt3rink5trodkt5rogkt3rolkt5rätkum5plkungs5ku4penkust3a3kvalik5vare3kvarnkvar3s3kvartk4vato1kvinn5kvire3kvällkydds3ky4linköks5tkör4sl1lade_3lagd_la4ginlan4dilder4slds4anle4ge_lem4sö2l5enlle5s2lli5kli5limerling5o4lingrli4stalk5lagl3k4rallok5vll4sanll3skall4svall4tigll5örtloc4kulod3stlo2ge_l5skotl3skrälskÃ¥4pls5nytls3poll4stakls5terl4stygls5vidlta2tul4tretluk4to4lull_5lust_l4varmlvers4ly4gatlyg3s23lyste5lystnly4strlÃ¥ng3slÃ¥s5telÃ¥4stÃ¥1ländslä4sanlätt3s3lörermang2amani1k5ma3rimas3koma5skömas3time3stimet3roming4omin4krmiss3tmi4te_mitt3smnas3tmo4tinm4partmp3ladmp3latmp3linm3slagmulls3mult5rmun4komu3stamut4slmys4temäs5tamör4klna3kro5nalfl4nand_na4rapnast3rncyk3lnd5raknd5rasnd3ratn5driln3dropnd5rosnds3ornds5väne4d3rner5smnes3s4ne4stane3tren4gen_n4gendn4gensn4germng3radng4serngs3panings1nip4prni3t4rniv5skniv5stn4kartn4kis_nkrus4nk4tinnn3s4tnom3s4n4sintn4sis_n4sisens3kanns3korns5lasns5mitn3stapns4teln3stifns3tigns4transt5upn3s4tyns3värn4tarkn4tinfnt3radn3trahn3trakn5tramnt3repn3trernt3riant3rinnt3risn4trornt4strnufts4nös5keoc4k5rock3sko5dralods4tiod5stuoffs5tognos4og4s3toll4siolo5kvom4bräo4mordom4ste3omsätongs4lo4ninsonsi3son4treopp3leor4d5äor4spaort3reort3roo3s2fäo1skopos5pigos4s4tos3tigost5röos3tulot5runot4träotvin4o3ut3tovs4mepakis44pand_pan4trpa5skipent5rper4bl3perioper4slpe5tropi5stapi5sto5plan_p4lanep3larn3politp4partpp5askp4pinspp3linpp5lispp3lÃ¥npp3lÃ¥tpres4t3princpring3p5riol3psalmp5s2hops4kenp4stakp4stävpul5trraci4t3rade_2raffär4anderand3s2ransvr3arta3rativra3trirda5grrd3ranrd3rat4reausre3d4r3regn_ress5kre1sti4retetret3ro2revigrfö3rir3ifrÃ¥3riktnrind3sring3rri5pleri2stäri4tutri4visrk3aktr3klasr5lakar4marbrm2s5jro4grorol4li5roman5ronau5rond_ropp2s2roriero4sinr4seldr4skidrsk3nars4kosr4s5lörs5natrs5takr5stekr4stonr3strörs4vagr4tinsr5tritrubb5lru4danruks3vrunns5ru5sha5rutigrut4rarydd5srÃ¥ge5lrÃ¥ng3sräck5sräng3sräns5trä4sanrä5stiröd5elröns4tröst3r2sa3drsak5ri2s1aktsa2morsand3ss3anlä3s4ar_s5arm_2schau1schen1scher1schetse4at_2s3eggseg3rasek5lesek5trs5ersäs4fär_5s2hawsi4erisi4esksi2ettsikts35sill_silv3r2s1ind2s1inf3sinni2sin1ss1inst5sint_2sintrs3jaktsjäls3s2kado1skaft3skal_5skap_4skapiskaps1s4kara5skarv3sked_s4kene3skepp4skis_5skjorsk5laps3klas3s4ko_1s4kog3skolas4kolos4korp3skratsk4ret3skrev3skrifs3krig5skrin3skrips5kris3skrivs5kron5skrub3skruv5skräc3skulp2skyrk5skÃ¥p_5skänk3skärvs5lad_s3lands4lants3lar_3slev_slins3s3lustslu4to5s4lÃ¥rs5länn3s4läp4s3lär3s2löj3smak_s3makts2met_3s4nacs5nares3nast1snittsol3s2son4stso5pras5ord_s4park5sparvs3passspa5tr3s4pek3s4pel5spets3spills3plans4plin5splits3pres3sprit5spränss3kunss3unn3stadi5stam_5stamm1stant1state3statl2s5te_5steg_s4tek_2stekn5stekts4tell3stem_3steme1stera3stick3stil_3stink3stisc3stjäl3stjär4stolkstor3s3strec3strejst3ren1strer2stria1stridst4rif3struks3tryc5stryk5strÃ¥k3strÃ¥l3sträc4sträd5sträv3ström2st3s4s3tvis5svag_s3vagn4s3vaksvars33svart4s3ver4s3vils4vines5vitt3svÃ¥ri3sväng2sÃ¥lde2s5ägg2s3ört3tade_4tads5ta5kretak4totall5sta4nabt4ap3ltar4mita1strta4tan3tavlote2g1rte3grete4int5te5löten3g45tensiten3trte5nör5teriöter3k45ternates4tete5stu5tetiktifts5ti2gel5tikul3tillv3tilläti4van5torapt5ord_torm3stor1st4tort_t5ost_3trafit4rala5tralo3tralst4ralt3transt3ras_t3rat_t4rato4trer_4trern3tribu5tricktrids3t5rielt1ringt3rockt3rono5tross5trotnt4rump3truppträds4t3räkn5träni5tröjats5artt3s4att5slotts5läkts3ordts5tert3stolt4stont2strat4stryt4sturt5styrtte5g4t4tinstt3radtt3rattt4sta4t5ugn3tungatung3s3tvingtvär3s3tvätt3tyngdtäc4ko3törertörs3ttö4vasubb4leub3licud4retuf4tanu3itetuks5koulds2mull3änuls5tiun4domung5itungs4pu4pernu3pletup3lik3uppfaup4pin1uppla5uppläup4p3rupp5spur5arvur4stäus5anlu3schaus4klaus3penus5tatus3tigu3stikus5tinust5ro3utjämut4rerut5rop2utsid3utslä3utvecva5droval4lival4st4vand_van4stvan5trva4resva4ri_vart5rvas5ti5vattnve2s5pvet5savett5svild3s3vind_3vinklvis5kovis3tavi4varvmörk43vrerav2skrivs5trÃ¥v5stycvÃ¥ngs3vägg5s3värdevä4ril3världxan5d4y4brisyk5lonym4fory5schoyst3razo4nalÃ¥g3s4k5Ã¥klag1Ã¥lderÃ¥ll4spÃ¥l2s5eÃ¥man4sÃ¥rd4ra5Ã¥rsavÃ¥s4skräl4papäl4segäl4sluäl2t3räl4vinänd1stänni3säns5teän2t3rär2breär4nisärn3stär4skoät4s3kät4topö4darvöde4s5ö4karmöns3keönst3rö4raskör3d4rör1eniö3ringör3intör4kalör1k2lör5kliör4nisör1s2kör4släöts5ko5övere', - 7 : '_a5g4ra_a2n5es_ang4er_a3sket_a5sten_bild3s_e2l5in_e5skad_es3kal_es5kap_fÃ¥gel3_för1en_in4ger_kans4k_kort5s_kring3_lek5tr_mas2ke_minis4_mörk5r_o3stra_papp5s_pa3ste_pa5sti_pi5sti_pres2s_re2ste_slut3s_sten3s_tes3ta_topp5s_tred2s_u5trerack3u4pa5kvariandel2sansis3tans3par1ansvarapo3str1apparaa4rigenark3lanar5skalas2s5opa5stardast5raka5stralast3rolbors5tebort3sl2b5ratic4kordndels5tidenti5öder5stidin3g4odis3tradrotts3dub3bleechiff5e3glerae5gleriekord5sek4ret_enning5ens4vinerings3erk4liners4kene4s3kenes5ten_esti2gees5tor_est5rerfib5rigfi3skalfros5tafru5strfurs5te4gerarbg3starkgs3tillhands4lhan5g2ahop5plohy3sterhÃ¥rd5s4ic4kordik5skorilufts5ind5skäind5stiing4es_in5glasings5tein3skrä3instruis3kopais4s3tri1stansist5attis5ten_i1stentis5tingis5tor_is5toreit2t5opjor4dinjord3s4jut4stajäl4p5rjärn3sk5kaptenk5arbet3klang_k5lock_5klocka3korres5kra3gek4retenkrid5s2kropps5k5rädd_k5slag_kstavs32kvente5lakan_3laktis3lande_5laste_lat4tisler3ste2linga_lings5tli3strölläggs5lt5ratilus2s5plycks5tman5g4omask3romer2skome5trinm5planemst3rin4mun3g45mÃ¥let_mö4gen_nd5skalne5gresne5s4tinfalls5n4gentings5timngs3valnings3knings5vnist3ranslags5n3stansn2striknst5vilnter5s4n2t5ombn5tralant3ralints5koroförmÃ¥4ogno5stoll5släon5stelons4teron3traso5plineoran3g45organi3orientors5tigo5stillost5ronota2lanpek5tripekt3ropel3s4ipos4terpre3stapres5to3rande_3raste_rek5trirgs5toprhands5rs5kollrs5tendr5stenirs5tillr2taktirv2s5käsamman3san3slasilver33s2kada3skaffn5skapet4skogsgskor1sts5kran_3s2langslotts33smitta5spann_4spelsls3plats4s3prissse4linss2lag_3stalla2stalli5stark_5stenar3s4tene3stense5stensms4teriu3sterne5stetiss4tiken5storis3straff3strato5stride2striel1striktst5risk2strumm3strängs1under5svärm_sys5ter2taktig3tande_2t3anfa2tappar5tavla_3tavlan5teknik5tekniste5stik3tillst5tivite3t4ral_3t4ralet3rets_t3ring_t5ronik4tropi_trus5ta5tryck_5trygght5s4andt5skallt3skatttt3randuk3trisull3ste5underl1undervun5g2efurs5tin2v1aktivensk3äving3s45vinst_5vinsteväll4s3xem3play5klistys4tik_Ã¥k4sträård4s3tÃ¥r5s2liäls5kogär4tandö3randeö4reströr5evigör2p5la', - 8 : '_and4rar_cy5klop_e5strad_krings2_mjölk5s_män5sko_skott3s_string4_vatten3ali5stikas5tikerelekt3riennings2ent4rat_ent3ratieri5stikgi5stralhandels35inspeln3instink5klist3r5korterakrings2kkru5stad2lapparallust3ral4skensv5längderni5sterinkrafts5n4tropinos5tikerpul2l5ov4ran4d3r5ringen_rreligi5rskotts3rslags4v5rullerasinne2s35stalgis5startad1steringstori4eu4strativ5tallise5tartavl5torietttran2s5atskotts5ts5tillf1undersöun3gerskun5tratiutlands35ventera4ändligh', - 9 : '_ma5skeri_pub3likad5rasseragi5st4rat' + 2 : "c21df21hx12y", + 3 : "_b4_d4_f4_g2_k4_l2_m2_n4_p4_r2_s4_t4_v2_x2a2ba1ja1oa1t2aua5Ã¥1b23ba4bb3be3bib3k3bo3bub3v3by3bÃ¥3bä3böc3c1ci4ck4cr4cs1cy3da2db4dc2dd3di2dj3do4ds3du3dy4dz3dödé4e1a4eb4ece2de1ee1fe1ge1me1o2epe1v4eä3faf3d3fef5h3fi1fl1fo2ft3fu4fv5fy1fä3fö2gb2gd2gg2gh2gl4gw3gyh5c4hdh3gh2ih1k2hl2hm4hnh3ph1s2hth2öi1ai2di1gi3ii1ti1ö1ja2jb2jd1je4jh1ji4jk2jmj2o4jp2jt5jé2kb4kc4kjkl2k2o2kskv41le2lh1lil1n2lv3lé1ma2mb2mc2md1me2mh1mi1mo4ms1na2nd1ne2nh2nk1no4nsn5zo1ao2bo2do1eo1go1io1jo1ko5qox5oy2o3Ã¥o3ö1pa2pc2php2jp2l1po2pp2ps1pu3péqu41ra2rb1re2rh4rj2rk2rsr3w1sa4sbs2c1se2sh1si2sm1sos2t1su1sÃ¥1sä1sö1ta2tc2th1tit2j2ts2tt2tv2tz5téu1au2bu2du1eu3ju1ou5uu5Ã¥u3ö1ve2vhv4i1vo2vs3vy1wawe2w2hxk2xs4y1ay2dy1ey1iy5wy5Ã¥1za1ze1zi1zo4zpz5s3zuÃ¥1aÃ¥1eÃ¥1fÃ¥3iÃ¥1mÃ¥3oÃ¥1pÃ¥1vä1aä2b2äcä2dä3eä3i4äk4äs2ätö1aö2dö1eö1iö1vé3e", + 4 : "_a4b_ac3_a4d_e2s_ex3_ib4_ik4_o3o_o1u_sk4_st4_u3k_up2_y2a_y4ea5beab1la5buad3jad2sa5eda1gaa1geag1la4hjaib4a3iva3kaa5kea1kiak3na1koa1ku4aköa1laa4lja1loa1lua1lyam4iam1sa3möan3ca1nua5nya3nöa1pea1piap2sa5pya5pä2ara1arb2arha1ri4arla1ro4arp4arua3rya3rä2asaa1scas2has5la3suas3va1sya2söa5tea4tja2trau5b1avgav3rbbb4bb3l4b3dbe5ebe1kbe1sbe3u4bex2b3f2b5hb3je4b3m2b3n5bonbo1sboy54b3p3bry3brö4b3sb4spbst44b3tby5r5cap1c4e4ch_4chtcim2c3kac3kec3kick5jck1lck3nc3kock3rck5äck3öco2aco4m5da_2dak5dam4daxddd4d3djdd2s3d2ed4en5derde2sd4et4dex2d1f2d1gd3gl2d5hdi1o4d5l2d1m2d1nd2ol5dondo3y2d1pd2sed4sfd2sid2sjdsk2ds1ld2sod2suds1vd2sö2d3t4dupdu1s4dut2d1vd3vr2d3w5dÃ¥g2dÃ¥s4dÃ¥t4dägdä2r4dög4döpe4ame2bre3che3coed3je3dÃ¥e2ede4eief4se3gae3geeg1legs3e5gÃ¥eig2e3ike1ine1joe3jue3jäe5jöe3kae1kie1klek3ne1koe1kue1kye1käe1lae1loel3p2enj2enye2ogeo4ie5ore1pee1pie1prep3se3pÃ¥e1rie1roerp4e1rue3rye1räe1sc2esees2ke1sle1spes2ue1sye5tie1toet2se1tue1ty2etze1täeuk44eure4vjev3r3expfac44fav4f3b4feffe2l4fex2f1ffff4ff3lff3nf3foff3rffs4f3fäf3g22f3k4f3mfma44foffol24f3p2f3sfs2kf4slf4smf4snf4spf4stf4svf3taf3tif3toft5tft1vg4av4gaxge2a2gefg4emge2o2g1fg1gag1gegg5ggg1lg4gu1g2igi1o3givgi2ög2jog3jä4glj2g1m2g1ng2no1g2o3go_3gol2g1pg2r4g4rÃ¥2g2sg4sfgs1lgs1mgs3ngs3sgs1vgs1ä2g1tg3tr1g2u4gug4gup2gut2g1v1g2Ã¥g4älg2ärgä4s1g2ö4göghav24hirhi4th4leh2na4howh5ruhu2shä4shö2ghö4sia3gi3cai5coid1rid2si3dÃ¥i4dö2i1ei5fni1frig1li1kiik3ni1koik1vi3kyi3kÃ¥i3köi1lail5ki1loi3lui5läi1mui5mÃ¥i3mäi5möi3niin5ji1nui1näi5oci1ogi3oki1oli5omion2i1opi1ori1osi1oti1pei1pii3rai1rii1roi1ruis2hi2skis3mis3nis5vi3syi4sÃ¥it5ci4tj4i1ui1vai1viiv3riv2si1vÃ¥ix2tjd3rj4duje2a5jef2j1f4j3g4jinj4klj3kojk3v2j1l2j1n3job3jouj5pl2j3r2j1sj5saj4skjts42j2u4jur1k2a3ka_2kafka3i2kak2kap3kas4kau1k2e3ke_2kepke2s4kex2k1fkfö22kh44kif1kigk3jä2k3k2kle2k1m2k2nk4ny4koc1kom1kon1kor2k1pk2r4k2sok2su4k1tk2tr4kug3kusk2vek4vok1vÃ¥4kög3la_2laf2lak2lau2lav2lb44l1c2l2dl3dj3le_2lex2l1f2l1gl2gjlgs43lif3ligli1o2lip1ljul5jÃ¥l1jä2l1kl3kel2kll2krlk3tl1lalld4ll3kll1ll1loll3pl1lull5vl5ly4l1m2loml1pel1pi4l3r2l1sl2scl2skl4sml2spls5sl2stl2sul2svl4sÃ¥4l1tltu4lu5i2lunl1val1vil1vä2lÃ¥_4läc4löl4löm3lön1lösm4dim4domeu42mex2m1fm4fnmis22m1k2m3l2m1nm4odmo4i2m1pm2plm4pÃ¥2m1rms2m2m1t4mud5mum3mur2m3v1mynmÃ¥g44mÃ¥rmÃ¥1s4mägmäk31män1mäs1mät3möj3mös4möv3na_3nad2naf2nak2nb42n1cn2chn5de3ne_2nex2ng1n2gin2go1n2i4nid3ninni1o4nip2n1jn3jän1kin1kon1kun1kö2n1l2n1m2n1nnn3dn3nenn3k2n1p2n1rns2ins2k2n1t4nug3nui3num2nup2n1v4nÃ¥r4nä_4näc3näm3nät3nöj4nölnös4oby4o3däo4flo3fro4gjo4gäo4ilok3no2kvo1la1oljo1loo1luo1lyo1lä1omron3con3jo1nyon5Ã¥o1näo3nöoo4do3oro1peo1pio3pÃ¥4orao1ri4orko1roo1ruo3ryo1räo1röo1too1tuo1tyo5tÃ¥o3täoun4oup44ourou4so1vao1viov3ro1väo3weo3än4pafpag43pappa3u2pb44pem4pex2p1f4p3g1pigpi1o3pipp3lj2p1m4p1np3ni5poa2poc2pofpo2i3pos4povp3pep1pipp3jpp1lpp1rp2pup5pypp3Ã¥p2r22pra3pro4prÃ¥4psop2sö2p1t4pug2p1v3päl4pör3que3ra_2rak3rarr4as2rav2r1c2r2dr3djr3dÃ¥r3dä3re_re3b4recre3o4rex2r1f2r1g4ribri1or3jor5jur5jör1kirk3nr1kor1kur1kä2r1lrld22r1m2r1nrn1krn3tro3b2r1pr4pö4r1rrrd4rr1sr1spr1svr1sy2r1trt3t2rut5ruö2r1vry5o4rÃ¥l4räm4räs2rögr3öi4röp3rör3sa_2safsa3i2sap2sau4s3dse2gsem22s1fsfö2s5hö5sie3sik3siosiu41s2j4sjn4sjts4ju3sjö4sk_4skhsk4i4skl4sknsk3s2skt2skv1skÃ¥2sl2s2lus3mjs4nÃ¥3soc2sod5soi2som3son3sots2p21spe4spls3ps3spö4s1r4s1sss2kss1lsss4s2sv2st_st3c2stj2stmst3t4stv1sty1stÃ¥1stä1stösu4b3sugsu3i3sum2sun2sup5suss2v24syk5syl3syn3syssyt25sÃ¥g4sÃ¥ks4äds4äl2säp5säs3sät4söd2sög4söl4söp3ta_tat22tav3tax2tb43t2e5tec4tegte3i4tej5tib3tidt2il3tisti2ö4tje2t3l2t1m3tokt2opt4ov2t1pt2r42tra2tri5trét3sets2kt2sotss4t1stt2sut5syt1tot3tutt1vt3tyt3tä5tuöt1va4tve3typ5tys3tÃ¥gtÃ¥s44tÃ¥t4täm4tög4töpu4bou5clu5deud3ru4duu4dyu2esu1geugn4u5ieu1inu3isu5kiu4kluk3nu1kouk2su3kuuk3vu1lau1lou3luu1läu1löu1muu5nuu1peu1piu2plu3reu1riu1rou5ryu3seus3nu2spus3vu4sÃ¥u4säu2sö1utbut3ju1tout3r2uttut1vu5ty2u1vu4vju4vä5vap4vau4vav2vb42v1c5vecve2k4vepves42v1f2v1gvi4c4vjo2v1l2v1m2vomvos42v1p2v2rv3ruv4scv2sov1stv2sö2v1t4vut2v1v3vägvä4l2vät3väx4vög4vöp3vörwhi2wi2ew4naxis4xli4xti2x4tÃ¥yb4sy4day4doyd3ryds4y4duy4döy1gay1gey1kiyk3ny1koy1lay3liyl5ky1loy3mÃ¥y3ory5ouy1pey5poy1riy1roy1toyt5vy3vay3viy3väå3djÃ¥1gaÃ¥1geÃ¥g3lÃ¥gÃ¥4Ã¥1kiÃ¥1laÃ¥l3kÃ¥1läå2plÃ¥4pöå1riÃ¥r5öås3nÃ¥ss4Ã¥s4tÃ¥te2äd3rä1gaä1geäg1läg3rä5joä1kiäk3näk3rä1laä4noä3peä4prä1riä4såä3toä1vaä3viä5vuöd2sö4duö4döö1ga1ögdö1geögg4ög1lög2n1ögoö3joö1kiök3nök2sö1laöl2pö5läö3peö3piö4prörb4ör3gö1riör1uör3yör1äös3növe4ö2vj", + 5 : "_ab5i_ab3r_a3dr_ad3s_a5kl_a5le_a3lu_a5mu_an5s_ap1p_as2k_as4t_a5ta_at3t_bo2k_cis4_där3_ek1v_e4nä_es4t_e3tr_gus3_he2m_im3p_i2n1_i4na_in3d_ink2_in3t_i3so_ner1_no4n_ok3t_o3kv_o2ma_o2mo_o3mu_on4k_o5sc_o3sl_o3sv_o3tr_sa2k_si5o_sjö1_ta4k_ti3o_u4ra_ur3s_u2t1_u4ta_ut5s_vä2g_Ã¥ng3_Ã¥3st_ä3ro_ö3roab4buabe2sab3laab4scab4ska5daga5deka5delad5epad3opa3dread3ruaf4fo3affäa2ge_ag1grag3roa4gurak3vea5kÃ¥rak5Ã¥ta2linal2kval4käal3lÃ¥al3tral4tual4täalu5salv3sa4mafam4pram3Ã¥tanci5a4nefan3gian1graniu4ank3rano2ia4noka4nopan4sjan1stan4tja2pe_ap3seaps5laps3papu5s4arbi2arbo4arbrar3drar3kaar5kr4arn_a2robar2saar2sva4rura5rusasbe4a2skoa4skras3kuas3paas2skas2spas2stas3taas3toas4tra4sulas2uta2s5Ã¥ati5öat4tjatt3saut5s2a1va2a1vi4a3väba4diba4dobak5lba4koba4kub4bakb4b3rbb4so4beldbe5lube3lybe3lÃ¥be5löbeng4be3nÃ¥be1röbe3slbes5sbe5sube3trbe3tvbi3d44binvb5larb5latb5len3bles5blidbo4grbo2klbo1mubo4sc4brarb5scebs3chb4sofb4stjbÃ¥ng3bÃ¥t2sbör2sceu4s3chau3chef5chocchäs3chör4ci4lucipp4ck4reckus2ck3vack3veck3väcle2acros24dadrdags35dakoda3lida3mÃ¥4d1ap4darb4dartda4trdat5tdcen3ddi4sd4dosdd3radd3redd3rid3drädds3vde1k44deko4deldde3prder1kde2rode4rude3sede3spde3trdias4di5eldi2grdi3kadi5ku4dinf4dinr4dins4dintdi4oddi3scdi4sjdis1pd3jor3djur2d3k2do5lo4domr4dori4dortd5ost2d2r2d3rad3drejd3ren5dresd3retd4ric3drifd3rigd3rind5rocd3ror4drot5dränd3rätd5rödd3skids3klds5knds4mod4smÃ¥ds5nÃ¥ds3plds3s4ds4tedu2scdu5södu4vudy4rodöds1d5öste2akeecis4edd4redi4ued1skedso4ee2k5e4en_e4ene3efteege2le5gruei5gnei5she1iskek4leek5roe1kve3eld_el3k4el3liell3sel3läe4lobel2siel5uge5luv2e1läe5mate5mise2naven4cee4nede4neken3knen5kren5käeno2men3siens2men2spen4sÃ¥e5nus2e1näe3plaep5leep4trepu3ber1ak4eraser3d4erg4ler4gue5riberlä4er5nae3robe2romer3raer5scer3sler3sve5rume5rÃ¥de2sales4hiesi4ues2mies3ples2skes2stes4tre3stÃ¥eta3beti3öe5träets1lets3met4svett3ret4vaet5vuetäc4e5um_e5up4ext4r4fans4farbfa3shfa4stfa4töfi2brfi3lifi2tifolk12f5omfo2nafra2mf4rerfre4sf4ri_5fritfrÃ¥n5f4taff4takf4tapfte4rf4texf4tinf4t3rft2saft4sjfts4tfu5rufu3tufy4mafÃ¥3töfö2rafö2riför3kfört4för1öga5br3g2ag4gakt3g2alga5läga4no2garb4garmga2ro4gartga4stga4sugaus4g3d4rge5b42ge4jg2eligel5y3gelägen5g3genj4genm4genvge5ny3genä5gesege4toget5sg4gapg4gosggs4mgh4tegi5sn3gjor2g3k2g1larg2lasg4lidg4lög5glömg4nag4gont2gord4gorm4gortgo3sl3graf5gral4gras5grecg3rig5grip3grisg5roigro2v4grum5grÃ¥_grä4ngs1ang3selgsi4dg3sjugs4kigs3kng3skyg4smegs4nigs4nögs1orgs3plgs3pogs3pugs3tjg4suggs3vigs3vÃ¥gs3ytguld34gulägu2magu5rugus4kg3utbgö5roha3blha5geha4liha5raha4scha4sphas3thavs3he4athe4frhe4lähets1h2nitho5nuhop3shos3phyg5rhys4thäll2hä4rihög5ria3fria4luia4skia3tri2b3li4ce_i5chaid4gei4domid3roids3vi4dunifes44igani2gebig5ejig3noi3kloik3rei3kuli3kumi2linil1jö3illuil2tji4lupim5smim4soi4nau1induin4gai4nif5inre1inri3inräin3slins4min3snin5te1intrint3si4nunin3ymio4krio5lii3onoions3ipos4ip5pii4resirk5liro3pi5sceisel4is3kuis3kyi2s3pis3sais3seiss5nistÃ¥4i4teii4texit4tui2t5Ã¥i2vaki4vinix5tu4jarbjas5pjo4kr4joljjo5löjs4mejs4tejuk3sjul3kjuss4jus4tjä5lojär5sjör2sjös4t3kad_ka4dr5kafäka5ju4kalf4kalg3kamp3kamr3kan_5kano3kapi3kar_ka3ra4karbka5ri4kark4karp4karvka4sk3kat_2k3d4kdom42ked_2kedake3drked4ske4er2kefu4keldkels4ke5nÃ¥3kernkes3s2k5g4kid3skik4skilt45kimÃ¥4kins2kintki4nuki4trkiv3s5kjol1klag2klat5klavk2lej2kligk2lim3klipk2lis3klos1klub4kluk1klädk4nal5knip3k4nuk5nykko5dek5odlkog3nko4gr4kola4kolj3komm5kompkom4s3konf3kontko3nu3korgko3ri2korrko3sl3kost4k3ou3kraf1krig4krivk3ryg4krälk3rätks3chk4serks2k4ks3klks5kvk3skäk3sköks2lik5slyks3plk1s4tk4texk2todk2tomkt3rekt2stkt5t4k4tugk2tutk4tälk5ugnku5la4kuld3kulö5kunnku4ro3kursk1vär3kyrkkäl4m5kämp5känn3käns3kärl5köp_kör4l2ladm4ladr5lagmlag3r5lakila5lo2larb1larnlar5s4lartlas3h4laskla4st1lat_la5trla5vuld3ral5dryle5igle2klle4kv3ler_ler5k3lernle5tÃ¥le3umle4vul3g2llg5stli5chli4golig3slik2llik3s2lind2lini5linj2lintlis3cli4volivs1l2jak4l1jol3jörl5kjul5kläll3drlle5bll2sell2soll3trll5unl5lödllör4l4mollm3stlo2af4lodllo4do2lolj4lord2lorglor4slo4vol4pakl5plalp5lölp4stl4sjol4själ3skilsk3nl3skyl3skÃ¥l3skäl3sluls4mol3spels3pll3stals4tel3stol3styl3stÃ¥l3stäl5stöl5surl4svil4tefl4tifl4tihl4tosl4trölt5sklung32lupplu4pu4lutb4lutsl4voslv3rilv3splväv4lyg3rlÃ¥g3s1lÃ¥nglÃ¥4skläg5rlä4splö4väma5frmag5nmag5sma5jumak3rma3limand4ma5nimash5mas4vmb4skm4datm3d4r2medsme4dume4klme4ko4meldmelo5me5lumen5kme5nume5nyme4somes4t2metam4fes2m1g4mid3smi4lu2mind4mink4minvmi3nömi5sfmi4spmi4tr2m1m2mme5dmm3s4m4mulm2namm4navmn5drmn3g4mn5stmn5tum2n3Ã¥2momrmo3namos3kmo2tamo4tumot3vm2pakmpos4mp5p4mps4kmp5spm4salm4skems3lämste2m1stom2strms5äp3musi1mÃ¥l_5mÃ¥n_mäns43märkmö4blnads3na5gr3nako3nakrn1akt2nalf4nalgnal3sna2lun5amb5namn4nanv2narb2nark4narm2nartn3chan3chen3chincis4n4dakn4davnd3d4nde3sn4dilnd3rind3snnd5Ã¥sne4di5nedlned3sne4döne2gr4nek_ne5ly4nenlne1ut2n1f4nfis3n4garn4getng3igngi4sng4lyng5omng3orn4gröngs1kn4gödni5ecni4kini5lin4jarn3junnju4sn3knynk3rin1kronk5slnk3spnnis42nodlno4kl2nolj2nomr2nord2norgno5sano5scno4tun1skin4socn1spins3plns3pons3s4n1svans3vin4trönts3cnt4sen4tutn3tvÃ¥n5ugnnums5n3upp2nutbny5gr4nög4nö2janö5kro2ard5o4bjo4blioc3kuode4kodi4a1odlio3droods4kod2sto4gavog3gro5gloo5glyo4grio4gröog3seo4kliok3slok4suo5lakol5auolfö4ol3kaolk3rol4kuol4käol3läolm4soln3sol4saol4tÃ¥o4lugo4lurol5Ã¥ro3menom5paom3pl4omraom1skom4trom3tvon5gion1gron1k4ons3cons3mont4soom5sop4plop4prop4puo3priop4sto3rako2rap1ordno4reh1orgaor4gror4gÃ¥or4möor4nuor4näor4plor5pror5teor2trosk4lo3somos4skos4tr4oti_4otie4otino5troot3svot5tiott2so5tunou3röova4nov4siov3slpaki3pa5lapals5pa5lä2parb4parmpar3s2paskpa2st3patr2p3d44peld5peng3penn3perspi4elpi5so3pjäs4p3k2p4lacp3lev3plex3plic1plik4plit1plomp3lop4poljpoly32porgpo4väp4paxpp3lapp5lupp3lypp3läpp3löpp5ocpp3ofpp3p4pp3rapp3ripp3rupp3rypp3räpp3tr5prax1presp3rigp3rik5prilpro3gp3ror3präs3prövp2salps2lip3snap3sodp1s4tp3tri5pung3punkpus3tpÃ¥3drpä5ro4radrra4du5ra1era3frra5isra2lora3plr4ar_4rarbr4are4rargr4ark4rarmr4arnr4ars4rartra5röras3hra2stra5yor4dafr4dosr4dulr4dös5recore5du4reft4reggre1kr4reldre3lurem5p3remsr4en_2reni2renk2renlre3nö3rer_3rern3reso3ret_4retyre5tÃ¥rg3g23rial3rifi2rifr3rifu3rigtrik2sri4mo2rind2rinr2rins2rint3riotriv3sr4jisr4kekrkes3rk2ler4klörk4ner4kodrk3trr4kupr5körr5lavrlds3rl5spr4milrm5trrnal4rn3g4r2nomrns4krns4tro2kr2roljrom4aron4vro3plro4ra2rord2rorg3rornro4snros3vro5ter4plörra4nrres4r5ribrr5k4r4robr4romrrs2kr4rurr4sexr2sinr1skir2skur3skör4sler4slors4mors5när2splr2spors3s4rs4ter1storst4rr3stur2svär2tafrt4anr4tomr3trär4tutru3brruks13rum_runn24rupprus2hru4virv4sjrÃ¥5rarÃ¥3st4räkträs3sräv5sröd5rröd3srök3srör4srö4str1övr3sad_3sade4sadjsad5ssa5lo3s2amsa2ma4sang2sanl2sarb2sarm3sarn2sart4sarv4sass5sat_sa4tus3auk2s1av2sch_1scha4schb1schi4schk4schm4schp3schy3schösci3p3seglsek3r3sel_se5ly3sen_3set_2sexp4s3g2shi1ssid5s3s2ig4sinrsis4t2sjak5sjuk4sjur2ska_s4kags2kal1skap4skar4skass2kats4kav4ske_3skif5skin5skiv3skju1skol1skot1skris4krus3kups4kve1s2kys4kyns4kÃ¥l4skÃ¥r4sla_4slass1lats2levs4lic4sliss2lits5lors3lucs3luf4slus3slut3slÃ¥_s4läks5läms2läts2maks2mals2mids2mit5smug5smygsmÃ¥5gsmÃ¥3ksmÃ¥3s3smäd3smäl4smäs3smör2s2n43snabs3nams5ner3snib3snil3snits3niv3snut5snÃ¥r5snäcs4när3snö_snö5g3snörsnö3s5sock2solj5sommso4pu3sor_2sord2sorg3sorn4sott4spas4sped2spen2sper3spirs1plaspli4s5plä4spre2spros3pry3sprÃ¥1s4pÃ¥3spÃ¥n3spÃ¥r5späns5sads5silss5klss2läss2löss3nass3vi4sta_5stacs4taf1stau4stea2stia2stib2stid2stil1stits5tju5stoc1stol4stom1stru2styp4stÃ¥g5stÃ¥l3stäl5sun_5sunes5ung5supasu2pu2s1utsu4tosu4tr5svam4svap4svass3vat4svec3sven5sveps5ves4sviss5vÃ¥ds3väss3vätsyn3ks3yrksys4tsy5thsÃ¥ng34sätas5ögasö4kosör2sta1ch4tadi2taff3taga5tak_4talf4talv3tame3tami3tan_4tanl3tar_4tarb3tarntars44tart4tarv4task3tasttats32tatt4tavetav2st3chat3che2t3d4te4aste3b4tej2ste4kl4teld5tema4temote4mute4nä5ter_5term5terster3tte4ru5tes_5testtets34texa2texp2t1f42t3g4t4hen3tial5tici5tideti4du4tidöti4ed3tighti4goti2gr3tigttik3l3tiks5tilj5time2tind2tinr2tintti4od3tionti2os4tisc5tisk3tiva4tjob2tjou4tjäl4tjäm3tjän2t3k22t5n4tne4r4todl4tol_4tolj2tomr4toms4torm3torntos4kt4raf4trar4treg4tren2troct4rogt4rup1tryc4trÃ¥k5trä_3träd3träf3träg4träkt4ränt4rött4segts4ent4sext1skits3klts3nät3snöts3plts4tets3tjt3sudt3tact4taut4tedt4temtte2nttes4t4text4tiptt3jatt3rett3ritt4rytt4sett2sit4tugtt4vÃ¥t3tör2tund5tunn2tupptu5re2tutbt3utvt3utötu4vut3vigt3vit3tvivt3vÃ¥g3tvÃ¥nt3vänty5da5tyg_ty3pi4t5äg4tärm3tävl4tö4dtö5detö4piub5alu3chau4dakuds4auf4fäuf4to4u1gaugg3sugns5ug3s4u2kebuk5laukos4ukt5suk4täul4diul4duul4döul2trum4fäum4soums4tu3mörund3run4dÃ¥ung3r3unifunk3lunk3nun4krun1skun4tr1uppgupp3sup5utur5aku4robu4romu2sakusen3u2s1kus3kaus4kru5skyus4kÃ¥us5läu4stÃ¥u4stäu4taku4tefute3sutik2u5tiluti3öu3toputo5sut4ro1utruut3slutt4jut3övu2vak1vagnval3k5valv5vama4vanp2varb4varkvar2sva1ru5vavi2v3d4ve3ke4veldve3nyve5növer5g3verkve1st3veta3vetevid3svil4tvi2novi5ny3vis_vi5savis5hvi4stvi2tr2v3k22v1n44vok_4vord2vorg5vrakv1s2kvs4miv3snivs4tevs3vÃ¥vu4d1v1und4v5up5vÃ¥ld3vÃ¥rd4vÃ¥rivÃ¥3ru3vänl4värj5värky5danygg3ryg4gÃ¥ygs4pyl4gjyl5läyl4trym2flyng3rynk5lyn4sayns4typ3riyre4syr4kuyrk5vyrs4kyr5styr5tuy1rÃ¥3ys2stys3tays3tiy2taky4te_y4teaytt3rze4roz4zinÃ¥ds4lÃ¥ge2lÃ¥g3stÃ¥2linÃ¥l3stÃ¥nd4rÃ¥n4duÃ¥ns4tÃ¥ns4vÃ¥5plaÃ¥r4doÃ¥rd2sÃ¥4relÃ¥5rorÃ¥r2svÃ¥s4keÃ¥t3riÃ¥3trååt2sjÃ¥tt5säck5vädd3säd4duäde4säd5seäd3stäg4goäg4reäg3seäl2tuämp3länd3räng5ränn3säns1län4stän4sväpp3läp4stä4rapärg5lär4grärib4är4käär2nåär4nöär5obä5rolä3ropä5rorä5rosär2siär2soär4spär2svär2trärt3säs3paäs5piäs4skäs4späs3taäst3rä4stää5treät5teätt3rät4tuät4tvä2vakö4dakö4dalö4disöd3raöd3seög5akö5garö5gerögn3eög3siög3sköj4svök3slöl4kvöl4kööman4öm2klö4nalö2nomön4soö4pelöp5liö5plo1öppnö3rasö3resö3retö5rigör5irör5ivör3olör1orör3slör5teört5sör3vrörö4dö2sakös4sjös2skös4spös3taöst3vö2taköt4stöver1öv3raöv3riöv4sk", + 6 : "_ab5ol_a5gre_al4pr_am4br_amp3l_an5go_a3sti_au3st_a4val_av3s4_bak5s_ben5s_bort1_e3l4a_en5st_e2r3i_evan5_feb3r_fram3_fres5_för1a_gu4lä_hu5sa_in3s2_is5ka_ko5li_köp5s_lak5r_lu2st_me4re_mon2s_mÃ¥n3s_mÃ¥4st_nöd5r_oc1ku_om3s4_ord3s_o1s4k_re4gr_runs4_rym2d_röve5_seg3r_sta2m_sup3p_ta3bl_tak5l_tig3r_til4l_tre3s_trä5k_ult5r_ung2e_var4t_ved5s_väg3s_Ã¥r4s5_Ã¥ter1abel4sab3ortab5ricab3rioac4kesac4kisack3ska5dran1adresad3ril1af3riaf4toraga4raag5orda4kartak5ramakri5sak3robak4sta1aktigak3trial5admali2bra5lin_a3lineal3insalk3akall3stalms4kal5ortals5paana4boan3alfan3arkan5dakan4dunan4dänang4esan5sceans5kuans3lian4stoan4styan4treape4n3ap4lanapps4kap3ricap3rifa5prisa4ranna4rarvard5sta4rendarg5siar4nalarsk5lar4troarts5par4turar4vägasis5tas3kisas3pigass5upas5terasti5oas5töra4sundata5raa3tral4atrara4t3reat3riaa3tricat3riea5trika3trisa3t4roa4tro_at4ska1attacat2takat4tosa4tungau2t5a3automa4vartbad3s4bank5lbas4taba5stub4battbb4lerbe3d4rbe4stabe4stebis3kobi5skvble4mo5blera3blikr3bliksbor4tibort3rborts22b5raf3brik_b3rika3brike3briksb5riköbru4stb4slanbund4sbus2stcens3t3centrck5lisck3orgc4kortck3sla4dand_del2sade5lutden2tode5roldes3tidfö3ra2dinspdis3kodis1krdis5todi4tredjup5pdom2skdo4pak4d5ord3d4ragd3randd5rarbd5ratu4d5rik3d4riv3droppd3räkn3dräktd2s1ands5enhds3insd3skefds4kends4lotds3tald5statdste4ad5stigds3tinds5trodu4stedy4kaneb3rile4danse5draled2skoed3s2leg2lere4graneg5rateg3rinek3latek3orrek5visel1aktel4arbeleb3rel4fraeli5kuemon1sem5ortemp5leen5artene3röen5kloens5keens4teent4haen2t1rent3rient5ruepp2s3epps5ter4gÃ¥se4rinfers4leer4staer2steer3stres5alles3arme4skanes5kares3keres5kule5slagess5läe3stales3tine3struest4röe5tri_et3risets2adets3krets5paetu4rieu4se_eu5troe4varmfac5kefes5tafe3stoffö5refin5smfisk3rflo4dafor4mofost3rfram5p5frerifri5spf4tarmft4setft2s5ifts5väfäs5tifö2renför3smför3sugall3s5g2atig5avsn3gelisgel5stgel5änge4nap3g2enigenom5gen4sag4ense1g2ent1g2era3g2erigers5n5g2ettggs4lagg3s4tgg3s4vgi4stegis4trg4lans5glaseglas5k5glasögon3s4gra2m55grans5grett4g5rikgrus5t5gränsg5sattg5skafgs4kotgs4porgs5pregs3takgs3talgs4teng3stifg3stolgs3tragst4reg3stämg4s3vegul4dagytt3jgÃ¥rds52g5Ã¥ri2g5örthal4sohalv3Ã¥ham4sthasp5lhets3thets3vhis2skhjäl3shos5tihust5rhys5tahälls1hälso3hä4varhö5genhörn5shöst5ri5brilick3u4iden3s3ifrÃ¥ni4kartik5läni5krobik5rofik5rosik5s2hik5u4til4danil5lakil4likill3s2il5läril2minim2b3rin4ge_ing5isin5kve1innehin4sem1inspein5sprin4stÃ¥in4trais5kepisk5nais4kuni5slamis3länis4priiss3täi1stalis4tesis3tigist5roit5rani5trini3trisit4t3r3jakt_jd4styje5staju4kosjus5krjus5tajäl4sa3kade_k3aktikal4lokall3s4kand_ka5plakap4prkaps5t3karnakarp5s4kart_4kartekas3ti3kats_4kensekfö3riking3r4kinnek2lamakla4mi3klass2k3läg3k4nap3k4nivkog4s3ko2linkol5tr5kolv_2k3omr3konstko5s4kko4str4krang5krerakrigs33kroppkrÃ¥k5skrÃ¥4pakräk5lksaks5k2s5asks5kraks5tidkti5gek4tinnk2tinskt3rink5trodkt5rogkt3rolkt5rätkum5plkungs5ku4penkust3a3kvalik5vare3kvarnkvar3s3kvartk4vato1kvinn5kvire3kvällkydds3ky4linköks5tkör4sl1lade_3lagd_la4ginlan4dilder4slds4anle4ge_lem4sö2l5enlle5s2lli5kli5limerling5o4lingrli4stalk5lagl3k4rallok5vll4sanll3skall4svall4tigll5örtloc4kulod3stlo2ge_l5skotl3skrälskÃ¥4pls5nytls3poll4stakls5terl4stygls5vidlta2tul4tretluk4to4lull_5lust_l4varmlvers4ly4gatlyg3s23lyste5lystnly4strlÃ¥ng3slÃ¥s5telÃ¥4stÃ¥1ländslä4sanlätt3s3lörermang2amani1k5ma3rimas3koma5skömas3time3stimet3roming4omin4krmiss3tmi4te_mitt3smnas3tmo4tinm4partmp3ladmp3latmp3linm3slagmulls3mult5rmun4komu3stamut4slmys4temäs5tamör4klna3kro5nalfl4nand_na4rapnast3rncyk3lnd5raknd5rasnd3ratn5driln3dropnd5rosnds3ornds5väne4d3rner5smnes3s4ne4stane3tren4gen_n4gendn4gensn4germng3radng4serngs3panings1nip4prni3t4rniv5skniv5stn4kartn4kis_nkrus4nk4tinnn3s4tnom3s4n4sintn4sis_n4sisens3kanns3korns5lasns5mitn3stapns4teln3stifns3tigns4transt5upn3s4tyns3värn4tarkn4tinfnt3radn3trahn3trakn5tramnt3repn3trernt3riant3rinnt3risn4trornt4strnufts4nös5keoc4k5rock3sko5dralods4tiod5stuoffs5tognos4og4s3toll4siolo5kvom4bräo4mordom4ste3omsätongs4lo4ninsonsi3son4treopp3leor4d5äor4spaort3reort3roo3s2fäo1skopos5pigos4s4tos3tigost5röos3tulot5runot4träotvin4o3ut3tovs4mepakis44pand_pan4trpa5skipent5rper4bl3perioper4slpe5tropi5stapi5sto5plan_p4lanep3larn3politp4partpp5askp4pinspp3linpp5lispp3lÃ¥npp3lÃ¥tpres4t3princpring3p5riol3psalmp5s2hops4kenp4stakp4stävpul5trraci4t3rade_2raffär4anderand3s2ransvr3arta3rativra3trirda5grrd3ranrd3rat4reausre3d4r3regn_ress5kre1sti4retetret3ro2revigrfö3rir3ifrÃ¥3riktnrind3sring3rri5pleri2stäri4tutri4visrk3aktr3klasr5lakar4marbrm2s5jro4grorol4li5roman5ronau5rond_ropp2s2roriero4sinr4seldr4skidrsk3nars4kosr4s5lörs5natrs5takr5stekr4stonr3strörs4vagr4tinsr5tritrubb5lru4danruks3vrunns5ru5sha5rutigrut4rarydd5srÃ¥ge5lrÃ¥ng3sräck5sräng3sräns5trä4sanrä5stiröd5elröns4tröst3r2sa3drsak5ri2s1aktsa2morsand3ss3anlä3s4ar_s5arm_2schau1schen1scher1schetse4at_2s3eggseg3rasek5lesek5trs5ersäs4fär_5s2hawsi4erisi4esksi2ettsikts35sill_silv3r2s1ind2s1inf3sinni2sin1ss1inst5sint_2sintrs3jaktsjäls3s2kado1skaft3skal_5skap_4skapiskaps1s4kara5skarv3sked_s4kene3skepp4skis_5skjorsk5laps3klas3s4ko_1s4kog3skolas4kolos4korp3skratsk4ret3skrev3skrifs3krig5skrin3skrips5kris3skrivs5kron5skrub3skruv5skräc3skulp2skyrk5skÃ¥p_5skänk3skärvs5lad_s3lands4lants3lar_3slev_slins3s3lustslu4to5s4lÃ¥rs5länn3s4läp4s3lär3s2löj3smak_s3makts2met_3s4nacs5nares3nast1snittsol3s2son4stso5pras5ord_s4park5sparvs3passspa5tr3s4pek3s4pel5spets3spills3plans4plin5splits3pres3sprit5spränss3kunss3unn3stadi5stam_5stamm1stant1state3statl2s5te_5steg_s4tek_2stekn5stekts4tell3stem_3steme1stera3stick3stil_3stink3stisc3stjäl3stjär4stolkstor3s3strec3strejst3ren1strer2stria1stridst4rif3struks3tryc5stryk5strÃ¥k3strÃ¥l3sträc4sträd5sträv3ström2st3s4s3tvis5svag_s3vagn4s3vaksvars33svart4s3ver4s3vils4vines5vitt3svÃ¥ri3sväng2sÃ¥lde2s5ägg2s3ört3tade_4tads5ta5kretak4totall5sta4nabt4ap3ltar4mita1strta4tan3tavlote2g1rte3grete4int5te5löten3g45tensiten3trte5nör5teriöter3k45ternates4tete5stu5tetiktifts5ti2gel5tikul3tillv3tilläti4van5torapt5ord_torm3stor1st4tort_t5ost_3trafit4rala5tralo3tralst4ralt3transt3ras_t3rat_t4rato4trer_4trern3tribu5tricktrids3t5rielt1ringt3rockt3rono5tross5trotnt4rump3truppträds4t3räkn5träni5tröjats5artt3s4att5slotts5läkts3ordts5tert3stolt4stont2strat4stryt4sturt5styrtte5g4t4tinstt3radtt3rattt4sta4t5ugn3tungatung3s3tvingtvär3s3tvätt3tyngdtäc4ko3törertörs3ttö4vasubb4leub3licud4retuf4tanu3itetuks5koulds2mull3änuls5tiun4domung5itungs4pu4pernu3pletup3lik3uppfaup4pin1uppla5uppläup4p3rupp5spur5arvur4stäus5anlu3schaus4klaus3penus5tatus3tigu3stikus5tinust5ro3utjämut4rerut5rop2utsid3utslä3utvecva5droval4lival4st4vand_van4stvan5trva4resva4ri_vart5rvas5ti5vattnve2s5pvet5savett5svild3s3vind_3vinklvis5kovis3tavi4varvmörk43vrerav2skrivs5trÃ¥v5stycvÃ¥ngs3vägg5s3värdevä4ril3världxan5d4y4brisyk5lonym4fory5schoyst3razo4nalÃ¥g3s4k5Ã¥klag1Ã¥lderÃ¥ll4spÃ¥l2s5eÃ¥man4sÃ¥rd4ra5Ã¥rsavÃ¥s4skräl4papäl4segäl4sluäl2t3räl4vinänd1stänni3säns5teän2t3rär2breär4nisärn3stär4skoät4s3kät4topö4darvöde4s5ö4karmöns3keönst3rö4raskör3d4rör1eniö3ringör3intör4kalör1k2lör5kliör4nisör1s2kör4släöts5ko5övere", + 7 : "_a5g4ra_a2n5es_ang4er_a3sket_a5sten_bild3s_e2l5in_e5skad_es3kal_es5kap_fÃ¥gel3_för1en_in4ger_kans4k_kort5s_kring3_lek5tr_mas2ke_minis4_mörk5r_o3stra_papp5s_pa3ste_pa5sti_pi5sti_pres2s_re2ste_slut3s_sten3s_tes3ta_topp5s_tred2s_u5trerack3u4pa5kvariandel2sansis3tans3par1ansvarapo3str1apparaa4rigenark3lanar5skalas2s5opa5stardast5raka5stralast3rolbors5tebort3sl2b5ratic4kordndels5tidenti5öder5stidin3g4odis3tradrotts3dub3bleechiff5e3glerae5gleriekord5sek4ret_enning5ens4vinerings3erk4liners4kene4s3kenes5ten_esti2gees5tor_est5rerfib5rigfi3skalfros5tafru5strfurs5te4gerarbg3starkgs3tillhands4lhan5g2ahop5plohy3sterhÃ¥rd5s4ic4kordik5skorilufts5ind5skäind5stiing4es_in5glasings5tein3skrä3instruis3kopais4s3tri1stansist5attis5ten_i1stentis5tingis5tor_is5toreit2t5opjor4dinjord3s4jut4stajäl4p5rjärn3sk5kaptenk5arbet3klang_k5lock_5klocka3korres5kra3gek4retenkrid5s2kropps5k5rädd_k5slag_kstavs32kvente5lakan_3laktis3lande_5laste_lat4tisler3ste2linga_lings5tli3strölläggs5lt5ratilus2s5plycks5tman5g4omask3romer2skome5trinm5planemst3rin4mun3g45mÃ¥let_mö4gen_nd5skalne5gresne5s4tinfalls5n4gentings5timngs3valnings3knings5vnist3ranslags5n3stansn2striknst5vilnter5s4n2t5ombn5tralant3ralints5koroförmÃ¥4ogno5stoll5släon5stelons4teron3traso5plineoran3g45organi3orientors5tigo5stillost5ronota2lanpek5tripekt3ropel3s4ipos4terpre3stapres5to3rande_3raste_rek5trirgs5toprhands5rs5kollrs5tendr5stenirs5tillr2taktirv2s5käsamman3san3slasilver33s2kada3skaffn5skapet4skogsgskor1sts5kran_3s2langslotts33smitta5spann_4spelsls3plats4s3prissse4linss2lag_3stalla2stalli5stark_5stenar3s4tene3stense5stensms4teriu3sterne5stetiss4tiken5storis3straff3strato5stride2striel1striktst5risk2strumm3strängs1under5svärm_sys5ter2taktig3tande_2t3anfa2tappar5tavla_3tavlan5teknik5tekniste5stik3tillst5tivite3t4ral_3t4ralet3rets_t3ring_t5ronik4tropi_trus5ta5tryck_5trygght5s4andt5skallt3skatttt3randuk3trisull3ste5underl1undervun5g2efurs5tin2v1aktivensk3äving3s45vinst_5vinsteväll4s3xem3play5klistys4tik_Ã¥k4sträård4s3tÃ¥r5s2liäls5kogär4tandö3randeö4reströr5evigör2p5la", + 8 : "_and4rar_cy5klop_e5strad_krings2_mjölk5s_män5sko_skott3s_string4_vatten3ali5stikas5tikerelekt3riennings2ent4rat_ent3ratieri5stikgi5stralhandels35inspeln3instink5klist3r5korterakrings2kkru5stad2lapparallust3ral4skensv5längderni5sterinkrafts5n4tropinos5tikerpul2l5ov4ran4d3r5ringen_rreligi5rskotts3rslags4v5rullerasinne2s35stalgis5startad1steringstori4eu4strativ5tallise5tartavl5torietttran2s5atskotts5ts5tillf1undersöun3gerskun5tratiutlands35ventera4ändligh", + 9 : "_ma5skeri_pub3likad5rasseragi5st4rat" } }; \ No newline at end of file diff --git a/resources/viewer/hyphenate/patterns/ta.js b/resources/viewer/hyphenate/patterns/ta.js index a7919c2e58..96413cc0e0 100644 --- a/resources/viewer/hyphenate/patterns/ta.js +++ b/resources/viewer/hyphenate/patterns/ta.js @@ -1,12 +1,14 @@ -// For questions about the Tamil hyphenation patterns +// For questions about the Tamil hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.ta = { +Hyphenator.languages['ta'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, - longestPattern : 1, - specialChars : 'ஆஅஇஈஉஊஎà®à®à®’ஔகஙசஜஞடணதநபமயரலவஶஷஸஹளழறிீாà¯à¯‚ெேொாோைௌௗà¯à®ƒà®‚', + longestPattern : 2, + specialChars : "அஆஇஈஉஊஎà®à®à®’ஓஔாிீà¯à¯‚ெேைொோௌகஙசஜஞடணதநபமயரறலளழவஷஸஹà¯à®©à®‚ஃௗ", patterns : { - 2 : 'à®…1ஆ1இ1ஈ1உ1ஊ1எ1à®1à®1à®’1à®”1ி1ா1ீ1à¯1ூ1ெ1ே1ொ1ோ1ௌ1ௗ1à¯2ஃ1ஂ11க1à®™1ச1ஜ1ஞ1ட1ண1த1ந1ப1à®®1ய1à®°1ல1வ1à®¶1à®·1ஸ1ஹ1ள1à®´1à®±' + 2 : "ா1ி1ீ1à¯1ூ1ெ1ே1ை1ொ1ோ1ௌ11க1à®™1ச1ஜ1ஞ1ட1ண1த1ந1ப1à®®1ய1à®°1à®±1ல1ள1à®´1வ1à®·1ஸ1ஹ", + 3 : "1à®…11ஆ11இ11ஈ11உ11ஊ11எ11à®11à®11à®’11ஓ11à®”12ஂ12ஃ12ௗ12à¯1", + 4 : "2கà¯12à®™à¯12சà¯12ஞà¯12டà¯12ணà¯12தà¯12னà¯12நà¯12பà¯12à®®à¯12யà¯12à®°à¯12à®±à¯12லà¯12ளà¯12à®´à¯12வà¯12à®·à¯12ஸà¯12ஹà¯1" } -}; \ No newline at end of file +}; diff --git a/resources/viewer/hyphenate/patterns/te.js b/resources/viewer/hyphenate/patterns/te.js index 1aa47a074f..94d062deb0 100644 --- a/resources/viewer/hyphenate/patterns/te.js +++ b/resources/viewer/hyphenate/patterns/te.js @@ -1,12 +1,12 @@ -// For questions about the Telugu hyphenation patterns +// For questions about the Telugu hyphenation patterns // ask Santhosh Thottingal (santhosh dot thottingal at gmail dot com) -Hyphenator.languages.te = { +Hyphenator.languages['te'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 1, - specialChars : 'ఆఅఇఈఉఊఋఎà°à°à°’ఔకగఖఘఙచఛజà°à°žà°Ÿà° à°¡à°¢à°£à°¤à°¥à°¦à°§à°¨à°ªà°«à°¬à°­à°®à°¯à°°à°²à°µà°¶à°·à°¸à°¹à°³à°±à°¿à±€à°¾à±à±‚ృెేొాోైౌà±à°ƒà°‚', + specialChars : "ఆఅఇఈఉఊఋఎà°à°à°’ఔకగఖఘఙచఛజà°à°žà°Ÿà° à°¡à°¢à°£à°¤à°¥à°¦à°§à°¨à°ªà°«à°¬à°­à°®à°¯à°°à°²à°µà°¶à°·à°¸à°¹à°³à°±à°¿à±€à°¾à±à±‚ృెేొాోైౌà±à°ƒà°‚", patterns : { - 2 : 'à°…1à°†1à°‡1à°ˆ1à°‰1à°Š1à°‹1à°Ž1à°1à°1à°’1à°”1à°¿1à°¾1à±€1à±1ూ1ృ1ె1ే1ొ1ో1ౌ1à±2à°ƒ1à°‚11à°•1à°—1à°–1à°˜1à°™1à°š1à°›1à°œ1à°1à°ž1à°Ÿ1à° 1à°¡1à°¢1à°£1à°¤1à°¥1à°¦1à°§1à°¨1à°ª1à°«1à°¬1à°­1à°®1à°¯1à°°1à°²1à°µ1à°¶1à°·1à°¸1à°¹1à°³1à°±' + 2 : "à°…1à°†1à°‡1à°ˆ1à°‰1à°Š1à°‹1à°Ž1à°1à°1à°’1à°”1à°¿1à°¾1à±€1à±1ూ1ృ1ె1ే1ొ1ో1ౌ1à±2à°ƒ1à°‚11à°•1à°—1à°–1à°˜1à°™1à°š1à°›1à°œ1à°1à°ž1à°Ÿ1à° 1à°¡1à°¢1à°£1à°¤1à°¥1à°¦1à°§1à°¨1à°ª1à°«1à°¬1à°­1à°®1à°¯1à°°1à°²1à°µ1à°¶1à°·1à°¸1à°¹1à°³1à°±" } }; diff --git a/resources/viewer/hyphenate/patterns/tr.js b/resources/viewer/hyphenate/patterns/tr.js new file mode 100644 index 0000000000..88c938a25c --- /dev/null +++ b/resources/viewer/hyphenate/patterns/tr.js @@ -0,0 +1,15 @@ +// For questions about the turkish hyphenation patterns ask +// Andreas Lappe nd at off-pist dot de +Hyphenator.languages['tr'] = { + leftmin : 2, + rightmin : 2, + shortestPattern : 1, + longestPattern : 5, + specialChars : "âıîöüûçğş", + patterns : { + 3 : "2a12â12e12ı12i12î12o12ö12u12ü12û11b11c11ç11d11f11g11ÄŸ11h11j11k11l11m11n11p11r11s11ÅŸ11t11v11y11z12bb2bc2bç2bd2bf2bg2bÄŸ2bh2bj2bk2bl2bm2bn2bp2br2bs2bÅŸ2bt2bv2by2bz2cb2cc2cç2cd2cf2cg2cÄŸ2ch2cj2ck2cl2cm2cn2cp2cr2cs2cÅŸ2ct2cv2cy2cz2çb2çc2çç2çd2çf2çg2çğ2çh2çj2çk2çl2çm2çn2çp2çr2çs2çş2çt2çv2çy2çz2db2dc2dç2dd2df2dg2dÄŸ2dh2dj2dk2dl2dm2dn2dp2dr2ds2dÅŸ2dt2dv2dy2dz2fb2fc2fç2fd2ff2fg2fÄŸ2fh2fj2fk2fl2fm2fn2fp2fr2fs2fÅŸ2ft2fv2fy2fz2gb2gc2gç2gd2gf2gg2gÄŸ2gh2gj2gk2gl2gm2gn2gp2gr2gs2gÅŸ2gt2gv2gy2gz2ÄŸb2ÄŸc2ğç2ÄŸd2ÄŸf2ÄŸg2ÄŸÄŸ2ÄŸh2ÄŸj2ÄŸk2ÄŸl2ÄŸm2ÄŸn2ÄŸp2ÄŸr2ÄŸs2ÄŸÅŸ2ÄŸt2ÄŸv2ÄŸy2ÄŸz2hb2hc2hç2hd2hf2hg2hÄŸ2hh2hj2hk2hl2hm2hn2hp2hr2hs2hÅŸ2ht2hv2hy2hz2jb2jc2jç2jd2jf2jg2jÄŸ2jh2jj2jk2jl2jm2jn2jp2jr2js2jÅŸ2jt2jv2jy2jz2kb2kc2kç2kd2kf2kg2kÄŸ2kh2kj2kk2kl2km2kn2kp2kr2ks2kÅŸ2kt2kv2ky2kz2lb2lc2lç2ld2lf2lg2lÄŸ2lh2lj2lk2ll2lm2ln2lp2lr2ls2lÅŸ2lt2lv2ly2lz2mb2mc2mç2md2mf2mg2mÄŸ2mh2mj2mk2ml2mm2mn2mp2mr2ms2mÅŸ2mt2mv2my2mz2nb2nc2nç2nd2nf2ng2nÄŸ2nh2nj2nk2nl2nm2nn2np2nr2ns2nÅŸ2nt2nv2ny2nz2pb2pc2pç2pd2pf2pg2pÄŸ2ph2pj2pk2pl2pm2pn2pp2pr2ps2pÅŸ2pt2pv2py2pz2rb2rc2rç2rd2rf2rg2rÄŸ2rh2rj2rk2rl2rm2rn2rp2rr2rs2rÅŸ2rt2rv2ry2rz2sb2sc2sç2sd2sf2sg2sÄŸ2sh2sj2sk2sl2sm2sn2sp2sr2ss2sÅŸ2st2sv2sy2sz2ÅŸb2ÅŸc2şç2ÅŸd2ÅŸf2ÅŸg2ÅŸÄŸ2ÅŸh2ÅŸj2ÅŸk2ÅŸl2ÅŸm2ÅŸn2ÅŸp2ÅŸr2ÅŸs2ÅŸÅŸ2ÅŸt2ÅŸv2ÅŸy2ÅŸz2tb2tc2tç2td2tf2tg2tÄŸ2th2tj2tk2tl2tm2tn2tp2tr2ts2tÅŸ2tt2tv2ty2tz2vb2vc2vç2vd2vf2vg2vÄŸ2vh2vj2vk2vl2vm2vn2vp2vr2vs2vÅŸ2vt2vv2vy2vz2yb2yc2yç2yd2yf2yg2yÄŸ2yh2yj2yk2yl2ym2yn2yp2yr2ys2yÅŸ2yt2yv2yy2yz2zb2zc2zç2zd2zf2zg2zÄŸ2zh2zj2zk2zl2zm2zn2zp2zr2zs2zÅŸ2zt2zv2zy2zz", + 4 : "a3a2a3â2a3e2a3ı2a3i2a3î2a3o2a3ö2a3u2a3ü2a3û2â3a2â3â2â3e2â3ı2â3i2â3î2â3o2â3ö2â3u2â3ü2â3û2e3a2e3â2e3e2e3ı2e3i2e3î2e3o2e3ö2e3u2e3ü2e3û2ı3a2ı3â2ı3e2ı3ı2ı3i2ı3î2ı3o2ı3ö2ı3u2ı3ü2ı3û2i3a2i3â2i3e2i3ı2i3i2i3î2i3o2i3ö2i3u2i3ü2i3û2î3a2î3â2î3e2î3ı2î3i2î3î2î3o2î3ö2î3u2î3ü2î3û2o3a2o3â2o3e2o3ı2o3i2o3î2o3o2o3ö2o3u2o3ü2o3û2ö3a2ö3â2ö3e2ö3ı2ö3i2ö3î2ö3o2ö3ö2ö3u2ö3ü2ö3û2u3a2u3â2u3e2u3ı2u3i2u3î2u3o2u3ö2u3u2u3ü2u3û2ü3a2ü3â2ü3e2ü3ı2ü3i2ü3î2ü3o2ü3ö2ü3u2ü3ü2ü3û2û3a2û3â2û3e2û3ı2û3i2û3î2û3o2û3ö2û3u2û3ü2û3û2", + 6 : "tu4r4k", + 7 : "2e2cek_m1t4rak" + } +}; diff --git a/resources/viewer/hyphenate/patterns/uk.js b/resources/viewer/hyphenate/patterns/uk.js index 7a10ee5ec3..095f94dbe0 100644 --- a/resources/viewer/hyphenate/patterns/uk.js +++ b/resources/viewer/hyphenate/patterns/uk.js @@ -1,21 +1,21 @@ -// For questions about the Ukrainian hyphenation patterns +// For questions about the Ukrainian hyphenation patterns // ask Alexey Grekov (athens at ukr dot net) -Hyphenator.languages.uk = { +Hyphenator.languages['uk'] = { leftmin : 2, rightmin : 2, shortestPattern : 1, longestPattern : 12, - specialChars : "аеіоуюÑєїибкпÑтфхцчшщвгджзлмнрй'Ò‘ÑŒ", + specialChars : "аеіоуюÑєїибкпÑтфхцчшщвгджзлмнрй’'Ò‘ÑŒ", patterns : { - 2 : "6'6ÑŒ", + 2 : "6’6ÑŒ", 3 : "2а1а3аа3еа3іа3оа3уа3юа3Ñа3єа3Ñ—2е1е3ае3ее3іе3ое3уе3юе3Ñе3єе3Ñ—2и1и3аи3еи3іи3ои3уи3юи3Ñи3єи3Ñ—2Ñ–1Ñ–3аі3еі3иі3оі3уі3ÑŽÑ–3ÑÑ–3єі3Ñ—2о1о3ао3ео3іо3оо3уо3юо3Ñо3єо3Ñ—2у1у3ау3еу3іу3оу3уу3юу3Ñу3єу3Ñ—2ÑŽ1ÑŽ3аю3ею3Ñ–ÑŽ3ою3ую3ÑŽÑŽ3ÑÑŽ3єю3Ñ—2Ñ1Ñ3аÑ3еÑ3оÑ3уÑ3ÑŽÑ3ÑÑ3Ñ”Ñ3Ñ—2Ñ”1Ñ”3ує3ÑŽÑ”3єє3Ñ—2Ñ—1Ñ—3еї3ої3юд4жд4за2йе2йи2йі2йо2йу2йю2йÑ2йє2йї2йь6о", - 4 : "2б1к2б1п2б1Ñ2б1Ñ‚2б1Ñ„2б1Ñ…2б1ц2б1ч2б1ш2б1щ2в1б2в1г2в1д2в1ж2в1з2в1к2в1л2в1м2в1н2в1п2в1Ñ€2в1Ñ2в1Ñ‚2в1Ñ„2в1Ñ…2в1ц2в1ч2в1ш2в1щ2в1й2в'32г1к2г1п2г1Ñ2г1Ñ‚2г1Ñ„2г1ц2г1ч2г1ш2д1к2д1п2д1Ñ2д1Ñ‚2д1Ñ„2д1Ñ…2д1ц2д1ч2д1ш2д1щ2ж1к2ж1п2ж1Ñ2ж1Ñ‚2ж1Ñ„2ж1Ñ…2ж1ц2ж1ч2ж1ш2з1к2з1п2з1Ñ2з1Ñ‚2з1Ñ„2з1Ñ…2з1ц2з1ч2з1ш2з1щ2к1б2к1г2к1д2к1з2л1б2л1в2л1г2л1Ò‘2л1д2л1ж2л1з2л1к2л1м2л1н2л1п2л1Ñ€2л1Ñ2л1Ñ‚2л1Ñ„2л1Ñ…2л1ц2л1ч2м1б2м1в2м1г2м1д2м1ж2м1з2м1к2м1л2м1н2м1п2м1Ñ€2м1Ñ2м1Ñ‚2м1Ñ„2м1Ñ…2м1ц2м1ч2м1ш2м1щ2м'32н1б2н1в2н1г2н1д2н1ж2н1з2н1к2н1л2н1м2н1п2н1Ñ€2н1Ñ2н1Ñ‚2н1Ñ„2н1Ñ…2н1ц2н1ч2н1ш2н1щ2н'32п1б2п1д2п1з2Ñ€1б2Ñ€1в2Ñ€1г2Ñ€1Ò‘2Ñ€1д2Ñ€1ж2Ñ€1з2Ñ€1к2Ñ€1л2Ñ€1м2Ñ€1н2Ñ€1п2Ñ€1Ñ2Ñ€1Ñ‚2Ñ€1Ñ„2Ñ€1Ñ…2Ñ€1ц2Ñ€1ч2Ñ€1ш2Ñ€1щ2Ñ€1й2Ñ€'32Ñ1б2Ñ1г2Ñ1д2Ñ‚1б2Ñ‚1г2Ñ‚1д2Ñ‚1ж2Ñ‚1з2Ñ„1б2Ñ„1г2Ñ„1з2Ñ…1г2Ñ…1д2ц1б2ц1г2ц1д2ц1з2ч1б2ч1д2ч1ж2ш1б2ш1г2й1б2й1в2й1г2й1д2й1ж2й1з2й1к2й1л2й1м2й1н2й1п2й1Ñ€2й1Ñ2й1Ñ‚2й1Ñ„2й1Ñ…2й1ц2й1ч2й1ш2й1щ2б1б2в1в2г1г2Ò‘1Ò‘2д1д2ж1ж2з1з2к1к2л1л2м1м2н1н2п1п2Ñ€1Ñ€2Ñ1Ñ2Ñ‚1Ñ‚2Ñ„1Ñ„2Ñ…1Ñ…2ц1ц2ч1ч2ш1ш2щ1щ2й1й3ннÑ3ттÑ3ттю3ллÑ3ллє3ллю3ддÑ3й6о_б'8_в'8_д'8_з'8_м'8_н'8_п'8_Ñ€'8_Ñ‚'8_Ñ„'8_ш'8_бд6_бр6_вб6_вг6_вд6_вж6_вз6_вк6_вл6_вм6_вп6_вÑ6_вт6_дж6_дз6_дл6_дÑ6_зб6_зг6_зд6_зл6_зÑ6_зч6_зш6_зґ6_йш6_кл6_кп6_кÑ6_кх6_кш6_лÑ6_ль6_мÑ6_мф6_нб6_пр6_пÑ6_пх6_рт6_Ñк6_Ñл6_Ñп6_ÑÑ‚6_ÑÑ…6_тк6_тр6_тх6_ть6_фл6_хл6_ць6_чх6_шк6_шл6_шп6_шт66бв_6бз_6бй_6бл_6бн_6бр_6бÑ_6вб_6вв_6вд_6вж_6вз_6вй_6вк_6вл_6вм_6вн_6вп_6вр_6вÑ_6вт_6вх_6вч_6вш_6вщ_6гв_6гг_6гд_6гл_6гм_6гн_6гр_6гÑ_6гт_6дж_6дз_6дл_6дм_6дн_6др_6дт_6дь_6жб_6жв_6зв_6зг_6зд_6зк_6зл_6зм_6зн_6зр_6зь_6йб_6йв_6йг_6йд_6йз_6йк_6йл_6йм_6йн_6йп_6йр_6йÑ_6йт_6йф_6йх_6йц_6йч_6йш_6кв_6кк_6кл_6кр_6кÑ_6кт_6кх_6кш_6лб_6лг_6лд_6лк_6лл_6лм_6лн_6лп_6лÑ_6лт_6ль_6мб_6мг_6мж_6мк_6мл_6мм_6мн_6мп_6мр_6мÑ_6мт_6мф_6мх_6мш_6нв_6нг_6нд_6нж_6нз_6нк_6нм_6нн_6нр_6нÑ_6нт_6нф_6нх_6нц_6нч_6нш_6нь_6пд_6пл_6пр_6пÑ_6пт_6пф_6пц_6рб_6рв_6рг_6рд_6рж_6рз_6рк_6рл_6рм_6рн_6рп_6рр_6Ñ€Ñ_6рт_6рф_6рх_6рц_6рч_6рш_6рщ_6рь_6Ñк_6Ñл_6Ñм_6Ñн_6Ñп_6ÑÑ_6ÑÑ‚_6ÑÑŒ_6тв_6тл_6тм_6тр_6Ñ‚Ñ_6тт_6тц_6тч_6ть_6фм_6фр_6фт_6фф_6фь_6хв_6хм_6хн_6Ñ…Ñ€_6Ñ…Ñ‚_6хш_6ць_6чб_6чм_6чн_6чт_6шв_6шм_6шн_6шт_виї4оо4боб'3од'3'Ñ—4в'Ñ—4з'Ñ—4д'Ñ—4ж'Ñ—4л'Ñ—4м'Ñ—4Ñ'Ñ—4хге4ооо4куÑ4вді4омі4оі4онзо6ооу4Ñ", - 5 : "2дь1к2дь1Ñ2дь1Ñ‚2дь1ц2зь1к2зь1Ñ2зь1Ñ‚2ль1б2ль1в2ль1г2ль1д2ль1ж2ль1з2ль1к2ль1м2ль1н2ль1п2ль1Ñ€2ль1Ñ2ль1Ñ‚2ль1Ñ„2ль1Ñ…2ль1ц2ль1ч2ль1ш2ль1щ2ль1й2нь1б2нь1г2нь1з2нь1к2нь1л2нь1м2нь1Ñ2нь1Ñ‚2нь1Ñ…2нь1ц2нь1ч2нь1ш2нь1й2рь1к2рь1ц2ÑÑŒ1б2ÑÑŒ1д2ть1б2к1Ñп2к1ÑÑ‚2п1Ñп2п1ÑÑ‚2Ñ1пк2Ñ1пп2Ñ1пÑ2Ñ1пт2Ñ1пх2Ñ1пч2Ñ1тк2Ñ1тп2Ñ1Ñ‚Ñ2Ñ1тт2Ñ1тф2Ñ1тц2Ñ1шт2Ñ‚1Ñк2Ñ‚1Ñп2Ñ‚1ÑÑ‚2Ñ‚1шк2Ñ„1Ñп2Ñ„1ÑÑ‚2Ñ„1шт2Ñ…1ÑÑ‚2ц1ÑÑ‚2ц1шк2ш1тк3п4ре3п4риприї43п4ро3п4ріооб'3ооб3мнао4рнеу4к3блаж3ближ3близ3блок3бран3бруд3глад3глиб3глин3глоб3глуз3глуш3глÑд3глÑн3гнан3гнил3гноз3грав3град3грай3грам3гран3граф3граш3граю3грає3греÑ3гроб3грож3гроз3груп3грів3гріт3гріш3д4ан3двиг3двою3двоє3двій3двір3драж3дром3друж3друк3дрÑп3дріб3жвав3зваж3зван3звед3звел3звич3звищ3звук3звуч3звіт3змін3зйом3зміш3знав3знай3знак3знал3знан3знат3знач3знаю3знає3зниж3знім3зрюв3зрів3зріл3зрін3й4ма3Ñ4пі3Ñ…4то3Ñ—4зд3Ñ—4Ñтаві4абі4о3дої4ддої4мдої4хдої4жзаї4дзаї4жзаї4ззаї4лзаї4мзаї4хзо4казо4кезо4кизо4кузо4кіий4тиій4тинаї4жнаї4знаї4лнаї4мнаї4Ñнаї4хпоÑ4в_пої4пої4дпрої4Ñеї4ду4к4рвиÑ4вз'Ñ4взаÑ4внаÑ4веті4одеÑ4као4хаео4ханіÑ4кдоу4кдоу4мнею4ннеÑ4кое4копоÑ4Ñоа4ктеа4ктий4нÑпій4мвий4мзай4моа4на", - 6 : "2к1Ñьк2п1Ñьк2Ñ1Ñьк2Ñ1Ñ‚ÑÑŒ2ÑÑŒ1кк2ÑÑŒ1кÑ2ÑÑŒ1кт2Ñ‚1Ñьк2Ñ„1Ñьк2Ñ…1Ñьк2ш1Ñ‚ÑÑŒ_вб6'6_вв6'6_вз6д6_вм6'6_вп6'6_вп6Ñ…6_вÑ6Ñ‚6_вш6к6_зв6'6_зд6з6_зм6'6_зÑ6к6_зÑ6Ñ‚6_зш6к6_лк6Ñ6_Ñк6л6_Ñп6'6_Ñп6л6_Ñп6Ñ…6_ÑÑ…6л66б6ль_6б6ÑÑ‚_6б6ць_6в6др_6в6дь_6в6зь_6в6ль_6в6ÑÑŒ_6в6ць_6г6ль_6г6ÑÑŒ_6д6зь_6ж6дь_6ж6ÑÑŒ_6з6дв_6з6дн_6з6дь_6з6нь_6з6ÑÑŒ_6з6ьб_6з6ьк_6й6кл_6й6ль_6й6мÑ_6й6нÑ_6й6ÑÑ‚_6й6ÑÑŒ_6й6Ñ‚Ñ_6к6ль_6к6ÑÑ‚_6к6ÑÑŒ_6к6тр_6л6ль_6л6мÑ_6л6хв_6л6ьб_6л6ьв_6л6ьг_6л6ьд_6л6ьз_6л6ьк_6л6ьм_6л6ьн_6л6ьп_6л6ÑŒÑ_6л6ьт_6л6ьф_6л6ьх_6л6ьц_6л6ьч_6л6ьш_6л6ьщ_6м6бр_6м6ль_6м6ÑÑŒ_6н6гл_6н6гр_6н6гÑ_6н6дж_6н6дз_6н6дп_6н6др_6н6кÑ_6н6кт_6н6Ñк_6н6ÑÑ‚_6н6тк_6н6тр_6н6ть_6н6ць_6н6ьб_6н6ьг_6н6ьк_6п6ÑÑŒ_6п6тр_6Ñ€6дв_6Ñ€6дж_6Ñ€6дь_6Ñ€6зн_6Ñ€6зь_6Ñ€6кÑ_6Ñ€6кт_6Ñ€6ль_6Ñ€6нÑ_6Ñ€6нь_6Ñ€6ÑÑ€_6Ñ€6ÑÑ‚_6Ñ€6ÑÑŒ_6Ñ€6тв_6Ñ€6тр_6Ñ€6ть_6Ñ€6ць_6Ñ6дп_6Ñ6ль_6Ñ6тв_6Ñ6тй_6Ñ6тм_6Ñ6тр_6Ñ6ть_6Ñ6ць_6Ñ6ьб_6Ñ6ьк_6Ñ6ьм_6Ñ‚6вт_6Ñ‚6зт_6Ñ‚6ль_6Ñ‚6мр_6Ñ„6ть_6ц6тв_6ц6ьк_6ш6ль_6ш6нл_6ш6ÑÑŒ_6ш6тв_6щ6ÑÑŒ__бе4з3_безу4віду4ч_ві4д3_від'3_мі4ж3ові4д3_пере3_під'3_пі4д3_пі4в3_ро4з3ооб3рона4д'3за5о4рдо5о4рпо5о4рз3в'4Ñза3ÑŽ4шу3в'4Ñз3м'4Ñу3м'4Ñв3м'4Ñзу4рочприо4Ñ€3й4ш4л3блиÑк3блоці3брати3бреÑÑ‚3бризк3в4бив3в4дал3в4лад3в4лов3в4Ñюд3в4тіл3гнучк3грати3грець3грунт3д4бав3д4бал3д4бан3д4бат3д4бає3двічі3дріма3жміть3жріть3з4був3з4бут3звеÑÑ‚3звиÑÑŒ3з4год3з4дат3з4чеп3й4мищ3й4му_3й4шов3м4нож3м4щен3п4Ñов3п4Ñон3п4Ñув3Ñ€4вав3Ñ4кид3Ñ4кок3Ñ4коп3Ñ4кор3Ñ4коч3Ñ4пад3Ñ4пин3Ñ4піш3Ñ4тав3Ñ4тад3Ñ4таз3Ñ4тал3Ñ4тан3Ñ4Ñ‚ар3Ñ4тат3Ñ4тач3Ñ4тає3Ñ4теп3Ñ4тиг3Ñ4тиж3Ñ4той3Ñ4тою3Ñ4туп3Ñ4Ñ‚Ñг3Ñ4тіб3Ñ4тій3Ñ4тір3Ñ4фер3Ñ4хил3Ñ4хов3Ñ4хід3Ñ‚4кан3ш4код3ш4кол3ш4кіл3ш4кір3ш4таб3ш4туч3ґрунт3е4тап3о4бід3о4біц3о4дÑг3о4Ñоб3о4хоч3о4чищ3у4ваг3у4важ3у4гав3у4мит3у4міл3у4Ñ€Ñд3Ñ4зик3Ñ4кіÑ3Ñ4руÑ3Ñ”4д3н3Ñ”4дин3Ñ”4рей3Ñ—4ждж3Ñ—4хав3Ñ—4хат_заї4к_заї4ц_заї4ч_наї4давої4дае4тилахої4дауді4обе5конб'4єтьбран4дви3й4дви3й4Ñ‚3в'4Ñз4д7земді3й4тді3й4д_дої4в_дої4лдої4Ñтеу4Ñтрео4Ñвіек2Ñ1кек2Ñ1пек2Ñ1тек2Ñ1цигої4діе4тилйо4Ñвіквої4д3м'4Ñтна3з4внаї4вÑнаї4вшна4й3ана4й3енедої4неї4Ñтоної4доо4палео4палонаї4доо4Ñвіоу4Ñтроа4томпоч4непоч4нипоч4нупої4здраді4оз'4єднрмої4дÑор4тнцук3роубої4дÑÑої4дви3у4чза3у4чна3у4чне3у4чгелі4ополі4оÑоці4офізі4охімі4огоме4оао4пікка5налоі4золмете4оабиÑ4квиÑ4ÑннеÑ4ÑнпоÑ4Ñннеа4биео4ціноо4цінео4бурео4зорпіво4Ñпале4оао4хотео4хотео4щадао4щадоо4чищоо4бігоу4Ñуноу4комз3а4ктеу4богзай4нÑнай4нÑприй4мдій4манай4маобой4мпрой4мобій4моу4годау4годеу4годео4пиÑоо4пиÑао4пиÑ_ом4рі_ум4ри_ум4рі_ум4ру_ум4ревиу4ди", - 7 : "_бе4з'3_ві5д4а_ві5д4іневі4д3_пі5д4о_пі5д4Ñ–_пі5д4е_пі5д4и_пі5д4у_Ñпі4в3_ро5з4Ñ–_ро5з4е_ро5з4а_ро4з'3до3в'4єза3в'4єзі3в'4єпо3в'4єуі3в'4єпо3в'4Ñза3в'4Ñзі3в'4Ñна3в'4Ñоб3в'4Ñзі3м'4Ñно3м'4Ñза3м'4Ñна3м'4Ñоб3м'4Ñпо3м'4ÑÑу3м'4Ñдо3в'4юза3в'4юзі3в'4юна3в'4юпо3в'4юуі3в'4юза3Ñ4локоу4рочпоу4роч3м4к4не3м4к4ну3м4к4ні3Ñ4к4ле3Ñ4к4ло3британ3в4довз3в4лаÑн3в4лашт3в4певн3громад3груван3г4ідро3з4бага3зворуш3з4довж3знаход3зрозум3й4менн3й4муть3й4міть3м4ріть3Ñ€4вати3Ñ€4віть3Ñ4кіль3Ñ4кіпл3Ñ4пект3Ñ4перм3Ñ4піть3Ñ4тайн3Ñ4тара3Ñ4тиÑл3Ñ4титу3Ñ4товб3Ñ4тоÑо3Ñ4тоÑу3Ñ4тоÑн3Ñ4тіль3ш4кідл3а4гент3а4греÑ3а4зарт3а4ктив3а4куÑÑ‚3а4кциз3а4птеч3а4Ñоці3а4тлет3а4халі3е4моці3е4мігр3е4нерг3е4Ñтет3о4бира3о4даль3о4збро3о4крем3о4плат3о4птим3о4пуÑÑ‚3о4пуше3о4пуще3о4ренд3о4ÑÑжн3о4холо3о4чиÑн3у4згод3у4клад3у4рбан3у4Ñпіш3у4твор3Ñ4дерн3Ñ”4пиÑк3Ñ–4Ñнув_бе5зе_бйор4нÑвер4Ñ…3нвід7знаві5д4енві5д4омво4Ñ5ко_дої5ль3з'4ÑÑозна3й4дзна3й4ткорої4д3м'4Ñкшна3в4чанео4палобі3й4добі3й4тпереї4дпереї4жпереї4зпереї4лпереї4Ñпереї4хпре4й4Ñпо3д4вопри3й4тпро4Ñ„3Ñпор4Ñ‚3нпри3й4дроз5винроз5витро5з4умÑпе4цпрÑпе4ц3ÑÑÑŒ4квугтран4Ñ3під3у4чво4єводво4єначді4алогді4огенпроÑ4Ñнрозо4рарозо4рерозо4рннапоу4мне4олітне4ологне4онацне4офітнеÑ4рок_пе4ом_д3у4Ñімроз'Ñ4рте4ологте4оÑофа3у4даро3у4дарз3у4дарв3у4дареі4Ñтотоі4Ñтотоо4чиÑтнайа4ктпіва4ктао4бразео4бразоо4бразиа4варіÑа4варіоа4варіеа4варіаа4дреÑеа4дреÑоа4дреÑіа4дреÑае4фектее4фектое4фектое4міÑіие4міÑÑ–Ñе4міÑіее4міÑій3у4богздій4нÑобій4нÑд4о3й4мперей4мбезу4глоа4каціоо4держбіблі4о_на3в4ч_ви3в4ч_до3в4ч_за3в4ч_по3в4чана3в4чена3в4чови3в4чеви3в4чедо3в4чоза3в4чпо3в4чае3м4рій_ви3м4Ñ€_за3м4Ñ€_зі3м4Ñ€_на3м4Ñ€_по3м4рие4Ñтетое4Ñтетее4Ñтетоо4ктаніо4ктано3в4казе3в4каз", - 8 : "6б6Ñ6тв_6б6Ñ6тр_6б6Ñ6ьк_6в6Ñ6тв_6в6Ñ6ть_6в6Ñ6ьк_6г6Ñ6тв_6д6Ñ6тв_6д6Ñ6ьк_6д6ÑŒ6ÑÑŒ_6й6Ñ6тв_6й6Ñ6тр_6й6Ñ6ьк_6л6ÑŒ6дÑ_6л6ÑŒ6ÑÑŒ_6л6ÑŒ6тр_6м6б6ль_6м6Ñ6тв_6м6Ñ6ьк_6н6г6ль_6н6Ñ6тв_6н6Ñ6тр_6н6Ñ6ьк_6н6ÑŒ6ÑÑŒ_6п6Ñ6тв_6Ñ€6л6ьз_6Ñ€6н6ÑÑ‚_6Ñ€6Ñ6тв_6Ñ€6Ñ6ть_6Ñ€6Ñ6ьк_6Ñ€6щ6ÑÑŒ_6Ñ6д6рп_6Ñ6Ñ‚6рь_6Ñ‚6Ñ6тв_6Ñ‚6Ñ6ьк_6Ñ‚6ÑŒ6ÑÑŒ_6Ñ„6Ñ6тв__ві5д4ом_ві5д4ун_ві5д4ербезві4д3неві4д'3_пона4д3_напі4в3ро5з4йом_чере4з3пере5о4рпі6д5о4робі3в'4євід3в'4Ñпри3в'4Ñпід3в'4Ñпри3м'4Ñнаду4рочприу4роч3в4б4лаг3в4к4лад3в4п4лив3в4Ñ‚4рут3в4Ñ‚4руч3з4б4рой3з4б4рою3з4б4роє3з4в4'Ñз3п4Ñ4ков3Ñ4к4лад3Ñ4к4лит3Ñ4п4лав3Ñ4п4лат3Ñ4п4лач3Ñ4п4рав3Ñ4Ñ‚4вор3Ñ4Ñ‚4рах3Ñ4Ñ‚4риб3Ñ4Ñ‚4риж3Ñ4Ñ‚4рой3Ñ4Ñ‚4рок3Ñ4Ñ‚4ром3Ñ4Ñ‚4роф3Ñ4Ñ‚4роч3Ñ4Ñ‚4рою3Ñ4Ñ‚4роÑ3Ñ4Ñ‚4роє3Ñ4Ñ‚4рої3Ñ4Ñ‚4рій3Ñ4Ñ‚4ріл3Ñ4Ñ‚4річ3Ñ‚4к4нен3Ñ‚4ÑŒ4мар3у4п4рав3в4веден3в4довол3в4живан3в4порÑд3в4рожай3з4доров3з4дійÑн3Ñ4короч3Ñ4повід3Ñ4пожив3Ñ4табіл3Ñ4тереж3Ñ4теріг3Ñ4торон3Ñ4торін3а4дитив3а4ктуал3а4курат3а4кцепт3а4лергі3а4матор3а4наліз3а4натом3а4парат3а4пелÑц3а4ромат3а4Ñпект3е4колог3е4коном3е4лектр3о4б'єдн3о4б'єкт3о4береж3о4борон3о4перат3о4хорон3у4компл3у4крупн3у4перед3у4Ñ€Ñдов3у4Ñтпіш3у4тробн3Ñ4Ñкрав3Ñ–4зотоп3Ñ–4люÑтр3Ñ–4мовір3Ñ–4нтенÑ3Ñ–4нформальбі5онбей4Ñболбо4г3данбо4Ñ”3голбо4Ñ”3готбо4Ñ”3запбори4Ñ5пвина3й4двина3й4тві5д4е4оджен4тльди4Ñ3локди4Ñ3пледи4Ñ3путди4Ñ3тилд4ні3п4рдо3з4волдо3з4вілкон4трремо4к5рийна3б4лизна3в4Ñ€Ñдна4д7з4вна3в4ченне3в4томне3д4банна3д4банне3з4вичне3з4важна5п4ливні4Ñ‚5ратоб5у4мовпере3й4дпере3й4тпі5в4еньпо3в4торпо3в4ченпо3д4робпо3д4разпо5з4бавпри4нципрай3в4нороз5вантро4з5ділро4з5горро4з5верро4з5чепро4з3ливÑан4к4Ñ‚3Ñерцеї4дÑтат5упрукр3а4втукр3а4грукр3е4кÑнедо3у4чпед3у4чипере3у4чÑамо3у4чÑво4єчаÑÑво4єрідоо4динокміжу4Ñобнай3Ñ4Ñнроз'Ñ4Ñнро5з4ориро5з4ороро5з4оруро5з4орÑро5з4орюро5з4орірозо4решео4голошбальне4оне4оклаÑпі5в4оніп4о5берео3о4киÑли3о4киÑле3о4киÑлх3о4киÑли3Ñ–4Ñторо3Ñ–4Ñторі3Ñ–4Ñтора3Ñ–4ÑторÑ3Ñ–4Ñторе3Ñ–4Ñторар4Ñ‚3мінар4Ñ‚3підар4Ñ‚3ринар4Ñ‚3хімперей4нÑпідій4нÑбезу4пин_при3в4чмона3в4чжона3в4чіона3в4ч_зав3м4Ñ€_при3м4Ñ€_роз3м4рй3е4Ñтет", - 9 : "6л6ÑŒ6Ñтв_6л6ÑŒ6Ñьк_6н6Ñ6ькй_6н6Ñ‚6Ñтв__бе5з4о3д_безві4д3_ві5д4озвді4єві4д3за4вві4д3Ñпівві4д3_пере4д3г_пере4д3д_пере4д3м_пере4д3Ñ€_пере4д3ч_пере4д'3_пона5д4Ñ–_пона5д4и_пона5д4Ñ_чере4з'3непо3в'4Ñпере3м'4Ñпіді3м'4Ñпозау4роч3в4п4равн3Ñ4к4рипт3Ñ4п4ритн3Ñ4п4риÑÑ‚3Ñ4п4ромо3Ñ4Ñ‚4ражд3Ñ4Ñ‚4рукт3Ñ4Ñ‚4рукц3Ñ‚4ÑŒ4мÑні3в4разлив3з4баланÑ3й4мовірн3Ñ4поÑтер3а4вторит3а4декват3а4поÑтол3а4ргумен3е4легант3е4лемент3е4Ñтакад3о4рдинац3у4люблен3у4разлив3у4рочиÑÑ‚3у4Ñтанов3у4Ñувати3Ñ–4ніціатай4Ñ3бергбактері4оба4Ñ3енербез5Ñ–4менбо4Ñ”3здатбо4Ñ”3компбо4Ñ”3поÑтбо4Ñ”3прип4в3антрацге2ть3мандер4ж5виддер4ж5думдер4ж5комдер4ж3бездер4ж5ÑтрдиÑбаланÑди4Ñ3гармди4Ñ3квалди4Ñ3комфди4Ñ3контди4Ñ3кредди4Ñ3кретди4Ñ3крецди4Ñ3кримди4Ñ3куÑіди4Ñ3кутуди4Ñ3перÑди4Ñ3петчди4Ñ3плейди4Ñ3позиди4Ñ3пропди4Ñ3трибди4Ñ3трофєв4Ñ€3атомєпі4Ñ5копєпи4Ñ5копза4п3чаÑті4л3е4тилкиї4венермі4н5е4кона4й3маÑлна4й3Ñприна4й3ÑкіÑна3в4чітьобі3д4раноб4лдер4жперег4нійпере4д5Ñмпід5о4динпо3б4лизупо3в4чітьпо5ж4нітьпоÑ4Ñ‚3каппоÑ4Ñ‚3компоÑ4Ñ‚3натпоÑ4Ñ‚3Ñоцпор4Ñ‚3ретпор4Ñ‚3фелпро4ект3нпро3б4лемпро4м3майпр4о5платро4з5д4вороз5у4ченроз5Ñ–4менро4з'5єднро4з3громÑпе4ц3курÑпе4ц3мон3Ñ4проможтур4к3менро5з4ора_ро5з4орахне4омальтне4окомунне4оландшне4оліберно4к3а4утте4одолітпів3о4валнаді4Ñторар4Ñ‚3афішар4Ñ‚3кафеар4Ñ‚3майÑар4Ñ‚3мейÑар4Ñ‚3фактнаді4Ñтотнайі4Ñтотау4Ñ‚3еколбеза4варібезе4міÑіо3а4налізц3а4налізз3а4налізм3а4налізпів3у4годроз3у4год_віді3м4Ñ€_пере3м4рво4Ñтаннєоо4плачувео4плачув", - 10 : "_без5о4Ñоб_без3ро4з3те4Ñ…3ві4д3_пере4д3Ñв_пере4д3фрбе4з5Ñ–4дейінтер3в'4юна4й3у4бог3в4Ñ€4одливба4Ñ3антравід5о4бражвід5о4бразводо5Ñ4токводо5з4бірго4Ñ4п5роздер4ж5а4дмдер4ж5бюдждер4ж5нафтдер4ж5реєÑдер4ж5Ñлуждвох4а5томди4Ñ3паритди4Ñ3функцкон4тр3аргмі4н5е4нерна4й7о4берна4й7о4гидна4й7о4голна4й7о4пукна4й7о4хайпере5п4ливпере3в4томпів5о4Ñ4трпоÑ4Ñ‚3процпоÑ4Ñ‚3фікÑÑпор4Ñ‚3вирÑпор4Ñ‚3залÑпор4Ñ‚3комÑпор4Ñ‚3майтор4г3предÑво4єкориÑро5з4о5рамро6з5о4ри_ень7о4киÑлнай3Ñ–4Ñторпів3Ñ–4Ñторар4Ñ‚3взводар4Ñ‚3медіаар4Ñ‚3о4динар4Ñ‚3о4збрар4Ñ‚3центргіпер3а4ктнай3о4бразар4Ñ‚3мейÑтго4Ñ„3мейÑтдо4к3мейÑтхо4Ñ€3мейÑтміж3а4варінад3а4варібез3а4дреÑнай3е4фектбло4к3поÑÑ‚_блі4ц3ана_блі4ц3турнт3а4налізре3а4налізбо4Ñ€4Ñ‚3мехбо4Ñ€4Ñ‚3пробо4Ñ€4Ñ‚3радпан3е4Ñтетпар3е4Ñтет", + 4 : "2б1к2б1п2б1Ñ2б1Ñ‚2б1Ñ„2б1Ñ…2б1ц2б1ч2б1ш2б1щ2в1б2в1г2в1д2в1ж2в1з2в1к2в1л2в1м2в1н2в1п2в1Ñ€2в1Ñ2в1Ñ‚2в1Ñ„2в1Ñ…2в1ц2в1ч2в1ш2в1щ2в1й2в’32г1к2г1п2г1Ñ2г1Ñ‚2г1Ñ„2г1ц2г1ч2г1ш2д1к2д1п2д1Ñ2д1Ñ‚2д1Ñ„2д1Ñ…2д1ц2д1ч2д1ш2д1щ2ж1к2ж1п2ж1Ñ2ж1Ñ‚2ж1Ñ„2ж1Ñ…2ж1ц2ж1ч2ж1ш2з1к2з1п2з1Ñ2з1Ñ‚2з1Ñ„2з1Ñ…2з1ц2з1ч2з1ш2з1щ2к1б2к1г2к1д2к1з2л1б2л1в2л1г2л1Ò‘2л1д2л1ж2л1з2л1к2л1м2л1н2л1п2л1Ñ€2л1Ñ2л1Ñ‚2л1Ñ„2л1Ñ…2л1ц2л1ч2м1б2м1в2м1г2м1д2м1ж2м1з2м1к2м1л2м1н2м1п2м1Ñ€2м1Ñ2м1Ñ‚2м1Ñ„2м1Ñ…2м1ц2м1ч2м1ш2м1щ2м’32н1б2н1в2н1г2н1д2н1ж2н1з2н1к2н1л2н1м2н1п2н1Ñ€2н1Ñ2н1Ñ‚2н1Ñ„2н1Ñ…2н1ц2н1ч2н1ш2н1щ2н’32п1б2п1д2п1з2Ñ€1б2Ñ€1в2Ñ€1г2Ñ€1Ò‘2Ñ€1д2Ñ€1ж2Ñ€1з2Ñ€1к2Ñ€1л2Ñ€1м2Ñ€1н2Ñ€1п2Ñ€1Ñ2Ñ€1Ñ‚2Ñ€1Ñ„2Ñ€1Ñ…2Ñ€1ц2Ñ€1ч2Ñ€1ш2Ñ€1щ2Ñ€1й2р’32Ñ1б2Ñ1г2Ñ1д2Ñ‚1б2Ñ‚1г2Ñ‚1д2Ñ‚1ж2Ñ‚1з2Ñ„1б2Ñ„1г2Ñ„1з2Ñ…1г2Ñ…1д2ц1б2ц1г2ц1д2ц1з2ч1б2ч1д2ч1ж2ш1б2ш1г2й1б2й1в2й1г2й1д2й1ж2й1з2й1к2й1л2й1м2й1н2й1п2й1Ñ€2й1Ñ2й1Ñ‚2й1Ñ„2й1Ñ…2й1ц2й1ч2й1ш2й1щ2б1б2в1в2г1г2Ò‘1Ò‘2д1д2ж1ж2з1з2к1к2л1л2м1м2н1н2п1п2Ñ€1Ñ€2Ñ1Ñ2Ñ‚1Ñ‚2Ñ„1Ñ„2Ñ…1Ñ…2ц1ц2ч1ч2ш1ш2щ1щ2й1й3ннÑ3ттÑ3ттю3ллÑ3ллє3ллю3ддÑ3й6о_б’8_в’8_д’8_з’8_м’8_н’8_п’8_р’8_т’8_ф’8_ш’8_бд6_бр6_вб6_вг6_вд6_вж6_вз6_вк6_вл6_вм6_вп6_вÑ6_вт6_дж6_дз6_дл6_дÑ6_зб6_зг6_зд6_зл6_зÑ6_зч6_зш6_зґ6_йш6_кл6_кп6_кÑ6_кх6_кш6_лÑ6_ль6_мÑ6_мф6_нб6_пр6_пÑ6_пх6_рт6_Ñк6_Ñл6_Ñп6_ÑÑ‚6_ÑÑ…6_тк6_тр6_тх6_ть6_фл6_хл6_ць6_чх6_шк6_шл6_шп6_шт66бв_6бз_6бй_6бл_6бн_6бр_6бÑ_6вб_6вв_6вд_6вж_6вз_6вй_6вк_6вл_6вм_6вн_6вп_6вр_6вÑ_6вт_6вх_6вч_6вш_6вщ_6гв_6гг_6гд_6гл_6гм_6гн_6гр_6гÑ_6гт_6дж_6дз_6дл_6дм_6дн_6др_6дт_6дь_6жб_6жв_6зв_6зг_6зд_6зк_6зл_6зм_6зн_6зр_6зь_6йб_6йв_6йг_6йд_6йз_6йк_6йл_6йм_6йн_6йп_6йр_6йÑ_6йт_6йф_6йх_6йц_6йч_6йш_6кв_6кк_6кл_6кр_6кÑ_6кт_6кх_6кш_6лб_6лг_6лд_6лк_6лл_6лм_6лн_6лп_6лÑ_6лт_6ль_6мб_6мг_6мж_6мк_6мл_6мм_6мн_6мп_6мр_6мÑ_6мт_6мф_6мх_6мш_6нв_6нг_6нд_6нж_6нз_6нк_6нм_6нн_6нр_6нÑ_6нт_6нф_6нх_6нц_6нч_6нш_6нь_6пд_6пл_6пр_6пÑ_6пт_6пф_6пц_6рб_6рв_6рг_6рд_6рж_6рз_6рк_6рл_6рм_6рн_6рп_6рр_6Ñ€Ñ_6рт_6рф_6рх_6рц_6рч_6рш_6рщ_6рь_6Ñк_6Ñл_6Ñм_6Ñн_6Ñп_6ÑÑ_6ÑÑ‚_6ÑÑŒ_6тв_6тл_6тм_6тр_6Ñ‚Ñ_6тт_6тц_6тч_6ть_6фм_6фр_6фт_6фф_6фь_6хв_6хм_6хн_6Ñ…Ñ€_6Ñ…Ñ‚_6хш_6ць_6чб_6чм_6чн_6чт_6шв_6шм_6шн_6шт_виї4оо4боб’3од’3’ї4в’ї4з’ї4д’ї4ж’ї4л’ї4м’ї4Ñ’ї4хге4ооо4куÑ4вді4омі4оі4онзо6ооу4Ñ", + 5 : "2дь1к2дь1Ñ2дь1Ñ‚2дь1ц2зь1к2зь1Ñ2зь1Ñ‚2ль1б2ль1в2ль1г2ль1д2ль1ж2ль1з2ль1к2ль1м2ль1н2ль1п2ль1Ñ€2ль1Ñ2ль1Ñ‚2ль1Ñ„2ль1Ñ…2ль1ц2ль1ч2ль1ш2ль1щ2ль1й2нь1б2нь1г2нь1з2нь1к2нь1л2нь1м2нь1Ñ2нь1Ñ‚2нь1Ñ…2нь1ц2нь1ч2нь1ш2нь1й2рь1к2рь1ц2ÑÑŒ1б2ÑÑŒ1д2ть1б2к1Ñп2к1ÑÑ‚2п1Ñп2п1ÑÑ‚2Ñ1пк2Ñ1пп2Ñ1пÑ2Ñ1пт2Ñ1пх2Ñ1пч2Ñ1тк2Ñ1тп2Ñ1Ñ‚Ñ2Ñ1тт2Ñ1тф2Ñ1тц2Ñ1шт2Ñ‚1Ñк2Ñ‚1Ñп2Ñ‚1ÑÑ‚2Ñ‚1шк2Ñ„1Ñп2Ñ„1ÑÑ‚2Ñ„1шт2Ñ…1ÑÑ‚2ц1ÑÑ‚2ц1шк2ш1тк3п4ре3п4риприї43п4ро3п4ріооб’3ооб3мнао4рнеу4к3блаж3ближ3близ3блок3бран3бруд3глад3глиб3глин3глоб3глуз3глуш3глÑд3глÑн3гнан3гнил3гноз3грав3град3грай3грам3гран3граф3граш3граю3грає3греÑ3гроб3грож3гроз3груп3грів3гріт3гріш3д4ан3двиг3двою3двоє3двій3двір3драж3дром3друж3друк3дрÑп3дріб3жвав3зваж3зван3звед3звел3звич3звищ3звук3звуч3звіт3змін3зйом3зміш3знав3знай3знак3знал3знан3знат3знач3знаю3знає3зниж3знім3зрюв3зрів3зріл3зрін3й4ма3Ñ4пі3Ñ…4то3Ñ—4зд3Ñ—4Ñтаві4абі4о3дої4ддої4мдої4хдої4жзаї4дзаї4жзаї4ззаї4лзаї4мзаї4хзо4казо4кезо4кизо4кузо4кіий4тиій4тинаї4жнаї4знаї4лнаї4мнаї4Ñнаї4хпоÑ4в_пої4пої4дпрої4Ñеї4ду4к4рвиÑ4вз’Ñ4взаÑ4внаÑ4веті4одеÑ4као4хаео4ханіÑ4кдоу4кдоу4мнею4ннеÑ4кое4копоÑ4Ñоа4ктеа4ктий4нÑпій4мвий4мзай4моа4на", + 6 : "2к1Ñьк2п1Ñьк2Ñ1Ñьк2Ñ1Ñ‚ÑÑŒ2ÑÑŒ1кк2ÑÑŒ1кÑ2ÑÑŒ1кт2Ñ‚1Ñьк2Ñ„1Ñьк2Ñ…1Ñьк2ш1Ñ‚ÑÑŒ_вб6’6_вв6’6_вз6д6_вм6’6_вп6’6_вп6Ñ…6_вÑ6Ñ‚6_вш6к6_зв6’6_зд6з6_зм6’6_зÑ6к6_зÑ6Ñ‚6_зш6к6_лк6Ñ6_Ñк6л6_Ñп6’6_Ñп6л6_Ñп6Ñ…6_ÑÑ…6л66б6ль_6б6ÑÑ‚_6б6ць_6в6др_6в6дь_6в6зь_6в6ль_6в6ÑÑŒ_6в6ць_6г6ль_6г6ÑÑŒ_6д6зь_6ж6дь_6ж6ÑÑŒ_6з6дв_6з6дн_6з6дь_6з6нь_6з6ÑÑŒ_6з6ьб_6з6ьк_6й6кл_6й6ль_6й6мÑ_6й6нÑ_6й6ÑÑ‚_6й6ÑÑŒ_6й6Ñ‚Ñ_6к6ль_6к6ÑÑ‚_6к6ÑÑŒ_6к6тр_6л6ль_6л6мÑ_6л6хв_6л6ьб_6л6ьв_6л6ьг_6л6ьд_6л6ьз_6л6ьк_6л6ьм_6л6ьн_6л6ьп_6л6ÑŒÑ_6л6ьт_6л6ьф_6л6ьх_6л6ьц_6л6ьч_6л6ьш_6л6ьщ_6м6бр_6м6ль_6м6ÑÑŒ_6н6гл_6н6гр_6н6гÑ_6н6дж_6н6дз_6н6дп_6н6др_6н6кÑ_6н6кт_6н6Ñк_6н6ÑÑ‚_6н6тк_6н6тр_6н6ть_6н6ць_6н6ьб_6н6ьг_6н6ьк_6п6ÑÑŒ_6п6тр_6Ñ€6дв_6Ñ€6дж_6Ñ€6дь_6Ñ€6зн_6Ñ€6зь_6Ñ€6кÑ_6Ñ€6кт_6Ñ€6ль_6Ñ€6нÑ_6Ñ€6нь_6Ñ€6ÑÑ€_6Ñ€6ÑÑ‚_6Ñ€6ÑÑŒ_6Ñ€6тв_6Ñ€6тр_6Ñ€6ть_6Ñ€6ць_6Ñ6дп_6Ñ6ль_6Ñ6тв_6Ñ6тй_6Ñ6тм_6Ñ6тр_6Ñ6ть_6Ñ6ць_6Ñ6ьб_6Ñ6ьк_6Ñ6ьм_6Ñ‚6вт_6Ñ‚6зт_6Ñ‚6ль_6Ñ‚6мр_6Ñ„6ть_6ц6тв_6ц6ьк_6ш6ль_6ш6нл_6ш6ÑÑŒ_6ш6тв_6щ6ÑÑŒ__бе4з3_безу4віду4ч_ві4д3_від’3_мі4ж3ові4д3_пере3_під’3_пі4д3_пі4в3_ро4з3ооб3рона4д’3за5о4рдо5о4рпо5о4рз3в’4Ñза3ÑŽ4шу3в’4Ñз3м’4Ñу3м’4Ñв3м’4Ñзу4рочприо4Ñ€3й4ш4л3блиÑк3блоці3брати3бреÑÑ‚3бризк3в4бив3в4дал3в4лад3в4лов3в4Ñюд3в4тіл3гнучк3грати3грець3грунт3д4бав3д4бал3д4бан3д4бат3д4бає3двічі3дріма3жміть3жріть3з4був3з4бут3звеÑÑ‚3звиÑÑŒ3з4год3з4дат3з4чеп3й4мищ3й4му_3й4шов3м4нож3м4щен3п4Ñов3п4Ñон3п4Ñув3Ñ€4вав3Ñ4кид3Ñ4кок3Ñ4коп3Ñ4кор3Ñ4коч3Ñ4пад3Ñ4пин3Ñ4піш3Ñ4тав3Ñ4тад3Ñ4таз3Ñ4тал3Ñ4тан3Ñ4тар3Ñ4тат3Ñ4тач3Ñ4тає3Ñ4теп3Ñ4тиг3Ñ4тиж3Ñ4той3Ñ4тою3Ñ4туп3Ñ4Ñ‚Ñг3Ñ4тіб3Ñ4тій3Ñ4тір3Ñ4фер3Ñ4хил3Ñ4хов3Ñ4хід3Ñ‚4кан3ш4код3ш4кол3ш4кіл3ш4кір3ш4таб3ш4туч3ґрунт3е4тап3о4бід3о4біц3о4дÑг3о4Ñоб3о4хоч3о4чищ3у4ваг3у4важ3у4гав3у4мит3у4міл3у4Ñ€Ñд3Ñ4зик3Ñ4кіÑ3Ñ4руÑ3Ñ”4д3н3Ñ”4дин3Ñ”4рей3Ñ—4ждж3Ñ—4хав3Ñ—4хат_заї4к_заї4ц_заї4ч_наї4давої4дае4тилахої4дауді4обе5конб’4єтьбран4дви3й4дви3й4Ñ‚3в’4Ñз4д7земді3й4тді3й4д_дої4в_дої4лдої4Ñтеу4Ñтрео4Ñвіек2Ñ1кек2Ñ1пек2Ñ1тек2Ñ1цигої4діе4тилйо4Ñвіквої4д3м’4Ñтна3з4внаї4вÑнаї4вшна4й3ана4й3енедої4неї4Ñтоної4доо4палео4палонаї4доо4Ñвіоу4Ñтроа4томпоч4непоч4нипоч4нупої4здраді4оз’4єднрмої4дÑор4тнцук3роубої4дÑÑої4дви3у4чза3у4чна3у4чне3у4чгелі4ополі4оÑоці4офізі4охімі4огоме4оао4пікка5налоі4золмете4оабиÑ4квиÑ4ÑннеÑ4ÑнпоÑ4Ñннеа4биео4ціноо4цінео4бурео4зорпіво4Ñпале4оао4хотео4хотео4щадао4щадоо4чищоо4бігоу4Ñуноу4комз3а4ктеу4богзай4нÑнай4нÑприй4мдій4манай4маобой4мпрой4мобій4моу4годау4годеу4годео4пиÑоо4пиÑао4пиÑ_ом4рі_ум4ри_ум4рі_ум4ру_ум4ревиу4ди", + 7 : "_бе4з’3_ві5д4а_ві5д4іневі4д3_пі5д4о_пі5д4Ñ–_пі5д4е_пі5д4и_пі5д4у_Ñпі4в3_ро5з4Ñ–_ро5з4е_ро5з4а_ро4з’3до3в’4єза3в’4єзі3в’4єпо3в’4єуі3в’4єпо3в’4Ñза3в’4Ñзі3в’4Ñна3в’4Ñоб3в’4Ñзі3м’4Ñно3м’4Ñза3м’4Ñна3м’4Ñоб3м’4Ñпо3м’4ÑÑу3м’4Ñдо3в’4юза3в’4юзі3в’4юна3в’4юпо3в’4юуі3в’4юза3Ñ4локоу4рочпоу4роч3м4к4не3м4к4ну3м4к4ні3Ñ4к4ле3Ñ4к4ло3британ3в4довз3в4лаÑн3в4лашт3в4певн3громад3груван3г4ідро3з4бага3зворуш3з4довж3знаход3зрозум3й4менн3й4муть3й4міть3м4ріть3Ñ€4вати3Ñ€4віть3Ñ4кіль3Ñ4кіпл3Ñ4пект3Ñ4перм3Ñ4піть3Ñ4тайн3Ñ4тара3Ñ4тиÑл3Ñ4титу3Ñ4товб3Ñ4тоÑо3Ñ4тоÑу3Ñ4тоÑн3Ñ4тіль3ш4кідл3а4гент3а4греÑ3а4зарт3а4ктив3а4куÑÑ‚3а4кциз3а4птеч3а4Ñоці3а4тлет3а4халі3е4моці3е4мігр3е4нерг3е4Ñтет3о4бира3о4даль3о4збро3о4крем3о4плат3о4птим3о4пуÑÑ‚3о4пуше3о4пуще3о4ренд3о4ÑÑжн3о4холо3о4чиÑн3у4згод3у4клад3у4рбан3у4Ñпіш3у4твор3Ñ4дерн3Ñ”4пиÑк3Ñ–4Ñнув_бе5зе_бйор4нÑвер4Ñ…3нвід7знаві5д4енві5д4омво4Ñ5ко_дої5ль3з’4ÑÑозна3й4дзна3й4ткорої4д3м’4Ñкшна3в4чанео4палобі3й4добі3й4тпереї4дпереї4жпереї4зпереї4лпереї4Ñпереї4хпре4й4Ñпо3д4вопри3й4тпро4Ñ„3Ñпор4Ñ‚3нпри3й4дроз5винроз5витро5з4умÑпе4цпрÑпе4ц3ÑÑÑŒ4квугтран4Ñ3під3у4чво4єводво4єначді4алогді4огенпроÑ4Ñнрозо4рарозо4рерозо4рннапоу4мне4олітне4ологне4онацне4офітнеÑ4рок_пе4ом_д3у4Ñімроз’Ñ4рте4ологте4оÑофа3у4даро3у4дарз3у4дарв3у4дареі4Ñтотоі4Ñтотоо4чиÑтнайа4ктпіва4ктао4бразео4бразоо4бразиа4варіÑа4варіоа4варіеа4варіаа4дреÑеа4дреÑоа4дреÑіа4дреÑае4фектее4фектое4фектое4міÑіие4міÑÑ–Ñе4міÑіее4міÑій3у4богздій4нÑобій4нÑд4о3й4мперей4мбезу4глоа4каціоо4держбіблі4о_на3в4ч_ви3в4ч_до3в4ч_за3в4ч_по3в4чана3в4чена3в4чови3в4чеви3в4чедо3в4чоза3в4чпо3в4чае3м4рій_ви3м4Ñ€_за3м4Ñ€_зі3м4Ñ€_на3м4Ñ€_по3м4рие4Ñтетое4Ñтетее4Ñтетоо4ктаніо4ктано3в4казе3в4каз", + 8 : "6б6Ñ6тв_6б6Ñ6тр_6б6Ñ6ьк_6в6Ñ6тв_6в6Ñ6ть_6в6Ñ6ьк_6г6Ñ6тв_6д6Ñ6тв_6д6Ñ6ьк_6д6ÑŒ6ÑÑŒ_6й6Ñ6тв_6й6Ñ6тр_6й6Ñ6ьк_6л6ÑŒ6дÑ_6л6ÑŒ6ÑÑŒ_6л6ÑŒ6тр_6м6б6ль_6м6Ñ6тв_6м6Ñ6ьк_6н6г6ль_6н6Ñ6тв_6н6Ñ6тр_6н6Ñ6ьк_6н6ÑŒ6ÑÑŒ_6п6Ñ6тв_6Ñ€6л6ьз_6Ñ€6н6ÑÑ‚_6Ñ€6Ñ6тв_6Ñ€6Ñ6ть_6Ñ€6Ñ6ьк_6Ñ€6щ6ÑÑŒ_6Ñ6д6рп_6Ñ6Ñ‚6рь_6Ñ‚6Ñ6тв_6Ñ‚6Ñ6ьк_6Ñ‚6ÑŒ6ÑÑŒ_6Ñ„6Ñ6тв__ві5д4ом_ві5д4ун_ві5д4ербезві4д3неві4д’3_пона4д3_напі4в3ро5з4йом_чере4з3пере5о4рпі6д5о4робі3в’4євід3в’4Ñпри3в’4Ñпід3в’4Ñпри3м’4Ñнаду4рочприу4роч3в4б4лаг3в4к4лад3в4п4лив3в4Ñ‚4рут3в4Ñ‚4руч3з4б4рой3з4б4рою3з4б4роє3з4в4’Ñз3п4Ñ4ков3Ñ4к4лад3Ñ4к4лит3Ñ4п4лав3Ñ4п4лат3Ñ4п4лач3Ñ4п4рав3Ñ4Ñ‚4вор3Ñ4Ñ‚4рах3Ñ4Ñ‚4риб3Ñ4Ñ‚4риж3Ñ4Ñ‚4рой3Ñ4Ñ‚4рок3Ñ4Ñ‚4ром3Ñ4Ñ‚4роф3Ñ4Ñ‚4роч3Ñ4Ñ‚4рою3Ñ4Ñ‚4роÑ3Ñ4Ñ‚4роє3Ñ4Ñ‚4рої3Ñ4Ñ‚4рій3Ñ4Ñ‚4ріл3Ñ4Ñ‚4річ3Ñ‚4к4нен3Ñ‚4ÑŒ4мар3у4п4рав3в4веден3в4довол3в4живан3в4порÑд3в4рожай3з4доров3з4дійÑн3Ñ4короч3Ñ4повід3Ñ4пожив3Ñ4табіл3Ñ4тереж3Ñ4теріг3Ñ4торон3Ñ4торін3а4дитив3а4ктуал3а4курат3а4кцепт3а4лергі3а4матор3а4наліз3а4натом3а4парат3а4пелÑц3а4ромат3а4Ñпект3е4колог3е4коном3е4лектр3о4б’єдн3о4б’єкт3о4береж3о4борон3о4перат3о4хорон3у4компл3у4крупн3у4перед3у4Ñ€Ñдов3у4Ñтпіш3у4тробн3Ñ4Ñкрав3Ñ–4зотоп3Ñ–4люÑтр3Ñ–4мовір3Ñ–4нтенÑ3Ñ–4нформальбі5онбей4Ñболбо4г3данбо4Ñ”3голбо4Ñ”3готбо4Ñ”3запбори4Ñ5пвина3й4двина3й4тві5д4е4оджен4тльди4Ñ3локди4Ñ3пледи4Ñ3путди4Ñ3тилд4ні3п4рдо3з4волдо3з4вілкон4трремо4к5рийна3б4лизна3в4Ñ€Ñдна4д7з4вна3в4ченне3в4томне3д4банна3д4банне3з4вичне3з4важна5п4ливні4Ñ‚5ратоб5у4мовпере3й4дпере3й4тпі5в4еньпо3в4торпо3в4ченпо3д4робпо3д4разпо5з4бавпри4нципрай3в4нороз5вантро4з5ділро4з5горро4з5верро4з5чепро4з3ливÑан4к4Ñ‚3Ñерцеї4дÑтат5упрукр3а4втукр3а4грукр3е4кÑнедо3у4чпед3у4чипере3у4чÑамо3у4чÑво4єчаÑÑво4єрідоо4динокміжу4Ñобнай3Ñ4Ñнроз’Ñ4Ñнро5з4ориро5з4ороро5з4оруро5з4орÑро5з4орюро5з4орірозо4решео4голошбальне4оне4оклаÑпі5в4оніп4о5берео3о4киÑли3о4киÑле3о4киÑлх3о4киÑли3Ñ–4Ñторо3Ñ–4Ñторі3Ñ–4Ñтора3Ñ–4ÑторÑ3Ñ–4Ñторе3Ñ–4Ñторар4Ñ‚3мінар4Ñ‚3підар4Ñ‚3ринар4Ñ‚3хімперей4нÑпідій4нÑбезу4пин_при3в4чмона3в4чжона3в4чіона3в4ч_зав3м4Ñ€_при3м4Ñ€_роз3м4рй3е4Ñтет", + 9 : "6л6ÑŒ6Ñтв_6л6ÑŒ6Ñьк_6н6Ñ6ькй_6н6Ñ‚6Ñтв__бе5з4о3д_безві4д3_ві5д4озвді4єві4д3за4вві4д3Ñпівві4д3_пере4д3г_пере4д3д_пере4д3м_пере4д3Ñ€_пере4д3ч_пере4д’3_пона5д4Ñ–_пона5д4и_пона5д4Ñ_чере4з’3непо3в’4Ñпере3м’4Ñпіді3м’4Ñпозау4роч3в4п4равн3Ñ4к4рипт3Ñ4п4ритн3Ñ4п4риÑÑ‚3Ñ4п4ромо3Ñ4Ñ‚4ражд3Ñ4Ñ‚4рукт3Ñ4Ñ‚4рукц3Ñ‚4ÑŒ4мÑні3в4разлив3з4баланÑ3й4мовірн3Ñ4поÑтер3а4вторит3а4декват3а4поÑтол3а4ргумен3е4легант3е4лемент3е4Ñтакад3о4рдинац3у4люблен3у4разлив3у4рочиÑÑ‚3у4Ñтанов3у4Ñувати3Ñ–4ніціатай4Ñ3бергбактері4оба4Ñ3енербез5Ñ–4менбо4Ñ”3здатбо4Ñ”3компбо4Ñ”3поÑтбо4Ñ”3прип4в3антрацге2ть3мандер4ж5виддер4ж5думдер4ж5комдер4ж3бездер4ж5ÑтрдиÑбаланÑди4Ñ3гармди4Ñ3квалди4Ñ3комфди4Ñ3контди4Ñ3кредди4Ñ3кретди4Ñ3крецди4Ñ3кримди4Ñ3куÑіди4Ñ3кутуди4Ñ3перÑди4Ñ3петчди4Ñ3плейди4Ñ3позиди4Ñ3пропди4Ñ3трибди4Ñ3трофєв4Ñ€3атомєпі4Ñ5копєпи4Ñ5копза4п3чаÑті4л3е4тилкиї4венермі4н5е4кона4й3маÑлна4й3Ñприна4й3ÑкіÑна3в4чітьобі3д4раноб4лдер4жперег4нійпере4д5Ñмпід5о4динпо3б4лизупо3в4чітьпо5ж4нітьпоÑ4Ñ‚3каппоÑ4Ñ‚3компоÑ4Ñ‚3натпоÑ4Ñ‚3Ñоцпор4Ñ‚3ретпор4Ñ‚3фелпро4ект3нпро3б4лемпро4м3майпр4о5платро4з5д4вороз5у4ченроз5Ñ–4менро4з’5єднро4з3громÑпе4ц3курÑпе4ц3мон3Ñ4проможтур4к3менро5з4ора_ро5з4орахне4омальтне4окомунне4оландшне4оліберно4к3а4утте4одолітпів3о4валнаді4Ñторар4Ñ‚3афішар4Ñ‚3кафеар4Ñ‚3майÑар4Ñ‚3мейÑар4Ñ‚3фактнаді4Ñтотнайі4Ñтотау4Ñ‚3еколбеза4варібезе4міÑіо3а4налізц3а4налізз3а4налізм3а4налізпів3у4годроз3у4год_віді3м4Ñ€_пере3м4рво4Ñтаннєоо4плачувео4плачув", + 10 : "_без5о4Ñоб_без3ро4з3те4Ñ…3ві4д3_пере4д3Ñв_пере4д3фрбе4з5Ñ–4дейінтер3в’4юна4й3у4бог3в4Ñ€4одливба4Ñ3антравід5о4бражвід5о4бразводо5Ñ4токводо5з4бірго4Ñ4п5роздер4ж5а4дмдер4ж5бюдждер4ж5нафтдер4ж5реєÑдер4ж5Ñлуждвох4а5томди4Ñ3паритди4Ñ3функцкон4тр3аргмі4н5е4нерна4й7о4берна4й7о4гидна4й7о4голна4й7о4пукна4й7о4хайпере5п4ливпере3в4томпів5о4Ñ4трпоÑ4Ñ‚3процпоÑ4Ñ‚3фікÑÑпор4Ñ‚3вирÑпор4Ñ‚3залÑпор4Ñ‚3комÑпор4Ñ‚3майтор4г3предÑво4єкориÑро5з4о5рамро6з5о4ри_ень7о4киÑлнай3Ñ–4Ñторпів3Ñ–4Ñторар4Ñ‚3взводар4Ñ‚3медіаар4Ñ‚3о4динар4Ñ‚3о4збрар4Ñ‚3центргіпер3а4ктнай3о4бразар4Ñ‚3мейÑтго4Ñ„3мейÑтдо4к3мейÑтхо4Ñ€3мейÑтміж3а4варінад3а4варібез3а4дреÑнай3е4фектбло4к3поÑÑ‚_блі4ц3ана_блі4ц3турнт3а4налізре3а4налізбо4Ñ€4Ñ‚3мехбо4Ñ€4Ñ‚3пробо4Ñ€4Ñ‚3радпан3е4Ñтетпар3е4Ñтет", 11 : "про4Ñ„3ві4д3Ñпе4ц3ві4д3_пере4д3бач_пере4д3виб_пере4д3оÑÑ‚_пере4д3пла_пере4д3пок_пере4д3уÑібрі4дж3портволь4Ñ‚3метргі4д5ро5метдер4ж5а4томдер4ж5замовзе4кономитиказа4Ñ…3Ñтанквар4Ñ‚3платжко4м5а4томкому4ненергна4й3обережна4й7о4грÑдоб4л3а4дмінперед5о4бідперед5у4мовпо4Ñ4Ñ‚5комупо4Ñ4Ñ‚3декрпо4Ñ4Ñ‚3радіпо4Ñ4Ñ‚5Ñоціпро3Ñ4тирадполі4Ñ‚5еконро4з5міннийруко5Ñ4тиÑкÑпор4Ñ‚3клубÑпор4Ñ‚4Ñ3мечорно3б4ривхво4Ñ”3г4ризпа4н3о4тецьконтр3у4дарпоÑÑ‚3Ñ–4Ñторар4Ñ‚3деÑантар4Ñ‚3о4бÑтрар4Ñ‚3у4Ñтанграф3о4бразгро4Ñ3мейÑткра4н3мейÑтшта4л3мейÑтєге4Ñ€3мейÑтпоÑÑ‚3а4варі_блі4ц3криг_блі4ц3опит_блі4ц3торгбак3а4налізген3а4налізміж3а4налізгоÑ4п3у4годбо4Ñ€4Ñ‚3Ñ–4нжнай3о4Ñтаннперед3о4пла", 12 : "_пере4д3умовволь4Ñ‚3ампердер4ж3резервдорого5в4казінфор4м3агенпо4Ñ4Ñ‚5радÑнпо4Ñ4тприватукр3Ñ–4н4банкперед3Ñ–4ÑторÑупер3о4бразбаге4Ñ€3мейÑтбале4Ñ‚3мейÑтбран4д3мейÑтполі4ц3мейÑтпо4ш4Ñ‚3мейÑтшапі4Ñ‚3мейÑтнапів3а4варіперед3а4варіÑупер3а4варіÑупер3е4фектгіпер3е4міÑіполі3а4налізбо4Ñ€4Ñ‚3о4пер", 13 : "по4Ñ4Ñ‚3контрацен4Ñ‚4Ñ€3енергва4ль4д3мейÑтве4ль4Ñ‚3мейÑтдекре4Ñ‚3мейÑткапе4ль3мейÑÑ‚_блі4ц3Ñ–4Ñпитперед3о4Ñтанн", diff --git a/resources/viewer/hyphenation.js b/resources/viewer/hyphenation.js index a0ba6d1f34..3853eb95be 100644 --- a/resources/viewer/hyphenation.js +++ b/resources/viewer/hyphenation.js @@ -1,15 +1,9 @@ /* - * bookmarks management + * Hyphenation * Copyright 2008 Kovid Goyal * License: GNU GPL v3 */ -function init_hyphenate() { - window.py_bridge.init_hyphenate(); -} - -document.addEventListener("DOMContentLoaded", init_hyphenate, false); - function do_hyphenation(lang) { Hyphenator.config( { @@ -17,6 +11,9 @@ function do_hyphenation(lang) { //'hyphenchar' : '|', 'displaytogglebox' : false, 'remoteloading' : false, + 'doframes' : true, + 'defaultlanguage' : 'en', + 'storagetype' : 'session', 'onerrorhandler' : function (e) { window.py_bridge.debug(e); } diff --git a/resources/viewer/images.js b/resources/viewer/images.js index ea68009254..78c3241140 100644 --- a/resources/viewer/images.js +++ b/resources/viewer/images.js @@ -6,14 +6,43 @@ function scale_images() { $("img:visible").each(function() { - var offset = $(this).offset(); + var img = $(this); + var offset = img.offset(); + var avail_width = window.innerWidth - offset.left - 5; + var avail_height = window.innerHeight - 5; + img.css('width', img.data('orig-width')); + img.css('height', img.data('orig-height')); + var width = img.width(); + var height = img.height(); + var ratio = 0; + + if (width > avail_width) { + ratio = avail_width / width; + img.css('width', avail_width+'px'); + img.css('height', (ratio*height) + 'px'); + height = height * ratio; + width = width * ratio; + } + + if (height > avail_height) { + ratio = avail_height / height; + img.css('height', avail_height); + img.css('width', width * ratio); + } //window.py_bridge.debug(window.getComputedStyle(this, '').getPropertyValue('max-width')); - $(this).css("max-width", (window.innerWidth-offset.left-5)+"px"); - $(this).css("max-height", (window.innerHeight-5)+"px"); + }); +} + +function store_original_size_attributes() { + $("img").each(function() { + var img = $(this); + img.data('orig-width', img.css('width')); + img.data('orig-height', img.css('height')); }); } function setup_image_scaling_handlers() { + store_original_size_attributes(); scale_images(); $(window).resize(function(){ scale_images(); diff --git a/session.vim b/session.vim index 54fb6305c2..f2adf71de9 100644 --- a/session.vim +++ b/session.vim @@ -1,5 +1,5 @@ " Project wide builtins -let g:pyflakes_builtins += ["dynamic_property", "__", "P", "I", "lopen"] +let g:pyflakes_builtins += ["dynamic_property", "__", "P", "I", "lopen", "icu_lower", "icu_upper", "icu_title"] python << EOFPY import os diff --git a/setup/build_environment.py b/setup/build_environment.py index b29ee88cc3..d6581a907d 100644 --- a/setup/build_environment.py +++ b/setup/build_environment.py @@ -13,9 +13,9 @@ from PyQt4 import pyqtconfig from setup import isosx, iswindows, islinux -OSX_SDK = '/Developer/SDKs/MacOSX10.4u.sdk' +OSX_SDK = '/Developer/SDKs/MacOSX10.5.sdk' -os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.4' +os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.5' NMAKE = RC = msvc = MT = win_inc = win_lib = win_ddk = None if iswindows: @@ -90,11 +90,17 @@ fc_lib = '/usr/lib' podofo_inc = '/usr/include/podofo' podofo_lib = '/usr/lib' chmlib_inc_dirs = chmlib_lib_dirs = [] +sqlite_inc_dirs = [] +icu_inc_dirs = [] +icu_lib_dirs = [] if iswindows: prefix = r'C:\cygwin\home\kovid\sw' sw_inc_dir = os.path.join(prefix, 'include') sw_lib_dir = os.path.join(prefix, 'lib') + icu_inc_dirs = [sw_inc_dir] + icu_lib_dirs = [sw_lib_dir] + sqlite_inc_dirs = [sw_inc_dir] fc_inc = os.path.join(sw_inc_dir, 'fontconfig') fc_lib = sw_lib_dir chmlib_inc_dirs = consolidate('CHMLIB_INC_DIR', os.path.join(prefix, @@ -124,7 +130,7 @@ elif isosx: fc_inc = '/sw/include/fontconfig' fc_lib = '/sw/lib' poppler_inc_dirs = consolidate('POPPLER_INC_DIR', - '/sw/build/poppler-0.12.2/poppler:/sw/build/poppler-0.12.2') + '/sw/build/poppler-0.14.5/poppler:/sw/build/poppler-0.14.5') popplerqt4_inc_dirs = poppler_inc_dirs + [poppler_inc_dirs[0]+'/qt4'] poppler_lib_dirs = consolidate('POPPLER_LIB_DIR', '/sw/lib') diff --git a/setup/check.py b/setup/check.py index 57c72e08c1..3e94b9dda1 100644 --- a/setup/check.py +++ b/setup/check.py @@ -63,7 +63,8 @@ class Check(Command): description = 'Check for errors in the calibre source code' - BUILTINS = ['_', '__', 'dynamic_property', 'I', 'P', 'lopen'] + BUILTINS = ['_', '__', 'dynamic_property', 'I', 'P', 'lopen', 'icu_lower', + 'icu_upper', 'icu_title'] CACHE = '.check-cache.pickle' def get_files(self, cache): diff --git a/setup/commands.py b/setup/commands.py index 26af3d967a..12fb5fe0af 100644 --- a/setup/commands.py +++ b/setup/commands.py @@ -18,8 +18,8 @@ __all__ = [ 'pypi_register', 'pypi_upload', 'upload_to_server', 'upload_user_manual', 'upload_to_mobileread', 'upload_demo', 'upload_to_sourceforge', 'upload_to_google_code', - 'linux32', 'linux64', 'linux', 'linux_freeze', 'linux_freeze2', - 'osx32_freeze', 'osx32', 'osx', 'rsync', 'push', + 'linux32', 'linux64', 'linux', 'linux_freeze', + 'osx32_freeze', 'osx', 'rsync', 'push', 'win32_freeze', 'win32', 'win', 'stage1', 'stage2', 'stage3', 'stage4', 'publish' ] @@ -79,14 +79,11 @@ from setup.installer.linux import Linux, Linux32, Linux64 linux = Linux() linux32 = Linux32() linux64 = Linux64() -from setup.installer.linux.freeze import LinuxFreeze +from setup.installer.linux.freeze2 import LinuxFreeze linux_freeze = LinuxFreeze() -from setup.installer.linux.freeze2 import LinuxFreeze2 -linux_freeze2 = LinuxFreeze2() -from setup.installer.osx import OSX, OSX32 +from setup.installer.osx import OSX osx = OSX() -osx32 = OSX32() from setup.installer.osx.app.main import OSX32_Freeze osx32_freeze = OSX32_Freeze() diff --git a/setup/extensions.py b/setup/extensions.py index 531107d3cb..6a9cce7625 100644 --- a/setup/extensions.py +++ b/setup/extensions.py @@ -18,7 +18,8 @@ from setup.build_environment import fc_inc, fc_lib, chmlib_inc_dirs, \ QMAKE, msvc, MT, win_inc, win_lib, png_inc_dirs, win_ddk, \ magick_inc_dirs, magick_lib_dirs, png_lib_dirs, png_libs, \ magick_error, magick_libs, ft_lib_dirs, ft_libs, jpg_libs, \ - jpg_lib_dirs, chmlib_lib_dirs + jpg_lib_dirs, chmlib_lib_dirs, sqlite_inc_dirs, icu_inc_dirs, \ + icu_lib_dirs MT isunix = islinux or isosx or isfreebsd @@ -56,8 +57,30 @@ pdfreflow_libs = [] if iswindows: pdfreflow_libs = ['advapi32', 'User32', 'Gdi32', 'zlib'] +icu_libs = ['icudata', 'icui18n', 'icuuc', 'icuio'] +icu_cflags = [] +if iswindows: + icu_libs = ['icudt', 'icuin', 'icuuc', 'icuio'] +if isosx: + icu_libs = ['icucore'] + icu_cflags = ['-DU_DISABLE_RENAMING'] # Needed to use system libicucore.dylib + + extensions = [ + Extension('icu', + ['calibre/utils/icu.c'], + libraries=icu_libs, + lib_dirs=icu_lib_dirs, + inc_dirs=icu_inc_dirs, + cflags=icu_cflags + ), + + Extension('sqlite_custom', + ['calibre/library/sqlite_custom.c'], + inc_dirs=sqlite_inc_dirs + ), + Extension('chmlib', ['calibre/utils/chm/swig_chm.c'], libraries=['ChmLib' if iswindows else 'chm'], @@ -186,7 +209,7 @@ if isfreebsd: if isosx: - x, p = ('i386', 'ppc') + x, p = ('i386', 'x86_64') archs = ['-arch', x, '-arch', p, '-isysroot', OSX_SDK] cflags.append('-D_OSX') @@ -339,7 +362,7 @@ class Build(Command): obj_pat = 'release\\*.obj' if iswindows else '*.o' objects = glob.glob(obj_pat) if not objects or self.newer(objects, ext.sources+ext.headers): - archs = 'x86 ppc' + archs = 'x86 x86_64' pro = textwrap.dedent('''\ TARGET = %s TEMPLATE = lib diff --git a/setup/installer/cx_Freeze/HISTORY.txt b/setup/installer/cx_Freeze/HISTORY.txt deleted file mode 100644 index acf9ad0dfe..0000000000 --- a/setup/installer/cx_Freeze/HISTORY.txt +++ /dev/null @@ -1,244 +0,0 @@ -Changes from 4.0 to 4.0.1 - 1) Added support for Python 2.6. On Windows a manifest file is now required - because of the switch to using the new Microsoft C runtime. - 2) Ensure that hooks are run for builtin modules. - -Changes from 4.0b1 to 4.0 - 1) Added support for copying files to the target directory. - 2) Added support for a hook that runs when a module is missing. - 3) Added support for binary path includes as well as excludes; use sequences - rather than dictionaries as a more convenient API; exclude the standard - locations for 32-bit and 64-bit libaries in multi-architecture systems. - 4) Added support for searching zip files (egg files) for modules. - 5) Added support for handling system exit exceptions similarly to what Python - does itself as requested by Sylvain. - 6) Added code to wait for threads to shut down like the normal Python - interpreter does. Thanks to Mariano Disanzo for discovering this - discrepancy. - 7) Hooks added or modified based on feedback from many people. - 8) Don't include the version name in the display name of the MSI. - 9) Use the OS dependent path normalization routines rather than simply use the - lowercase value as on Unix case is important; thanks to Artie Eoff for - pointing this out. -10) Include a version attribute in the cx_Freeze package and display it in the - output for the --version option to the script. -11) Include build instructions as requested by Norbert Sebok. -12) Add support for copying files when modules are included which require data - files to operate properly; add support for copying the necessary files for - the Tkinter and matplotlib modules. -13) Handle deferred imports recursively as needed; ensure that from lists do - not automatically indicate that they are part of the module or the deferred - import processing doesn't actually work! -14) Handle the situation where a module imports everything from a package and - the __all__ variable has been defined but the package has not actually - imported everything in the __all__ variable during initialization. -15) Modified license text to more closely match the Python Software Foundation - license as was intended. -16) Added sample script for freezing an application using matplotlib. -17) Renamed freeze to cxfreeze to avoid conflict with another package that uses - that executable as requested by Siegfried Gevatter. - -Changes from 3.0.3 to 4.0b1 - 1) Added support for placing modules in library.zip or in a separate zip file - for each executable that is produced. - 2) Added support for copying binary dependent files (DLLs and shared - libraries) - 3) Added support for including all submodules in a package - 4) Added support for including icons in Windows executables - 5) Added support for constants module which can be used for determining - certain build constants at runtime - 6) Added support for relative imports available in Python 2.5 and up - 7) Added support for building Windows installers (Python 2.5 and up) and - RPM packages - 8) Added support for distutils configuration scripts - 9) Added support for hooks which can force inclusion or exclusion of modules - when certain modules are included -10) Added documentation and samples -11) Added setup.py for building the cx_Freeze package instead of a script - used to build only the frozen bases -12) FreezePython renamed to a script called freeze in the Python distribution -13) On Linux and other platforms that support it set LD_RUN_PATH to include - the directory in which the executable is located - -Changes from 3.0.2 to 3.0.3 - 1) In Common.c, used MAXPATHLEN defined in the Python OS independent include - file rather than the PATH_MAX define which is OS dependent and is not - available on IRIX as noted by Andrew Jones. - 2) In the initscript ConsoleSetLibPath.py, added lines from initscript - Console.py that should have been there since the only difference between - that script and this one is the automatic re-execution of the executable. - 3) Added an explicit "import encodings" to the initscripts in order to handle - Unicode encodings a little better. Thanks to Ralf Schmitt for pointing out - the problem and its solution. - 4) Generated a meaningful name for the extension loader script so that it is - clear which particular extension module is being loaded when an exception - is being raised. - 5) In MakeFrozenBases.py, use distutils to figure out a few more - platform-dependent linker flags as suggested by Ralf Schmitt. - -Changes from 3.0.1 to 3.0.2 - 1) Add support for compressing the byte code in the zip files that are - produced. - 2) Add better support for the win32com package as requested by Barry Scott. - 3) Prevent deletion of target file if it happens to be identical to the - source file. - 4) Include additional flags for local modifications to a Python build as - suggested by Benjamin Rutt. - 5) Expanded instructions for building cx_Freeze from source based on a - suggestion from Gregg Lind. - 6) Fix typo in help string. - -Changes from 3.0 to 3.0.1 - 1) Added option --default-path which is used to specify the path used when - finding modules. This is particularly useful when performing cross - compilations (such as for building a frozen executable for Windows CE). - 2) Added option --shared-lib-name which can be used to specify the name of - the shared library (DLL) implementing the Python runtime that is required - for the frozen executable to work. This option is also particularly useful - when cross compiling since the normal method for determining this - information cannot be used. - 3) Added option --zip-include which allows for additional files to be added - to the zip file that contains the modules that implement the Python - script. Thanks to Barray Warsaw for providing the initial patch. - 4) Added support for handling read-only files properly. Thanks to Peter - Grayson for pointing out the problem and providing a solution. - 5) Added support for a frozen executable to be a symbolic link. Thanks to - Robert Kiendl for providing the initial patch. - 6) Enhanced the support for running a frozen executable that uses an existing - Python installation to locate modules it requires. This is primarily of - use for embedding Python where the interface is C but the ability to run - from source is still desired. - 7) Modified the documentation to indicate that building from source on - Windows currently requires the mingw compiler (http://www.mingw.org). - 8) Workaround the problem in Python 2.3 (fixed in Python 2.4) which causes a - broken module to be left in sys.modules if an ImportError takes place - during the execution of the code in that module. Thanks to Roger Binns - for pointing this out. - -Changes from 3.0 beta3 to 3.0 - 1) Ensure that ldd is only run on extension modules. - 2) Allow for using a compiler other than gcc for building the frozen base - executables by setting the environment variable CC. - 3) Ensure that the import lock is not held while executing the main script; - otherwise, attempts to import a module within a thread will hang that - thread as noted by Roger Binns. - 4) Added support for replacing the paths in all frozen modules with something - else (so that for example the path of the machine on which the freezing - was done is not displayed in tracebacks) - -Changes from 3.0 beta2 to 3.0 beta3 - 1) Explicitly include the warnings module so that at runtime warnings are - suppressed as when running Python normally. - 2) Improve the extension loader so that an ImportError is raised when the - dynamic module is not located; otherwise an error about missing attributes - is raised instead. - 3) Extension loaders are only created when copying dependencies since the - normal module should be loadable in the situation where a Python - installation is available. - 4) Added support for Python 2.4. - 5) Fixed the dependency checking for wxPython to be a little more - intelligent. - -Changes from 3.0 beta1 to 3.0 beta2 - 1) Fix issues with locating the initscripts and bases relative to the - directory in which the executable was started. - 2) Added new base executable ConsoleKeepPath which is used when an existing - Python installation is required (such as for FreezePython itself). - 3) Forced the existence of a Python installation to be ignored when using the - standard Console base executable. - 4) Remove the existing file when copying dependent files; otherwise, an error - is raised when attempting to overwrite read-only files. - 5) Added option -O (or -OO) to FreezePython to set the optimization used when - generating bytecode. - -Changes from 2.2 to 3.0 beta1 - 1) cx_Freeze now requires Python 2.3 or higher since it takes advantage of - the ability of Python 2.3 and higher to import modules from zip files. - This makes the freezing process considerably simpler and also allows for - the execution of multiple frozen packages (such as found in COM servers or - shared libraries) without requiring modification to the Python modules. - 2) All external dependencies have been removed. cx_Freeze now only requires - a standard Python distribution to do its work. - 3) Added the ability to define the initialization scripts that cx_Freeze uses - on startup of the frozen program. Previously, these scripts were written - in C and could not easily be changed; now they are written in Python and - can be found in the initscripts directory (and chosen with the - new --init-script option to FreezePython). - 4) The base executable ConsoleSetLibPath has been removed and replaced with - the initscript ConsoleSetLibPath. - 5) Removed base executables for Win32 services and Win32 COM servers. This - functionality will be restored in the future but it is not currently in a - state that is ready for release. If this functionality is required, please - use py2exe or contact me for my work in progress. - 6) The attribute sys.frozen is now set so that more recent pywin32 modules - work as expected when frozen. - 7) Added option --include-path to FreezePython to allow overriding of - sys.path without modifying the environment variable PYTHONPATH. - 8) Added option --target-dir/--install-dir to specify the directory in which - the frozen executable and its dependencies will be placed. - 9) Removed the option --shared-lib since it was used for building shared - libraries and can be managed with the initscript SharedLib.py. -10) MakeFrozenBases.py now checks the platform specific include directory as - requested by Michael Partridge. - - -Changes from 2.1 to 2.2 - 1) Add option (--ext-list-file) to FreezePython to write the list of - extensions copied to the installation directory to a file. This option is - useful in cases where multiple builds are performed into the same - installation directory. - 2) Pass the arguments on the command line through to Win32 GUI applications. - Thanks to Michael Porter for pointing this out. - 3) Link directly against the python DLL when building the frozen bases on - Windows, thus eliminating the need for building an import library. - 4) Force sys.path to include the directory in which the script to be frozen - is found. - 5) Make sure that the installation directory exists before attempting to - copy the target binary into it. - 6) The Win32GUI base has been modified to display fatal errors in message - boxes, rather than printing errors to stderr, since on Windows the - standard file IO handles are all closed. - -Changes from 2.0 to 2.1 - 1) Remove dependency on Python 2.2. Thanks to Paul Moore for not only - pointing it out but providing patches. - 2) Set up the list of frozen modules in advance, rather than doing it after - Python is initialized so that implicit imports done by Python can be - satisfied. The bug in Python 2.3 that demonstrated this issue has been - fixed in the first release candidate. Thanks to Thomas Heller for pointing - out the obvious in this instance! - 3) Added additional base executable (ConsoleSetLibPath) to support setting - the LD_LIBRARY_PATH variable on Unix platforms and restarting the - executable to put the new setting into effect. This is primarily of use - in distributing wxPython applications on Unix where the shared library - has an embedded RPATH value which can cause problems. - 4) Small improvements of documentation based on feedback from several people. - 5) Print information about the files written or copied during the freezing - process. - 6) Do not copy extensions when freezing if the path is being overridden since - it is expected that a full Python installation is available to the target - users of the frozen binary. - 7) Provide meaningful error message when the wxPython library cannot be - found during the freezing process. - -Changes from 1.1 to 2.0 - 1) Added support for in process (DLL) COM servers using PythonCOM. - 2) Ensured that the frozen flag is set prior to determining the full path for - the program in order to avoid warnings about Python not being found on - some platforms. - 3) Added include file and resource file to the source tree to avoid the - dependency on the Wine message compiler for Win32 builds. - 4) Dropped the option --copy-extensions; this now happens automatically since - the resulting binary is useless without them. - 5) Added a sample for building a Win32 service. - 6) Make use of improved modules from Python 2.3 (which function under 2.2) - -Changes from 1.0 to 1.1 - 1) Fixed import error with C extensions in packages; thanks to Thomas Heller - for pointing out the solution to this problem. - 2) Added options to FreezePython to allow for the inclusion of modules which - will not be found by the module finder (--include-modules) and the - exclusion of modules which will be found by the module finder but should - not be included (--exclude-modules). - 3) Fixed typo in README.txt. - diff --git a/setup/installer/cx_Freeze/LICENSE.txt b/setup/installer/cx_Freeze/LICENSE.txt deleted file mode 100644 index cb9ee05a8a..0000000000 --- a/setup/installer/cx_Freeze/LICENSE.txt +++ /dev/null @@ -1,53 +0,0 @@ -Copyright © 2007-2008, Colt Engineering, Edmonton, Alberta, Canada. -Copyright © 2001-2006, Computronix (Canada) Ltd., Edmonton, Alberta, Canada. -All rights reserved. - -NOTE: this license is derived from the Python Software Foundation License -which can be found at http://www.python.org/psf/license - -License for cx_Freeze 4.0.1 ---------------------------- - -1. This LICENSE AGREEMENT is between the copyright holders and the Individual - or Organization ("Licensee") accessing and otherwise using cx_Freeze - software in source or binary form and its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, the - copyright holders hereby grant Licensee a nonexclusive, royalty-free, - world-wide license to reproduce, analyze, test, perform and/or display - publicly, prepare derivative works, distribute, and otherwise use cx_Freeze - alone or in any derivative version, provided, however, that this License - Agreement and this notice of copyright are retained in cx_Freeze alone or in - any derivative version prepared by Licensee. - -3. In the event Licensee prepares a derivative work that is based on or - incorporates cx_Freeze or any part thereof, and wants to make the derivative - work available to others as provided herein, then Licensee hereby agrees to - include in any such work a brief summary of the changes made to cx_Freeze. - -4. The copyright holders are making cx_Freeze available to Licensee on an - "AS IS" basis. THE COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, - EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, THE COPYRIGHT - HOLDERS MAKE NO AND DISCLAIM ANY REPRESENTATION OR WARRANTY OF - MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF - CX_FREEZE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. - -5. THE COPYRIGHT HOLDERS SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF - CX_FREEZE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS - A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING CX_FREEZE, OR ANY - DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material breach - of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any relationship - of agency, partnership, or joint venture between the copyright holders and - Licensee. This License Agreement does not grant permission to use - copyright holder's trademarks or trade name in a trademark sense to endorse - or promote products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using cx_Freeze, Licensee agrees to be - bound by the terms and conditions of this License Agreement. - -Computronix® is a registered trademark of Computronix (Canada) Ltd. - diff --git a/setup/installer/cx_Freeze/MANIFEST.in b/setup/installer/cx_Freeze/MANIFEST.in deleted file mode 100644 index 2348a66973..0000000000 --- a/setup/installer/cx_Freeze/MANIFEST.in +++ /dev/null @@ -1,6 +0,0 @@ -include MANIFEST.in -include *.txt -recursive-include doc *.html -recursive-include initscripts *.py -recursive-include samples *.py -recursive-include source *.c *.rc diff --git a/setup/installer/cx_Freeze/PKG-INFO b/setup/installer/cx_Freeze/PKG-INFO deleted file mode 100644 index aa53b57914..0000000000 --- a/setup/installer/cx_Freeze/PKG-INFO +++ /dev/null @@ -1,22 +0,0 @@ -Metadata-Version: 1.0 -Name: cx_Freeze -Version: 4.0.1 -Summary: create standalone executables from Python scripts -Home-page: http://cx-freeze.sourceforge.net -Author: Anthony Tuininga -Author-email: anthony.tuininga@gmail.com -License: Python Software Foundation License -Description: create standalone executables from Python scripts -Keywords: freeze -Platform: UNKNOWN -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: Python Software Foundation License -Classifier: Natural Language :: English -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: C -Classifier: Programming Language :: Python -Classifier: Topic :: Software Development :: Build Tools -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: System :: Software Distribution -Classifier: Topic :: Utilities diff --git a/setup/installer/cx_Freeze/README.txt b/setup/installer/cx_Freeze/README.txt deleted file mode 100644 index 1ac67dc749..0000000000 --- a/setup/installer/cx_Freeze/README.txt +++ /dev/null @@ -1,12 +0,0 @@ -Please see cx_Freeze.html for documentation on how to use cx_Freeze. - -To build: - -python setup.py build -python setup.py install - -On Windows I have used the MinGW compiler (http://www.mingw.org) - -python setup.py build --compiler=mingw32 -python setup.py build --compiler=mingw32 install - diff --git a/setup/installer/cx_Freeze/cx_Freeze/__init__.py b/setup/installer/cx_Freeze/cx_Freeze/__init__.py deleted file mode 100644 index 545883eb3e..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -version = "4.0.1" - -import sys -from dist import * -if sys.platform == "win32" and sys.version_info[:2] >= (2, 5): - from windist import * -from finder import * -from freezer import * -from main import * - -del dist -del finder -del freezer - diff --git a/setup/installer/cx_Freeze/cx_Freeze/dist.py b/setup/installer/cx_Freeze/cx_Freeze/dist.py deleted file mode 100644 index c2af2ac623..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/dist.py +++ /dev/null @@ -1,279 +0,0 @@ -import distutils.command.bdist_rpm -import distutils.command.build -import distutils.command.install -import distutils.core -import distutils.dir_util -import distutils.dist -import distutils.util -import distutils.version -import os -import sys - -import cx_Freeze - -__all__ = [ "bdist_rpm", "build", "build_exe", "install", "install_exe", - "setup" ] - -class Distribution(distutils.dist.Distribution): - - def __init__(self, attrs): - self.executables = [] - distutils.dist.Distribution.__init__(self, attrs) - - -class bdist_rpm(distutils.command.bdist_rpm.bdist_rpm): - - def finalize_options(self): - distutils.command.bdist_rpm.bdist_rpm.finalize_options(self) - self.use_rpm_opt_flags = 1 - - def _make_spec_file(self): - contents = distutils.command.bdist_rpm.bdist_rpm._make_spec_file(self) - return [c for c in contents if c != 'BuildArch: noarch'] - - -class build(distutils.command.build.build): - user_options = distutils.command.build.build.user_options + [ - ('build-exe=', None, 'build directory for executables') - ] - - def get_sub_commands(self): - subCommands = distutils.command.build.build.get_sub_commands(self) - if self.distribution.executables: - subCommands.append("build_exe") - return subCommands - - def initialize_options(self): - distutils.command.build.build.initialize_options(self) - self.build_exe = None - - def finalize_options(self): - distutils.command.build.build.finalize_options(self) - if self.build_exe is None: - dirName = "exe.%s-%s" % \ - (distutils.util.get_platform(), sys.version[0:3]) - self.build_exe = os.path.join(self.build_base, dirName) - - -class build_exe(distutils.core.Command): - description = "build executables from Python scripts" - user_options = [ - ('build-exe=', 'b', - 'directory for built executables'), - ('optimize=', 'O', - 'optimization level: -O1 for "python -O", ' - '-O2 for "python -OO" and -O0 to disable [default: -O0]'), - ('excludes=', 'e', - 'comma-separated list of modules to exclude'), - ('includes=', 'i', - 'comma-separated list of modules to include'), - ('packages=', 'p', - 'comma-separated list of packages to include'), - ('replace-paths=', None, - 'comma-separated list of paths to replace in included modules'), - ('path=', None, - 'comma-separated list of paths to search'), - ('init-script=', 'i', - 'name of script to use during initialization'), - ('base=', None, - 'name of base executable to use'), - ('compressed', 'c', - 'create a compressed zipfile'), - ('copy-dependent-files', None, - 'copy all dependent files'), - ('create-shared-zip', None, - 'create a shared zip file containing shared modules'), - ('append-script-to-exe', None, - 'append the script module to the exe'), - ('include-in-shared-zip', None, - 'include the script module in the shared zip file'), - ('icon', None, - 'include the icon along with the frozen executable(s)'), - ('constants=', None, - 'comma-separated list of constants to include'), - ('include-files=', 'f', - 'list of tuples of additional files to include in distribution'), - ('bin-includes', None, - 'list of names of files to include when determining dependencies'), - ('bin-excludes', None, - 'list of names of files to exclude when determining dependencies') - ] - boolean_options = ["compressed", "copy_dependent_files", - "create_shared_zip", "append_script_to_exe", - "include_in_shared_zip"] - - def _normalize(self, attrName): - value = getattr(self, attrName) - if value is None: - normalizedValue = [] - elif isinstance(value, basestring): - normalizedValue = value.split() - else: - normalizedValue = list(value) - setattr(self, attrName, normalizedValue) - - def initialize_options(self): - self.optimize = 0 - self.build_exe = None - self.excludes = [] - self.includes = [] - self.packages = [] - self.replace_paths = [] - self.compressed = None - self.copy_dependent_files = None - self.init_script = None - self.base = None - self.path = None - self.create_shared_zip = None - self.append_script_to_exe = None - self.include_in_shared_zip = None - self.icon = None - self.constants = [] - self.include_files = [] - self.bin_excludes = [] - self.bin_includes = [] - - def finalize_options(self): - self.set_undefined_options('build', ('build_exe', 'build_exe')) - self.optimize = int(self.optimize) - self._normalize("excludes") - self._normalize("includes") - self._normalize("packages") - self._normalize("constants") - - def run(self): - metadata = self.distribution.metadata - constantsModule = cx_Freeze.ConstantsModule(metadata.version) - for constant in self.constants: - parts = constant.split("=") - if len(parts) == 1: - name = constant - value = None - else: - name, stringValue = parts - value = eval(stringValue) - constantsModule.values[name] = value - freezer = cx_Freeze.Freezer(self.distribution.executables, - [constantsModule], self.includes, self.excludes, self.packages, - self.replace_paths, self.compressed, self.optimize, - self.copy_dependent_files, self.init_script, self.base, - self.path, self.create_shared_zip, self.append_script_to_exe, - self.include_in_shared_zip, self.build_exe, icon = self.icon, - includeFiles = self.include_files, - binIncludes = self.bin_includes, - binExcludes = self.bin_excludes) - freezer.Freeze() - - -class install(distutils.command.install.install): - user_options = distutils.command.install.install.user_options + [ - ('install-exe=', None, - 'installation directory for executables') - ] - - def expand_dirs(self): - distutils.command.install.install.expand_dirs(self) - self._expand_attrs(['install_exe']) - - def get_sub_commands(self): - subCommands = distutils.command.install.install.get_sub_commands(self) - if self.distribution.executables: - subCommands.append("install_exe") - return [s for s in subCommands if s != "install_egg_info"] - - def initialize_options(self): - distutils.command.install.install.initialize_options(self) - self.install_exe = None - - def finalize_options(self): - if self.prefix is None and sys.platform == "win32": - import _winreg - key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, - r"Software\Microsoft\Windows\CurrentVersion") - prefix = str(_winreg.QueryValueEx(key, "ProgramFilesDir")[0]) - metadata = self.distribution.metadata - dirName = "%s-%s" % (metadata.name, metadata.version) - self.prefix = "%s/%s" % (prefix, dirName) - distutils.command.install.install.finalize_options(self) - self.convert_paths('exe') - if self.root is not None: - self.change_roots('exe') - - def select_scheme(self, name): - distutils.command.install.install.select_scheme(self, name) - if self.install_exe is None: - if sys.platform == "win32": - self.install_exe = '$base' - else: - metadata = self.distribution.metadata - dirName = "%s-%s" % (metadata.name, metadata.version) - self.install_exe = '$base/lib/%s' % dirName - - -class install_exe(distutils.core.Command): - description = "install executables built from Python scripts" - user_options = [ - ('install-dir=', 'd', 'directory to install executables to'), - ('build-dir=', 'b', 'build directory (where to install from)'), - ('force', 'f', 'force installation (overwrite existing files)'), - ('skip-build', None, 'skip the build steps') - ] - - def initialize_options(self): - self.install_dir = None - self.force = 0 - self.build_dir = None - self.skip_build = None - - def finalize_options(self): - self.set_undefined_options('build', ('build_exe', 'build_dir')) - self.set_undefined_options('install', - ('install_exe', 'install_dir'), - ('force', 'force'), - ('skip_build', 'skip_build')) - - def run(self): - if not self.skip_build: - self.run_command('build_exe') - self.outfiles = self.copy_tree(self.build_dir, self.install_dir) - if sys.platform != "win32": - baseDir = os.path.dirname(os.path.dirname(self.install_dir)) - binDir = os.path.join(baseDir, "bin") - if not os.path.exists(binDir): - os.makedirs(binDir) - sourceDir = os.path.join("..", self.install_dir[len(baseDir) + 1:]) - for executable in self.distribution.executables: - name = os.path.basename(executable.targetName) - source = os.path.join(sourceDir, name) - target = os.path.join(binDir, name) - if os.path.exists(target): - os.unlink(target) - os.symlink(source, target) - self.outfiles.append(target) - - def get_inputs(self): - return self.distribution.executables or [] - - def get_outputs(self): - return self.outfiles or [] - - -def _AddCommandClass(commandClasses, name, cls): - if name not in commandClasses: - commandClasses[name] = cls - - -def setup(**attrs): - attrs["distclass"] = Distribution - commandClasses = attrs.setdefault("cmdclass", {}) - if sys.platform == "win32": - if sys.version_info[:2] >= (2, 5): - _AddCommandClass(commandClasses, "bdist_msi", cx_Freeze.bdist_msi) - else: - _AddCommandClass(commandClasses, "bdist_rpm", cx_Freeze.bdist_rpm) - _AddCommandClass(commandClasses, "build", build) - _AddCommandClass(commandClasses, "build_exe", build_exe) - _AddCommandClass(commandClasses, "install", install) - _AddCommandClass(commandClasses, "install_exe", install_exe) - distutils.core.setup(**attrs) - diff --git a/setup/installer/cx_Freeze/cx_Freeze/finder.py b/setup/installer/cx_Freeze/cx_Freeze/finder.py deleted file mode 100644 index f815db97be..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/finder.py +++ /dev/null @@ -1,455 +0,0 @@ -""" -Base class for finding modules. -""" - -import dis -import imp -import marshal -import new -import opcode -import os -import sys -import zipfile - -import cx_Freeze.hooks - -BUILD_LIST = opcode.opmap["BUILD_LIST"] -INPLACE_ADD = opcode.opmap["INPLACE_ADD"] -LOAD_CONST = opcode.opmap["LOAD_CONST"] -IMPORT_NAME = opcode.opmap["IMPORT_NAME"] -IMPORT_FROM = opcode.opmap["IMPORT_FROM"] -STORE_NAME = opcode.opmap["STORE_NAME"] -STORE_GLOBAL = opcode.opmap["STORE_GLOBAL"] -STORE_OPS = (STORE_NAME, STORE_GLOBAL) - -__all__ = [ "Module", "ModuleFinder" ] - -class ModuleFinder(object): - - def __init__(self, includeFiles, excludes, path, replacePaths): - self.includeFiles = includeFiles - self.excludes = dict.fromkeys(excludes) - self.replacePaths = replacePaths - self.path = path or sys.path - self.modules = [] - self.aliases = {} - self._modules = dict.fromkeys(excludes) - self._builtinModules = dict.fromkeys(sys.builtin_module_names) - self._badModules = {} - self._zipFileEntries = {} - self._zipFiles = {} - cx_Freeze.hooks.initialize(self) - - def _AddModule(self, name): - """Add a module to the list of modules but if one is already found, - then return it instead; this is done so that packages can be - handled properly.""" - module = self._modules.get(name) - if module is None: - module = self._modules[name] = Module(name) - self.modules.append(module) - if name in self._badModules: - del self._badModules[name] - return module - - def _DetermineParent(self, caller): - """Determine the parent to use when searching packages.""" - if caller is not None: - if caller.path is not None: - return caller - return self._GetParentByName(caller.name) - - def _EnsureFromList(self, caller, packageModule, fromList, - deferredImports): - """Ensure that the from list is satisfied. This is only necessary for - package modules. If the caller is the package itself, actually - attempt to import right then since it must be a submodule; otherwise - defer until after all global names are defined in order to avoid - spurious complaints about missing modules.""" - if caller is not packageModule: - deferredImports.append((packageModule, fromList)) - else: - if fromList == ("*",): - fromList = packageModule.allNames - for name in fromList: - if name in packageModule.globalNames: - continue - subModuleName = "%s.%s" % (packageModule.name, name) - self._ImportModule(subModuleName, deferredImports, caller) - - def _FindModule(self, name, path): - try: - return imp.find_module(name, path) - except ImportError: - if not path: - path = [] - for location in path: - if name in self._zipFileEntries: - break - if location in self._zipFiles: - continue - if os.path.isdir(location) or not zipfile.is_zipfile(location): - self._zipFiles[location] = None - continue - zip = zipfile.ZipFile(location) - for archiveName in zip.namelist(): - baseName, ext = os.path.splitext(archiveName) - if ext not in ('.pyc', '.pyo'): - continue - moduleName = ".".join(baseName.split("/")) - if moduleName in self._zipFileEntries: - continue - self._zipFileEntries[moduleName] = (zip, archiveName) - self._zipFiles[location] = None - info = self._zipFileEntries.get(name) - if info is not None: - zip, archiveName = info - fp = zip.read(archiveName) - info = (".pyc", "rb", imp.PY_COMPILED) - return fp, os.path.join(zip.filename, archiveName), info - raise - - def _GetParentByName(self, name): - """Return the parent module given the name of a module.""" - pos = name.rfind(".") - if pos > 0: - parentName = name[:pos] - return self._modules[parentName] - - def _ImportAllSubModules(self, module, deferredImports, recursive = True): - """Import all sub modules to the given package.""" - suffixes = dict.fromkeys([s[0] for s in imp.get_suffixes()]) - for dir in module.path: - try: - fileNames = os.listdir(dir) - except os.error: - continue - for fileName in fileNames: - name, ext = os.path.splitext(fileName) - if ext not in suffixes: - continue - if name == "__init__": - continue - subModuleName = "%s.%s" % (module.name, name) - subModule, returnError = \ - self._InternalImportModule(subModuleName, - deferredImports) - if returnError and subModule is None: - raise ImportError, "No module named %s" % subModuleName - module.globalNames[name] = None - if subModule.path and recursive: - self._ImportAllSubModules(subModule, deferredImports, - recursive) - - def _ImportDeferredImports(self, deferredImports): - """Import any sub modules that were deferred, if applicable.""" - while deferredImports: - newDeferredImports = [] - for packageModule, subModuleNames in deferredImports: - self._EnsureFromList(packageModule, packageModule, - subModuleNames, newDeferredImports) - deferredImports = newDeferredImports - - def _ImportModule(self, name, deferredImports, caller = None, - relativeImportIndex = 0): - """Attempt to find the named module and return it or None if no module - by that name could be found.""" - - # absolute import (available in Python 2.5 and up) - # the name given is the only name that will be searched - if relativeImportIndex == 0: - module, returnError = self._InternalImportModule(name, - deferredImports) - - # old style relative import (only possibility in Python 2.4 and prior) - # the name given is tried in all parents until a match is found and if - # no match is found, the global namespace is searched - elif relativeImportIndex < 0: - parent = self._DetermineParent(caller) - while parent is not None: - fullName = "%s.%s" % (parent.name, name) - module, returnError = self._InternalImportModule(fullName, - deferredImports) - if module is not None: - parent.globalNames[name] = None - return module - parent = self._GetParentByName(parent.name) - module, returnError = self._InternalImportModule(name, - deferredImports) - - # new style relative import (available in Python 2.5 and up) - # the index indicates how many levels to traverse and only that level - # is searched for the named module - elif relativeImportIndex > 0: - parent = caller - if parent.path is not None: - relativeImportIndex -= 1 - while parent is not None and relativeImportIndex > 0: - parent = self._GetParentByName(parent.name) - relativeImportIndex -= 1 - if parent is None: - module = None - returnError = True - elif not name: - module = parent - else: - name = "%s.%s" % (parent.name, name) - module, returnError = self._InternalImportModule(name, - deferredImports) - - # if module not found, track that fact - if module is None: - if caller is None: - raise ImportError, "No module named %s" % name - self._RunHook("missing", name, caller) - if returnError and name not in caller.ignoreNames: - callers = self._badModules.setdefault(name, {}) - callers[caller.name] = None - - return module - - def _InternalImportModule(self, name, deferredImports): - """Internal method used for importing a module which assumes that the - name given is an absolute name. None is returned if the module - cannot be found.""" - try: - return self._modules[name], False - except KeyError: - pass - if name in self._builtinModules: - module = self._AddModule(name) - self._RunHook("load", module.name, module) - return module, False - pos = name.rfind(".") - if pos < 0: - path = self.path - searchName = name - parentModule = None - else: - parentName = name[:pos] - parentModule, returnError = \ - self._InternalImportModule(parentName, deferredImports) - if parentModule is None: - return None, returnError - path = parentModule.path - searchName = name[pos + 1:] - if name in self.aliases: - actualName = self.aliases[name] - module, returnError = \ - self._InternalImportModule(actualName, deferredImports) - self._modules[name] = module - return module, returnError - try: - fp, path, info = self._FindModule(searchName, path) - except ImportError: - self._modules[name] = None - return None, True - module = self._LoadModule(name, fp, path, info, deferredImports, - parentModule) - return module, False - - def _LoadModule(self, name, fp, path, info, deferredImports, - parent = None): - """Load the module, given the information acquired by the finder.""" - suffix, mode, type = info - if type == imp.PKG_DIRECTORY: - return self._LoadPackage(name, path, parent, deferredImports) - module = self._AddModule(name) - module.file = path - module.parent = parent - if type == imp.PY_SOURCE: - module.code = compile(fp.read() + "\n", path, "exec") - elif type == imp.PY_COMPILED: - if isinstance(fp, str): - magic = fp[:4] - else: - magic = fp.read(4) - if magic != imp.get_magic(): - raise ImportError, "Bad magic number in %s" % path - if isinstance(fp, str): - module.code = marshal.loads(fp[8:]) - module.inZipFile = True - else: - fp.read(4) - module.code = marshal.load(fp) - self._RunHook("load", module.name, module) - if module.code is not None: - if self.replacePaths: - topLevelModule = module - while topLevelModule.parent is not None: - topLevelModule = topLevelModule.parent - module.code = self._ReplacePathsInCode(topLevelModule, - module.code) - self._ScanCode(module.code, module, deferredImports) - return module - - def _LoadPackage(self, name, path, parent, deferredImports): - """Load the package, given its name and path.""" - module = self._AddModule(name) - module.path = [path] - fp, path, info = imp.find_module("__init__", module.path) - self._LoadModule(name, fp, path, info, deferredImports, parent) - return module - - def _ReplacePathsInCode(self, topLevelModule, co): - """Replace paths in the code as directed, returning a new code object - with the modified paths in place.""" - origFileName = newFileName = os.path.normpath(co.co_filename) - for searchValue, replaceValue in self.replacePaths: - if searchValue == "*": - searchValue = os.path.dirname(topLevelModule.file) - if topLevelModule.path: - searchValue = os.path.dirname(searchValue) - if searchValue: - searchValue = searchValue + os.pathsep - elif not origFileName.startswith(searchValue): - continue - newFileName = replaceValue + origFileName[len(searchValue):] - break - constants = list(co.co_consts) - for i, value in enumerate(constants): - if isinstance(value, type(co)): - constants[i] = self._ReplacePathsInCode(topLevelModule, value) - return new.code(co.co_argcount, co.co_nlocals, co.co_stacksize, - co.co_flags, co.co_code, tuple(constants), co.co_names, - co.co_varnames, newFileName, co.co_name, co.co_firstlineno, - co.co_lnotab, co.co_freevars, co.co_cellvars) - - def _RunHook(self, hookName, moduleName, *args): - """Run hook for the given module if one is present.""" - name = "%s_%s" % (hookName, moduleName.replace(".", "_")) - method = getattr(cx_Freeze.hooks, name, None) - if method is not None: - method(self, *args) - - def _ScanCode(self, co, module, deferredImports): - """Scan code, looking for imported modules and keeping track of the - constants that have been created in order to better tell which - modules are truly missing.""" - opIndex = 0 - arguments = [] - code = co.co_code - numOps = len(code) - while opIndex < numOps: - op = ord(code[opIndex]) - opIndex += 1 - if op >= dis.HAVE_ARGUMENT: - opArg = ord(code[opIndex]) + ord(code[opIndex + 1]) * 256 - opIndex += 2 - if op == LOAD_CONST: - arguments.append(co.co_consts[opArg]) - elif op == IMPORT_NAME: - name = co.co_names[opArg] - if len(arguments) == 2: - relativeImportIndex, fromList = arguments - else: - relativeImportIndex = -1 - fromList, = arguments - if name not in module.excludeNames: - subModule = self._ImportModule(name, deferredImports, - module, relativeImportIndex) - if subModule is not None: - module.globalNames.update(subModule.globalNames) - if fromList and subModule.path is not None: - self._EnsureFromList(module, subModule, fromList, - deferredImports) - elif op == IMPORT_FROM: - opIndex += 3 - elif op not in (BUILD_LIST, INPLACE_ADD): - if op in STORE_OPS: - name = co.co_names[opArg] - if name == "__all__": - module.allNames.extend(arguments) - module.globalNames[name] = None - arguments = [] - for constant in co.co_consts: - if isinstance(constant, type(co)): - self._ScanCode(constant, module, deferredImports) - - def AddAlias(self, name, aliasFor): - """Add an alias for a particular module; when an attempt is made to - import a module using the alias name, import the actual name - instead.""" - self.aliases[name] = aliasFor - - def ExcludeModule(self, name): - """Exclude the named module from the resulting frozen executable.""" - self.excludes[name] = None - self._modules[name] = None - - def IncludeFile(self, path, moduleName = None): - """Include the named file as a module in the frozen executable.""" - name, ext = os.path.splitext(os.path.basename(path)) - if moduleName is None: - moduleName = name - info = (ext, "r", imp.PY_SOURCE) - deferredImports = [] - module = self._LoadModule(moduleName, file(path, "U"), path, info, - deferredImports) - self._ImportDeferredImports(deferredImports) - return module - - def IncludeFiles(self, sourcePath, targetPath): - """Include the files in the given directory in the target build.""" - self.includeFiles.append((sourcePath, targetPath)) - - def IncludeModule(self, name): - """Include the named module in the frozen executable.""" - deferredImports = [] - module = self._ImportModule(name, deferredImports) - self._ImportDeferredImports(deferredImports) - return module - - def IncludePackage(self, name): - """Include the named package and any submodules in the frozen - executable.""" - deferredImports = [] - module = self._ImportModule(name, deferredImports) - if module.path: - self._ImportAllSubModules(module, deferredImports) - self._ImportDeferredImports(deferredImports) - return module - - def ReportMissingModules(self): - if self._badModules: - print "Missing modules:" - names = self._badModules.keys() - names.sort() - for name in names: - callers = self._badModules[name].keys() - callers.sort() - print "?", name, "imported from", ", ".join(callers) - print - - -class Module(object): - - def __init__(self, name): - self.name = name - self.file = None - self.path = None - self.code = None - self.parent = None - self.globalNames = {} - self.excludeNames = {} - self.ignoreNames = {} - self.allNames = [] - self.inZipFile = False - - def __repr__(self): - parts = ["name=%s" % repr(self.name)] - if self.file is not None: - parts.append("file=%s" % repr(self.file)) - if self.path is not None: - parts.append("path=%s" % repr(self.path)) - return "" % ", ".join(parts) - - def AddGlobalName(self, name): - self.globalNames[name] = None - - def ExcludeName(self, name): - self.excludeNames[name] = None - - def IgnoreName(self, name): - self.ignoreNames[name] = None - diff --git a/setup/installer/cx_Freeze/cx_Freeze/freezer.py b/setup/installer/cx_Freeze/cx_Freeze/freezer.py deleted file mode 100644 index e0739e8a4e..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/freezer.py +++ /dev/null @@ -1,550 +0,0 @@ -""" -Base class for freezing scripts into executables. -""" - -import datetime -import distutils.sysconfig -import imp -import marshal -import os -import shutil -import socket -import stat -import struct -import sys -import time -import zipfile - -import cx_Freeze -import cx_Freeze.util - -__all__ = [ "ConfigError", "ConstantsModule", "Executable", "Freezer" ] - -if sys.platform == "win32": - pythonDll = "python%s%s.dll" % sys.version_info[:2] - GLOBAL_BIN_PATH_EXCLUDES = [cx_Freeze.util.GetSystemDir()] - GLOBAL_BIN_INCLUDES = [ - pythonDll, - "gdiplus.dll", - "mfc71.dll", - "msvcp71.dll", - "msvcr71.dll" - ] - GLOBAL_BIN_EXCLUDES = [ - "comctl32.dll", - "oci.dll", - "cx_Logging.pyd" - ] -else: - extension = distutils.sysconfig.get_config_var("SO") - pythonSharedLib = "libpython%s.%s%s" % \ - (sys.version_info[:2] + (extension,)) - GLOBAL_BIN_INCLUDES = [pythonSharedLib] - GLOBAL_BIN_EXCLUDES = [ - "libclntsh.so", - "libwtc9.so" - ] - GLOBAL_BIN_PATH_EXCLUDES = ["/lib", "/lib32", "/lib64", "/usr/lib", - "/usr/lib32", "/usr/lib64"] - - -# NOTE: the try: except: block in this code is not necessary under Python 2.4 -# and higher and can be removed once support for Python 2.3 is no longer needed -EXTENSION_LOADER_SOURCE = \ -""" -import imp, os, sys - -found = False -for p in sys.path: - if not os.path.isdir(p): - continue - f = os.path.join(p, "%s") - if not os.path.exists(f): - continue - try: - m = imp.load_dynamic(__name__, f) - except ImportError: - del sys.modules[__name__] - raise - sys.modules[__name__] = m - found = True - break -if not found: - del sys.modules[__name__] - raise ImportError, "No module named %%s" %% __name__ -""" - - -class Freezer(object): - - def __init__(self, executables, constantsModules = [], includes = [], - excludes = [], packages = [], replacePaths = [], compress = None, - optimizeFlag = 0, copyDependentFiles = None, initScript = None, - base = None, path = None, createLibraryZip = None, - appendScriptToExe = None, appendScriptToLibrary = None, - targetDir = None, binIncludes = [], binExcludes = [], - binPathIncludes = [], binPathExcludes = [], icon = None, - includeFiles = []): - self.executables = executables - self.constantsModules = constantsModules - self.includes = includes - self.excludes = excludes - self.packages = packages - self.replacePaths = replacePaths - self.compress = compress - self.optimizeFlag = optimizeFlag - self.copyDependentFiles = copyDependentFiles - self.initScript = initScript - self.base = base - self.path = path - self.createLibraryZip = createLibraryZip - self.appendScriptToExe = appendScriptToExe - self.appendScriptToLibrary = appendScriptToLibrary - self.targetDir = targetDir - self.binIncludes = [os.path.normcase(n) \ - for n in GLOBAL_BIN_INCLUDES + binIncludes] - self.binExcludes = [os.path.normcase(n) \ - for n in GLOBAL_BIN_EXCLUDES + binExcludes] - self.binPathIncludes = [os.path.normcase(n) for n in binPathIncludes] - self.binPathExcludes = [os.path.normcase(n) \ - for n in GLOBAL_BIN_PATH_EXCLUDES + binPathExcludes] - self.icon = icon - self.includeFiles = includeFiles - self._VerifyConfiguration() - - def _CopyFile(self, source, target, copyDependentFiles, - includeMode = False): - normalizedSource = os.path.normcase(os.path.normpath(source)) - normalizedTarget = os.path.normcase(os.path.normpath(target)) - if normalizedTarget in self.filesCopied: - return - if normalizedSource == normalizedTarget: - return - self._RemoveFile(target) - targetDir = os.path.dirname(target) - self._CreateDirectory(targetDir) - print "copying", source, "->", target - shutil.copyfile(source, target) - if includeMode: - shutil.copymode(source, target) - self.filesCopied[normalizedTarget] = None - if copyDependentFiles: - for source in self._GetDependentFiles(source): - target = os.path.join(targetDir, os.path.basename(source)) - self._CopyFile(source, target, copyDependentFiles) - - def _CreateDirectory(self, path): - if not os.path.isdir(path): - print "creating directory", path - os.makedirs(path) - - def _FreezeExecutable(self, exe): - if self.createLibraryZip: - finder = self.finder - else: - finder = self._GetModuleFinder(exe) - if exe.script is None: - scriptModule = None - else: - scriptModule = finder.IncludeFile(exe.script, exe.moduleName) - self._CopyFile(exe.base, exe.targetName, exe.copyDependentFiles, - includeMode = True) - if exe.icon is not None: - if sys.platform == "win32": - cx_Freeze.util.AddIcon(exe.targetName, exe.icon) - else: - targetName = os.path.join(os.path.dirname(exe.targetName), - os.path.basename(exe.icon)) - self._CopyFile(exe.icon, targetName, - copyDependentFiles = False) - if not os.access(exe.targetName, os.W_OK): - mode = os.stat(exe.targetName).st_mode - os.chmod(exe.targetName, mode | stat.S_IWUSR) - if not exe.appendScriptToLibrary: - if exe.appendScriptToExe: - fileName = exe.targetName - else: - baseFileName, ext = os.path.splitext(exe.targetName) - fileName = baseFileName + ".zip" - self._RemoveFile(fileName) - if not self.createLibraryZip and exe.copyDependentFiles: - scriptModule = None - self._WriteModules(fileName, exe.initScript, finder, exe.compress, - exe.copyDependentFiles, scriptModule) - - def _GetBaseFileName(self, argsSource = None): - if argsSource is None: - argsSource = self - name = argsSource.base - if name is None: - if argsSource.copyDependentFiles: - name = "Console" - else: - name = "ConsoleKeepPath" - argsSource.base = self._GetFileName("bases", name) - if argsSource.base is None: - raise ConfigError("no base named %s", name) - - def _GetDependentFiles(self, path): - dependentFiles = self.dependentFiles.get(path) - if dependentFiles is None: - if sys.platform == "win32": - origPath = os.environ["PATH"] - os.environ["PATH"] = origPath + os.pathsep + \ - os.pathsep.join(sys.path) - dependentFiles = cx_Freeze.util.GetDependentFiles(path) - os.environ["PATH"] = origPath - else: - dependentFiles = [] - for line in os.popen('ldd "%s"' % path): - parts = line.strip().split(" => ") - if len(parts) != 2: - continue - dependentFile = parts[1] - if dependentFile == "not found": - print "WARNING: cannot find", parts[0] - continue - pos = dependentFile.find(" (") - if pos >= 0: - dependentFile = dependentFile[:pos].strip() - if dependentFile: - dependentFiles.append(dependentFile) - dependentFiles = self.dependentFiles[path] = \ - [f for f in dependentFiles if self._ShouldCopyFile(f)] - return dependentFiles - - def _GetFileName(self, dir, name): - if os.path.isabs(name): - return name - name = os.path.normcase(name) - fullDir = os.path.join(os.path.dirname(cx_Freeze.__file__), dir) - if os.path.isdir(fullDir): - for fileName in os.listdir(fullDir): - if name == os.path.splitext(os.path.normcase(fileName))[0]: - return os.path.join(fullDir, fileName) - - def _GetInitScriptFileName(self, argsSource = None): - if argsSource is None: - argsSource = self - name = argsSource.initScript - if name is None: - if argsSource.copyDependentFiles: - name = "Console" - else: - name = "ConsoleKeepPath" - argsSource.initScript = self._GetFileName("initscripts", name) - if argsSource.initScript is None: - raise ConfigError("no initscript named %s", name) - - def _GetModuleFinder(self, argsSource = None): - if argsSource is None: - argsSource = self - finder = cx_Freeze.ModuleFinder(self.includeFiles, argsSource.excludes, - argsSource.path, argsSource.replacePaths) - if argsSource.copyDependentFiles: - finder.IncludeModule("imp") - finder.IncludeModule("os") - finder.IncludeModule("sys") - if argsSource.compress: - finder.IncludeModule("zlib") - for name in argsSource.includes: - finder.IncludeModule(name) - for name in argsSource.packages: - finder.IncludePackage(name) - return finder - - def _PrintReport(self, fileName, modules): - print "writing zip file", fileName - print - print " %-25s %s" % ("Name", "File") - print " %-25s %s" % ("----", "----") - for module in modules: - if module.path: - print "P", - else: - print "m", - print "%-25s" % module.name, module.file or "" - print - - def _RemoveFile(self, path): - if os.path.exists(path): - os.chmod(path, 0777) - os.remove(path) - - def _ShouldCopyFile(self, path): - dir, name = os.path.split(os.path.normcase(path)) - parts = name.split(".") - tweaked = False - while True: - if not parts[-1].isdigit(): - break - parts.pop(-1) - tweaked = True - if tweaked: - name = ".".join(parts) - if name in self.binIncludes: - return True - if name in self.binExcludes: - return False - for path in self.binPathIncludes: - if dir.startswith(path): - return True - for path in self.binPathExcludes: - if dir.startswith(path): - return False - return True - - def _VerifyCanAppendToLibrary(self): - if not self.createLibraryZip: - raise ConfigError("script cannot be appended to library zip if " - "one is not being created") - - def _VerifyConfiguration(self): - if self.compress is None: - self.compress = True - if self.copyDependentFiles is None: - self.copyDependentFiles = True - if self.createLibraryZip is None: - self.createLibraryZip = True - if self.appendScriptToExe is None: - self.appendScriptToExe = False - if self.appendScriptToLibrary is None: - self.appendScriptToLibrary = \ - self.createLibraryZip and not self.appendScriptToExe - if self.targetDir is None: - self.targetDir = os.path.abspath("dist") - self._GetInitScriptFileName() - self._GetBaseFileName() - if self.path is None: - self.path = sys.path - if self.appendScriptToLibrary: - self._VerifyCanAppendToLibrary() - for sourceFileName, targetFileName in self.includeFiles: - if not os.path.exists(sourceFileName): - raise ConfigError("cannot find file/directory named %s", - sourceFileName) - if os.path.isabs(targetFileName): - raise ConfigError("target file/directory cannot be absolute") - for executable in self.executables: - executable._VerifyConfiguration(self) - - def _WriteModules(self, fileName, initScript, finder, compress, - copyDependentFiles, scriptModule = None): - initModule = finder.IncludeFile(initScript, "cx_Freeze__init__") - if scriptModule is None: - for module in self.constantsModules: - module.Create(finder) - modules = [m for m in finder.modules \ - if m.name not in self.excludeModules] - else: - modules = [initModule, scriptModule] - self.excludeModules[initModule.name] = None - self.excludeModules[scriptModule.name] = None - itemsToSort = [(m.name, m) for m in modules] - itemsToSort.sort() - modules = [m for n, m in itemsToSort] - self._PrintReport(fileName, modules) - if scriptModule is None: - finder.ReportMissingModules() - targetDir = os.path.dirname(fileName) - self._CreateDirectory(targetDir) - filesToCopy = [] - if os.path.exists(fileName): - mode = "a" - else: - mode = "w" - outFile = zipfile.PyZipFile(fileName, mode, zipfile.ZIP_DEFLATED) - for module in modules: - if module.code is None and module.file is not None: - fileName = os.path.basename(module.file) - baseFileName, ext = os.path.splitext(fileName) - if baseFileName != module.name and module.name != "zlib": - if "." in module.name: - fileName = module.name + ext - generatedFileName = "ExtensionLoader_%s.py" % \ - module.name.replace(".", "_") - module.code = compile(EXTENSION_LOADER_SOURCE % fileName, - generatedFileName, "exec") - target = os.path.join(targetDir, fileName) - filesToCopy.append((module, target)) - if module.code is None: - continue - fileName = "/".join(module.name.split(".")) - if module.path: - fileName += "/__init__" - if module.file is not None and os.path.exists(module.file): - mtime = os.stat(module.file).st_mtime - else: - mtime = time.time() - zipTime = time.localtime(mtime)[:6] - data = imp.get_magic() + struct.pack("" % self.script - - def _VerifyConfiguration(self, freezer): - if self.path is None: - self.path = freezer.path - if self.targetDir is None: - self.targetDir = freezer.targetDir - if self.includes is None: - self.includes = freezer.includes - if self.excludes is None: - self.excludes = freezer.excludes - if self.packages is None: - self.packages = freezer.packages - if self.replacePaths is None: - self.replacePaths = freezer.replacePaths - if self.compress is None: - self.compress = freezer.compress - if self.copyDependentFiles is None: - self.copyDependentFiles = freezer.copyDependentFiles - if self.appendScriptToExe is None: - self.appendScriptToExe = freezer.appendScriptToExe - if self.appendScriptToLibrary is None: - self.appendScriptToLibrary = freezer.appendScriptToLibrary - if self.initScript is None: - self.initScript = freezer.initScript - else: - freezer._GetInitScriptFileName(self) - if self.base is None: - self.base = freezer.base - else: - freezer._GetBaseFileName(self) - if self.appendScriptToLibrary: - freezer._VerifyCanAppendToLibrary() - if self.icon is None: - self.icon = freezer.icon - if self.script is not None: - name, ext = os.path.splitext(os.path.basename(self.script)) - if self.appendScriptToLibrary: - self.moduleName = "%s__main__" % os.path.normcase(name) - else: - self.moduleName = "__main__" - if self.targetName is None: - baseName, ext = os.path.splitext(self.base) - self.targetName = name + ext - self.targetName = os.path.join(self.targetDir, self.targetName) - - -class ConstantsModule(object): - - def __init__(self, releaseString = None, copyright = None, - moduleName = "BUILD_CONSTANTS", timeFormat = "%B %d, %Y %H:%M:%S"): - self.moduleName = moduleName - self.timeFormat = timeFormat - self.values = {} - self.values["BUILD_RELEASE_STRING"] = releaseString - self.values["BUILD_COPYRIGHT"] = copyright - - def Create(self, finder): - """Create the module which consists of declaration statements for each - of the values.""" - today = datetime.datetime.today() - sourceTimestamp = 0 - for module in finder.modules: - if module.file is None: - continue - if module.inZipFile: - continue - if not os.path.exists(module.file): - raise ConfigError("no file named %s", module.file) - timestamp = os.stat(module.file).st_mtime - sourceTimestamp = max(sourceTimestamp, timestamp) - sourceTimestamp = datetime.datetime.fromtimestamp(sourceTimestamp) - self.values["BUILD_TIMESTAMP"] = today.strftime(self.timeFormat) - self.values["BUILD_HOST"] = socket.gethostname().split(".")[0] - self.values["SOURCE_TIMESTAMP"] = \ - sourceTimestamp.strftime(self.timeFormat) - module = finder._AddModule(self.moduleName) - sourceParts = [] - names = self.values.keys() - names.sort() - for name in names: - value = self.values[name] - sourceParts.append("%s = %r" % (name, value)) - source = "\n".join(sourceParts) - module.code = compile(source, "%s.py" % self.moduleName, "exec") - diff --git a/setup/installer/cx_Freeze/cx_Freeze/hooks.py b/setup/installer/cx_Freeze/cx_Freeze/hooks.py deleted file mode 100644 index edc2f78788..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/hooks.py +++ /dev/null @@ -1,281 +0,0 @@ -import os -import sys - -def initialize(finder): - """upon initialization of the finder, this routine is called to set up some - automatic exclusions for various platforms.""" - finder.ExcludeModule("FCNTL") - finder.ExcludeModule("os.path") - if os.name == "nt": - finder.ExcludeModule("fcntl") - finder.ExcludeModule("grp") - finder.ExcludeModule("pwd") - finder.ExcludeModule("termios") - else: - finder.ExcludeModule("_winreg") - finder.ExcludeModule("msilib") - finder.ExcludeModule("msvcrt") - finder.ExcludeModule("nt") - if os.name not in ("os2", "ce"): - finder.ExcludeModule("ntpath") - finder.ExcludeModule("nturl2path") - finder.ExcludeModule("pythoncom") - finder.ExcludeModule("pywintypes") - finder.ExcludeModule("winerror") - finder.ExcludeModule("winsound") - finder.ExcludeModule("win32api") - finder.ExcludeModule("win32con") - finder.ExcludeModule("win32event") - finder.ExcludeModule("win32file") - finder.ExcludeModule("win32pdh") - finder.ExcludeModule("win32pipe") - finder.ExcludeModule("win32process") - finder.ExcludeModule("win32security") - finder.ExcludeModule("win32service") - finder.ExcludeModule("wx.activex") - if os.name != "posix": - finder.ExcludeModule("posix") - if os.name != "mac": - finder.ExcludeModule("Carbon") - finder.ExcludeModule("gestalt") - finder.ExcludeModule("ic") - finder.ExcludeModule("mac") - finder.ExcludeModule("MacOS") - finder.ExcludeModule("macpath") - finder.ExcludeModule("macurl2path") - if os.name != "nt": - finder.ExcludeModule("EasyDialogs") - if os.name != "os2": - finder.ExcludeModule("os2") - finder.ExcludeModule("os2emxpath") - finder.ExcludeModule("_emx_link") - if os.name != "ce": - finder.ExcludeModule("ce") - if os.name != "riscos": - finder.ExcludeModule("riscos") - finder.ExcludeModule("riscosenviron") - finder.ExcludeModule("riscospath") - finder.ExcludeModule("rourl2path") - if sys.platform[:4] != "java": - finder.ExcludeModule("java.lang") - finder.ExcludeModule("org.python.core") - - -def load_cElementTree(finder, module): - """the cElementTree module implicitly loads the elementtree.ElementTree - module; make sure this happens.""" - finder.IncludeModule("elementtree.ElementTree") - - -def load_ceODBC(finder, module): - """the ceODBC module implicitly imports both datetime and decimal; make - sure this happens.""" - finder.IncludeModule("datetime") - finder.IncludeModule("decimal") - - -def load_cx_Oracle(finder, module): - """the cx_Oracle module implicitly imports datetime; make sure this - happens.""" - finder.IncludeModule("datetime") - - -def load_docutils_frontend(finder, module): - """The optik module is the old name for the optparse module; ignore the - module if it cannot be found.""" - module.IgnoreName("optik") - - -def load_dummy_threading(finder, module): - """the dummy_threading module plays games with the name of the threading - module for its own purposes; ignore that here""" - finder.ExcludeModule("_dummy_threading") - - -def load_email(finder, module): - """the email package has a bunch of aliases as the submodule names were - all changed to lowercase in Python 2.5; mimic that here.""" - if sys.version_info[:2] >= (2, 5): - for name in ("Charset", "Encoders", "Errors", "FeedParser", - "Generator", "Header", "Iterators", "Message", "Parser", - "Utils", "base64MIME", "quopriMIME"): - finder.AddAlias("email.%s" % name, "email.%s" % name.lower()) - - -def load_ftplib(finder, module): - """the ftplib module attempts to import the SOCKS module; ignore this - module if it cannot be found""" - module.IgnoreName("SOCKS") - - -def load_matplotlib(finder, module): - """the matplotlib module requires data to be found in mpl-data in the - same directory as the frozen executable so oblige it""" - dir = os.path.join(module.path[0], "mpl-data") - finder.IncludeFiles(dir, "mpl-data") - - -def load_matplotlib_numerix(finder, module): - """the numpy.numerix module loads a number of modules dynamically""" - for name in ("ma", "fft", "linear_algebra", "random_array", "mlab"): - finder.IncludeModule("%s.%s" % (module.name, name)) - - -def load_numpy_linalg(finder, module): - """the numpy.linalg module implicitly loads the lapack_lite module; make - sure this happens""" - finder.IncludeModule("numpy.linalg.lapack_lite") - - -def load_pty(finder, module): - """The sgi module is not needed for this module to function.""" - module.IgnoreName("sgi") - - -def load_pythoncom(finder, module): - """the pythoncom module is actually contained in a DLL but since those - cannot be loaded directly in Python 2.5 and higher a special module is - used to perform that task; simply use that technique directly to - determine the name of the DLL and ensure it is included as a normal - extension; also load the pywintypes module which is implicitly - loaded.""" - import pythoncom - module.file = pythoncom.__file__ - module.code = None - finder.IncludeModule("pywintypes") - - -def load_pywintypes(finder, module): - """the pywintypes module is actually contained in a DLL but since those - cannot be loaded directly in Python 2.5 and higher a special module is - used to perform that task; simply use that technique directly to - determine the name of the DLL and ensure it is included as a normal - extension.""" - import pywintypes - module.file = pywintypes.__file__ - module.code = None - - -def load_PyQt4_Qt(finder, module): - """the PyQt4.Qt module is an extension module which imports a number of - other modules and injects their namespace into its own. It seems a - foolish way of doing things but perhaps there is some hidden advantage - to this technique over pure Python; ignore the absence of some of - the modules since not every installation includes all of them.""" - finder.IncludeModule("PyQt4.QtCore") - finder.IncludeModule("PyQt4.QtGui") - finder.IncludeModule("sip") - for name in ("PyQt4.QtSvg", "PyQt4.Qsci", "PyQt4.QtAssistant", - "PyQt4.QtNetwork", "PyQt4.QtOpenGL", "PyQt4.QtScript", "PyQt4._qt", - "PyQt4.QtSql", "PyQt4.QtSvg", "PyQt4.QtTest", "PyQt4.QtXml"): - try: - finder.IncludeModule(name) - except ImportError: - pass - - -def load_Tkinter(finder, module): - """the Tkinter module has data files that are required to be loaded so - ensure that they are copied into the directory that is expected at - runtime.""" - import Tkinter - import _tkinter - tk = _tkinter.create() - tclDir = os.path.dirname(tk.call("info", "library")) - tclSourceDir = os.path.join(tclDir, "tcl%s" % _tkinter.TCL_VERSION) - tkSourceDir = os.path.join(tclDir, "tk%s" % _tkinter.TK_VERSION) - finder.IncludeFiles(tclSourceDir, "tcl") - finder.IncludeFiles(tkSourceDir, "tk") - - -def load_tempfile(finder, module): - """the tempfile module attempts to load the fcntl and thread modules but - continues if these modules cannot be found; ignore these modules if they - cannot be found.""" - module.IgnoreName("fcntl") - module.IgnoreName("thread") - - -def load_time(finder, module): - """the time module implicitly loads _strptime; make sure this happens.""" - finder.IncludeModule("_strptime") - - -def load_win32api(finder, module): - """the win32api module implicitly loads the pywintypes module; make sure - this happens.""" - finder.IncludeModule("pywintypes") - - -def load_win32com(finder, module): - """the win32com package manipulates its search path at runtime to include - the sibling directory called win32comext; simulate that by changing the - search path in a similar fashion here.""" - baseDir = os.path.dirname(os.path.dirname(module.file)) - module.path.append(os.path.join(baseDir, "win32comext")) - - -def load_win32file(finder, module): - """the win32api module implicitly loads the pywintypes module; make sure - this happens.""" - finder.IncludeModule("pywintypes") - - -def load_xml(finder, module): - """the builtin xml package attempts to load the _xmlplus module to see if - that module should take its role instead; ignore the failure to find - this module, though.""" - module.IgnoreName("_xmlplus") - - -def load_xml_etree_cElementTree(finder, module): - """the xml.etree.cElementTree module implicitly loads the - xml.etree.ElementTree module; make sure this happens.""" - finder.IncludeModule("xml.etree.ElementTree") - -def load_IPython(finder, module): - ipy = os.path.join(os.path.dirname(module.file), 'Extensions') - extensions = set([]) - for m in os.listdir(ipy): - extensions.add(os.path.splitext(m)[0]) - extensions.remove('__init__') - for m in extensions: - finder.IncludeModule('IPython.Extensions.'+m) - -def load_lxml(finder, module): - finder.IncludeModule('lxml._elementpath') - -def load_cherrypy(finder, module): - finder.IncludeModule('cherrypy.lib.encoding') - -def missing_cElementTree(finder, caller): - """the cElementTree has been incorporated into the standard library in - Python 2.5 so ignore its absence if it cannot found.""" - if sys.version_info[:2] >= (2, 5): - caller.IgnoreName("cElementTree") - - -def missing_EasyDialogs(finder, caller): - """the EasyDialogs module is not normally present on Windows but it also - may be so instead of excluding it completely, ignore it if it can't be - found""" - if sys.platform == "win32": - caller.IgnoreName("EasyDialogs") - - -def missing_readline(finder, caller): - """the readline module is not normally present on Windows but it also may - be so instead of excluding it completely, ignore it if it can't be - found""" - if sys.platform == "win32": - caller.IgnoreName("readline") - - -def missing_xml_etree(finder, caller): - """the xml.etree package is new for Python 2.5 but it is common practice - to use a try..except.. block in order to support versions earlier than - Python 2.5 transparently; ignore the absence of the package in this - situation.""" - if sys.version_info[:2] < (2, 5): - caller.IgnoreName("xml.etree") - diff --git a/setup/installer/cx_Freeze/cx_Freeze/main.py b/setup/installer/cx_Freeze/cx_Freeze/main.py deleted file mode 100644 index 1704c598d2..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/main.py +++ /dev/null @@ -1,171 +0,0 @@ -import optparse -import os -import shutil -import stat -import sys - -import cx_Freeze - -__all__ = ["main"] - -USAGE = \ -""" -%prog [options] [SCRIPT] - -Freeze a Python script and all of its referenced modules to a base -executable which can then be distributed without requiring a Python -installation.""" - -VERSION = \ -""" -%%prog %s -Copyright (c) 2007-2008 Colt Engineering. All rights reserved. -Copyright (c) 2001-2006 Computronix Corporation. All rights reserved.""" % \ - cx_Freeze.version - - -def ParseCommandLine(): - parser = optparse.OptionParser(version = VERSION.strip(), - usage = USAGE.strip()) - parser.add_option("-O", - action = "count", - default = 0, - dest = "optimized", - help = "optimize generated bytecode as per PYTHONOPTIMIZE; " - "use -OO in order to remove doc strings") - parser.add_option("-c", "--compress", - action = "store_true", - dest = "compress", - help = "compress byte code in zip files") - parser.add_option("--base-name", - dest = "baseName", - metavar = "NAME", - help = "file on which to base the target file; if the name of the " - "file is not an absolute file name, the subdirectory bases " - "(rooted in the directory in which the freezer is found) " - "will be searched for a file matching the name") - parser.add_option("--init-script", - dest = "initScript", - metavar = "NAME", - help = "script which will be executed upon startup; if the name " - "of the file is not an absolute file name, the " - "subdirectory initscripts (rooted in the directory in " - "which the cx_Freeze package is found) will be searched " - "for a file matching the name") - parser.add_option("--target-dir", "--install-dir", - dest = "targetDir", - metavar = "DIR", - help = "the directory in which to place the target file and " - "any dependent files") - parser.add_option("--target-name", - dest = "targetName", - metavar = "NAME", - help = "the name of the file to create instead of the base name " - "of the script and the extension of the base binary") - parser.add_option("--no-copy-deps", - dest = "copyDeps", - default = True, - action = "store_false", - help = "do not copy the dependent files (extensions, shared " - "libraries, etc.) to the target directory; this also " - "modifies the default init script to ConsoleKeepPath.py " - "and means that the target executable requires a Python " - "installation to execute properly") - parser.add_option("--default-path", - action = "append", - dest = "defaultPath", - metavar = "DIRS", - help = "list of paths separated by the standard path separator " - "for the platform which will be used to initialize " - "sys.path prior to running the module finder") - parser.add_option("--include-path", - action = "append", - dest = "includePath", - metavar = "DIRS", - help = "list of paths separated by the standard path separator " - "for the platform which will be used to modify sys.path " - "prior to running the module finder") - parser.add_option("--replace-paths", - dest = "replacePaths", - metavar = "DIRECTIVES", - help = "replace all the paths in modules found in the given paths " - "with the given replacement string; multiple values are " - "separated by the standard path separator and each value " - "is of the form path=replacement_string; path can be * " - "which means all paths not already specified") - parser.add_option("--include-modules", - dest = "includeModules", - metavar = "NAMES", - help = "comma separated list of modules to include") - parser.add_option("--exclude-modules", - dest = "excludeModules", - metavar = "NAMES", - help = "comma separated list of modules to exclude") - parser.add_option("--ext-list-file", - dest = "extListFile", - metavar = "NAME", - help = "name of file in which to place the list of dependent files " - "which were copied into the target directory") - parser.add_option("-z", "--zip-include", - dest = "zipIncludes", - action = "append", - default = [], - metavar = "SPEC", - help = "name of file to add to the zip file or a specification of " - "the form name=arcname which will specify the archive name " - "to use; multiple --zip-include arguments can be used") - options, args = parser.parse_args() - if len(args) == 0: - options.script = None - elif len(args) == 1: - options.script, = args - else: - parser.error("only one script can be specified") - if not args and options.includeModules is None and options.copyDeps: - parser.error("script or a list of modules must be specified") - if not args and options.targetName is None: - parser.error("script or a target name must be specified") - if options.excludeModules: - options.excludeModules = options.excludeModules.split(",") - else: - options.excludeModules = [] - if options.includeModules: - options.includeModules = options.includeModules.split(",") - else: - options.includeModules = [] - replacePaths = [] - if options.replacePaths: - for directive in options.replacePaths.split(os.pathsep): - fromPath, replacement = directive.split("=") - replacePaths.append((fromPath, replacement)) - options.replacePaths = replacePaths - if options.defaultPath is not None: - sys.path = [p for mp in options.defaultPath \ - for p in mp.split(os.pathsep)] - if options.includePath is not None: - paths = [p for mp in options.includePath for p in mp.split(os.pathsep)] - sys.path = paths + sys.path - if options.script is not None: - sys.path.insert(0, os.path.dirname(options.script)) - return options - - -def main(): - options = ParseCommandLine() - executables = [cx_Freeze.Executable(options.script, - targetName = options.targetName)] - freezer = cx_Freeze.Freezer(executables, - includes = options.includeModules, - excludes = options.excludeModules, - replacePaths = options.replacePaths, - compress = options.compress, - optimizeFlag = options.optimized, - copyDependentFiles = options.copyDeps, - initScript = options.initScript, - base = options.baseName, - path = None, - createLibraryZip = False, - appendScriptToExe = True, - targetDir = options.targetDir) - freezer.Freeze() - diff --git a/setup/installer/cx_Freeze/cx_Freeze/windist.py b/setup/installer/cx_Freeze/cx_Freeze/windist.py deleted file mode 100644 index 51af544771..0000000000 --- a/setup/installer/cx_Freeze/cx_Freeze/windist.py +++ /dev/null @@ -1,337 +0,0 @@ -import distutils.command.bdist_msi -import msilib -import os - -__all__ = [ "bdist_msi" ] - -# force the remove existing products action to happen first since Windows -# installer appears to be braindead and doesn't handle files shared between -# different "products" very well -sequence = msilib.sequence.InstallExecuteSequence -for index, info in enumerate(sequence): - if info[0] == u'RemoveExistingProducts': - sequence[index] = (info[0], info[1], 1450) - - -class bdist_msi(distutils.command.bdist_msi.bdist_msi): - user_options = distutils.command.bdist_msi.bdist_msi.user_options + [ - ('add-to-path=', None, 'add target dir to PATH environment variable'), - ('upgrade-code=', None, 'upgrade code to use') - ] - x = y = 50 - width = 370 - height = 300 - title = "[ProductName] Setup" - modeless = 1 - modal = 3 - - def add_config(self, fullname): - initialTargetDir = self.get_initial_target_dir(fullname) - if self.add_to_path is None: - self.add_to_path = False - for executable in self.distribution.executables: - if os.path.basename(executable.base).startswith("Console"): - self.add_to_path = True - break - if self.add_to_path: - msilib.add_data(self.db, 'Environment', - [("E_PATH", "Path", r"[~];[TARGETDIR]", "TARGETDIR")]) - msilib.add_data(self.db, 'CustomAction', - [("InitialTargetDir", 256 + 51, "TARGETDIR", initialTargetDir) - ]) - msilib.add_data(self.db, 'InstallExecuteSequence', - [("InitialTargetDir", 'TARGETDIR=""', 401)]) - msilib.add_data(self.db, 'InstallUISequence', - [("PrepareDlg", None, 140), - ("InitialTargetDir", 'TARGETDIR=""', 401), - ("SelectDirectoryDlg", "not Installed", 1230), - ("MaintenanceTypeDlg", - "Installed and not Resume and not Preselected", 1250), - ("ProgressDlg", None, 1280) - ]) - - def add_cancel_dialog(self): - dialog = msilib.Dialog(self.db, "CancelDlg", 50, 10, 260, 85, 3, - self.title, "No", "No", "No") - dialog.text("Text", 48, 15, 194, 30, 3, - "Are you sure you want to cancel [ProductName] installation?") - button = dialog.pushbutton("Yes", 72, 57, 56, 17, 3, "Yes", "No") - button.event("EndDialog", "Exit") - button = dialog.pushbutton("No", 132, 57, 56, 17, 3, "No", "Yes") - button.event("EndDialog", "Return") - - def add_error_dialog(self): - dialog = msilib.Dialog(self.db, "ErrorDlg", 50, 10, 330, 101, 65543, - self.title, "ErrorText", None, None) - dialog.text("ErrorText", 50, 9, 280, 48, 3, "") - for text, x in [("No", 120), ("Yes", 240), ("Abort", 0), - ("Cancel", 42), ("Ignore", 81), ("Ok", 159), ("Retry", 198)]: - button = dialog.pushbutton(text[0], x, 72, 81, 21, 3, text, None) - button.event("EndDialog", "Error%s" % text) - - def add_exit_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "ExitDialog", - self.x, self.y, self.width, self.height, self.modal, - self.title, "Finish", "Finish", "Finish") - dialog.title("Completing the [ProductName] installer") - dialog.back("< Back", "Finish", active = False) - dialog.cancel("Cancel", "Back", active = False) - dialog.text("Description", 15, 235, 320, 20, 0x30003, - "Click the Finish button to exit the installer.") - button = dialog.next("Finish", "Cancel", name = "Finish") - button.event("EndDialog", "Return") - - def add_fatal_error_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "FatalError", - self.x, self.y, self.width, self.height, self.modal, - self.title, "Finish", "Finish", "Finish") - dialog.title("[ProductName] installer ended prematurely") - dialog.back("< Back", "Finish", active = False) - dialog.cancel("Cancel", "Back", active = False) - dialog.text("Description1", 15, 70, 320, 80, 0x30003, - "[ProductName] setup ended prematurely because of an error. " - "Your system has not been modified. To install this program " - "at a later time, please run the installation again.") - dialog.text("Description2", 15, 155, 320, 20, 0x30003, - "Click the Finish button to exit the installer.") - button = dialog.next("Finish", "Cancel", name = "Finish") - button.event("EndDialog", "Exit") - - def add_files_in_use_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "FilesInUse", - self.x, self.y, self.width, self.height, 19, self.title, - "Retry", "Retry", "Retry", bitmap = False) - dialog.text("Title", 15, 6, 200, 15, 0x30003, - r"{\DlgFontBold8}Files in Use") - dialog.text("Description", 20, 23, 280, 20, 0x30003, - "Some files that need to be updated are currently in use.") - dialog.text("Text", 20, 55, 330, 50, 3, - "The following applications are using files that need to be " - "updated by this setup. Close these applications and then " - "click Retry to continue the installation or Cancel to exit " - "it.") - dialog.control("List", "ListBox", 20, 107, 330, 130, 7, - "FileInUseProcess", None, None, None) - button = dialog.back("Exit", "Ignore", name = "Exit") - button.event("EndDialog", "Exit") - button = dialog.next("Ignore", "Retry", name = "Ignore") - button.event("EndDialog", "Ignore") - button = dialog.cancel("Retry", "Exit", name = "Retry") - button.event("EndDialog", "Retry") - - def add_maintenance_type_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, - "MaintenanceTypeDlg", self.x, self.y, self.width, self.height, - self.modal, self.title, "Next", "Next", "Cancel") - dialog.title("Welcome to the [ProductName] Setup Wizard") - dialog.text("BodyText", 15, 63, 330, 42, 3, - "Select whether you want to repair or remove [ProductName].") - group = dialog.radiogroup("RepairRadioGroup", 15, 108, 330, 60, 3, - "MaintenanceForm_Action", "", "Next") - group.add("Repair", 0, 18, 300, 17, "&Repair [ProductName]") - group.add("Remove", 0, 36, 300, 17, "Re&move [ProductName]") - dialog.back("< Back", None, active = False) - button = dialog.next("Finish", "Cancel") - button.event("[REINSTALL]", "ALL", - 'MaintenanceForm_Action="Repair"', 5) - button.event("[Progress1]", "Repairing", - 'MaintenanceForm_Action="Repair"', 6) - button.event("[Progress2]", "repairs", - 'MaintenanceForm_Action="Repair"', 7) - button.event("Reinstall", "ALL", - 'MaintenanceForm_Action="Repair"', 8) - button.event("[REMOVE]", "ALL", - 'MaintenanceForm_Action="Remove"', 11) - button.event("[Progress1]", "Removing", - 'MaintenanceForm_Action="Remove"', 12) - button.event("[Progress2]", "removes", - 'MaintenanceForm_Action="Remove"', 13) - button.event("Remove", "ALL", - 'MaintenanceForm_Action="Remove"', 14) - button.event("EndDialog", "Return", - 'MaintenanceForm_Action<>"Change"', 20) - button = dialog.cancel("Cancel", "RepairRadioGroup") - button.event("SpawnDialog", "CancelDlg") - - def add_prepare_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "PrepareDlg", - self.x, self.y, self.width, self.height, self.modeless, - self.title, "Cancel", "Cancel", "Cancel") - dialog.text("Description", 15, 70, 320, 40, 0x30003, - "Please wait while the installer prepares to guide you through" - "the installation.") - dialog.title("Welcome to the [ProductName] installer") - text = dialog.text("ActionText", 15, 110, 320, 20, 0x30003, - "Pondering...") - text.mapping("ActionText", "Text") - text = dialog.text("ActionData", 15, 135, 320, 30, 0x30003, None) - text.mapping("ActionData", "Text") - dialog.back("Back", None, active = False) - dialog.next("Next", None, active = False) - button = dialog.cancel("Cancel", None) - button.event("SpawnDialog", "CancelDlg") - - def add_progress_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "ProgressDlg", - self.x, self.y, self.width, self.height, self.modeless, - self.title, "Cancel", "Cancel", "Cancel", bitmap = False) - dialog.text("Title", 20, 15, 200, 15, 0x30003, - r"{\DlgFontBold8}[Progress1] [ProductName]") - dialog.text("Text", 35, 65, 300, 30, 3, - "Please wait while the installer [Progress2] [ProductName].") - dialog.text("StatusLabel", 35, 100 ,35, 20, 3, "Status:") - text = dialog.text("ActionText", 70, 100, self.width - 70, 20, 3, - "Pondering...") - text.mapping("ActionText", "Text") - control = dialog.control("ProgressBar", "ProgressBar", 35, 120, 300, - 10, 65537, None, "Progress done", None, None) - control.mapping("SetProgress", "Progress") - dialog.back("< Back", "Next", active = False) - dialog.next("Next >", "Cancel", active = False) - button = dialog.cancel("Cancel", "Back") - button.event("SpawnDialog", "CancelDlg") - - def add_properties(self): - metadata = self.distribution.metadata - props = [ - ('DistVersion', metadata.get_version()), - ('DefaultUIFont', 'DlgFont8'), - ('ErrorDialog', 'ErrorDlg'), - ('Progress1', 'Install'), - ('Progress2', 'installs'), - ('MaintenanceForm_Action', 'Repair') - ] - email = metadata.author_email or metadata.maintainer_email - if email: - props.append(("ARPCONTACT", email)) - if metadata.url: - props.append(("ARPURLINFOABOUT", metadata.url)) - if self.upgrade_code is not None: - props.append(("UpgradeCode", self.upgrade_code)) - msilib.add_data(self.db, 'Property', props) - - def add_select_directory_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, - "SelectDirectoryDlg", self.x, self.y, self.width, self.height, - self.modal, self.title, "Next", "Next", "Cancel") - dialog.title("Select destination directory") - dialog.back("< Back", None, active = False) - button = dialog.next("Next >", "Cancel") - button.event("SetTargetPath", "TARGETDIR", ordering = 1) - button.event("SpawnWaitDialog", "WaitForCostingDlg", ordering = 2) - button.event("EndDialog", "Return", ordering = 3) - button = dialog.cancel("Cancel", "DirectoryCombo") - button.event("SpawnDialog", "CancelDlg") - dialog.control("DirectoryCombo", "DirectoryCombo", 15, 70, 272, 80, - 393219, "TARGETDIR", None, "DirectoryList", None) - dialog.control("DirectoryList", "DirectoryList", 15, 90, 308, 136, 3, - "TARGETDIR", None, "PathEdit", None) - dialog.control("PathEdit", "PathEdit", 15, 230, 306, 16, 3, - "TARGETDIR", None, "Next", None) - button = dialog.pushbutton("Up", 306, 70, 18, 18, 3, "Up", None) - button.event("DirectoryListUp", "0") - button = dialog.pushbutton("NewDir", 324, 70, 30, 18, 3, "New", None) - button.event("DirectoryListNew", "0") - - def add_text_styles(self): - msilib.add_data(self.db, 'TextStyle', - [("DlgFont8", "Tahoma", 9, None, 0), - ("DlgFontBold8", "Tahoma", 8, None, 1), - ("VerdanaBold10", "Verdana", 10, None, 1), - ("VerdanaRed9", "Verdana", 9, 255, 0) - ]) - - def add_ui(self): - self.add_text_styles() - self.add_error_dialog() - self.add_fatal_error_dialog() - self.add_cancel_dialog() - self.add_exit_dialog() - self.add_user_exit_dialog() - self.add_files_in_use_dialog() - self.add_wait_for_costing_dialog() - self.add_prepare_dialog() - self.add_select_directory_dialog() - self.add_progress_dialog() - self.add_maintenance_type_dialog() - - def add_upgrade_config(self, sversion): - if self.upgrade_code is not None: - msilib.add_data(self.db, 'Upgrade', - [(self.upgrade_code, None, sversion, None, 513, None, - "REMOVEOLDVERSION"), - (self.upgrade_code, sversion, None, None, 257, None, - "REMOVENEWVERSION") - ]) - - def add_user_exit_dialog(self): - dialog = distutils.command.bdist_msi.PyDialog(self.db, "UserExit", - self.x, self.y, self.width, self.height, self.modal, - self.title, "Finish", "Finish", "Finish") - dialog.title("[ProductName] installer was interrupted") - dialog.back("< Back", "Finish", active = False) - dialog.cancel("Cancel", "Back", active = False) - dialog.text("Description1", 15, 70, 320, 80, 0x30003, - "[ProductName] setup was interrupted. Your system has not " - "been modified. To install this program at a later time, " - "please run the installation again.") - dialog.text("Description2", 15, 155, 320, 20, 0x30003, - "Click the Finish button to exit the installer.") - button = dialog.next("Finish", "Cancel", name = "Finish") - button.event("EndDialog", "Exit") - - def add_wait_for_costing_dialog(self): - dialog = msilib.Dialog(self.db, "WaitForCostingDlg", 50, 10, 260, 85, - self.modal, self.title, "Return", "Return", "Return") - dialog.text("Text", 48, 15, 194, 30, 3, - "Please wait while the installer finishes determining your " - "disk space requirements.") - button = dialog.pushbutton("Return", 102, 57, 56, 17, 3, "Return", - None) - button.event("EndDialog", "Exit") - - def get_initial_target_dir(self, fullname): - return r"[ProgramFilesFolder]\%s" % fullname - - def get_installer_filename(self, fullname): - return os.path.join(self.dist_dir, "%s.msi" % fullname) - - def initialize_options(self): - distutils.command.bdist_msi.bdist_msi.initialize_options(self) - self.upgrade_code = None - self.add_to_path = None - - def run(self): - if not self.skip_build: - self.run_command('build') - install = self.reinitialize_command('install', reinit_subcommands = 1) - install.prefix = self.bdist_dir - install.skip_build = self.skip_build - install.warn_dir = 0 - distutils.log.info("installing to %s", self.bdist_dir) - install.ensure_finalized() - install.run() - self.mkpath(self.dist_dir) - fullname = self.distribution.get_fullname() - filename = os.path.abspath(self.get_installer_filename(fullname)) - if os.path.exists(filename): - os.unlink(filename) - metadata = self.distribution.metadata - author = metadata.author or metadata.maintainer or "UNKNOWN" - version = metadata.get_version() - sversion = "%d.%d.%d" % \ - distutils.version.StrictVersion(version).version - self.db = msilib.init_database(filename, msilib.schema, - self.distribution.metadata.name, msilib.gen_uuid(), sversion, - author) - msilib.add_tables(self.db, msilib.sequence) - self.add_properties() - self.add_config(fullname) - self.add_upgrade_config(sversion) - self.add_ui() - self.add_files() - self.db.Commit() - if not self.keep_temp: - distutils.dir_util.remove_tree(self.bdist_dir, - dry_run = self.dry_run) - diff --git a/setup/installer/cx_Freeze/cxfreeze b/setup/installer/cx_Freeze/cxfreeze deleted file mode 100755 index acd6789833..0000000000 --- a/setup/installer/cx_Freeze/cxfreeze +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/python - -from cx_Freeze import main - -main() - diff --git a/setup/installer/cx_Freeze/initscripts/Console.py b/setup/installer/cx_Freeze/initscripts/Console.py deleted file mode 100755 index e10649d722..0000000000 --- a/setup/installer/cx_Freeze/initscripts/Console.py +++ /dev/null @@ -1,35 +0,0 @@ -#------------------------------------------------------------------------------ -# Console.py -# Initialization script for cx_Freeze which manipulates the path so that the -# directory in which the executable is found is searched for extensions but -# no other directory is searched. It also sets the attribute sys.frozen so that -# the Win32 extensions behave as expected. -#------------------------------------------------------------------------------ - -import encodings -import os -import sys -import warnings -import zipimport - -sys.frozen = True -sys.path = sys.path[:4] - -os.environ["TCL_LIBRARY"] = os.path.join(DIR_NAME, "tcl") -os.environ["TK_LIBRARY"] = os.path.join(DIR_NAME, "tk") - -m = __import__("__main__") -importer = zipimport.zipimporter(INITSCRIPT_ZIP_FILE_NAME) -if INITSCRIPT_ZIP_FILE_NAME != SHARED_ZIP_FILE_NAME: - moduleName = m.__name__ -else: - name, ext = os.path.splitext(os.path.basename(os.path.normcase(FILE_NAME))) - moduleName = "%s__main__" % name -code = importer.get_code(moduleName) -exec code in m.__dict__ - -if sys.version_info[:2] >= (2, 5): - module = sys.modules.get("threading") - if module is not None: - module._shutdown() - diff --git a/setup/installer/cx_Freeze/initscripts/ConsoleKeepPath.py b/setup/installer/cx_Freeze/initscripts/ConsoleKeepPath.py deleted file mode 100755 index 60151a1ff6..0000000000 --- a/setup/installer/cx_Freeze/initscripts/ConsoleKeepPath.py +++ /dev/null @@ -1,19 +0,0 @@ -#------------------------------------------------------------------------------ -# ConsoleKeepPath.py -# Initialization script for cx_Freeze which leaves the path alone and does -# not set the sys.frozen attribute. -#------------------------------------------------------------------------------ - -import sys -import zipimport - -m = __import__("__main__") -importer = zipimport.zipimporter(INITSCRIPT_ZIP_FILE_NAME) -code = importer.get_code(m.__name__) -exec code in m.__dict__ - -if sys.version_info[:2] >= (2, 5): - module = sys.modules.get("threading") - if module is not None: - module._shutdown() - diff --git a/setup/installer/cx_Freeze/initscripts/ConsoleSetLibPath.py b/setup/installer/cx_Freeze/initscripts/ConsoleSetLibPath.py deleted file mode 100755 index b558652c0a..0000000000 --- a/setup/installer/cx_Freeze/initscripts/ConsoleSetLibPath.py +++ /dev/null @@ -1,38 +0,0 @@ -#------------------------------------------------------------------------------ -# ConsoleSetLibPath.py -# Initialization script for cx_Freeze which manipulates the path so that the -# directory in which the executable is found is searched for extensions but -# no other directory is searched. The environment variable LD_LIBRARY_PATH is -# manipulated first, however, to ensure that shared libraries found in the -# target directory are found. This requires a restart of the executable because -# the environment variable LD_LIBRARY_PATH is only checked at startup. -#------------------------------------------------------------------------------ - -import encodings -import os -import sys -import warnings -import zipimport - -paths = os.environ.get("LD_LIBRARY_PATH", "").split(os.pathsep) -if DIR_NAME not in paths: - paths.insert(0, DIR_NAME) - os.environ["LD_LIBRARY_PATH"] = os.pathsep.join(paths) - os.execv(sys.executable, sys.argv) - -sys.frozen = True -sys.path = sys.path[:4] - -os.environ["TCL_LIBRARY"] = os.path.join(DIR_NAME, "tcl") -os.environ["TK_LIBRARY"] = os.path.join(DIR_NAME, "tk") - -m = __import__("__main__") -importer = zipimport.zipimporter(INITSCRIPT_ZIP_FILE_NAME) -code = importer.get_code(m.__name__) -exec code in m.__dict__ - -if sys.version_info[:2] >= (2, 5): - module = sys.modules.get("threading") - if module is not None: - module._shutdown() - diff --git a/setup/installer/cx_Freeze/initscripts/SharedLib.py b/setup/installer/cx_Freeze/initscripts/SharedLib.py deleted file mode 100755 index 0445367010..0000000000 --- a/setup/installer/cx_Freeze/initscripts/SharedLib.py +++ /dev/null @@ -1,20 +0,0 @@ -#------------------------------------------------------------------------------ -# SharedLib.py -# Initialization script for cx_Freeze which behaves similarly to the one for -# console based applications but must handle the case where Python has already -# been initialized and another DLL of this kind has been loaded. As such it -# does not block the path unless sys.frozen is not already set. -#------------------------------------------------------------------------------ - -import encodings -import os -import sys -import warnings - -if not hasattr(sys, "frozen"): - sys.frozen = True - sys.path = sys.path[:4] - -os.environ["TCL_LIBRARY"] = os.path.join(DIR_NAME, "tcl") -os.environ["TK_LIBRARY"] = os.path.join(DIR_NAME, "tk") - diff --git a/setup/installer/cx_Freeze/initscripts/SharedLibSource.py b/setup/installer/cx_Freeze/initscripts/SharedLibSource.py deleted file mode 100755 index 3edae93694..0000000000 --- a/setup/installer/cx_Freeze/initscripts/SharedLibSource.py +++ /dev/null @@ -1,23 +0,0 @@ -#------------------------------------------------------------------------------ -# SharedLibSource.py -# Initialization script for cx_Freeze which imports the site module (as per -# normal processing of a Python script) and then searches for a file with the -# same name as the shared library but with the extension .pth. The entries in -# this file are used to modify the path to use for subsequent imports. -#------------------------------------------------------------------------------ - -import os -import sys -import warnings - -# the site module must be imported for normal behavior to take place; it is -# done dynamically so that cx_Freeze will not add all modules referenced by -# the site module to the frozen executable -__import__("site") - -# now locate the pth file to modify the path appropriately -baseName, ext = os.path.splitext(FILE_NAME) -pathFileName = baseName + ".pth" -sys.path = [s.strip() for s in file(pathFileName).read().splitlines()] + \ - sys.path - diff --git a/setup/installer/cx_Freeze/samples/advanced/advanced_1.py b/setup/installer/cx_Freeze/samples/advanced/advanced_1.py deleted file mode 100644 index 2f1b68bceb..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/advanced_1.py +++ /dev/null @@ -1,7 +0,0 @@ -import sys - -print "Hello from cx_Freeze Advanced #1" -print - -module = __import__("testfreeze_1") - diff --git a/setup/installer/cx_Freeze/samples/advanced/advanced_2.py b/setup/installer/cx_Freeze/samples/advanced/advanced_2.py deleted file mode 100644 index 1a6fe37e62..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/advanced_2.py +++ /dev/null @@ -1,7 +0,0 @@ -import sys - -print "Hello from cx_Freeze Advanced #2" -print - -module = __import__("testfreeze_2") - diff --git a/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_1.py b/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_1.py deleted file mode 100644 index 6157b72a69..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_1.py +++ /dev/null @@ -1 +0,0 @@ -print "Test freeze module #1" diff --git a/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_2.py b/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_2.py deleted file mode 100644 index ca133a7d58..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/modules/testfreeze_2.py +++ /dev/null @@ -1 +0,0 @@ -print "Test freeze module #2" diff --git a/setup/installer/cx_Freeze/samples/advanced/setup.py b/setup/installer/cx_Freeze/samples/advanced/setup.py deleted file mode 100644 index 3a79cf23af..0000000000 --- a/setup/installer/cx_Freeze/samples/advanced/setup.py +++ /dev/null @@ -1,31 +0,0 @@ -# An advanced setup script to create multiple executables and demonstrate a few -# of the features available to setup scripts -# -# hello.py is a very simple "Hello, world" type script which also displays the -# environment in which the script runs -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the script without Python - -import sys -from cx_Freeze import setup, Executable - -executables = [ - Executable("advanced_1.py"), - Executable("advanced_2.py") -] - -buildOptions = dict( - compressed = True, - includes = ["testfreeze_1", "testfreeze_2"], - path = sys.path + ["modules"]) - -setup( - name = "advanced_cx_Freeze_sample", - version = "0.1", - description = "Advanced sample cx_Freeze script", - options = dict(build_exe = buildOptions), - executables = executables) - diff --git a/setup/installer/cx_Freeze/samples/matplotlib/setup.py b/setup/installer/cx_Freeze/samples/matplotlib/setup.py deleted file mode 100644 index 54bd97fc3f..0000000000 --- a/setup/installer/cx_Freeze/samples/matplotlib/setup.py +++ /dev/null @@ -1,27 +0,0 @@ -# A simple setup script to create an executable using matplotlib. -# -# test_matplotlib.py is a very simple matplotlib application that demonstrates -# its use. -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the application - -import cx_Freeze -import sys - -base = None -if sys.platform == "win32": - base = "Win32GUI" - -executables = [ - cx_Freeze.Executable("test_matplotlib.py", base = base) -] - -cx_Freeze.setup( - name = "test_matplotlib", - version = "0.1", - description = "Sample matplotlib script", - executables = executables) - diff --git a/setup/installer/cx_Freeze/samples/matplotlib/test_matplotlib.py b/setup/installer/cx_Freeze/samples/matplotlib/test_matplotlib.py deleted file mode 100644 index 2029845ca5..0000000000 --- a/setup/installer/cx_Freeze/samples/matplotlib/test_matplotlib.py +++ /dev/null @@ -1,48 +0,0 @@ -from numpy import arange, sin, pi -import matplotlib -matplotlib.use('WXAgg') -from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas -from matplotlib.backends.backend_wx import NavigationToolbar2Wx -from matplotlib.figure import Figure -from wx import * - -class CanvasFrame(Frame): - def __init__(self): - Frame.__init__(self,None,-1, 'CanvasFrame',size=(550,350)) - self.SetBackgroundColour(NamedColor("WHITE")) - self.figure = Figure() - self.axes = self.figure.add_subplot(111) - t = arange(0.0,3.0,0.01) - s = sin(2*pi*t) - self.axes.plot(t,s) - self.canvas = FigureCanvas(self, -1, self.figure) - self.sizer = BoxSizer(VERTICAL) - self.sizer.Add(self.canvas, 1, LEFT | TOP | GROW) - self.SetSizerAndFit(self.sizer) - self.add_toolbar() - - def add_toolbar(self): - self.toolbar = NavigationToolbar2Wx(self.canvas) - self.toolbar.Realize() - if Platform == '__WXMAC__': - self.SetToolBar(self.toolbar) - else: - tw, th = self.toolbar.GetSizeTuple() - fw, fh = self.canvas.GetSizeTuple() - self.toolbar.SetSize(Size(fw, th)) - self.sizer.Add(self.toolbar, 0, LEFT | EXPAND) - self.toolbar.update() - - def OnPaint(self, event): - self.canvas.draw() - -class App(App): - def OnInit(self): - 'Create the main window and insert the custom frame' - frame = CanvasFrame() - frame.Show(True) - return True - -app = App(0) -app.MainLoop() - diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/__init__.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/__init__.py deleted file mode 100644 index 5a170fd2dd..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -print "importing pkg1" -from . import sub1 -from . import pkg2 diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/__init__.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/__init__.py deleted file mode 100644 index 71e0b1fbe6..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -print "importing pkg1.pkg2" -from . import sub3 -from .. import sub4 diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub3.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub3.py deleted file mode 100644 index 1719aadb41..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub3.py +++ /dev/null @@ -1,3 +0,0 @@ -print "importing pkg1.pkg2.sub3" -from . import sub5 -from .. import sub6 diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub5.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub5.py deleted file mode 100644 index 1c91b8fa23..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/pkg2/sub5.py +++ /dev/null @@ -1 +0,0 @@ -print "importing pkg1.pkg2.sub5" diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub1.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/sub1.py deleted file mode 100644 index 514bd88a87..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub1.py +++ /dev/null @@ -1,2 +0,0 @@ -print "importing pkg1.sub1" -from . import sub2 diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub2.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/sub2.py deleted file mode 100644 index 63a0838b25..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub2.py +++ /dev/null @@ -1 +0,0 @@ -print "importing pkg1.sub2" diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub4.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/sub4.py deleted file mode 100644 index 3a8e760e43..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub4.py +++ /dev/null @@ -1 +0,0 @@ -print 'importing pkg1.sub4' diff --git a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub6.py b/setup/installer/cx_Freeze/samples/relimport/pkg1/sub6.py deleted file mode 100644 index 1e7d7955d6..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/pkg1/sub6.py +++ /dev/null @@ -1 +0,0 @@ -print "importing pkg1.sub6" diff --git a/setup/installer/cx_Freeze/samples/relimport/relimport.py b/setup/installer/cx_Freeze/samples/relimport/relimport.py deleted file mode 100644 index 39cb50c91d..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/relimport.py +++ /dev/null @@ -1 +0,0 @@ -import pkg1 diff --git a/setup/installer/cx_Freeze/samples/relimport/setup.py b/setup/installer/cx_Freeze/samples/relimport/setup.py deleted file mode 100644 index b8b3f3853b..0000000000 --- a/setup/installer/cx_Freeze/samples/relimport/setup.py +++ /dev/null @@ -1,16 +0,0 @@ -# relimport.py is a very simple script that tests importing using relative -# imports (available in Python 2.5 and up) -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the script without Python - -from cx_Freeze import setup, Executable - -setup( - name = "relimport", - version = "0.1", - description = "Sample cx_Freeze script for relative imports", - executables = [Executable("relimport.py")]) - diff --git a/setup/installer/cx_Freeze/samples/simple/hello.py b/setup/installer/cx_Freeze/samples/simple/hello.py deleted file mode 100644 index 0fb32405bc..0000000000 --- a/setup/installer/cx_Freeze/samples/simple/hello.py +++ /dev/null @@ -1,19 +0,0 @@ -import sys - -print "Hello from cx_Freeze" -print - -print "sys.executable", sys.executable -print "sys.prefix", sys.prefix -print - -print "ARGUMENTS:" -for a in sys.argv: - print a -print - -print "PATH:" -for p in sys.path: - print p -print - diff --git a/setup/installer/cx_Freeze/samples/simple/setup.py b/setup/installer/cx_Freeze/samples/simple/setup.py deleted file mode 100644 index 25de838b10..0000000000 --- a/setup/installer/cx_Freeze/samples/simple/setup.py +++ /dev/null @@ -1,18 +0,0 @@ -# A very simple setup script to create a single executable -# -# hello.py is a very simple "Hello, world" type script which also displays the -# environment in which the script runs -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the script without Python - -from cx_Freeze import setup, Executable - -setup( - name = "hello", - version = "0.1", - description = "Sample cx_Freeze script", - executables = [Executable("hello.py")]) - diff --git a/setup/installer/cx_Freeze/samples/wx/setup.py b/setup/installer/cx_Freeze/samples/wx/setup.py deleted file mode 100644 index 9412996859..0000000000 --- a/setup/installer/cx_Freeze/samples/wx/setup.py +++ /dev/null @@ -1,25 +0,0 @@ -# A simple setup script to create an executable running wxPython. This also -# demonstrates the method for creating a Windows executable that does not have -# an associated console. -# -# wxapp.py is a very simple "Hello, world" type wxPython application -# -# Run the build process by running the command 'python setup.py build' -# -# If everything works well you should find a subdirectory in the build -# subdirectory that contains the files needed to run the application - -import sys - -from cx_Freeze import setup, Executable - -base = None -if sys.platform == "win32": - base = "Win32GUI" - -setup( - name = "hello", - version = "0.1", - description = "Sample cx_Freeze wxPython script", - executables = [Executable("wxapp.py", base = base)]) - diff --git a/setup/installer/cx_Freeze/samples/wx/wxapp.py b/setup/installer/cx_Freeze/samples/wx/wxapp.py deleted file mode 100644 index 7baa90b8d1..0000000000 --- a/setup/installer/cx_Freeze/samples/wx/wxapp.py +++ /dev/null @@ -1,42 +0,0 @@ -import wx - -class Frame(wx.Frame): - - def __init__(self): - wx.Frame.__init__(self, parent = None, title = "Hello from cx_Freeze") - panel = wx.Panel(self) - closeMeButton = wx.Button(panel, -1, "Close Me") - wx.EVT_BUTTON(self, closeMeButton.GetId(), self.OnCloseMe) - wx.EVT_CLOSE(self, self.OnCloseWindow) - pushMeButton = wx.Button(panel, -1, "Push Me") - wx.EVT_BUTTON(self, pushMeButton.GetId(), self.OnPushMe) - sizer = wx.BoxSizer(wx.HORIZONTAL) - sizer.Add(closeMeButton, flag = wx.ALL, border = 20) - sizer.Add(pushMeButton, flag = wx.ALL, border = 20) - panel.SetSizer(sizer) - topSizer = wx.BoxSizer(wx.VERTICAL) - topSizer.Add(panel, flag = wx.ALL | wx.EXPAND) - topSizer.Fit(self) - - def OnCloseMe(self, event): - self.Close(True) - - def OnPushMe(self, event): - 1 / 0 - - def OnCloseWindow(self, event): - self.Destroy() - - -class App(wx.App): - - def OnInit(self): - frame = Frame() - frame.Show(True) - self.SetTopWindow(frame) - return True - - -app = App(1) -app.MainLoop() - diff --git a/setup/installer/cx_Freeze/setup.py b/setup/installer/cx_Freeze/setup.py deleted file mode 100755 index b51453aa7a..0000000000 --- a/setup/installer/cx_Freeze/setup.py +++ /dev/null @@ -1,197 +0,0 @@ -""" -Distutils script for cx_Freeze. -""" - -import distutils.command.bdist_rpm -import distutils.command.build_ext -import distutils.command.build_scripts -import distutils.command.install -import distutils.command.install_data -import distutils.sysconfig -import os -import sys - -from distutils.core import setup -from distutils.extension import Extension - -class bdist_rpm(distutils.command.bdist_rpm.bdist_rpm): - - # rpm automatically byte compiles all Python files in a package but we - # don't want that to happen for initscripts and samples so we tell it to - # ignore those files - def _make_spec_file(self): - specFile = distutils.command.bdist_rpm.bdist_rpm._make_spec_file(self) - specFile.insert(0, "%define _unpackaged_files_terminate_build 0%{nil}") - return specFile - - def run(self): - distutils.command.bdist_rpm.bdist_rpm.run(self) - specFile = os.path.join(self.rpm_base, "SPECS", - "%s.spec" % self.distribution.get_name()) - queryFormat = "%{name}-%{version}-%{release}.%{arch}.rpm" - command = "rpm -q --qf '%s' --specfile %s" % (queryFormat, specFile) - origFileName = os.popen(command).read() - parts = origFileName.split("-") - parts.insert(2, "py%s%s" % sys.version_info[:2]) - newFileName = "-".join(parts) - self.move_file(os.path.join("dist", origFileName), - os.path.join("dist", newFileName)) - - -class build_ext(distutils.command.build_ext.build_ext): - - def build_extension(self, ext): - if ext.name.find("bases") < 0: - distutils.command.build_ext.build_ext.build_extension(self, ext) - return - os.environ["LD_RUN_PATH"] = "${ORIGIN}:${ORIGIN}/../lib" - objects = self.compiler.compile(ext.sources, - output_dir = self.build_temp, - include_dirs = ext.include_dirs, - debug = self.debug, - depends = ext.depends) - fileName = os.path.splitext(self.get_ext_filename(ext.name))[0] - fullName = os.path.join(self.build_lib, fileName) - libraryDirs = ext.library_dirs or [] - libraries = self.get_libraries(ext) - extraArgs = ext.extra_link_args or [] - if sys.platform != "win32": - vars = distutils.sysconfig.get_config_vars() - libraryDirs.append(vars["LIBPL"]) - libraries.append("python%s.%s" % sys.version_info[:2]) - if vars["LINKFORSHARED"]: - extraArgs.extend(vars["LINKFORSHARED"].split()) - if vars["LIBS"]: - extraArgs.extend(vars["LIBS"].split()) - if vars["LIBM"]: - extraArgs.append(vars["LIBM"]) - if vars["BASEMODLIBS"]: - extraArgs.extend(vars["BASEMODLIBS"].split()) - if vars["LOCALMODLIBS"]: - extraArgs.extend(vars["LOCALMODLIBS"].split()) - extraArgs.append("-s") - self.compiler.link_executable(objects, fullName, - libraries = libraries, - library_dirs = libraryDirs, - runtime_library_dirs = ext.runtime_library_dirs, - extra_postargs = extraArgs, - debug = self.debug) - - def get_ext_filename(self, name): - fileName = distutils.command.build_ext.build_ext.get_ext_filename(self, - name) - if name.find("bases") < 0: - return fileName - ext = self.compiler.exe_extension or "" - return os.path.splitext(fileName)[0] + ext - - -class build_scripts(distutils.command.build_scripts.build_scripts): - - def copy_scripts(self): - distutils.command.build_scripts.build_scripts.copy_scripts(self) - if sys.platform == "win32": - for script in self.scripts: - batFileName = os.path.join(self.build_dir, script + ".bat") - fullScriptName = r"%s\Scripts\%s" % \ - (os.path.dirname(sys.executable), script) - command = "%s %s %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9" % \ - (sys.executable, fullScriptName) - file(batFileName, "w").write("@echo off\n\n%s" % command) - - -class install(distutils.command.install.install): - - def get_sub_commands(self): - subCommands = distutils.command.install.install.get_sub_commands(self) - subCommands.append("install_packagedata") - return subCommands - - -class install_packagedata(distutils.command.install_data.install_data): - - def run(self): - installCommand = self.get_finalized_command("install") - installDir = getattr(installCommand, "install_lib") - sourceDirs = ["samples", "initscripts"] - while sourceDirs: - sourceDir = sourceDirs.pop(0) - targetDir = os.path.join(installDir, "cx_Freeze", sourceDir) - self.mkpath(targetDir) - for name in os.listdir(sourceDir): - if name == "build" or name.startswith("."): - continue - fullSourceName = os.path.join(sourceDir, name) - if os.path.isdir(fullSourceName): - sourceDirs.append(fullSourceName) - else: - fullTargetName = os.path.join(targetDir, name) - self.copy_file(fullSourceName, fullTargetName) - self.outfiles.append(fullTargetName) - - -commandClasses = dict( - build_ext = build_ext, - build_scripts = build_scripts, - bdist_rpm = bdist_rpm, - install = install, - install_packagedata = install_packagedata) - -if sys.platform == "win32": - libraries = ["imagehlp"] -else: - libraries = [] -utilModule = Extension("cx_Freeze.util", ["source/util.c"], - libraries = libraries) -depends = ["source/bases/Common.c"] -if sys.platform == "win32": - if sys.version_info[:2] >= (2, 6): - extraSources = ["source/bases/manifest.rc"] - else: - extraSources = ["source/bases/dummy.rc"] -else: - extraSources = [] -console = Extension("cx_Freeze.bases.Console", - ["source/bases/Console.c"] + extraSources, depends = depends) -consoleKeepPath = Extension("cx_Freeze.bases.ConsoleKeepPath", - ["source/bases/ConsoleKeepPath.c"] + extraSources, depends = depends) -extensions = [utilModule, console, consoleKeepPath] -if sys.platform == "win32": - gui = Extension("cx_Freeze.bases.Win32GUI", - ["source/bases/Win32GUI.c"] + extraSources, - depends = depends, extra_link_args = ["-mwindows"]) - extensions.append(gui) - -docFiles = "LICENSE.txt README.txt HISTORY.txt doc/cx_Freeze.html" - -classifiers = [ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: Python Software Foundation License", - "Natural Language :: English", - "Operating System :: OS Independent", - "Programming Language :: C", - "Programming Language :: Python", - "Topic :: Software Development :: Build Tools", - "Topic :: Software Development :: Libraries :: Python Modules", - "Topic :: System :: Software Distribution", - "Topic :: Utilities" -] - -setup(name = "cx_Freeze", - description = "create standalone executables from Python scripts", - long_description = "create standalone executables from Python scripts", - version = "4.0.1", - cmdclass = commandClasses, - options = dict(bdist_rpm = dict(doc_files = docFiles), - install = dict(optimize = 1)), - ext_modules = extensions, - packages = ['cx_Freeze'], - maintainer="Anthony Tuininga", - maintainer_email="anthony.tuininga@gmail.com", - url = "http://cx-freeze.sourceforge.net", - scripts = ["cxfreeze"], - classifiers = classifiers, - keywords = "freeze", - license = "Python Software Foundation License") - diff --git a/setup/installer/cx_Freeze/source/bases/Common.c b/setup/installer/cx_Freeze/source/bases/Common.c deleted file mode 100644 index ce1e137ebb..0000000000 --- a/setup/installer/cx_Freeze/source/bases/Common.c +++ /dev/null @@ -1,262 +0,0 @@ -//----------------------------------------------------------------------------- -// Common.c -// Routines which are common to running frozen executables. -//----------------------------------------------------------------------------- - -#include -#include -#include - -// global variables (used for simplicity) -static PyObject *g_FileName = NULL; -static PyObject *g_DirName = NULL; -static PyObject *g_ExclusiveZipFileName = NULL; -static PyObject *g_SharedZipFileName = NULL; -static PyObject *g_InitScriptZipFileName = NULL; - -//----------------------------------------------------------------------------- -// GetDirName() -// Return the directory name of the given path. -//----------------------------------------------------------------------------- -static int GetDirName( - const char *path, // path to calculate dir name for - PyObject **dirName) // directory name (OUT) -{ - int i; - - for (i = strlen(path); i > 0 && path[i] != SEP; --i); - *dirName = PyString_FromStringAndSize(path, i); - if (!*dirName) - return FatalError("cannot create string for directory name"); - return 0; -} - - -//----------------------------------------------------------------------------- -// SetExecutableName() -// Set the script to execute and calculate the directory in which the -// executable is found as well as the exclusive (only for this executable) and -// shared zip file names. -//----------------------------------------------------------------------------- -static int SetExecutableName( - const char *fileName) // script to execute -{ - char temp[MAXPATHLEN + 12], *ptr; -#ifndef WIN32 - char linkData[MAXPATHLEN + 1]; - struct stat statData; - size_t linkSize, i; - PyObject *dirName; -#endif - - // store file name - g_FileName = PyString_FromString(fileName); - if (!g_FileName) - return FatalError("cannot create string for file name"); - -#ifndef WIN32 - for (i = 0; i < 25; i++) { - if (lstat(fileName, &statData) < 0) { - PyErr_SetFromErrnoWithFilename(PyExc_OSError, (char*) fileName); - return FatalError("unable to stat file"); - } - if (!S_ISLNK(statData.st_mode)) - break; - linkSize = readlink(fileName, linkData, sizeof(linkData)); - if (linkSize < 0) { - PyErr_SetFromErrnoWithFilename(PyExc_OSError, (char*) fileName); - return FatalError("unable to stat file"); - } - if (linkData[0] == '/') { - Py_DECREF(g_FileName); - g_FileName = PyString_FromStringAndSize(linkData, linkSize); - } else { - if (GetDirName(PyString_AS_STRING(g_FileName), &dirName) < 0) - return -1; - if (PyString_GET_SIZE(dirName) + linkSize + 1 > MAXPATHLEN) { - Py_DECREF(dirName); - return FatalError("cannot dereference link, path too large"); - } - strcpy(temp, PyString_AS_STRING(dirName)); - strcat(temp, "/"); - strcat(temp, linkData); - Py_DECREF(g_FileName); - g_FileName = PyString_FromString(temp); - } - if (!g_FileName) - return FatalError("cannot create string for linked file name"); - fileName = PyString_AS_STRING(g_FileName); - } -#endif - - // calculate and store directory name - if (GetDirName(fileName, &g_DirName) < 0) - return -1; - - // calculate and store exclusive zip file name - strcpy(temp, fileName); - ptr = temp + strlen(temp) - 1; - while (ptr > temp && *ptr != SEP && *ptr != '.') - ptr--; - if (*ptr == '.') - *ptr = '\0'; - strcat(temp, ".zip"); - g_ExclusiveZipFileName = PyString_FromString(temp); - if (!g_ExclusiveZipFileName) - return FatalError("cannot create string for exclusive zip file name"); - - // calculate and store shared zip file name - strcpy(temp, PyString_AS_STRING(g_DirName)); - ptr = temp + strlen(temp); - *ptr++ = SEP; - strcpy(ptr, "library.zip"); - g_SharedZipFileName = PyString_FromString(temp); - if (!g_SharedZipFileName) - return FatalError("cannot create string for shared zip file name"); - - return 0; -} - - -//----------------------------------------------------------------------------- -// SetPathToSearch() -// Set the path to search. This includes the file (for those situations where -// a zip file is attached to the executable itself), the directory where the -// executable is found (to search for extensions), the exclusive zip file -// name and the shared zip file name. -//----------------------------------------------------------------------------- -static int SetPathToSearch(void) -{ - PyObject *pathList; - - pathList = PySys_GetObject("path"); - if (!pathList) - return FatalError("cannot acquire sys.path"); - if (PyList_Insert(pathList, 0, g_FileName) < 0) - return FatalError("cannot insert file name into sys.path"); - if (PyList_Insert(pathList, 1, g_DirName) < 0) - return FatalError("cannot insert directory name into sys.path"); - if (PyList_Insert(pathList, 2, g_ExclusiveZipFileName) < 0) - return FatalError("cannot insert exclusive zip name into sys.path"); - if (PyList_Insert(pathList, 3, g_SharedZipFileName) < 0) - return FatalError("cannot insert shared zip name into sys.path"); - return 0; -} - - -//----------------------------------------------------------------------------- -// GetImporterHelper() -// Helper which is used to locate the importer for the initscript. -//----------------------------------------------------------------------------- -static PyObject *GetImporterHelper( - PyObject *module, // zipimport module - PyObject *fileName) // name of file to search -{ - PyObject *importer; - - importer = PyObject_CallMethod(module, "zipimporter", "O", fileName); - if (importer) - g_InitScriptZipFileName = fileName; - else - PyErr_Clear(); - return importer; -} - - -//----------------------------------------------------------------------------- -// GetImporter() -// Return the importer which will be used for importing the initialization -// script. The executable itself is searched first, followed by the exclusive -// zip file and finally by the shared zip file. -//----------------------------------------------------------------------------- -static int GetImporter( - PyObject **importer) // importer (OUT) -{ - PyObject *module; - - module = PyImport_ImportModule("zipimport"); - if (!module) - return FatalError("cannot import zipimport module"); - *importer = GetImporterHelper(module, g_FileName); - if (!*importer) { - *importer = GetImporterHelper(module, g_ExclusiveZipFileName); - if (!*importer) - *importer = GetImporterHelper(module, g_SharedZipFileName); - } - Py_DECREF(module); - if (!*importer) - return FatalError("cannot get zipimporter instance"); - return 0; -} - - -//----------------------------------------------------------------------------- -// PopulateInitScriptDict() -// Return the dictionary used by the initialization script. -//----------------------------------------------------------------------------- -static int PopulateInitScriptDict( - PyObject *dict) // dictionary to populate -{ - if (!dict) - return FatalError("unable to create temporary dictionary"); - if (PyDict_SetItemString(dict, "__builtins__", PyEval_GetBuiltins()) < 0) - return FatalError("unable to set __builtins__"); - if (PyDict_SetItemString(dict, "FILE_NAME", g_FileName) < 0) - return FatalError("unable to set FILE_NAME"); - if (PyDict_SetItemString(dict, "DIR_NAME", g_DirName) < 0) - return FatalError("unable to set DIR_NAME"); - if (PyDict_SetItemString(dict, "EXCLUSIVE_ZIP_FILE_NAME", - g_ExclusiveZipFileName) < 0) - return FatalError("unable to set EXCLUSIVE_ZIP_FILE_NAME"); - if (PyDict_SetItemString(dict, "SHARED_ZIP_FILE_NAME", - g_SharedZipFileName) < 0) - return FatalError("unable to set SHARED_ZIP_FILE_NAME"); - if (PyDict_SetItemString(dict, "INITSCRIPT_ZIP_FILE_NAME", - g_InitScriptZipFileName) < 0) - return FatalError("unable to set INITSCRIPT_ZIP_FILE_NAME"); - return 0; -} - - - - -//----------------------------------------------------------------------------- -// ExecuteScript() -// Execute the script found within the file. -//----------------------------------------------------------------------------- -static int ExecuteScript( - const char *fileName) // name of file containing Python code -{ - PyObject *importer, *dict, *code, *temp; - - if (SetExecutableName(fileName) < 0) - return -1; - if (SetPathToSearch() < 0) - return -1; - importer = NULL; - if (GetImporter(&importer) < 0) - return -1; - - // create and populate dictionary for initscript module - dict = PyDict_New(); - if (PopulateInitScriptDict(dict) < 0) { - Py_XDECREF(dict); - Py_DECREF(importer); - return -1; - } - - // locate and execute script - code = PyObject_CallMethod(importer, "get_code", "s", "cx_Freeze__init__"); - Py_DECREF(importer); - if (!code) - return FatalError("unable to locate initialization module"); - temp = PyEval_EvalCode( (PyCodeObject*) code, dict, dict); - Py_DECREF(code); - Py_DECREF(dict); - if (!temp) - return FatalScriptError(); - Py_DECREF(temp); - - return 0; -} - diff --git a/setup/installer/cx_Freeze/source/bases/Console.c b/setup/installer/cx_Freeze/source/bases/Console.c deleted file mode 100644 index d6a8a515a0..0000000000 --- a/setup/installer/cx_Freeze/source/bases/Console.c +++ /dev/null @@ -1,72 +0,0 @@ -//----------------------------------------------------------------------------- -// Console.c -// Main routine for frozen programs which run in a console. -//----------------------------------------------------------------------------- - -#include -#ifdef __WIN32__ -#include -#endif - -//----------------------------------------------------------------------------- -// FatalError() -// Prints a fatal error. -//----------------------------------------------------------------------------- -static int FatalError( - const char *message) // message to print -{ - PyErr_Print(); - Py_FatalError(message); - return -1; -} - - -//----------------------------------------------------------------------------- -// FatalScriptError() -// Prints a fatal error in the initialization script. -//----------------------------------------------------------------------------- -static int FatalScriptError(void) -{ - PyErr_Print(); - return -1; -} - - -#include "Common.c" - - -//----------------------------------------------------------------------------- -// main() -// Main routine for frozen programs. -//----------------------------------------------------------------------------- -int main(int argc, char **argv) -{ - const char *fileName; - char *encoding; - - // initialize Python - Py_NoSiteFlag = 1; - Py_FrozenFlag = 1; - Py_IgnoreEnvironmentFlag = 1; - - encoding = getenv("PYTHONIOENCODING"); - if (encoding != NULL) { - Py_FileSystemDefaultEncoding = strndup(encoding, 100); - } - - Py_SetPythonHome(""); - Py_SetProgramName(argv[0]); - fileName = Py_GetProgramFullPath(); - - Py_Initialize(); - PySys_SetArgv(argc, argv); - - - // do the work - if (ExecuteScript(fileName) < 0) - return 1; - - Py_Finalize(); - return 0; -} - diff --git a/setup/installer/cx_Freeze/source/bases/ConsoleKeepPath.c b/setup/installer/cx_Freeze/source/bases/ConsoleKeepPath.c deleted file mode 100644 index 3ad00f8488..0000000000 --- a/setup/installer/cx_Freeze/source/bases/ConsoleKeepPath.c +++ /dev/null @@ -1,60 +0,0 @@ -//----------------------------------------------------------------------------- -// ConsoleKeepPath.c -// Main routine for frozen programs which need a Python installation to do -// their work. -//----------------------------------------------------------------------------- - -#include -#ifdef __WIN32__ -#include -#endif - -//----------------------------------------------------------------------------- -// FatalError() -// Prints a fatal error. -//----------------------------------------------------------------------------- -static int FatalError( - const char *message) // message to print -{ - PyErr_Print(); - Py_FatalError(message); - return -1; -} - - -//----------------------------------------------------------------------------- -// FatalScriptError() -// Prints a fatal error in the initialization script. -//----------------------------------------------------------------------------- -static int FatalScriptError(void) -{ - PyErr_Print(); - return -1; -} - - -#include "Common.c" - - -//----------------------------------------------------------------------------- -// main() -// Main routine for frozen programs. -//----------------------------------------------------------------------------- -int main(int argc, char **argv) -{ - const char *fileName; - - // initialize Python - Py_SetProgramName(argv[0]); - fileName = Py_GetProgramFullPath(); - Py_Initialize(); - PySys_SetArgv(argc, argv); - - // do the work - if (ExecuteScript(fileName) < 0) - return 1; - - Py_Finalize(); - return 0; -} - diff --git a/setup/installer/cx_Freeze/source/bases/Win32GUI.c b/setup/installer/cx_Freeze/source/bases/Win32GUI.c deleted file mode 100644 index f5bbe74dba..0000000000 --- a/setup/installer/cx_Freeze/source/bases/Win32GUI.c +++ /dev/null @@ -1,242 +0,0 @@ -//----------------------------------------------------------------------------- -// Win32GUI.c -// Main routine for frozen programs written for the Win32 GUI subsystem. -//----------------------------------------------------------------------------- - -#include -#include - -//----------------------------------------------------------------------------- -// FatalError() -// Handle a fatal error. -//----------------------------------------------------------------------------- -static int FatalError( - char *a_Message) // message to display -{ - MessageBox(NULL, a_Message, "cx_Freeze Fatal Error", MB_ICONERROR); - Py_Finalize(); - return -1; -} - - -//----------------------------------------------------------------------------- -// StringifyObject() -// Stringify a Python object. -//----------------------------------------------------------------------------- -static char *StringifyObject( - PyObject *object, // object to stringify - PyObject **stringRep) // string representation -{ - if (object) { - *stringRep = PyObject_Str(object); - if (*stringRep) - return PyString_AS_STRING(*stringRep); - return "Unable to stringify"; - } - - // object is NULL - *stringRep = NULL; - return "None"; -} - - -//----------------------------------------------------------------------------- -// FatalPythonErrorNoTraceback() -// Handle a fatal Python error without traceback. -//----------------------------------------------------------------------------- -static int FatalPythonErrorNoTraceback( - PyObject *origType, // exception type - PyObject *origValue, // exception value - char *message) // message to display -{ - PyObject *typeStrRep, *valueStrRep, *origTypeStrRep, *origValueStrRep; - char *totalMessage, *typeStr, *valueStr, *origTypeStr, *origValueStr; - PyObject *type, *value, *traceback; - int totalMessageLength; - char *messageFormat; - - // fetch error and string representations of the error - PyErr_Fetch(&type, &value, &traceback); - origTypeStr = StringifyObject(origType, &origTypeStrRep); - origValueStr = StringifyObject(origValue, &origValueStrRep); - typeStr = StringifyObject(type, &typeStrRep); - valueStr = StringifyObject(value, &valueStrRep); - - // fill out the message to be displayed - messageFormat = "Type: %s\nValue: %s\nOther Type: %s\nOtherValue: %s\n%s"; - totalMessageLength = strlen(origTypeStr) + strlen(origValueStr) + - strlen(typeStr) + strlen(valueStr) + strlen(message) + - strlen(messageFormat) + 1; - totalMessage = malloc(totalMessageLength); - if (!totalMessage) - return FatalError("Out of memory!"); - sprintf(totalMessage, messageFormat, typeStr, valueStr, origTypeStr, - origValueStr, message); - - // display the message - MessageBox(NULL, totalMessage, - "cx_Freeze: Python error in main script (traceback unavailable)", - MB_ICONERROR); - free(totalMessage); - return -1; -} - - -//----------------------------------------------------------------------------- -// ArgumentValue() -// Return a suitable argument value by replacing NULL with Py_None. -//----------------------------------------------------------------------------- -static PyObject *ArgumentValue( - PyObject *object) // argument to massage -{ - if (object) { - Py_INCREF(object); - return object; - } - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// HandleSystemExitException() -// Handles a system exit exception differently. If an integer value is passed -// through then that becomes the exit value; otherwise the string value of the -// value passed through is displayed in a message box. -//----------------------------------------------------------------------------- -static void HandleSystemExitException() -{ - PyObject *type, *value, *traceback, *valueStr; - int exitCode = 0; - char *message; - - PyErr_Fetch(&type, &value, &traceback); - if (PyInstance_Check(value)) { - PyObject *code = PyObject_GetAttrString(value, "code"); - if (code) { - Py_DECREF(value); - value = code; - if (value == Py_None) - Py_Exit(0); - } - } - if (PyInt_Check(value)) - exitCode = PyInt_AsLong(value); - else { - message = StringifyObject(value, &valueStr); - MessageBox(NULL, message, "cx_Freeze: Application Terminated", - MB_ICONERROR); - Py_XDECREF(valueStr); - exitCode = 1; - } - Py_Exit(exitCode); -} - - -//----------------------------------------------------------------------------- -// FatalScriptError() -// Handle a fatal Python error with traceback. -//----------------------------------------------------------------------------- -static int FatalScriptError() -{ - PyObject *type, *value, *traceback, *argsTuple, *module, *method, *result; - int tracebackLength, i; - char *tracebackStr; - - // if a system exception, handle it specially - if (PyErr_ExceptionMatches(PyExc_SystemExit)) - HandleSystemExitException(); - - // get the exception details - PyErr_Fetch(&type, &value, &traceback); - - // import the traceback module - module = PyImport_ImportModule("traceback"); - if (!module) - return FatalPythonErrorNoTraceback(type, value, - "Cannot import traceback module."); - - // get the format_exception method - method = PyObject_GetAttrString(module, "format_exception"); - Py_DECREF(module); - if (!method) - return FatalPythonErrorNoTraceback(type, value, - "Cannot get format_exception method."); - - // create a tuple for the arguments - argsTuple = PyTuple_New(3); - if (!argsTuple) { - Py_DECREF(method); - return FatalPythonErrorNoTraceback(type, value, - "Cannot create arguments tuple for traceback."); - } - PyTuple_SET_ITEM(argsTuple, 0, ArgumentValue(type)); - PyTuple_SET_ITEM(argsTuple, 1, ArgumentValue(value)); - PyTuple_SET_ITEM(argsTuple, 2, ArgumentValue(traceback)); - - // call the format_exception method - result = PyObject_CallObject(method, argsTuple); - Py_DECREF(method); - Py_DECREF(argsTuple); - if (!result) - return FatalPythonErrorNoTraceback(type, value, - "Failed calling format_exception method."); - - // determine length of string representation of formatted traceback - tracebackLength = 1; - for (i = 0; i < PyList_GET_SIZE(result); i++) - tracebackLength += PyString_GET_SIZE(PyList_GET_ITEM(result, i)); - - // create a string representation of the formatted traceback - tracebackStr = malloc(tracebackLength); - if (!tracebackStr) { - Py_DECREF(result); - return FatalError("Out of memory!"); - } - tracebackStr[0] = '\0'; - for (i = 0; i < PyList_GET_SIZE(result); i++) - strcat(tracebackStr, PyString_AS_STRING(PyList_GET_ITEM(result, i))); - Py_DECREF(result); - - // bring up the error - MessageBox(NULL, tracebackStr, "cx_Freeze: Python error in main script", - MB_ICONERROR); - Py_Finalize(); - return 1; -} - - -#include "Common.c" - - -//----------------------------------------------------------------------------- -// WinMain() -// Main routine for the executable in Windows. -//----------------------------------------------------------------------------- -int WINAPI WinMain( - HINSTANCE instance, // handle to application - HINSTANCE prevInstance, // previous handle to application - LPSTR commandLine, // command line - int showFlag) // show flag -{ - const char *fileName; - - // initialize Python - Py_NoSiteFlag = 1; - Py_FrozenFlag = 1; - Py_IgnoreEnvironmentFlag = 1; - Py_SetPythonHome(""); - Py_SetProgramName(__argv[0]); - fileName = Py_GetProgramFullPath(); - Py_Initialize(); - PySys_SetArgv(__argc, __argv); - - // do the work - if (ExecuteScript(fileName) < 0) - return 1; - - // terminate Python - Py_Finalize(); - return 0; -} - diff --git a/setup/installer/cx_Freeze/source/bases/dummy.rc b/setup/installer/cx_Freeze/source/bases/dummy.rc deleted file mode 100644 index 5c1fa1a194..0000000000 --- a/setup/installer/cx_Freeze/source/bases/dummy.rc +++ /dev/null @@ -1,5 +0,0 @@ -STRINGTABLE -{ - 1, "Just to ensure that buggy EndUpdateResource doesn't fall over." -} - diff --git a/setup/installer/cx_Freeze/source/bases/manifest.rc b/setup/installer/cx_Freeze/source/bases/manifest.rc deleted file mode 100644 index 2b7ee27ab5..0000000000 --- a/setup/installer/cx_Freeze/source/bases/manifest.rc +++ /dev/null @@ -1,3 +0,0 @@ -#include "dummy.rc" - -1 24 source/bases/manifest.txt diff --git a/setup/installer/cx_Freeze/source/util.c b/setup/installer/cx_Freeze/source/util.c deleted file mode 100644 index 1c8eb0c0ca..0000000000 --- a/setup/installer/cx_Freeze/source/util.c +++ /dev/null @@ -1,418 +0,0 @@ -//----------------------------------------------------------------------------- -// util.c -// Shared library for use by cx_Freeze. -//----------------------------------------------------------------------------- - -#include - -#ifdef WIN32 -#include -#include - -#pragma pack(2) - -typedef struct { - BYTE bWidth; // Width, in pixels, of the image - BYTE bHeight; // Height, in pixels, of the image - BYTE bColorCount; // Number of colors in image - BYTE bReserved; // Reserved ( must be 0) - WORD wPlanes; // Color Planes - WORD wBitCount; // Bits per pixel - DWORD dwBytesInRes; // How many bytes in this resource? - DWORD dwImageOffset; // Where in the file is this image? -} ICONDIRENTRY; - -typedef struct { - WORD idReserved; // Reserved (must be 0) - WORD idType; // Resource Type (1 for icons) - WORD idCount; // How many images? - ICONDIRENTRY idEntries[0]; // An entry for each image -} ICONDIR; - -typedef struct { - BYTE bWidth; // Width, in pixels, of the image - BYTE bHeight; // Height, in pixels, of the image - BYTE bColorCount; // Number of colors in image - BYTE bReserved; // Reserved ( must be 0) - WORD wPlanes; // Color Planes - WORD wBitCount; // Bits per pixel - DWORD dwBytesInRes; // How many bytes in this resource? - WORD nID; // resource ID -} GRPICONDIRENTRY; - -typedef struct { - WORD idReserved; // Reserved (must be 0) - WORD idType; // Resource Type (1 for icons) - WORD idCount; // How many images? - GRPICONDIRENTRY idEntries[0]; // An entry for each image -} GRPICONDIR; -#endif - -//----------------------------------------------------------------------------- -// Globals -//----------------------------------------------------------------------------- -#ifdef WIN32 -static PyObject *g_BindErrorException = NULL; -static PyObject *g_ImageNames = NULL; -#endif - - -#ifdef WIN32 -//----------------------------------------------------------------------------- -// BindStatusRoutine() -// Called by BindImageEx() at various points. This is used to determine the -// dependency tree which is later examined by cx_Freeze. -//----------------------------------------------------------------------------- -static BOOL __stdcall BindStatusRoutine( - IMAGEHLP_STATUS_REASON reason, // reason called - PSTR imageName, // name of image being examined - PSTR dllName, // name of DLL - ULONG virtualAddress, // computed virtual address - ULONG parameter) // parameter (value depends on reason) -{ - char fileName[MAX_PATH + 1]; - - switch (reason) { - case BindImportModule: - if (!SearchPath(NULL, dllName, NULL, sizeof(fileName), fileName, - NULL)) - return FALSE; - Py_INCREF(Py_None); - if (PyDict_SetItemString(g_ImageNames, fileName, Py_None) < 0) - return FALSE; - break; - default: - break; - } - return TRUE; -} - - -//----------------------------------------------------------------------------- -// GetFileData() -// Return the data for the given file. -//----------------------------------------------------------------------------- -static int GetFileData( - const char *fileName, // name of file to read - char **data) // pointer to data (OUT) -{ - DWORD numberOfBytesRead, dataSize; - HANDLE file; - - file = CreateFile(fileName, GENERIC_READ, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (file == INVALID_HANDLE_VALUE) - return -1; - dataSize = GetFileSize(file, NULL); - if (dataSize == INVALID_FILE_SIZE) { - CloseHandle(file); - return -1; - } - *data = PyMem_Malloc(dataSize); - if (!*data) { - CloseHandle(file); - return -1; - } - if (!ReadFile(file, *data, dataSize, &numberOfBytesRead, NULL)) { - CloseHandle(file); - return -1; - } - CloseHandle(file); - return 0; -} - - -//----------------------------------------------------------------------------- -// CreateGroupIconResource() -// Return the group icon resource given the icon file data. -//----------------------------------------------------------------------------- -static GRPICONDIR *CreateGroupIconResource( - ICONDIR *iconDir, // icon information - DWORD *resourceSize) // size of resource (OUT) -{ - GRPICONDIR *groupIconDir; - int i; - - *resourceSize = sizeof(GRPICONDIR) + - sizeof(GRPICONDIRENTRY) * iconDir->idCount; - groupIconDir = PyMem_Malloc(*resourceSize); - if (!groupIconDir) - return NULL; - groupIconDir->idReserved = iconDir->idReserved; - groupIconDir->idType = iconDir->idType; - groupIconDir->idCount = iconDir->idCount; - for (i = 0; i < iconDir->idCount; i++) { - groupIconDir->idEntries[i].bWidth = iconDir->idEntries[i].bWidth; - groupIconDir->idEntries[i].bHeight = iconDir->idEntries[i].bHeight; - groupIconDir->idEntries[i].bColorCount = - iconDir->idEntries[i].bColorCount; - groupIconDir->idEntries[i].bReserved = iconDir->idEntries[i].bReserved; - groupIconDir->idEntries[i].wPlanes = iconDir->idEntries[i].wPlanes; - groupIconDir->idEntries[i].wBitCount = iconDir->idEntries[i].wBitCount; - groupIconDir->idEntries[i].dwBytesInRes = - iconDir->idEntries[i].dwBytesInRes; - groupIconDir->idEntries[i].nID = i + 1; - } - - return groupIconDir; -} - - -//----------------------------------------------------------------------------- -// ExtAddIcon() -// Add the icon as a resource to the specified file. -//----------------------------------------------------------------------------- -static PyObject *ExtAddIcon( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - char *executableName, *iconName, *data, *iconData; - GRPICONDIR *groupIconDir; - DWORD resourceSize; - ICONDIR *iconDir; - BOOL succeeded; - HANDLE handle; - int i; - - if (!PyArg_ParseTuple(args, "ss", &executableName, &iconName)) - return NULL; - - // begin updating the executable - handle = BeginUpdateResource(executableName, FALSE); - if (!handle) { - PyErr_SetExcFromWindowsErrWithFilename(PyExc_WindowsError, - GetLastError(), executableName); - return NULL; - } - - // first attempt to get the data from the icon file - data = NULL; - succeeded = TRUE; - groupIconDir = NULL; - if (GetFileData(iconName, &data) < 0) - succeeded = FALSE; - iconDir = (ICONDIR*) data; - - // next, attempt to add a group icon resource - if (succeeded) { - groupIconDir = CreateGroupIconResource(iconDir, &resourceSize); - if (groupIconDir) - succeeded = UpdateResource(handle, RT_GROUP_ICON, - MAKEINTRESOURCE(1), - MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), - groupIconDir, resourceSize); - else succeeded = FALSE; - } - - // next, add each icon as a resource - if (succeeded) { - for (i = 0; i < iconDir->idCount; i++) { - iconData = &data[iconDir->idEntries[i].dwImageOffset]; - resourceSize = iconDir->idEntries[i].dwBytesInRes; - succeeded = UpdateResource(handle, RT_ICON, MAKEINTRESOURCE(i + 1), - MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), iconData, - resourceSize); - if (!succeeded) - break; - } - } - - // finish writing the resource (or discarding the changes upon an error) - if (!EndUpdateResource(handle, !succeeded)) { - if (succeeded) { - succeeded = FALSE; - PyErr_SetExcFromWindowsErrWithFilename(PyExc_WindowsError, - GetLastError(), executableName); - } - } - - // clean up - if (groupIconDir) - PyMem_Free(groupIconDir); - if (data) - PyMem_Free(data); - if (!succeeded) - return NULL; - - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// ExtBeginUpdateResource() -// Wrapper for BeginUpdateResource(). -//----------------------------------------------------------------------------- -static PyObject *ExtBeginUpdateResource( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - BOOL deleteExistingResources; - char *fileName; - HANDLE handle; - - deleteExistingResources = TRUE; - if (!PyArg_ParseTuple(args, "s|i", &fileName, &deleteExistingResources)) - return NULL; - handle = BeginUpdateResource(fileName, deleteExistingResources); - if (!handle) { - PyErr_SetExcFromWindowsErrWithFilename(PyExc_WindowsError, - GetLastError(), fileName); - return NULL; - } - return PyInt_FromLong((long) handle); -} - - -//----------------------------------------------------------------------------- -// ExtUpdateResource() -// Wrapper for UpdateResource(). -//----------------------------------------------------------------------------- -static PyObject *ExtUpdateResource( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - int resourceType, resourceId, resourceDataSize; - char *resourceData; - HANDLE handle; - - if (!PyArg_ParseTuple(args, "iiis#", &handle, &resourceType, &resourceId, - &resourceData, &resourceDataSize)) - return NULL; - if (!UpdateResource(handle, MAKEINTRESOURCE(resourceType), - MAKEINTRESOURCE(resourceId), - MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), resourceData, - resourceDataSize)) { - PyErr_SetExcFromWindowsErr(PyExc_WindowsError, GetLastError()); - return NULL; - } - - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// ExtEndUpdateResource() -// Wrapper for EndUpdateResource(). -//----------------------------------------------------------------------------- -static PyObject *ExtEndUpdateResource( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - BOOL discardChanges; - HANDLE handle; - - discardChanges = FALSE; - if (!PyArg_ParseTuple(args, "i|i", &handle, &discardChanges)) - return NULL; - if (!EndUpdateResource(handle, discardChanges)) { - PyErr_SetExcFromWindowsErr(PyExc_WindowsError, GetLastError()); - return NULL; - } - - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// ExtGetDependentFiles() -// Return a list of files that this file depends on. -//----------------------------------------------------------------------------- -static PyObject *ExtGetDependentFiles( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - PyObject *results; - char *imageName; - - if (!PyArg_ParseTuple(args, "s", &imageName)) - return NULL; - g_ImageNames = PyDict_New(); - if (!g_ImageNames) - return NULL; - if (!BindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, - imageName, NULL, NULL, BindStatusRoutine)) { - Py_DECREF(g_ImageNames); - PyErr_SetExcFromWindowsErrWithFilename(g_BindErrorException, - GetLastError(), imageName); - return NULL; - } - results = PyDict_Keys(g_ImageNames); - Py_DECREF(g_ImageNames); - return results; -} - - -//----------------------------------------------------------------------------- -// ExtGetSystemDir() -// Return the Windows directory (C:\Windows for example). -//----------------------------------------------------------------------------- -static PyObject *ExtGetSystemDir( - PyObject *self, // passthrough argument - PyObject *args) // arguments (ignored) -{ - char dir[MAX_PATH + 1]; - - if (GetSystemDirectory(dir, sizeof(dir))) - return PyString_FromString(dir); - PyErr_SetExcFromWindowsErr(PyExc_RuntimeError, GetLastError()); - return NULL; -} -#endif - - -//----------------------------------------------------------------------------- -// ExtSetOptimizeFlag() -// Set the optimize flag as needed. -//----------------------------------------------------------------------------- -static PyObject *ExtSetOptimizeFlag( - PyObject *self, // passthrough argument - PyObject *args) // arguments -{ - if (!PyArg_ParseTuple(args, "i", &Py_OptimizeFlag)) - return NULL; - Py_INCREF(Py_None); - return Py_None; -} - - -//----------------------------------------------------------------------------- -// Methods -//----------------------------------------------------------------------------- -static PyMethodDef g_ModuleMethods[] = { - { "SetOptimizeFlag", ExtSetOptimizeFlag, METH_VARARGS }, -#ifdef WIN32 - { "BeginUpdateResource", ExtBeginUpdateResource, METH_VARARGS }, - { "UpdateResource", ExtUpdateResource, METH_VARARGS }, - { "EndUpdateResource", ExtEndUpdateResource, METH_VARARGS }, - { "AddIcon", ExtAddIcon, METH_VARARGS }, - { "GetDependentFiles", ExtGetDependentFiles, METH_VARARGS }, - { "GetSystemDir", ExtGetSystemDir, METH_NOARGS }, -#endif - { NULL } -}; - - -//----------------------------------------------------------------------------- -// initutil() -// Initialization routine for the shared libary. -//----------------------------------------------------------------------------- -void initutil(void) -{ - PyObject *module; - - module = Py_InitModule("cx_Freeze.util", g_ModuleMethods); - if (!module) - return; -#ifdef WIN32 - g_BindErrorException = PyErr_NewException("cx_Freeze.util.BindError", - NULL, NULL); - if (!g_BindErrorException) - return; - if (PyModule_AddObject(module, "BindError", g_BindErrorException) < 0) - return; -#endif -} - diff --git a/setup/installer/linux/__init__.py b/setup/installer/linux/__init__.py index f80efbd125..3d759cff9a 100644 --- a/setup/installer/linux/__init__.py +++ b/setup/installer/linux/__init__.py @@ -18,6 +18,7 @@ class Linux32(VMInstaller): VM_NAME = 'gentoo32_build' VM = '/vmware/bin/gentoo32_build' FREEZE_COMMAND = 'linux_freeze' + FREEZE_TEMPLATE = 'sudo python -OO setup.py {freeze_command}' class Linux64(Linux32): diff --git a/setup/installer/linux/freeze.py b/setup/installer/linux/freeze.py index 954033fb1b..6cbe7accf6 100644 --- a/setup/installer/linux/freeze.py +++ b/setup/installer/linux/freeze.py @@ -46,7 +46,6 @@ class LinuxFreeze(Command): '/usr/lib/libunrar.so', '/usr/lib/libchm.so.0', '/usr/lib/libsqlite3.so.0', - '/usr/lib/libsqlite3.so.0', '/usr/lib/libmng.so.1', '/usr/lib/libpodofo.so.0.8.2', '/lib/libz.so.1', diff --git a/setup/installer/linux/freeze2.py b/setup/installer/linux/freeze2.py index cd8443e11c..df2c1d6480 100644 --- a/setup/installer/linux/freeze2.py +++ b/setup/installer/linux/freeze2.py @@ -6,58 +6,62 @@ __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import sys, os, shutil, platform, subprocess, stat, py_compile, glob +import sys, os, shutil, platform, subprocess, stat, py_compile, glob, \ + textwrap, tarfile -from setup import Command, modules, basenames, functions - -is64bit = platform.architecture()[0] == '64bit' -arch = 'x86_64' if is64bit else 'i686' -ffi = '/usr/lib/libffi.so.5' if is64bit else '/usr/lib/gcc/i686-pc-linux-gnu/4.4.1/libffi.so.4' +from setup import Command, modules, basenames, functions, __version__, \ + __appname__ +SITE_PACKAGES = ['IPython', 'PIL', 'dateutil', 'dns', 'PyQt4', 'mechanize', + 'sip.so', 'BeautifulSoup.py', 'cssutils', 'encutils', 'lxml', + 'sipconfig.py', 'xdg', 'dbus', '_dbus_bindings.so', 'dbus_bindings.py', + '_dbus_glib_bindings.so'] QTDIR = '/usr/lib/qt4' QTDLLS = ('QtCore', 'QtGui', 'QtNetwork', 'QtSvg', 'QtXml', 'QtWebKit', 'QtDBus') - binary_includes = [ '/usr/bin/pdftohtml', '/usr/lib/libwmflite-0.2.so.7', '/usr/lib/liblcms.so.1', '/usr/lib/libunrar.so', '/usr/lib/libsqlite3.so.0', - '/usr/lib/libsqlite3.so.0', '/usr/lib/libmng.so.1', - '/usr/lib/libpodofo.so.0.6.99', + '/usr/lib/libpodofo.so.0.8.4', '/lib/libz.so.1', - '/usr/lib/libtiff.so.3', + '/usr/lib/libtiff.so.5', '/lib/libbz2.so.1', - '/usr/lib/libpoppler.so.5', + '/usr/lib/libpoppler.so.7', '/usr/lib/libxml2.so.2', '/usr/lib/libopenjpeg.so.2', '/usr/lib/libxslt.so.1', - '/usr/lib/libjpeg.so.7', + '/usr/lib/libjpeg.so.8', '/usr/lib/libxslt.so.1', '/usr/lib/libgthread-2.0.so.0', - '/usr/lib/gcc/***-pc-linux-gnu/4.4.1/libstdc++.so.6'.replace('***', - arch), - ffi, - '/usr/lib/libpng12.so.0', + '/usr/lib/libpng14.so.14', '/usr/lib/libexslt.so.0', - '/usr/lib/libMagickWand.so.2', - '/usr/lib/libMagickCore.so.2', + '/usr/lib/libMagickWand.so.4', + '/usr/lib/libMagickCore.so.4', '/usr/lib/libgcrypt.so.11', '/usr/lib/libgpg-error.so.0', '/usr/lib/libphonon.so.4', - '/usr/lib/libssl.so.0.9.8', - '/usr/lib/libcrypto.so.0.9.8', + '/usr/lib/libssl.so.1.0.0', + '/usr/lib/libcrypto.so.1.0.0', '/lib/libreadline.so.6', + '/usr/lib/libchm.so.0', + '/usr/lib/liblcms2.so.2', + '/usr/lib/libicudata.so.46', + '/usr/lib/libicui18n.so.46', + '/usr/lib/libicuuc.so.46', + '/usr/lib/libicuio.so.46', ] binary_includes += [os.path.join(QTDIR, 'lib%s.so.4'%x) for x in QTDLLS] -SITE_PACKAGES = ['IPython', 'PIL', 'dateutil', 'dns', 'PyQt4', 'mechanize', - 'sip.so', 'BeautifulSoup.py', 'ClientForm.py', 'lxml'] +is64bit = platform.architecture()[0] == '64bit' +arch = 'x86_64' if is64bit else 'i686' -class LinuxFreeze2(Command): + +class LinuxFreeze(Command): def run(self, opts): self.drop_privileges() @@ -68,11 +72,12 @@ class LinuxFreeze2(Command): self.lib_dir = self.j(self.base, 'lib') self.bin_dir = self.j(self.base, 'bin') - #self.initbase() - #self.copy_libs() - #self.copy_python() - #self.compile_mount_helper() + self.initbase() + self.copy_libs() + self.copy_python() + self.compile_mount_helper() self.build_launchers() + self.create_tarfile() def initbase(self): if os.path.exists(self.base): @@ -83,7 +88,21 @@ class LinuxFreeze2(Command): self.info('Copying libs...') os.mkdir(self.lib_dir) os.mkdir(self.bin_dir) - for x in binary_includes: + + gcc = subprocess.Popen(["gcc-config", "-c"], stdout=subprocess.PIPE).communicate()[0] + chost, _, gcc = gcc.rpartition('-') + gcc_lib = '/usr/lib/gcc/%s/%s/'%(chost.strip(), gcc.strip()) + stdcpp = gcc_lib+'libstdc++.so.?' + stdcpp = glob.glob(stdcpp)[-1] + ffi = gcc_lib+'libffi.so.?' + ffi = glob.glob(ffi) + if ffi: + ffi = ffi[-1] + else: + ffi = glob.glob('/usr/lib/libffi.so.?')[-1] + + + for x in binary_includes + [stdcpp, ffi]: dest = self.bin_dir if '/bin/' in x else self.lib_dir shutil.copy2(x, dest) shutil.copy2('/usr/lib/libpython%s.so.1.0'%self.py_ver, dest) @@ -109,7 +128,7 @@ class LinuxFreeze2(Command): 'linux_mount_helper.c'), '-o', dest]) os.chown(dest, 0, 0) os.chmod(dest, stat.S_ISUID|stat.S_ISGID|stat.S_IRUSR|stat.S_IWUSR|\ - stat.S_IXUSR|stat.S_IXGRP|stat.S_IXOTH) + stat.S_IXUSR|stat.S_IXGRP|stat.S_IXOTH|stat.S_IRGRP|stat.S_IROTH) self.drop_privileges() def copy_python(self): @@ -117,27 +136,30 @@ class LinuxFreeze2(Command): def ignore_in_lib(base, items): ans = [] - for x in items: - x = os.path.join(base, x) + for y in items: + x = os.path.join(base, y) if (os.path.isfile(x) and os.path.splitext(x)[1] in ('.so', '.py')) or \ - (os.path.isdir(x) and x in ('.svn', '.bzr', 'test')): + (os.path.isdir(x) and x not in ('.svn', '.bzr', 'test', 'tests', + 'testing')): continue - ans.append(x) + ans.append(y) return ans srcdir = self.j('/usr/lib/python'+self.py_ver) self.py_dir = self.j(self.lib_dir, self.b(srcdir)) - os.mkdir(self.py_dir) + if not os.path.exists(self.py_dir): + os.mkdir(self.py_dir) for x in os.listdir(srcdir): y = self.j(srcdir, x) ext = os.path.splitext(x)[1] if os.path.isdir(y) and x not in ('test', 'hotshot', 'distutils', - 'site-packages', 'idlelib', 'test', 'lib2to3'): + 'site-packages', 'idlelib', 'lib2to3', 'dist-packages'): shutil.copytree(y, self.j(self.py_dir, x), ignore=ignore_in_lib) - if os.path.isfile(y) and ext in ('.py', '.so'): + if os.path.isfile(y) and ext in ('.py', '.so') and \ + self.b(y) not in ('pdflib_py.so',): shutil.copy2(y, self.py_dir) srcdir = self.j(srcdir, 'site-packages') @@ -155,13 +177,19 @@ class LinuxFreeze2(Command): for x in os.listdir(self.SRC): shutil.copytree(self.j(self.SRC, x), self.j(dest, x), ignore=ignore_in_lib) - for x in ('translations', 'manual'): + for x in ('manual', 'trac'): x = self.j(dest, 'calibre', x) - shutil.rmtree(x) + if os.path.exists(x): + shutil.rmtree(x) + + for x in glob.glob(self.j(dest, 'calibre', 'translations', '*.po')): + os.remove(x) shutil.copytree(self.j(self.src_root, 'resources'), self.j(self.base, 'resources')) + self.create_site_py() + for x in os.walk(self.py_dir): for f in x[-1]: if f.endswith('.py'): @@ -176,17 +204,37 @@ class LinuxFreeze2(Command): except: self.warn('Failed to byte-compile', y) - def run_builder(self, cmd): + + def run_builder(self, cmd, verbose=True): p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - self.info(*cmd) - self.info(p.stdout.read()) - self.info(p.stderr.read()) + if verbose: + self.info(*cmd) + x = p.stdout.read() + p.stderr.read() + if x.strip(): + self.info(x.strip()) if p.wait() != 0: self.info('Failed to run builder') sys.exit(1) + def create_tarfile(self): + self.info('Creating archive...') + dist = os.path.join(self.d(self.SRC), 'dist', + '%s-%s-%s.tar.bz2'%(__appname__, __version__, arch)) + with tarfile.open(dist, mode='w:bz2', + format=tarfile.PAX_FORMAT) as tf: + cwd = os.getcwd() + os.chdir(self.base) + try: + for x in os.listdir('.'): + tf.add(x) + finally: + os.chdir(cwd) + self.info('Archive %s created: %.2f MB'%(dist, + os.stat(dist).st_size/(1024.**2))) + + def build_launchers(self): self.obj_dir = self.j(self.src_root, 'build', 'launcher') if not os.path.exists(self.obj_dir): @@ -195,7 +243,7 @@ class LinuxFreeze2(Command): sources = [self.j(base, x) for x in ['util.c']] headers = [self.j(base, x) for x in ['util.h']] objects = [self.j(self.obj_dir, self.b(x)+'.o') for x in sources] - cflags = '-W -Wall -c -O2 -pipe -DPYTHON_VER="python%s"'%self.py_ver + cflags = '-fno-strict-aliasing -W -Wall -c -O2 -pipe -DPYTHON_VER="python%s"'%self.py_ver cflags = cflags.split() + ['-I/usr/include/python'+self.py_ver] for src, obj in zip(sources, objects): if not self.newer(obj, headers+[src, __file__]): continue @@ -210,34 +258,117 @@ class LinuxFreeze2(Command): self.run_builder(cmd) src = self.j(base, 'main.c') + + modules['console'].append('calibre.linux') + basenames['console'].append('calibre_postinstall') + functions['console'].append('main') for typ in ('console', 'gui', ): self.info('Processing %s launchers'%typ) for mod, bname, func in zip(modules[typ], basenames[typ], functions[typ]): xflags = list(cflags) - xflags += ['-DGUI_APP='+('1' if type == 'gui' else '0')] + xflags += ['-DGUI_APP='+('1' if typ == 'gui' else '0')] xflags += ['-DMODULE="%s"'%mod, '-DBASENAME="%s"'%bname, '-DFUNCTION="%s"'%func] + launcher = textwrap.dedent('''\ + #!/bin/sh + path=`readlink -e $0` + base=`dirname $path` + lib=$base/lib + export LD_LIBRARY_PATH=$lib:$LD_LIBRARY_PATH + export MAGICK_CONFIGURE_PATH=$lib/ImageMagick/config + export MAGICK_CODER_MODULE_PATH=$lib/ImageMagick/modules-Q16/coders + export MAGICK_CODER_FILTER_PATH=$lib/ImageMagick/modules-Q16/filters + $base/bin/{0} "$@" + ''') + dest = self.j(self.obj_dir, bname+'.o') if self.newer(dest, [src, __file__]+headers): self.info('Compiling', bname) cmd = ['gcc'] + xflags + [src, '-o', dest] - self.run_builder(cmd) + self.run_builder(cmd, verbose=False) exe = self.j(self.bin_dir, bname) + sh = self.j(self.base, bname) + with open(sh, 'wb') as f: + f.write(launcher.format(bname)) + os.chmod(sh, + stat.S_IREAD|stat.S_IEXEC|stat.S_IWRITE|stat.S_IRGRP|stat.S_IXGRP|stat.S_IROTH|stat.S_IXOTH) + if self.newer(exe, [dest, __file__]): self.info('Linking', bname) - cmd = ['gcc', '-O2', '-Wl,--rpath=$ORIGIN/../lib', + cmd = ['gcc', '-O2', '-o', exe, dest, '-L'+self.lib_dir, '-lcalibre-launcher', ] - self.run_builder(cmd) + self.run_builder(cmd, verbose=False) + def create_site_py(self): # {{{ + with open(self.j(self.py_dir, 'site.py'), 'wb') as f: + f.write(textwrap.dedent('''\ + import sys + import encodings + import __builtin__ + import locale + import os + import codecs + + def set_default_encoding(): + locale.setlocale(locale.LC_ALL, '') + enc = locale.getdefaultlocale()[1] + if not enc: + enc = locale.nl_langinfo(locale.CODESET) + if not enc or enc.lower() == 'ascii': + enc = 'UTF-8' + enc = codecs.lookup(enc).name + sys.setdefaultencoding(enc) + del sys.setdefaultencoding + + class _Helper(object): + """Define the builtin 'help'. + This is a wrapper around pydoc.help (with a twist). + + """ + + def __repr__(self): + return "Type help() for interactive help, " \ + "or help(object) for help about object." + def __call__(self, *args, **kwds): + import pydoc + return pydoc.help(*args, **kwds) + + def set_helper(): + __builtin__.help = _Helper() + + def set_qt_plugin_path(): + import uuid + uuid.uuid4() # Workaround for libuuid/PyQt conflict + from PyQt4.Qt import QCoreApplication + paths = list(map(unicode, QCoreApplication.libraryPaths())) + paths.insert(0, sys.frozen_path + '/lib/qt_plugins') + QCoreApplication.setLibraryPaths(paths) + def main(): + try: + sys.argv[0] = sys.calibre_basename + set_default_encoding() + set_helper() + set_qt_plugin_path() + mod = __import__(sys.calibre_module, fromlist=[1]) + func = getattr(mod, sys.calibre_function) + return func() + except SystemExit: + raise + except: + import traceback + traceback.print_exc() + return 1 + ''')) + # }}} diff --git a/setup/installer/linux/util.c b/setup/installer/linux/util.c index f7482d2501..dfbaaef62c 100644 --- a/setup/installer/linux/util.c +++ b/setup/installer/linux/util.c @@ -11,10 +11,8 @@ static char exe_path[PATH_MAX]; static char base_dir[PATH_MAX]; static char bin_dir[PATH_MAX]; static char lib_dir[PATH_MAX]; -static char qt_dir[PATH_MAX]; static char extensions_dir[PATH_MAX]; static char resources_dir[PATH_MAX]; -static char magick_dir[PATH_MAX]; void set_gui_app(bool yes) { GUI_APP = yes; } @@ -26,7 +24,8 @@ int report_error(const char *msg, int code) { int report_libc_error(const char *msg) { char buf[2000]; int err = errno; - snprintf("%s::%s", 2000, msg, strerror(err)); + + snprintf(buf, 2000, "%s::%s", msg, strerror(err)); return report_error(buf, err); } @@ -122,54 +121,31 @@ static void get_paths() exit(report_error("No path separators in executable path", EXIT_FAILURE)); } strncat(base_dir, exe_path, p - exe_path); - strcat(base_dir, "\0"); + p = rindex(base_dir, '/'); + if (p == NULL) { + exit(report_error("Only one path separator in executable path", EXIT_FAILURE)); + } + *p = 0; + snprintf(bin_dir, PATH_MAX, "%s/bin", base_dir); snprintf(lib_dir, PATH_MAX, "%s/lib", base_dir); - snprintf(magick_dir, PATH_MAX, "%s/ImageMagick", lib_dir); - snprintf(qt_dir, PATH_MAX, "%s/qt_plugins", lib_dir); snprintf(resources_dir, PATH_MAX, "%s/resources", base_dir); snprintf(extensions_dir, PATH_MAX, "%s/%s/site-packages/calibre/plugins", lib_dir, PYTHON_VER); } -void init_env() { - char buf[PATH_MAX]; - - if (setenv("QT_PLUGIN_PATH", qt_dir, 1) == -1) - exit(report_libc_error("Failed to set environment variable")); - - snprintf(buf, PATH_MAX, "%s/config", magick_dir); - if (setenv("MAGICK_CONFIGURE_PATH", buf, 1) == -1) - exit(report_libc_error("Failed to set environment variable")); - - snprintf(buf, PATH_MAX, "%s/modules-Q16/coders", magick_dir); - if (setenv("MAGICK_CODER_MODULE_PATH", buf, 1) == -1) - exit(report_libc_error("Failed to set environment variable")); - - snprintf(buf, PATH_MAX, "%s/modules-Q16/filters", magick_dir); - if (setenv("MAGICK_CODER_FILTER_PATH", buf, 1) == -1) - exit(report_libc_error("Failed to set environment variable")); - - if (setenv("PYTHONIOENCODING", "utf-8", 1) == -1) - exit(report_libc_error("Failed to set environment variable")); - - if (setenv("PYTHONHOME", base_dir, 1) == -1) - exit(report_libc_error("Failed to set environment variable")); - -} void setup_stream(const char *name, const char *errors) { PyObject *stream; - char *buf = (char *)calloc(100, sizeof(char)); - if (!buf) OOM; + char buf[100]; - snprintf(buf, 100, "%s", "utf-8"); + snprintf(buf, 20, "%s", name); + stream = PySys_GetObject(buf); - stream = PySys_GetObject(name); + snprintf(buf, 20, "%s", "utf-8"); + snprintf(buf+21, 30, "%s", errors); - if (!PyFile_SetEncodingAndErrors(stream, buf, errors)) + if (!PyFile_SetEncodingAndErrors(stream, buf, buf+21)) exit(report_python_error("Failed to set stream encoding", 1)); - - free(buf); } @@ -187,10 +163,9 @@ void setup_streams() { void initialize_interpreter(int argc, char **argv, char *outr, char *errr, const char *basename, const char *module, const char *function) { - char *path; + char *path, *encoding, *p; get_paths(); - init_env(); path = (char*)calloc(3*PATH_MAX, sizeof(char)); if (!path) OOM; @@ -213,6 +188,17 @@ void initialize_interpreter(int argc, char **argv, char *outr, char *errr, //printf("Path before Py_Initialize(): %s\r\n\n", Py_GetPath()); Py_Initialize(); + if (!Py_FileSystemDefaultEncoding) { + encoding = getenv("PYTHONIOENCODING"); + if (encoding != NULL) { + Py_FileSystemDefaultEncoding = strndup(encoding, 20); + p = index(Py_FileSystemDefaultEncoding, ':'); + if (p != NULL) *p = 0; + } else + Py_FileSystemDefaultEncoding = strndup("UTF-8", 10); + } + + setup_streams(); PySys_SetArgv(argc, argv); @@ -220,16 +206,21 @@ void initialize_interpreter(int argc, char **argv, char *outr, char *errr, PySys_SetPath(path); //printf("Path set by me: %s\r\n\n", path); PySys_SetObject("gui_app", PyBool_FromLong((long)GUI_APP)); - PySys_SetObject("app_dir", PyString_FromString(base_dir)); - PySys_SetObject("calibre_basename", PyBytes_FromString(basename)); PySys_SetObject("calibre_module", PyBytes_FromString(module)); PySys_SetObject("calibre_function", PyBytes_FromString(function)); + PySys_SetObject("extensions_location", PyBytes_FromString(extensions_dir)); + PySys_SetObject("resources_location", PyBytes_FromString(resources_dir)); + PySys_SetObject("executables_location", PyBytes_FromString(base_dir)); + PySys_SetObject("frozen_path", PyBytes_FromString(base_dir)); + PySys_SetObject("frozen", Py_True); + Py_INCREF(Py_True); - //if (GUI_APP && outr && errr) { + + if (GUI_APP && outr && errr) { // PySys_SetObject("stdout_redirect", PyUnicode_FromWideChar(outr, wcslen(outr))); // PySys_SetObject("stderr_redirect", PyUnicode_FromWideChar(errr, wcslen(outr))); - //} + } } @@ -256,6 +247,8 @@ int execute_python_entrypoint(int argc, char **argv, const char *basename, const if (res == NULL) ret = report_python_error("Python function terminated unexpectedly", 1); + + ret = pyobject_to_int(res); } } PyErr_Clear(); diff --git a/setup/installer/osx/__init__.py b/setup/installer/osx/__init__.py index f68e984ef1..dfc129eab6 100644 --- a/setup/installer/osx/__init__.py +++ b/setup/installer/osx/__init__.py @@ -7,25 +7,14 @@ __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' -from setup import Command from setup.installer import VMInstaller -class OSX(Command): +class OSX(VMInstaller): - description = 'Build OS X binary installers' - - sub_commands = ['osx32'] - - def run(self, opts): - pass - - -class OSX32(VMInstaller): - - description = 'Build 32 bit OS X binary installer' + description = 'Build OS X binary installer' INSTALLER_EXT = 'dmg' - VM_NAME = 'leopard_build' + VM_NAME = 'osx_build' VM = '/vmware/bin/%s'%VM_NAME FREEZE_TEMPLATE = 'python -OO setup.py {freeze_command}' FREEZE_COMMAND = 'osx32_freeze' diff --git a/setup/installer/osx/app/main.py b/setup/installer/osx/app/main.py index 565b5dd07d..140f58a6b7 100644 --- a/setup/installer/osx/app/main.py +++ b/setup/installer/osx/app/main.py @@ -48,14 +48,14 @@ def compile_launcher_lib(contents_dir, gcc, base): fd = join(contents_dir, 'Frameworks') dest = join(fd, 'calibre-launcher.dylib') src = join(base, 'util.c') - cmd = [gcc] + '-Wall -arch i386 -arch ppc -dynamiclib -std=gnu99'.split() + [src] + \ + cmd = [gcc] + '-Wall -arch i386 -arch x86_64 -dynamiclib -std=gnu99'.split() + [src] + \ ['-I'+base] + \ - ['-I/Library/Frameworks/Python.framework/Versions/Current/Headers'] + \ + ['-I/sw/python/Python.framework/Versions/Current/Headers'] + \ '-current_version 1.0 -compatibility_version 1.0'.split() + \ '-fvisibility=hidden -o'.split() + [dest] + \ ['-install_name', '@executable_path/../Frameworks/'+os.path.basename(dest)] + \ - ['-framework', 'Python', '-framework', 'CoreFoundation', '-headerpad_max_install_names'] + ['-F/sw/python', '-framework', 'Python', '-framework', 'CoreFoundation', '-headerpad_max_install_names'] info('\t'+' '.join(cmd)) sys.stdout.flush() subprocess.check_call(cmd) @@ -88,7 +88,7 @@ def compile_launchers(contents_dir, xprograms, pyver): fsrc = '/tmp/%s.c'%program with open(fsrc, 'wb') as f: f.write(psrc) - cmd = [gcc, '-Wall', '-arch', 'ppc', '-arch', 'i386', + cmd = [gcc, '-Wall', '-arch', 'x86_64', '-arch', 'i386', '-I'+base, fsrc, lib, '-o', out, '-headerpad_max_install_names'] info('\t'+' '.join(cmd)) @@ -108,14 +108,6 @@ def flipwritable(fn, mode=None): os.chmod(fn, stat.S_IWRITE | old_mode) return old_mode -def thin(path): - try: - subprocess.check_call(['lipo', path, '-verify_arch', 'ppc64']) - info('\tThinning', path) - except: - return - else: - subprocess.check_call(['lipo', path, '-thin', 'x86_64', '-output', path]) STRIPCMD = ['/usr/bin/strip', '-x', '-S', '-'] def strip_files(files, argv_max=(256 * 1024)): @@ -200,7 +192,6 @@ class Py2App(object): self.copy_site() self.create_exe() if not test_launchers: - #self.thin_to_x86_64() self.strip_files() ret = self.makedmg(self.build_dir, APPNAME+'-'+VERSION) @@ -212,19 +203,6 @@ class Py2App(object): shutil.copytree('resources', os.path.join(self.resources_dir, 'resources')) - @flush - def thin_to_x86_64(self): - info('\nThinning to x86_64') - for y in (self.frameworks_dir, join(self.resources_dir, 'Python')): - for x in os.walk(y): - for f in x[-1]: - f = join(x[0], f) - if not os.path.isfile(f): continue - for t in ('.so', '.dylib', '/Python'): - if f.endswith(t): - thin(f) - break - @flush def strip_files(self): info('\nStripping files...') @@ -270,10 +248,10 @@ class Py2App(object): continue for y in (SW+'/lib/', '/usr/local/lib/', SW+'/qt/lib/', '/opt/local/lib/', - '/Library/Frameworks/Python.framework/', SW+'/freetype/lib/'): + SW+'/python/Python.framework/', SW+'/freetype/lib/'): if x.startswith(y): - if y == '/Library/Frameworks/Python.framework/': - y = '/Library/Frameworks/' + if y == SW+'/python/Python.framework/': + y = SW+'/python/' yield x, x[len(y):] break @@ -299,7 +277,7 @@ class Py2App(object): @flush def add_python_framework(self): info('\nAdding Python framework') - src = join('/Library/Frameworks', 'Python.framework') + src = join('/sw/python', 'Python.framework') x = join(self.frameworks_dir, 'Python.framework') curr = os.path.realpath(join(src, 'Versions', 'Current')) currd = join(x, 'Versions', basename(curr)) @@ -314,7 +292,7 @@ class Py2App(object): def add_qt_frameworks(self): info('\nAdding Qt Framework') for f in ('QtCore', 'QtGui', 'QtXml', 'QtNetwork', 'QtSvg', 'QtWebKit', - 'QtXmlPatterns', 'phonon'): + 'QtXmlPatterns'): self.add_qt_framework(f) for d in glob.glob(join(SW, 'qt', 'plugins', '*')): shutil.copytree(d, join(self.contents_dir, 'MacOS', basename(d))) @@ -353,8 +331,8 @@ class Py2App(object): shutil.copy2(f, dest) self.fix_dependencies_in_lib(join(dest, basename(f))) if 'podofo' in f: - self.change_dep('libpodofo.0.6.99.dylib', - self.FID+'/'+'libpodofo.0.6.99.dylib', join(dest, basename(f))) + self.change_dep('libpodofo.0.8.4.dylib', + self.FID+'/'+'libpodofo.0.8.4.dylib', join(dest, basename(f))) @flush @@ -378,7 +356,7 @@ class Py2App(object): CFBundleSignature='????', CFBundleExecutable='calibre', CFBundleDocumentTypes=docs, - LSMinimumSystemVersion='10.4.2', + LSMinimumSystemVersion='10.5.2', LSRequiresNativeExecution=True, NSAppleScriptEnabled=False, NSHumanReadableCopyright='Copyright 2010, Kovid Goyal', @@ -401,25 +379,27 @@ class Py2App(object): @flush def add_podofo(self): info('\nAdding PoDoFo') - pdf = join(SW, 'lib', 'libpodofo.0.8.2.dylib') + pdf = join(SW, 'lib', 'libpodofo.0.8.4.dylib') self.install_dylib(pdf) @flush def add_poppler(self): info('\nAdding poppler') - for x in ('libpoppler.5.dylib', 'libpoppler-qt4.3.dylib'): + for x in ('libpoppler.7.dylib',): self.install_dylib(os.path.join(SW, 'lib', x)) self.install_dylib(os.path.join(SW, 'bin', 'pdftohtml'), False) @flush def add_libjpeg(self): info('\nAdding libjpeg') - self.install_dylib(os.path.join(SW, 'lib', 'libjpeg.7.dylib')) + self.install_dylib(os.path.join(SW, 'lib', 'libjpeg.8.dylib')) @flush def add_libpng(self): info('\nAdding libpng') self.install_dylib(os.path.join(SW, 'lib', 'libpng12.0.dylib')) + self.install_dylib(os.path.join(SW, 'lib', 'libpng.3.dylib')) + @flush def add_fontconfig(self): @@ -449,7 +429,7 @@ class Py2App(object): def add_imagemagick(self): info('\nAdding ImageMagick') for x in ('Wand', 'Core'): - self.install_dylib(os.path.join(SW, 'lib', 'libMagick%s.2.dylib'%x)) + self.install_dylib(os.path.join(SW, 'lib', 'libMagick%s.4.dylib'%x)) idir = glob.glob(os.path.join(SW, 'lib', 'ImageMagick-*'))[-1] dest = os.path.join(self.frameworks_dir, 'ImageMagick') if os.path.exists(dest): @@ -463,7 +443,8 @@ class Py2App(object): @flush def add_misc_libraries(self): - for x in ('usb', 'unrar', 'readline.6.0', 'wmflite-0.2.7', 'chm.0'): + for x in ('usb', 'unrar', 'readline.6.1', 'wmflite-0.2.7', 'chm.0', + 'sqlite3.0'): info('\nAdding', x) x = 'lib%s.dylib'%x shutil.copy2(join(SW, 'lib', x), self.frameworks_dir) @@ -551,7 +532,7 @@ class Py2App(object): @flush def add_stdlib(self): info('\nAdding python stdlib') - src = '/Library/Frameworks/Python.framework/Versions/Current/lib/python' + src = '/sw/python/Python.framework/Versions/Current/lib/python' src += self.version_info dest = join(self.resources_dir, 'Python', 'lib', 'python') dest += self.version_info diff --git a/setup/installer/windows/freeze.py b/setup/installer/windows/freeze.py index dc3dd33604..7d8ea4d80a 100644 --- a/setup/installer/windows/freeze.py +++ b/setup/installer/windows/freeze.py @@ -108,8 +108,7 @@ class Win32Freeze(Command, WixMixIn): for f in x[-1]: if f.lower().endswith('.dll'): f = self.j(x[0], f) - if 'py2exe' not in f: - shutil.copy2(f, self.dll_dir) + shutil.copy2(f, self.dll_dir) shutil.copy2( r'C:\Python%(v)s\Lib\site-packages\pywin32_system32\pywintypes%(v)s.dll' % dict(v=self.py_ver), self.dll_dir) @@ -118,7 +117,7 @@ class Win32Freeze(Command, WixMixIn): ans = [] for x in items: ext = os.path.splitext(x)[1] - if (not ext and (x in ('demos', 'tests') or 'py2exe' in x)) or \ + if (not ext and (x in ('demos', 'tests'))) or \ (ext in ('.dll', '.chm', '.htm', '.txt')): ans.append(x) return ans @@ -132,7 +131,7 @@ class Win32Freeze(Command, WixMixIn): shutil.copytree(self.j(comext, 'shell'), self.j(sp_dir, 'win32com', 'shell')) shutil.rmtree(comext) - for pat in (r'numpy', r'PyQt4\uic\port_v3'): + for pat in (r'PyQt4\uic\port_v3', ): x = glob.glob(self.j(self.lib_dir, 'site-packages', pat))[0] shutil.rmtree(x) @@ -200,7 +199,7 @@ class Win32Freeze(Command, WixMixIn): for pat in ('*.dll',): for f in glob.glob(os.path.join(bindir, pat)): ok = True - for ex in ('expatw',): + for ex in ('expatw', 'testplug'): if ex in f.lower(): ok = False if not ok: continue diff --git a/setup/installer/windows/notes.rst b/setup/installer/windows/notes.rst index 98ec6dac0f..af4c871dac 100644 --- a/setup/installer/windows/notes.rst +++ b/setup/installer/windows/notes.rst @@ -19,7 +19,9 @@ Set CMAKE_PREFIX_PATH environment variable to C:\cygwin\home\kovid\sw This is where all dependencies will be installed. -Add C:\Python26\Scripts and C:\Python26 to PATH +Add C:\Python27\Scripts and C:\Python27 to PATH + +Edit mimetypes.py in C:\Python27\Lib and set _winreg = None to prevent reading of mimetypes from the windows registry Install setuptools from http://pypi.python.org/pypi/setuptools If there are no windows binaries already compiled for the version of python you are using then download the source and run the following command in the folder where the source has been unpacked:: @@ -28,16 +30,25 @@ If there are no windows binaries already compiled for the version of python you Run the following command to install python dependencies:: - easy_install --always-unzip -U ipython mechanize pyreadline python-dateutil dnspython cssutils clientform + easy_install --always-unzip -U ipython mechanize pyreadline python-dateutil dnspython cssutils clientform pycrypto Install BeautifulSoup 3.0.x manually into site-packages (3.1.x parses broken HTML very poorly) +Install pywin32 and edit win32com\__init__.py setting _frozen = True and +__gen_path__ to a temp dir (otherwise it tries to set it to a dir in the install tree which leads to permission errors) +Also edit win32com\client\gencache.py and change the except IOError on line 57 to catch all exceptions. + +SQLite +--------- + +Put sqlite3*.h from the sqlite windows amlgamation in ~/sw/include + Qt -------- Extract Qt sourcecode to C:\Qt\4.x.x. Run configure and make:: - configure -opensource -release -qt-zlib -qt-gif -qt-libmng -qt-libpng -qt-libtiff -qt-libjpeg -release -platform win32-msvc2008 -no-qt3support -webkit -xmlpatterns -no-phonon -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -no-declarative -no-scripttools -no-audio-backend -no-multimedia -no-dbus -no-openvg -no-opengl -no-qt3support -confirm-license && nmake + configure -opensource -release -qt-zlib -qt-gif -qt-libmng -qt-libpng -qt-libtiff -qt-libjpeg -release -platform win32-msvc2008 -no-qt3support -webkit -xmlpatterns -no-phonon -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -no-declarative -no-scripttools -no-audio-backend -no-multimedia -no-dbus -no-openvg -no-opengl -no-qt3support -confirm-license -nomake examples -nomake demos -nomake docs && nmake SIP ----- @@ -60,7 +71,20 @@ Compiling instructions:: Python Imaging Library ------------------------ -Install as normal using provided installer. +Install as normal using installer at http://www.lfd.uci.edu/~gohlke/pythonlibs/ + +Test it on the target system with + +calibre-debug -c "import _imaging, _imagingmath, _imagingft, _imagingcms" + +ICU +------- + +Download the win32 msvc9 binary from http://www.icu-project.org/download/4.4.html + +Note that 4.4 is the last version of ICU that can be compiled (is precompiled) with msvc9 + +Put the dlls into sw/bin and the unicode dir into sw/include and the contents of lib int sw/lib Libunrar ---------- diff --git a/setup/pygettext.py b/setup/pygettext.py index 9ef2b7aa1b..bc171396f4 100644 --- a/setup/pygettext.py +++ b/setup/pygettext.py @@ -632,6 +632,10 @@ def main(outfile, args=sys.argv[1:]): except tokenize.TokenError, e: print >> sys.stderr, '%s: %s, line %d, column %d' % ( e[0], filename, e[1][0], e[1][1]) + except IndentationError, e: + print >> sys.stderr, '%s: %s, line %s, column %s' % ( + e[0], filename, e.lineno, e[1][1]) + finally: if closep: fp.close() diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index a43b0126ff..a8cbe87e3e 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -3,7 +3,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import uuid, sys, os, re, logging, time, mimetypes, \ +import uuid, sys, os, re, logging, time, \ __builtin__, warnings, multiprocessing from urllib import getproxies __builtin__.__dict__['dynamic_property'] = lambda(func): func(None) @@ -19,36 +19,18 @@ from calibre.constants import iswindows, isosx, islinux, isfreebsd, isfrozen, \ __appname__, __version__, __author__, \ win32event, win32api, winerror, fcntl, \ filesystem_encoding, plugins, config_dir -from calibre.startup import winutil, winutilerror +from calibre.startup import winutil, winutilerror, guess_type -uuid.uuid4() # Imported before PyQt4 to workaround PyQt4 util-linux conflict on gentoo +if islinux and not getattr(sys, 'frozen', False): + # Imported before PyQt4 to workaround PyQt4 util-linux conflict on gentoo + uuid.uuid4() if False: + # Prevent pyflakes from complaining winutil, winutilerror, __appname__, islinux, __version__ fcntl, win32event, isfrozen, __author__, terminal_controller - winerror, win32api, isfreebsd + winerror, win32api, isfreebsd, guess_type -mimetypes.add_type('application/epub+zip', '.epub') -mimetypes.add_type('text/x-sony-bbeb+xml', '.lrs') -mimetypes.add_type('application/xhtml+xml', '.xhtml') -mimetypes.add_type('image/svg+xml', '.svg') -mimetypes.add_type('text/fb2+xml', '.fb2') -mimetypes.add_type('application/x-sony-bbeb', '.lrf') -mimetypes.add_type('application/x-sony-bbeb', '.lrx') -mimetypes.add_type('application/x-dtbncx+xml', '.ncx') -mimetypes.add_type('application/adobe-page-template+xml', '.xpgt') -mimetypes.add_type('application/x-font-opentype', '.otf') -mimetypes.add_type('application/x-font-truetype', '.ttf') -mimetypes.add_type('application/oebps-package+xml', '.opf') -mimetypes.add_type('application/vnd.palm', '.pdb') -mimetypes.add_type('application/x-mobipocket-ebook', '.mobi') -mimetypes.add_type('application/x-mobipocket-ebook', '.prc') -mimetypes.add_type('application/x-mobipocket-ebook', '.azw') -mimetypes.add_type('application/x-cbz', '.cbz') -mimetypes.add_type('application/x-cbr', '.cbr') -mimetypes.add_type('application/x-koboreader-ebook', '.kobo') -mimetypes.add_type('image/wmf', '.wmf') -guess_type = mimetypes.guess_type import cssutils cssutils.log.setLevel(logging.WARN) @@ -362,6 +344,8 @@ def walk(dir): def strftime(fmt, t=None): ''' A version of strftime that returns unicode strings and tries to handle dates before 1900 ''' + if not fmt: + return u'' if t is None: t = time.localtime() if hasattr(t, 'timetuple'): @@ -378,7 +362,8 @@ def strftime(fmt, t=None): if isinstance(fmt, unicode): fmt = fmt.encode('mbcs') ans = plugins['winutil'][0].strftime(fmt, t) - ans = time.strftime(fmt, t).decode(preferred_encoding, 'replace') + else: + ans = time.strftime(fmt, t).decode(preferred_encoding, 'replace') if early_year: ans = ans.replace('_early year hack##', str(orig_year)) return ans diff --git a/src/calibre/constants.py b/src/calibre/constants.py index f659400dad..f9c177e7a8 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.7.28' +__version__ = '0.7.32' __author__ = "Kovid Goyal " import re @@ -67,7 +67,8 @@ if plugins is None: 'pdfreflow', 'progress_indicator', 'chmlib', - 'chm_extra' + 'chm_extra', + 'icu', ] + \ (['winutil'] if iswindows else []) + \ (['usbobserver'] if isosx else []): diff --git a/src/calibre/customize/__init__.py b/src/calibre/customize/__init__.py index 523fc51d92..b4e9b6c448 100644 --- a/src/calibre/customize/__init__.py +++ b/src/calibre/customize/__init__.py @@ -370,6 +370,15 @@ class InterfaceActionBase(Plugin): # {{{ can_be_disabled = False actual_plugin = None + + def load_actual_plugin(self, gui): + ''' + This method must return the actual interface action plugin object. + ''' + mod, cls = self.actual_plugin.split(':') + return getattr(__import__(mod, fromlist=['1'], level=0), cls)(gui, + self.site_customization) + # }}} class PreferencesPlugin(Plugin): # {{{ diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index 1a769ea97f..d3ccb93c49 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -457,7 +457,7 @@ from calibre.devices.blackberry.driver import BLACKBERRY from calibre.devices.cybook.driver import CYBOOK, ORIZON from calibre.devices.eb600.driver import EB600, COOL_ER, SHINEBOOK, \ POCKETBOOK360, GER2, ITALICA, ECLICTO, DBOOK, INVESBOOK, \ - BOOQ, ELONEX, POCKETBOOK301, MENTOR + BOOQ, ELONEX, POCKETBOOK301, MENTOR, POCKETBOOK602 from calibre.devices.iliad.driver import ILIAD from calibre.devices.irexdr.driver import IREXDR1000, IREXDR800 from calibre.devices.jetbook.driver import JETBOOK, MIBUK, JETBOOK_MINI @@ -476,7 +476,7 @@ from calibre.devices.teclast.driver import TECLAST_K3, NEWSMY, IPAPYRUS, \ SOVOS, PICO from calibre.devices.sne.driver import SNE from calibre.devices.misc import PALMPRE, AVANT, SWEEX, PDNOVEL, KOGAN, \ - GEMEI, VELOCITYMICRO, PDNOVEL_KOBO, Q600 + GEMEI, VELOCITYMICRO, PDNOVEL_KOBO, Q600, LUMIREAD from calibre.devices.folder_device.driver import FOLDER_DEVICE_FOR_CONFIG from calibre.devices.kobo.driver import KOBO from calibre.devices.bambook.driver import BAMBOOK @@ -484,6 +484,7 @@ from calibre.devices.bambook.driver import BAMBOOK from calibre.ebooks.metadata.fetch import GoogleBooks, ISBNDB, Amazon, \ LibraryThing from calibre.ebooks.metadata.douban import DoubanBooks +from calibre.ebooks.metadata.nicebooks import NiceBooks, NiceBooksCovers from calibre.ebooks.metadata.covers import OpenLibraryCovers, \ LibraryThingCovers, DoubanCovers from calibre.library.catalog import CSV_XML, EPUB_MOBI, BIBTEX @@ -491,8 +492,9 @@ from calibre.ebooks.epub.fix.unmanifested import Unmanifested from calibre.ebooks.epub.fix.epubcheck import Epubcheck plugins = [HTML2ZIP, PML2PMLZ, ArchiveExtract, GoogleBooks, ISBNDB, Amazon, - LibraryThing, DoubanBooks, CSV_XML, EPUB_MOBI, BIBTEX, Unmanifested, - Epubcheck, OpenLibraryCovers, LibraryThingCovers, DoubanCovers] + LibraryThing, DoubanBooks, NiceBooks, CSV_XML, EPUB_MOBI, BIBTEX, Unmanifested, + Epubcheck, OpenLibraryCovers, LibraryThingCovers, DoubanCovers, + NiceBooksCovers] plugins += [ ComicInput, EPUBInput, @@ -546,6 +548,7 @@ plugins += [ SHINEBOOK, POCKETBOOK360, POCKETBOOK301, + POCKETBOOK602, KINDLE, KINDLE2, KINDLE_DX, @@ -598,6 +601,7 @@ plugins += [ GEMEI, VELOCITYMICRO, PDNOVEL_KOBO, + LUMIREAD, ITUNES, BAMBOOK, ] diff --git a/src/calibre/customize/profiles.py b/src/calibre/customize/profiles.py index 7427de26a6..54c4259678 100644 --- a/src/calibre/customize/profiles.py +++ b/src/calibre/customize/profiles.py @@ -37,6 +37,8 @@ class Plugin(_Plugin): self.fsizes.append((name, num, float(size))) self.fnames = dict((name, sz) for name, _, sz in self.fsizes if name) self.fnums = dict((num, sz) for _, num, sz in self.fsizes if num) + self.width_pts = self.width * 72./self.dpi + self.height_pts = self.height * 72./self.dpi # Input profiles {{{ class InputProfile(Plugin): @@ -678,6 +680,15 @@ class NookOutput(OutputProfile): fbase = 16 fsizes = [12, 12, 14, 16, 18, 20, 22, 24] +class NookColorOutput(NookOutput): + name = 'Nook Color' + short_name = 'nook_color' + description = _('This profile is intended for the B&N Nook Color.') + + screen_size = (600, 900) + comic_screen_size = (594, 900) + dpi = 169 + class BambookOutput(OutputProfile): author = 'Li Fanxi' @@ -699,6 +710,6 @@ output_profiles = [OutputProfile, SonyReaderOutput, SonyReader300Output, iPadOutput, KoboReaderOutput, TabletOutput, SonyReaderLandscapeOutput, KindleDXOutput, IlliadOutput, IRexDR1000Output, IRexDR800Output, JetBook5Output, NookOutput, - BambookOutput, ] + BambookOutput, NookColorOutput] output_profiles.sort(cmp=lambda x,y:cmp(x.name.lower(), y.name.lower())) diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py index 844269e453..c360122842 100644 --- a/src/calibre/customize/ui.py +++ b/src/calibre/customize/ui.py @@ -120,7 +120,7 @@ def enable_plugin(plugin_or_name): config['enabled_plugins'] = ep default_disabled_plugins = set([ - 'Douban Books', 'Douban.com covers', + 'Douban Books', 'Douban.com covers', 'Nicebooks', 'Nicebooks covers' ]) def is_disabled(plugin): diff --git a/src/calibre/devices/android/driver.py b/src/calibre/devices/android/driver.py index 2d944c8519..8b30631528 100644 --- a/src/calibre/devices/android/driver.py +++ b/src/calibre/devices/android/driver.py @@ -19,9 +19,9 @@ class ANDROID(USBMS): VENDOR_ID = { # HTC - 0x0bb4 : { 0x0c02 : [0x100, 0x0227], 0x0c01 : [0x100, 0x0227], 0x0ff9 + 0x0bb4 : { 0x0c02 : [0x100, 0x0227, 0x0226], 0x0c01 : [0x100, 0x0227], 0x0ff9 : [0x0100, 0x0227, 0x0226], 0x0c87: [0x0100, 0x0227, 0x0226], - 0xc92 : [0x100]}, + 0xc92 : [0x100], 0xc97: [0x226]}, # Eken 0x040d : { 0x8510 : [0x0001] }, @@ -38,7 +38,7 @@ class ANDROID(USBMS): 0x227]}, # Samsung - 0x04e8 : { 0x681d : [0x0222, 0x0224, 0x0400], + 0x04e8 : { 0x681d : [0x0222, 0x0223, 0x0224, 0x0400], 0x681c : [0x0222, 0x0224, 0x0400], 0x6640 : [0x0100], }, @@ -62,7 +62,8 @@ class ANDROID(USBMS): 'GT-I5700', 'SAMSUNG', 'DELL', 'LINUX'] WINDOWS_MAIN_MEM = ['ANDROID_PHONE', 'A855', 'A853', 'INC.NEXUS_ONE', '__UMS_COMPOSITE', '_MB200', 'MASS_STORAGE', '_-_CARD', 'SGH-I897', - 'GT-I9000', 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID'] + 'GT-I9000', 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID', + 'SCH-I500_CARD', 'SPH-D700_CARD', 'MB810'] WINDOWS_CARD_A_MEM = ['ANDROID_PHONE', 'GT-I9000_CARD', 'SGH-I897', 'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID'] diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index d42c51cedd..0f281ecc92 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -2637,7 +2637,7 @@ class ITUNES(DriverBase): lb_added.composer.set(metadata_x.uuid) lb_added.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) lb_added.enabled.set(True) - lb_added.sort_artist.set(metadata_x.author_sort.title()) + lb_added.sort_artist.set(icu_title(metadata_x.author_sort)) lb_added.sort_name.set(metadata.title_sort) @@ -2648,7 +2648,7 @@ class ITUNES(DriverBase): db_added.composer.set(metadata_x.uuid) db_added.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) db_added.enabled.set(True) - db_added.sort_artist.set(metadata_x.author_sort.title()) + db_added.sort_artist.set(icu_title(metadata_x.author_sort)) db_added.sort_name.set(metadata.title_sort) if metadata_x.comments: @@ -2729,7 +2729,7 @@ class ITUNES(DriverBase): lb_added.Composer = metadata_x.uuid lb_added.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) lb_added.Enabled = True - lb_added.SortArtist = metadata_x.author_sort.title() + lb_added.SortArtist = icu_title(metadata_x.author_sort) lb_added.SortName = metadata.title_sort if db_added: @@ -2739,7 +2739,7 @@ class ITUNES(DriverBase): db_added.Composer = metadata_x.uuid db_added.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) db_added.Enabled = True - db_added.SortArtist = metadata_x.author_sort.title() + db_added.SortArtist = icu_title(metadata_x.author_sort) db_added.SortName = metadata.title_sort if metadata_x.comments: diff --git a/src/calibre/devices/cybook/driver.py b/src/calibre/devices/cybook/driver.py index becb7912a9..c1a62fdbf3 100644 --- a/src/calibre/devices/cybook/driver.py +++ b/src/calibre/devices/cybook/driver.py @@ -65,8 +65,8 @@ class ORIZON(CYBOOK): BCD = [0x319] - WINDOWS_MAIN_MEM = re.compile(r'CYBOOK_ORIZON__-FD') - WINDOWS_CARD_A_MEM = re.compile('CYBOOK_ORIZON__-SD') + WINDOWS_MAIN_MEM = re.compile(r'(CYBOOK_ORIZON__-FD)|(FILE-STOR_GADGET)') + WINDOWS_CARD_A_MEM = re.compile('(CYBOOK_ORIZON__-SD)|(FILE-STOR_GADGET)') EBOOK_DIR_MAIN = EBOOK_DIR_CARD_A = 'Digital Editions' diff --git a/src/calibre/devices/eb600/driver.py b/src/calibre/devices/eb600/driver.py index bf03b1e4c2..54d73d9c1d 100644 --- a/src/calibre/devices/eb600/driver.py +++ b/src/calibre/devices/eb600/driver.py @@ -227,4 +227,22 @@ class POCKETBOOK301(USBMS): PRODUCT_ID = [0x301] BCD = [0x132] +class POCKETBOOK602(USBMS): + + name = 'PocketBook Pro 602/902 Device Interface' + description = _('Communicate with the PocketBook 602 reader.') + author = 'Kovid Goyal' + supported_platforms = ['windows', 'osx', 'linux'] + FORMATS = ['epub', 'fb2', 'prc', 'mobi', 'pdf', 'djvu', 'rtf', 'chm', + 'doc', 'tcr', 'txt'] + + EBOOK_DIR_MAIN = 'books' + SUPPORTS_SUB_DIRS = True + + VENDOR_ID = [0x0525] + PRODUCT_ID = [0xa4a5] + BCD = [0x0324] + + VENDOR_NAME = '' + WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = ['PB602', 'PB902'] diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 55ae40420c..b76ee4b1c3 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -5,7 +5,7 @@ __license__ = 'GPL v3' __copyright__ = '2010, Timothy Legge and Kovid Goyal ' __docformat__ = 'restructuredtext en' -import os, time +import os import sqlite3 as sqlite from calibre.devices.usbms.books import BookList @@ -25,6 +25,8 @@ class KOBO(USBMS): version = (1, 0, 7) dbversion = 0 + fwversion = 0 + has_kepubs = False supported_platforms = ['windows', 'osx', 'linux'] @@ -75,6 +77,14 @@ class KOBO(USBMS): self._card_b_prefix if oncard == 'cardb' \ else self._main_prefix + # Determine the firmware version + f = open(self.normalize_path(self._main_prefix + '.kobo/version'), 'r') + self.fwversion = f.readline().split(',')[2] + f.close() + if self.fwversion != '1.0' and self.fwversion != '1.4': + self.has_kepubs = True + debug_print('Version of firmware: ', self.fwversion, 'Has kepubs:', self.has_kepubs) + self.booklist_class.rebuild_collections = self.rebuild_collections # get the metadata cache @@ -93,7 +103,7 @@ class KOBO(USBMS): lpath = path.partition(self.normalize_path(prefix))[2] if lpath.startswith(os.sep): lpath = lpath[len(os.sep):] - lpath = lpath.replace('\\', '/') + lpath = lpath.replace('\\', '/') # debug_print("LPATH: ", lpath, " - Title: " , title) playlist_map = {} @@ -114,7 +124,7 @@ class KOBO(USBMS): #print "Image name Normalized: " + imagename if imagename is not None: bl[idx].thumbnail = ImageWrapper(imagename) - if (ContentType != '6'and self.dbversion < 8) or (self.dbversion >= 8): + if (ContentType != '6'and self.has_kepubs == False) or (self.has_kepubs == True): if self.update_metadata_item(bl[idx]): # print 'update_metadata_item returned true' changed = True @@ -122,7 +132,7 @@ class KOBO(USBMS): playlist_map[lpath] not in bl[idx].device_collections: bl[idx].device_collections.append(playlist_map[lpath]) else: - if ContentType == '6' and self.dbversion < 8: + if ContentType == '6' and self.has_kepubs == False: book = Book(prefix, lpath, title, authors, mime, date, ContentType, ImageID, size=1048576) else: try: @@ -142,7 +152,7 @@ class KOBO(USBMS): traceback.print_exc() return changed - connection = sqlite.connect(self._main_prefix + '.kobo/KoboReader.sqlite') + connection = sqlite.connect(self.normalize_path(self._main_prefix + '.kobo/KoboReader.sqlite')) cursor = connection.cursor() #query = 'select count(distinct volumeId) from volume_shortcovers' @@ -151,8 +161,8 @@ class KOBO(USBMS): # numrows = row[0] #cursor.close() - # Determine the database version - # 4 - Bluetooth Kobo Rev 2 (1.4) + # Determine the database version + # 4 - Bluetooth Kobo Rev 2 (1.4) # 8 - WIFI KOBO Rev 1 cursor.execute('select version from dbversion') result = cursor.fetchone() @@ -210,7 +220,8 @@ class KOBO(USBMS): # 2) volume_shorcover # 2) content - connection = sqlite.connect(self._main_prefix + '.kobo/KoboReader.sqlite') + debug_print('delete_via_sql: ContentID: ', ContentID, 'ContentType: ', ContentType) + connection = sqlite.connect(self.normalize_path(self._main_prefix + '.kobo/KoboReader.sqlite')) cursor = connection.cursor() t = (ContentID,) cursor.execute('select ImageID from content where ContentID = ?', t) @@ -229,6 +240,10 @@ class KOBO(USBMS): #Delete the volume_shortcovers second cursor.execute('delete from volume_shortcovers where volumeid = ?', t) + # Delete the rows from content_keys + if self.dbversion >= 8: + cursor.execute('delete from content_keys where volumeid = ?', t) + # Delete the chapters associated with the book next t = (ContentID,ContentID,) cursor.execute('delete from content where BookID = ? or ContentID = ?', t) @@ -348,13 +363,13 @@ class KOBO(USBMS): def contentid_from_path(self, path, ContentType): if ContentType == 6: - if self.dbversion < 8: + if self.has_kepubs == False: ContentID = os.path.splitext(path)[0] # Remove the prefix on the file. it could be either ContentID = ContentID.replace(self._main_prefix, '') else: ContentID = path - ContentID = ContentID.replace(self._main_prefix + '.kobo/kepub/', '') + ContentID = ContentID.replace(self._main_prefix + self.normalize_path('.kobo/kepub/'), '') if self._card_a_prefix is not None: ContentID = ContentID.replace(self._card_a_prefix, '') @@ -386,6 +401,12 @@ class KOBO(USBMS): elif extension == '.pdf' or extension == '.epub': # print "ePub or pdf" ContentType = 16 + elif extension == '.rtf' or extension == '.txt' or extension == '.htm' or extension == '.html': + # print "txt" + if self.fwversion == '1.0' or self.fwversion == '1.4' or self.fwversion == '1.7.4': + ContentType = 999 + else: + ContentType = 901 else: # if extension == '.html' or extension == '.txt': ContentType = 999 # Yet another hack: to get around Kobo changing how ContentID is stored return ContentType @@ -399,13 +420,13 @@ class KOBO(USBMS): path = path.replace("file:///mnt/sd/", self._card_a_prefix) # print "SD Card: " + path else: - if ContentType == "6" and self.dbversion < 8: + if ContentType == "6" and self.has_kepubs == False: # This is a hack as the kobo files do not exist # but the path is required to make a unique id # for calibre's reference path = self._main_prefix + path + '.kobo' # print "Path: " + path - elif (ContentType == "6" or ContentType == "10") and self.dbversion >= 8: + elif (ContentType == "6" or ContentType == "10") and self.has_kepubs == True: path = self._main_prefix + '.kobo/kepub/' + path # print "Internal: " + path else: @@ -472,7 +493,7 @@ class KOBO(USBMS): # Needs to be outside books collection as in the case of removing # the last book from the collection the list of books is empty # and the removal of the last book would not occur - connection = sqlite.connect(self._main_prefix + '.kobo/KoboReader.sqlite') + connection = sqlite.connect(self.normalize_path(self._main_prefix + '.kobo/KoboReader.sqlite')) cursor = connection.cursor() @@ -507,7 +528,10 @@ class KOBO(USBMS): t = (ContentID,) cursor.execute('select DateLastRead from Content where BookID is Null and ContentID = ?', t) result = cursor.fetchone() - datelastread = result[0] if result[0] is not None else '1970-01-01T00:00:00' + if result is None: + datelastread = '1970-01-01T00:00:00' + else: + datelastread = result[0] if result[0] is not None else '1970-01-01T00:00:00' t = (datelastread,ContentID,) diff --git a/src/calibre/devices/misc.py b/src/calibre/devices/misc.py index d95c8e4036..e27aee4393 100644 --- a/src/calibre/devices/misc.py +++ b/src/calibre/devices/misc.py @@ -174,3 +174,33 @@ class GEMEI(USBMS): EBOOK_DIR_MAIN = 'eBooks' SUPPORTS_SUB_DIRS = True +class LUMIREAD(USBMS): + name = 'Acer Lumiread Device Interface' + gui_name = 'Lumiread' + description = _('Communicate with the Acer Lumiread') + author = 'Kovid Goyal' + supported_platforms = ['windows', 'osx', 'linux'] + + # Ordered list of supported formats + FORMATS = ['epub', 'pdf', 'mobi', 'chm', 'txt', 'doc', 'docx', 'rtf'] + + VENDOR_ID = [0x1025] + PRODUCT_ID = [0x048d] + BCD = [0x323] + + EBOOK_DIR_MAIN = EBOOK_DIR_CARD_A = 'books' + SUPPORTS_SUB_DIRS = True + + THUMBNAIL_HEIGHT = 200 + + def upload_cover(self, path, filename, metadata, filepath): + if metadata.thumbnail and metadata.thumbnail[-1]: + cfilepath = filepath.replace('/', os.sep) + cfilepath = cfilepath.replace(os.sep+'books'+os.sep, + os.sep+'covers'+os.sep, 1) + pdir = os.path.dirname(cfilepath) + if not os.exists(pdir): + os.makedirs(pdir) + with open(cfilepath+'.jpg', 'wb') as f: + f.write(metadata.thumbnail[-1]) + diff --git a/src/calibre/devices/prs505/driver.py b/src/calibre/devices/prs505/driver.py index 3bcf7715a2..44ecd5cfd0 100644 --- a/src/calibre/devices/prs505/driver.py +++ b/src/calibre/devices/prs505/driver.py @@ -199,6 +199,8 @@ class PRS505(USBMS): thumbnail_dir = os.path.join(prefix, *thumbnail_dir.split('/')) relpath = os.path.relpath(filepath, prefix) + if relpath.startswith('..\\'): + relpath = relpath[3:] thumbnail_dir = os.path.join(thumbnail_dir, relpath) if not os.path.exists(thumbnail_dir): os.makedirs(thumbnail_dir) diff --git a/src/calibre/devices/usbms/books.py b/src/calibre/devices/usbms/books.py index 5063daa29f..7a5e8c49b3 100644 --- a/src/calibre/devices/usbms/books.py +++ b/src/calibre/devices/usbms/books.py @@ -11,8 +11,9 @@ from calibre.ebooks.metadata.book.base import Metadata from calibre.devices.mime import mime_type_ext from calibre.devices.interface import BookList as _BookList from calibre.constants import preferred_encoding -from calibre import isbytestring +from calibre import isbytestring, force_unicode from calibre.utils.config import prefs, tweaks +from calibre.utils.icu import strcmp class Book(Metadata): def __init__(self, prefix, lpath, size=None, other=None): @@ -215,14 +216,17 @@ class CollectionsBookList(BookList): elif is_series: if doing_dc: collections[cat_name][lpath] = \ - (book, book.get('series_index', sys.maxint), '') + (book, book.get('series_index', sys.maxint), + book.get('title_sort', 'zzzz')) else: collections[cat_name][lpath] = \ - (book, book.get(attr+'_index', sys.maxint), '') + (book, book.get(attr+'_index', sys.maxint), + book.get('title_sort', 'zzzz')) else: if lpath not in collections[cat_name]: collections[cat_name][lpath] = \ - (book, book.get('title_sort', 'zzzz'), '') + (book, book.get('title_sort', 'zzzz'), + book.get('title_sort', 'zzzz')) # Sort collections result = {} @@ -230,14 +234,19 @@ class CollectionsBookList(BookList): x = xx[1] y = yy[1] if x is None and y is None: + # No sort_key needed here, because defaults are ascii return cmp(xx[2], yy[2]) if x is None: return 1 if y is None: return -1 - c = cmp(x, y) + if isinstance(x, (unicode, str)): + c = strcmp(force_unicode(x), force_unicode(y)) + else: + c = cmp(x, y) if c != 0: return c + # same as above -- no sort_key needed here return cmp(xx[2], yy[2]) for category, lpaths in collections.items(): diff --git a/src/calibre/devices/usbms/device.py b/src/calibre/devices/usbms/device.py index f826167d16..af2948cf82 100644 --- a/src/calibre/devices/usbms/device.py +++ b/src/calibre/devices/usbms/device.py @@ -586,8 +586,8 @@ class Device(DeviceConfig, DevicePlugin): pass cmd = 'calibre-mount-helper' - if getattr(sys, 'frozen_path', False): - cmd = os.path.join(sys.frozen_path, cmd) + if getattr(sys, 'frozen', False): + cmd = os.path.join(sys.executables_location, 'bin', cmd) cmd = [cmd, 'mount'] try: p = subprocess.Popen(cmd + [node, '/media/'+label]) @@ -754,8 +754,8 @@ class Device(DeviceConfig, DevicePlugin): for drive in drives: cmd = 'calibre-mount-helper' - if getattr(sys, 'frozen_path', False): - cmd = os.path.join(sys.frozen_path, cmd) + if getattr(sys, 'frozen', False): + cmd = os.path.join(sys.executables_location, 'bin', cmd) cmd = [cmd, 'eject'] mp = getattr(self, "_linux_mount_map", {}).get(drive, 'dummy/')[:-1] @@ -787,8 +787,8 @@ class Device(DeviceConfig, DevicePlugin): if drive and mp: mp = mp[:-1] cmd = 'calibre-mount-helper' - if getattr(sys, 'frozen_path', False): - cmd = os.path.join(sys.frozen_path, cmd) + if getattr(sys, 'frozen', False): + cmd = os.path.join(sys.executables_location, 'bin', cmd) cmd = [cmd, 'cleanup'] if mp and os.path.exists(mp): try: diff --git a/src/calibre/devices/usbobserver/usbobserver.c b/src/calibre/devices/usbobserver/usbobserver.c index 4b9b39d473..63923fabf4 100644 --- a/src/calibre/devices/usbobserver/usbobserver.c +++ b/src/calibre/devices/usbobserver/usbobserver.c @@ -53,8 +53,8 @@ #define NUKE(x) Py_XDECREF(x); x = NULL; -/* This function only works on 10.5 and later -static PyObject* send2trash(PyObject *self, PyObject *args) +/* This function only works on 10.5 and later. Pass in a unicode object as path */ +static PyObject* usbobserver_send2trash(PyObject *self, PyObject *args) { UInt8 *utf8_chars; FSRef fp; @@ -73,7 +73,7 @@ static PyObject* send2trash(PyObject *self, PyObject *args) } Py_RETURN_NONE; } -*/ + static PyObject* usbobserver_get_iokit_string_property(io_service_t dev, CFStringRef prop) { @@ -323,6 +323,9 @@ static PyMethodDef usbobserver_methods[] = { {"get_mounted_filesystems", usbobserver_get_mounted_filesystems, METH_VARARGS, "Get mapping of mounted filesystems. Mapping is from BSD name to mount point." }, + {"send2trash", usbobserver_send2trash, METH_VARARGS, + "send2trash(unicode object) -> Send specified file/dir to trash" + }, {NULL, NULL, 0, NULL} }; diff --git a/src/calibre/ebooks/conversion/preprocess.py b/src/calibre/ebooks/conversion/preprocess.py index b6b218e052..3ff816b3bf 100644 --- a/src/calibre/ebooks/conversion/preprocess.py +++ b/src/calibre/ebooks/conversion/preprocess.py @@ -220,13 +220,13 @@ class Dehyphenator(object): self.html = html self.format = format if format == 'html': - intextmatch = re.compile(u'(?<=.{%i})(?P[^\[\]\\\^\$\.\|\?\*\+\(\)“"\s>]+)-\s*(?=<)(?P\s*(\s*<[iubp][^>]*>\s*)?]*>|\s*<[iubp][^>]*>)?\s*(?P[\w\d]+)' % length) + intextmatch = re.compile(u'(?<=.{%i})(?P[^\[\]\\\^\$\.\|\?\*\+\(\)“"\s>]+)(-|â€)\s*(?=<)(?P()?\s*(\s*){1,2}(?P<(p|div)[^>]*>\s*(]*>\s*

\s*)?\s+){0,3}\s*(<[iubp][^>]*>\s*){1,2}(]*>)?)\s*(?P[\w\d]+)' % length) elif format == 'pdf': - intextmatch = re.compile(u'(?<=.{%i})(?P[^\[\]\\\^\$\.\|\?\*\+\(\)“"\s>]+)-\s*(?P

|\s*

\s*<[iub]>)\s*(?P[\w\d]+)'% length) + intextmatch = re.compile(u'(?<=.{%i})(?P[^\[\]\\\^\$\.\|\?\*\+\(\)“"\s>]+)(-|â€)\s*(?P

|\s*

\s*<[iub]>)\s*(?P[\w\d]+)'% length) elif format == 'individual_words': - intextmatch = re.compile(u'>[^<]*\b(?P[^\[\]\\\^\$\.\|\?\*\+\(\)"\s>]+)-(?P[^<]*\b(?P[^\[\]\\\^\$\.\|\?\*\+\(\)"\s>]+)(-|â€)(?P[^\[\]\\\^\$\.\|\?\*\+\(\)“"\s>]+)-\s*(?=<)(?P\s*(\s*<[iubp][^>]*>\s*)?]*>|\s*<[iubp][^>]*>)?\s*(?P[\w\d]+)') + intextmatch = re.compile(u'(?P[^\[\]\\\^\$\.\|\?\*\+\(\)“"\s>]+)(-|â€)\s*(?=<)(?P\s*(\s*<[iubp][^>]*>\s*)?]*>|\s*<[iubp][^>]*>)?\s*(?P[\w\d]+)') html = intextmatch.sub(self.dehyphenate, html) return html @@ -475,7 +475,7 @@ class HTMLPreProcessor(object): end_rules.append((re.compile(u'(?<=.{%i}[–—])\s*

\s*(?=[[a-z\d])' % length), lambda match: '')) end_rules.append( # Un wrap using punctuation - (re.compile(u'(?<=.{%i}([a-z,:)\IA\u00DF]|(?)?\s*(\s*)+\s*(?=(<(i|b|u)>)?\s*[\w\d$(])' % length, re.UNICODE), wrap_lines), + (re.compile(u'(?<=.{%i}([a-zäëïöüàèìòùáćéíóńśúâêîôûçąężı,:)\IA\u00DF]|(?)?\s*(\s*)+\s*(?=(<(i|b|u)>)?\s*[\w\d$(])' % length, re.UNICODE), wrap_lines), ) for rule in self.PREPROCESS + start_rules: diff --git a/src/calibre/ebooks/conversion/utils.py b/src/calibre/ebooks/conversion/utils.py index 2faec27b68..11979b933c 100644 --- a/src/calibre/ebooks/conversion/utils.py +++ b/src/calibre/ebooks/conversion/utils.py @@ -22,12 +22,12 @@ class PreProcessor(object): title = match.group('title') if not title: self.html_preprocess_sections = self.html_preprocess_sections + 1 - self.log("found " + unicode(self.html_preprocess_sections) + + self.log("marked " + unicode(self.html_preprocess_sections) + " chapters. - " + unicode(chap)) return '

'+chap+'

\n' else: self.html_preprocess_sections = self.html_preprocess_sections + 1 - self.log("found " + unicode(self.html_preprocess_sections) + + self.log("marked " + unicode(self.html_preprocess_sections) + " chapters & titles. - " + unicode(chap) + ", " + unicode(title)) return '

'+chap+'

\n

'+title+'

\n' @@ -44,10 +44,14 @@ class PreProcessor(object): span = match.group('span') self.found_indents = self.found_indents + 1 if pstyle: - if not span: - return '

' + if pstyle.lower().find('style'): + pstyle = re.sub(r'"$', '; text-indent:3%"', pstyle) else: - return '

'+span + pstyle = pstyle+' style="text-indent:3%"' + if not span: + return '

' + else: + return '

'+span else: if not span: return '

' @@ -79,12 +83,30 @@ class PreProcessor(object): if min_lns > tot_htm_ends: return True + def dump(self, raw, where): + import os + dp = getattr(self.extra_opts, 'debug_pipeline', None) + if dp and os.path.exists(dp): + odir = os.path.join(dp, 'preprocess') + if not os.path.exists(odir): + os.makedirs(odir) + if os.path.exists(odir): + odir = os.path.join(odir, where) + if not os.path.exists(odir): + os.makedirs(odir) + name, i = None, 0 + while not name or os.path.exists(os.path.join(odir, name)): + i += 1 + name = '%04d.html'%i + with open(os.path.join(odir, name), 'wb') as f: + f.write(raw.encode('utf-8')) + def __call__(self, html): self.log("********* Preprocessing HTML *********") # Arrange line feeds and

tags so the line_length and no_markup functions work correctly html = re.sub(r"\s*

", "

\n", html) - html = re.sub(r"\s*

\s*", "\n

", html) + html = re.sub(r"\s*[^>]*)>\s*", "\n"+">", html) ###### Check Markup ###### # @@ -146,52 +168,61 @@ class PreProcessor(object): #print "blanks between paragraphs is marked True" else: blanks_between_paragraphs = False - #self.log("\n\n\n\n\n\n\n\n\n\n\n"+html+"\n\n\n\n\n\n\n\n\n\n\n\n\n") + #self.dump(html, 'before_chapter_markup') # detect chapters/sections to match xpath or splitting logic # # Build the Regular Expressions in pieces - lookahead = "(?=<(p|div))" + init_lookahead = "(?=<(p|div))" chapter_line_open = "<(?Pp|div)[^>]*>\s*(<(?Pfont|span|[ibu])[^>]*>)?\s*(<(?Pfont|span|[ibu])[^>]*>)?\s*(<(?Pfont|span|[ibu])[^>]*>)?\s*" + title_line_open = "<(?Pp|div)[^>]*>\s*(<(?Pfont|span|[ibu])[^>]*>)?\s*(<(?Pfont|span|[ibu])[^>]*>)?\s*(<(?Pfont|span|[ibu])[^>]*>)?\s*" chapter_header_open = r"(?P" + title_header_open = r"(?P" chapter_header_close = ")\s*" - chapter_line_close = "(</(?P=inner3)>)?\s*(</(?P=inner2)>)?\s*(</(?P=inner1)\s[^>]*>)?\s*</(?P=outer)>\s*" + title_header_close = ")" + chapter_line_close = "(</(?P=inner3)>)?\s*(</(?P=inner2)>)?\s*(</(?P=inner1)>)?\s*</(?P=outer)>" + title_line_close = "(</(?P=inner6)>)?\s*(</(?P=inner5)>)?\s*(</(?P=inner4)>)?\s*</(?P=outer2)>" + if blanks_between_paragraphs: blank_lines = "(\s*<p[^>]*>\s*</p>){0,2}\s*" else: blank_lines = "" opt_title_open = "(" - title_line_open = "<(?P<outer2>p|div)[^>]*>\s*(<(?P<inner4>font|span|[ibu])[^>]*>)?\s*(<(?P<inner5>font|span|[ibu])[^>]*>)?\s*(<(?P<inner6>font|span|[ibu])[^>]*>)?\s*" - title_header_open = "(?P<title>" - title_header_close = ")\s*" - title_line_close = "(</(?P=inner6)>)?\s*(</(?P=inner5)>)?\s*(</(?P=inner4)\s[^>]*>)?\s*</(?P=outer2)>" opt_title_close = ")?" + n_lookahead_open = "\s+(?!" + n_lookahead_close = ")" - default_title = r"(\s*[\w\'\"-]+){1,5}(?!<)" - typical_chapters = r".?(Introduction|Synopsis|Acknowledgements|Chapter|Kapitel|Epilogue|Volume\s|Prologue|Book\s|Part\s|Dedication)\s*([\d\w-]+\:?\s*){0,4}" - numeric_chapters = r".?(\d+\.?|(CHAPTER\s*([\dA-Z\-\'\"\?\.!#,]+\s*){1,10}))\s*" - uppercase_chapters = r"\s*.?([A-Z#]+(\s|-){0,3}){1,5}\s*" + default_title = r"\s{0,3}([\w\'\"-]+\s{0,3}){1,5}?(?=<)" - chapter_marker = lookahead+chapter_line_open+chapter_header_open+typical_chapters+chapter_header_close+chapter_line_close+blank_lines+opt_title_open+title_line_open+title_header_open+default_title+title_header_close+title_line_close+opt_title_close - #print chapter_marker + min_chapters = 10 heading = re.compile('<h[1-3][^>]*>', re.IGNORECASE) self.html_preprocess_sections = len(heading.findall(html)) self.log("found " + unicode(self.html_preprocess_sections) + " pre-existing headings") - # - # Start with most typical chapter headings, get more aggressive until one works - if self.html_preprocess_sections < 10: - chapdetect = re.compile(r'%s' % chapter_marker, re.IGNORECASE) - html = chapdetect.sub(self.chapter_head, html) - if self.html_preprocess_sections < 10: - self.log("not enough chapters, only " + unicode(self.html_preprocess_sections) + ", trying numeric chapters") - chapter_marker = lookahead+chapter_line_open+chapter_header_open+numeric_chapters+chapter_header_close+chapter_line_close+blank_lines+opt_title_open+title_line_open+title_header_open+default_title+title_header_close+title_line_close+opt_title_close - chapdetect2 = re.compile(r'%s' % chapter_marker, re.IGNORECASE) - html = chapdetect2.sub(self.chapter_head, html) - if self.html_preprocess_sections < 10: - self.log("not enough chapters, only " + unicode(self.html_preprocess_sections) + ", trying with uppercase words") - chapter_marker = lookahead+chapter_line_open+chapter_header_open+uppercase_chapters+chapter_header_close+chapter_line_close+blank_lines+opt_title_open+title_line_open+title_header_open+default_title+title_header_close+title_line_close+opt_title_close - chapdetect2 = re.compile(r'%s' % chapter_marker, re.UNICODE) - html = chapdetect2.sub(self.chapter_head, html) + chapter_types = [ + [r"[^'\"]?(Introduction|Synopsis|Acknowledgements|Chapter|Kapitel|Epilogue|Volume\s|Prologue|Book\s|Part\s|Dedication)\s*([\d\w-]+\:?\s*){0,4}", True, "Searching for common Chapter Headings"], + [r"[^'\"]?(\d+\.?|CHAPTER)\s*([\dA-Z\-\'\"\?\.!#,]+\s*){0,7}\s*", True, "Searching for numeric chapter headings"], # Numeric Chapters + [r"<b[^>]*>\s*(<span[^>]*>)?\s*(?!([*#•]+\s*)+)(\s*(?=[\w#\-*\s]+<)([\w#-*]+\s*){1,5}\s*)(</span>)?\s*</b>", True, "Searching for emphasized lines"], # Emphasized lines + [r"[^'\"]?(\d+\.?\s+([\d\w-]+\:?\'?-?\s?){0,5})\s*", True, "Searching for numeric chapters with titles"], # Numeric Titles + [r"\s*[^'\"]?([A-Z#]+(\s|-){0,3}){1,5}\s*", False, "Searching for chapters with Uppercase Characters" ] # Uppercase Chapters + ] + + # Start with most typical chapter headings, get more aggressive until one works + for [chapter_type, lookahead_ignorecase, log_message] in chapter_types: + if self.html_preprocess_sections >= min_chapters: + break + full_chapter_line = chapter_line_open+chapter_header_open+chapter_type+chapter_header_close+chapter_line_close + n_lookahead = re.sub("(ou|in|cha)", "lookahead_", full_chapter_line) + self.log("Marked " + unicode(self.html_preprocess_sections) + " headings, " + log_message) + if lookahead_ignorecase: + chapter_marker = init_lookahead+full_chapter_line+blank_lines+n_lookahead_open+n_lookahead+n_lookahead_close+opt_title_open+title_line_open+title_header_open+default_title+title_header_close+title_line_close+opt_title_close + chapdetect = re.compile(r'%s' % chapter_marker, re.IGNORECASE) + else: + chapter_marker = init_lookahead+full_chapter_line+blank_lines+opt_title_open+title_line_open+title_header_open+default_title+title_header_close+title_line_close+opt_title_close+n_lookahead_open+n_lookahead+n_lookahead_close + chapdetect = re.compile(r'%s' % chapter_marker, re.UNICODE) + + html = chapdetect.sub(self.chapter_head, html) + + ###### Unwrap lines ###### # # Some OCR sourced files have line breaks in the html using a combination of span & p tags @@ -228,7 +259,8 @@ class PreProcessor(object): html = dehyphenator(html,'html', length) self.log("Done dehyphenating") # Unwrap lines using punctation and line length - unwrap = re.compile(u"(?<=.{%i}([a-z,:)\IA\u00DF]|(?<!\&\w{4});))\s*</(span|p|div)>\s*(</(p|span|div)>)?\s*(?P<up2threeblanks><(p|span|div)[^>]*>\s*(<(p|span|div)[^>]*>\s*</(span|p|div)>\s*)</(span|p|div)>\s*){0,3}\s*<(span|div|p)[^>]*>\s*(<(span|div|p)[^>]*>)?\s*" % length, re.UNICODE) + #unwrap_quotes = re.compile(u"(?<=.{%i}\"')\s*</(span|p|div)>\s*(</(p|span|div)>)?\s*(?P<up2threeblanks><(p|span|div)[^>]*>\s*(<(p|span|div)[^>]*>\s*</(span|p|div)>\s*)</(span|p|div)>\s*){0,3}\s*<(span|div|p)[^>]*>\s*(<(span|div|p)[^>]*>)?\s*(?=[a-z])" % length, re.UNICODE) + unwrap = re.compile(u"(?<=.{%i}([a-zäëïöüàèìòùáćéíóńśúâêîôûçąężı,:)\IA\u00DF]|(?<!\&\w{4});))\s*</(span|p|div)>\s*(</(p|span|div)>)?\s*(?P<up2threeblanks><(p|span|div)[^>]*>\s*(<(p|span|div)[^>]*>\s*</(span|p|div)>\s*)</(span|p|div)>\s*){0,3}\s*<(span|div|p)[^>]*>\s*(<(span|div|p)[^>]*>)?\s*" % length, re.UNICODE) html = unwrap.sub(' ', html) #check any remaining hyphens, but only unwrap if there is a match dehyphenator = Dehyphenator() @@ -244,10 +276,10 @@ class PreProcessor(object): html = re.sub(u'\xad\s*(</span>\s*(</[iubp]>\s*<[iubp][^>]*>\s*)?<span[^>]*>|</[iubp]>\s*<[iubp][^>]*>)?\s*', '', html) # If still no sections after unwrapping mark split points on lines with no punctuation - if self.html_preprocess_sections < 10: + if self.html_preprocess_sections < 5: self.log("Looking for more split points based on punctuation," " currently have " + unicode(self.html_preprocess_sections)) - chapdetect3 = re.compile(r'<(?P<styles>(p|div)[^>]*)>\s*(?P<section>(<span[^>]*>)?\s*(<[ibu][^>]*>){0,2}\s*(<span[^>]*>)?\s*(<[ibu][^>]*>){0,2}\s*(<span[^>]*>)?\s*.?(?=[a-z#\-*\s]+<)([a-z#-*]+\s*){1,5}\s*\s*(</span>)?(</[ibu]>){0,2}\s*(</span>)?\s*(</[ibu]>){0,2}\s*(</span>)?\s*</(p|div)>)', re.IGNORECASE) + chapdetect3 = re.compile(r'<(?P<styles>(p|div)[^>]*)>\s*(?P<section>(<span[^>]*>)?\s*(?!([*#•]+\s*)+)(<[ibu][^>]*>){0,2}\s*(<span[^>]*>)?\s*(<[ibu][^>]*>){0,2}\s*(<span[^>]*>)?\s*.?(?=[a-z#\-*\s]+<)([a-z#-*]+\s*){1,5}\s*\s*(</span>)?(</[ibu]>){0,2}\s*(</span>)?\s*(</[ibu]>){0,2}\s*(</span>)?\s*</(p|div)>)', re.IGNORECASE) html = chapdetect3.sub(self.chapter_break, html) # search for places where a first or second level heading is immediately followed by another # top level heading. demote the second heading to h3 to prevent splitting between chapter @@ -258,4 +290,7 @@ class PreProcessor(object): # put back non-breaking spaces in empty paragraphs to preserve original formatting html = blankreg.sub('\n'+r'\g<openline>'+u'\u00a0'+r'\g<closeline>', html) + # Center separator lines + html = re.sub(u'<p>\s*(?P<break>([*#•]+\s*)+)\s*</p>', '<p style="text-align:center">' + '\g<break>' + '</p>', html) + return html diff --git a/src/calibre/ebooks/epub/output.py b/src/calibre/ebooks/epub/output.py index 952559a9e2..c5d11edc2b 100644 --- a/src/calibre/ebooks/epub/output.py +++ b/src/calibre/ebooks/epub/output.py @@ -142,6 +142,9 @@ class EPUBOutput(OutputFormatPlugin): def convert(self, oeb, output_path, input_plugin, opts, log): self.log, self.opts, self.oeb = log, opts, oeb + #from calibre.ebooks.oeb.transforms.filenames import UniqueFilenames + #UniqueFilenames()(oeb, opts) + self.workaround_ade_quirks() self.workaround_webkit_quirks() self.upshift_markup() @@ -241,9 +244,12 @@ class EPUBOutput(OutputFormatPlugin): self.log.debug('Encrypting font:', uri) with open(path, 'r+b') as f: data = f.read(1024) - f.seek(0) - for i in range(1024): - f.write(chr(ord(data[i]) ^ key[i%16])) + if len(data) >= 1024: + f.seek(0) + for i in range(1024): + f.write(chr(ord(data[i]) ^ key[i%16])) + else: + self.log.warn('Font', path, 'is invalid, ignoring') if not isinstance(uri, unicode): uri = uri.decode('utf-8') fonts.append(u''' diff --git a/src/calibre/ebooks/fb2/fb2ml.py b/src/calibre/ebooks/fb2/fb2ml.py index 3987ffa1b8..51bfaa7293 100644 --- a/src/calibre/ebooks/fb2/fb2ml.py +++ b/src/calibre/ebooks/fb2/fb2ml.py @@ -8,15 +8,11 @@ __docformat__ = 'restructuredtext en' Transform OEB content into FB2 markup ''' -import cStringIO from base64 import b64encode +from datetime import datetime +from mimetypes import types_map import re - -try: - from PIL import Image - Image -except ImportError: - import Image +import uuid from lxml import etree @@ -24,41 +20,13 @@ from calibre import prepare_string_for_xml from calibre.constants import __appname__, __version__ from calibre.ebooks.oeb.base import XHTML, XHTML_NS, barename, namespace from calibre.ebooks.oeb.stylizer import Stylizer -from calibre.ebooks.oeb.base import OEB_RASTER_IMAGES - -TAG_MAP = { - 'b' : 'strong', - 'i' : 'emphasis', - 'p' : 'p', - 'li' : 'p', - 'div': 'p', - 'br' : 'p', -} - -TAG_SPACE = [] - -TAG_IMAGES = [ - 'img', -] - -TAG_LINKS = [ - 'a', -] - -BLOCK = [ - 'p', -] - -STYLES = [ - ('font-weight', {'bold' : 'strong', 'bolder' : 'strong'}), - ('font-style', {'italic' : 'emphasis'}), -] +from calibre.ebooks.oeb.base import OEB_RASTER_IMAGES, OPF +from calibre.utils.magick import Image class FB2MLizer(object): ''' - Todo: * Ensure all style tags are inside of the p tags. - * Include more FB2 specific tags in the conversion. - * Handle reopening of a tag properly. + Todo: * Include more FB2 specific tags in the conversion. + * Handle a tags. * Figure out some way to turn oeb_book.toc items into <section><title> <p> to allow for readers to generate toc from the document. ''' @@ -66,140 +34,136 @@ class FB2MLizer(object): def __init__(self, log): self.log = log self.image_hrefs = {} - self.link_hrefs = {} + self.reset_state() + + def reset_state(self): + # Used to ensure text and tags are always within <p> and </p> + self.in_p = False + # Mapping of image names. OEB allows for images to have the same name but be stored + # in different directories. FB2 images are all in a flat layout so we rename all images + # into a sequential numbering system to ensure there are no collisions between image names. + self.image_hrefs = {} def extract_content(self, oeb_book, opts): self.log.info('Converting XHTML to FB2 markup...') self.oeb_book = oeb_book self.opts = opts + return self.fb2mlize_spine() def fb2mlize_spine(self): - self.image_hrefs = {} - self.link_hrefs = {} + self.reset_state() + output = [self.fb2_header()] - output.append(self.get_cover_page()) - output.append(u'ghji87yhjko0Caliblre-toc-placeholder-for-insertion-later8ujko0987yjk') output.append(self.get_text()) - output.append(self.fb2_body_footer()) output.append(self.fb2mlize_images()) output.append(self.fb2_footer()) - output = ''.join(output).replace(u'ghji87yhjko0Caliblre-toc-placeholder-for-insertion-later8ujko0987yjk', self.get_toc()) - output = self.clean_text(output) - if self.opts.sectionize_chapters: - output = self.sectionize_chapters(output) - return u'<?xml version="1.0" encoding="UTF-8"?>\n%s' % etree.tostring(etree.fromstring(output), encoding=unicode, pretty_print=True) + output = self.clean_text(u''.join(output)) + + if self.opts.pretty_print: + return u'<?xml version="1.0" encoding="UTF-8"?>\n%s' % etree.tostring(etree.fromstring(output), encoding=unicode, pretty_print=True) + else: + return u'<?xml version="1.0" encoding="UTF-8"?>' + output def clean_text(self, text): + text = re.sub(r'(?miu)<section>\s*</section>', '', text) + text = re.sub(r'(?miu)\s+</section>', '</section>', text) + text = re.sub(r'(?miu)</section><section>', '</section>\n\n<section>', text) + text = re.sub(r'(?miu)<p>\s*</p>', '', text) text = re.sub(r'(?miu)\s+</p>', '</p>', text) text = re.sub(r'(?miu)</p><p>', '</p>\n\n<p>', text) return text def fb2_header(self): - author_first = u'' - author_middle = u'' - author_last = u'' + metadata = {} + metadata['author_first'] = u'' + metadata['author_middle'] = u'' + metadata['author_last'] = u'' + metadata['title'] = self.oeb_book.metadata.title[0].value + metadata['appname'] = __appname__ + metadata['version'] = __version__ + metadata['date'] = '%i.%i.%i' % (datetime.now().day, datetime.now().month, datetime.now().year) + metadata['lang'] = u''.join(self.oeb_book.metadata.lang) if self.oeb_book.metadata.lang else 'en' + metadata['id'] = None + author_parts = self.oeb_book.metadata.creator[0].value.split(' ') - if len(author_parts) == 1: - author_last = author_parts[0] + metadata['author_last'] = author_parts[0] elif len(author_parts) == 2: - author_first = author_parts[0] - author_last = author_parts[1] + metadata['author_first'] = author_parts[0] + metadata['author_last'] = author_parts[1] else: - author_first = author_parts[0] - author_middle = ' '.join(author_parts[1:-2]) - author_last = author_parts[-1] + metadata['author_first'] = author_parts[0] + metadata['author_middle'] = ' '.join(author_parts[1:-2]) + metadata['author_last'] = author_parts[-1] - return u'<FictionBook xmlns:xlink="http://www.w3.org/1999/xlink" ' \ - 'xmlns="http://www.gribuser.ru/xml/fictionbook/2.0">\n' \ - '<description>\n<title-info>\n ' \ - '<author>\n<first-name>%s</first-name>\n<middle-name>%s' \ - '</middle-name>\n<last-name>%s</last-name>\n</author>\n' \ - '<book-title>%s</book-title> ' \ - '</title-info><document-info> ' \ - '<program-used>%s - %s</program-used></document-info>\n' \ - '</description>\n<body>\n<section>' % tuple(map(prepare_string_for_xml, - (author_first, author_middle, - author_last, self.oeb_book.metadata.title[0].value, - __appname__, __version__))) + identifiers = self.oeb_book.metadata['identifier'] + for x in identifiers: + if x.get(OPF('scheme'), None).lower() == 'uuid' or unicode(x).startswith('urn:uuid:'): + metadata['id'] = unicode(x).split(':')[-1] + break + if metadata['id'] is None: + self.log.warn('No UUID identifier found') + metadata['id'] = str(uuid.uuid4()) - def get_cover_page(self): - output = u'' - if 'cover' in self.oeb_book.guide: - output += '<image xlink:href="#cover.jpg" />' - self.image_hrefs[self.oeb_book.guide['cover'].href] = 'cover.jpg' - if 'titlepage' in self.oeb_book.guide: - self.log.debug('Generating cover page...') - href = self.oeb_book.guide['titlepage'].href - item = self.oeb_book.manifest.hrefs[href] - if item.spine_position is None: - stylizer = Stylizer(item.data, item.href, self.oeb_book, - self.opts, self.opts.output_profile) - output += ''.join(self.dump_text(item.data.find(XHTML('body')), stylizer, item)) - return output + for key, value in metadata.items(): + metadata[key] = prepare_string_for_xml(value) - def get_toc(self): - toc = [] - if self.opts.inline_toc: - self.log.debug('Generating table of contents...') - toc.append(u'<p>%s</p>' % _('Table of Contents:')) - for item in self.oeb_book.toc: - if item.href in self.link_hrefs.keys(): - toc.append('<p><a xlink:href="#%s">%s</a></p>\n' % (self.link_hrefs[item.href], item.title)) - else: - self.oeb.warn('Ignoring toc item: %s not found in document.' % item) - return ''.join(toc) - - def sectionize_chapters(self, text): - def remove_p(t): - t = t.replace('<p>', '') - t = t.replace('</p>', '') - return t - text = re.sub(r'(?imsu)(<p>)\s*(?P<anchor><a\s+id="calibre_link-\d+"\s*/>)\s*(</p>)\s*(<p>)\s*(?P<strong><strong>.+?</strong>)\s*(</p>)', lambda mo: '</section><section>%s<title><p>%s</p>' % (mo.group('anchor'), remove_p(mo.group('strong'))), text) - text = re.sub(r'(?imsu)(

)\s*(?P)\s*(

)\s*(?P.+?)', lambda mo: '
%s<p>%s</p>' % (mo.group('anchor'), remove_p(mo.group('strong'))), text) - text = re.sub(r'(?imsu)(?P)\s*(

)\s*(?P.+?)\s*(

)', lambda mo: '
%s<p>%s</p>' % (mo.group('anchor'), remove_p(mo.group('strong'))), text) - text = re.sub(r'(?imsu)(

)\s*(?P)\s*(?P.+?)\s*(

)', lambda mo: '
%s<p>%s</p>' % (mo.group('anchor'), remove_p(mo.group('strong'))), text) - text = re.sub(r'(?imsu)(?P)\s*(?P.+?)', lambda mo: '
%s<p>%s</p>' % (mo.group('anchor'), remove_p(mo.group('strong'))), text) - return text - - def get_text(self): - text = [] - for item in self.oeb_book.spine: - self.log.debug('Converting %s to FictionBook2 XML' % item.href) - stylizer = Stylizer(item.data, item.href, self.oeb_book, self.opts, self.opts.output_profile) - text.append(self.add_page_anchor(item)) - text += self.dump_text(item.data.find(XHTML('body')), stylizer, item) - return ''.join(text) - - def fb2_body_footer(self): - return u'\n
\n' + return u'' \ + '' \ + '' \ + 'antique' \ + '' \ + '%(author_first)s' \ + '%(author_middle)s' \ + '%(author_last)s' \ + '' \ + '%(title)s' \ + '%(lang)s' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '' \ + '%(appname)s %(version)s' \ + '%(date)s' \ + '%(id)s' \ + '1.0' \ + '' \ + '' % metadata def fb2_footer(self): return u'' - def add_page_anchor(self, page): - return self.get_anchor(page, '') - - def get_anchor(self, page, aid): - aid = prepare_string_for_xml(aid) - aid = '%s#%s' % (page.href, aid) - if aid not in self.link_hrefs.keys(): - self.link_hrefs[aid] = 'calibre_link-%s' % len(self.link_hrefs.keys()) - aid = self.link_hrefs[aid] - return '
' % aid + def get_text(self): + text = [''] + for item in self.oeb_book.spine: + self.log.debug('Converting %s to FictionBook2 XML' % item.href) + stylizer = Stylizer(item.data, item.href, self.oeb_book, self.opts, self.opts.output_profile) + text.append('
') + text += self.dump_text(item.data.find(XHTML('body')), stylizer, item) + text.append('
') + return ''.join(text) + '' def fb2mlize_images(self): + ''' + This function uses the self.image_hrefs dictionary mapping. It is populated by the dump_text function. + ''' images = [] for item in self.oeb_book.manifest: + # Don't write the image if it's not referenced in the document's text. + if item.href not in self.image_hrefs: + continue if item.media_type in OEB_RASTER_IMAGES: try: - im = Image.open(cStringIO.StringIO(item.data)).convert('RGB') - data = cStringIO.StringIO() - im.save(data, 'JPEG') - data = data.getvalue() - + if not item.media_type == types_map['.jpeg'] or not item.media_type == types_map['.jpg']: + im = Image() + im.load(item.data) + im.set_compression_quality(70) + data = im.export('jpg') raw_data = b64encode(data) # Don't put the encoded image on a single line. data = '' @@ -210,110 +174,167 @@ class FB2MLizer(object): col = 1 col += 1 data += char - images.append('%s\n' % (self.image_hrefs.get(item.href, '0000.JPEG'), item.media_type, data)) + images.append('%s\n' % (self.image_hrefs[item.href], data)) except Exception as e: - self.log.error('Error: Could not include file %s becuase ' \ + self.log.error('Error: Could not include file %s because ' \ '%s.' % (item.href, e)) return ''.join(images) - def dump_text(self, elem, stylizer, page, tag_stack=[]): - if not isinstance(elem.tag, basestring) \ - or namespace(elem.tag) != XHTML_NS: + def ensure_p(self): + if self.in_p: + return [], [] + else: + self.in_p = True + return ['

'], ['p'] + + def close_open_p(self, tags): + text = [''] + added_p = False + + if self.in_p: + # Close all up to p. Close p. Reopen all closed tags including p. + closed_tags = [] + tags.reverse() + for t in tags: + text.append('' % t) + closed_tags.append(t) + if t == 'p': + break + closed_tags.reverse() + for t in closed_tags: + text.append('<%s>' % t) + else: + text.append('

') + added_p = True + self.in_p = True + + return text, added_p + + def handle_simple_tag(self, tag, tags): + s_out = [] + s_tags = [] + if tag not in tags: + p_out, p_tags = self.ensure_p() + s_out += p_out + s_tags += p_tags + s_out.append('<%s>' % tag) + s_tags.append(tag) + return s_out, s_tags + + def dump_text(self, elem_tree, stylizer, page, tag_stack=[]): + ''' + This function is intended to be used in a recursive manner. dump_text will + run though all elements in the elem_tree and call itself on each element. + + self.image_hrefs will be populated by calling this function. + + @param elem_tree: etree representation of XHTML content to be transformed. + @param stylizer: Used to track the style of elements within the tree. + @param page: OEB page used to determine absolute urls. + @param tag_stack: List of open FB2 tags to take into account. + + @return: List of string representing the XHTML converted to FB2 markup. + ''' + # Ensure what we are converting is not a string and that the fist tag is part of the XHTML namespace. + if not isinstance(elem_tree.tag, basestring) or namespace(elem_tree.tag) != XHTML_NS: return [] - style = stylizer.style(elem) - if style['display'] in ('none', 'oeb-page-head', 'oeb-page-foot') \ - or style['visibility'] == 'hidden': + style = stylizer.style(elem_tree) + if style['display'] in ('none', 'oeb-page-head', 'oeb-page-foot') or style['visibility'] == 'hidden': return [] - fb2_text = [] + # FB2 generated output. + fb2_out = [] + # FB2 tags in the order they are opened. This will be used to close the tags. tags = [] + # First tag in tree + tag = barename(elem_tree.tag) - tag = barename(elem.tag) - - if tag in TAG_IMAGES: - if elem.attrib.get('src', None): - if page.abshref(elem.attrib['src']) not in self.image_hrefs.keys(): - self.image_hrefs[page.abshref(elem.attrib['src'])] = '%s.jpg' % len(self.image_hrefs.keys()) - fb2_text.append('' % self.image_hrefs[page.abshref(elem.attrib['src'])]) - - if tag in TAG_LINKS: - href = elem.get('href') - if href: - href = prepare_string_for_xml(page.abshref(href)) - href = href.replace('"', '"') - if '://' in href: - fb2_text.append('' % href) - else: - if href.startswith('#'): - href = href[1:] - if href not in self.link_hrefs.keys(): - self.link_hrefs[href] = 'calibre_link-%s' % len(self.link_hrefs.keys()) - href = self.link_hrefs[href] - fb2_text.append('' % href) - tags.append('a') - - # Anchor ids - id_name = elem.get('id') - if id_name: - fb2_text.append(self.get_anchor(page, id_name)) - - fb2_tag = TAG_MAP.get(tag, None) - if fb2_tag == 'p': - if 'p' in tag_stack+tags: - # Close all up to p. Close p. Reopen all closed tags including p. - all_tags = tag_stack+tags + # Process the XHTML tag if it needs to be converted to an FB2 tag. + if tag == 'h1' and self.opts.h1_to_title or tag == 'h2' and self.opts.h2_to_title or tag == 'h3' and self.opts.h3_to_title: + fb2_out.append('') + tags.append('title') + if tag == 'img': + if elem_tree.attrib.get('src', None): + # Only write the image tag if it is in the manifest. + if page.abshref(elem_tree.attrib['src']) in self.oeb_book.manifest.hrefs.keys(): + if page.abshref(elem_tree.attrib['src']) not in self.image_hrefs.keys(): + self.image_hrefs[page.abshref(elem_tree.attrib['src'])] = '_%s.jpg' % len(self.image_hrefs.keys()) + p_txt, p_tag = self.ensure_p() + fb2_out += p_txt + tags += p_tag + fb2_out.append('<image xlink:href="#%s" />' % self.image_hrefs[page.abshref(elem_tree.attrib['src'])]) + elif tag == 'br': + if self.in_p: closed_tags = [] - all_tags.reverse() - for t in all_tags: - fb2_text.append('</%s>' % t) + open_tags = tag_stack+tags + open_tags.reverse() + for t in open_tags: + fb2_out.append('</%s>' % t) closed_tags.append(t) if t == 'p': break + fb2_out.append('<empty-line />') closed_tags.reverse() for t in closed_tags: - fb2_text.append('<%s>' % t) + fb2_out.append('<%s>' % t) else: - fb2_text.append('<p>') + fb2_out.append('<empty-line />') + elif tag in ('div', 'li', 'p'): + p_text, added_p = self.close_open_p(tag_stack+tags) + fb2_out += p_text + if added_p: tags.append('p') - elif fb2_tag and fb2_tag not in tag_stack+tags: - fb2_text.append('<%s>' % fb2_tag) - tags.append(fb2_tag) + elif tag == 'b': + s_out, s_tags = self.handle_simple_tag('strong', tag_stack+tags) + fb2_out += s_out + tags += s_tags + elif tag == 'i': + s_out, s_tags = self.handle_simple_tag('emphasis', tag_stack+tags) + fb2_out += s_out + tags += s_tags - # Processes style information - for s in STYLES: - style_tag = s[1].get(style[s[0]], None) - if style_tag and style_tag not in tag_stack+tags: - fb2_text.append('<%s>' % style_tag) - tags.append(style_tag) + # Processes style information. + if style['font-style'] == 'italic': + s_out, s_tags = self.handle_simple_tag('emphasis', tag_stack+tags) + fb2_out += s_out + tags += s_tags + elif style['font-weight'] in ('bold', 'bolder'): + s_out, s_tags = self.handle_simple_tag('strong', tag_stack+tags) + fb2_out += s_out + tags += s_tags - if tag in TAG_SPACE: - if not fb2_text or fb2_text[-1] != ' ' or not fb2_text[-1].endswith(' '): - fb2_text.append(' ') + # Process element text. + if hasattr(elem_tree, 'text') and elem_tree.text: + if not self.in_p: + fb2_out.append('<p>') + fb2_out.append(prepare_string_for_xml(elem_tree.text)) + if not self.in_p: + fb2_out.append('</p>') - if hasattr(elem, 'text') and elem.text: - if 'p' not in tag_stack+tags: - fb2_text.append('<p>%s</p>' % prepare_string_for_xml(elem.text)) - else: - fb2_text.append(prepare_string_for_xml(elem.text)) - - for item in elem: - fb2_text += self.dump_text(item, stylizer, page, tag_stack+tags) + # Process sub-elements. + for item in elem_tree: + fb2_out += self.dump_text(item, stylizer, page, tag_stack+tags) + # Close open FB2 tags. tags.reverse() - fb2_text += self.close_tags(tags) + fb2_out += self.close_tags(tags) - if hasattr(elem, 'tail') and elem.tail: - if 'p' not in tag_stack: - fb2_text.append('<p>%s</p>' % prepare_string_for_xml(elem.tail)) - else: - fb2_text.append(prepare_string_for_xml(elem.tail)) + # Process element text that comes after the close of the XHTML tag but before the next XHTML tag. + if hasattr(elem_tree, 'tail') and elem_tree.tail: + if not self.in_p: + fb2_out.append('<p>') + fb2_out.append(prepare_string_for_xml(elem_tree.tail)) + if not self.in_p: + fb2_out.append('</p>') - return fb2_text + return fb2_out def close_tags(self, tags): text = [] for tag in tags: text.append('</%s>' % tag) + if tag == 'p': + self.in_p = False return text diff --git a/src/calibre/ebooks/fb2/output.py b/src/calibre/ebooks/fb2/output.py index d6c7a25a90..33714c6e6e 100644 --- a/src/calibre/ebooks/fb2/output.py +++ b/src/calibre/ebooks/fb2/output.py @@ -16,19 +16,27 @@ class FB2Output(OutputFormatPlugin): file_type = 'fb2' options = set([ - OptionRecommendation(name='inline_toc', + OptionRecommendation(name='h1_to_title', recommended_value=False, level=OptionRecommendation.LOW, - help=_('Add Table of Contents to beginning of the book.')), - OptionRecommendation(name='sectionize_chapters', + help=_('Wrap all h1 tags with fb2 title elements.')), + OptionRecommendation(name='h2_to_title', recommended_value=False, level=OptionRecommendation.LOW, - help=_('Try to turn chapters into individual sections. ' \ - 'WARNING: ' \ - 'This option is experimental. It can cause conversion ' \ - 'to fail. It can also produce unexpected output.')), + help=_('Wrap all h2 tags with fb2 title elements.')), + OptionRecommendation(name='h3_to_title', + recommended_value=False, level=OptionRecommendation.LOW, + help=_('Wrap all h3 tags with fb2 title elements.')), ]) def convert(self, oeb_book, output_path, input_plugin, opts, log): from calibre.ebooks.oeb.transforms.jacket import linearize_jacket + from calibre.ebooks.oeb.transforms.rasterize import SVGRasterizer, Unavailable + + try: + rasterizer = SVGRasterizer() + rasterizer(oeb_book, opts) + except Unavailable: + self.log.warn('SVG rasterizer unavailable, SVG will not be converted') + linearize_jacket(oeb_book) fb2mlizer = FB2MLizer(log) diff --git a/src/calibre/ebooks/html/input.py b/src/calibre/ebooks/html/input.py index fa1de39410..059aeca324 100644 --- a/src/calibre/ebooks/html/input.py +++ b/src/calibre/ebooks/html/input.py @@ -269,11 +269,6 @@ class HTMLInput(InputFormatPlugin): ) ), - OptionRecommendation(name='unwrap_factor', recommended_value=0.0, - help=_('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.')), - ]) def convert(self, stream, opts, file_ext, log, diff --git a/src/calibre/ebooks/iterator/__init__.py b/src/calibre/ebooks/iterator/__init__.py new file mode 100644 index 0000000000..0080175bfa --- /dev/null +++ b/src/calibre/ebooks/iterator/__init__.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai + +__license__ = 'GPL v3' +__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' +__docformat__ = 'restructuredtext en' + + + diff --git a/src/calibre/ebooks/markdown/mdx_toc.py b/src/calibre/ebooks/markdown/mdx_toc.py index 15fd5061a0..322b820a4e 100644 --- a/src/calibre/ebooks/markdown/mdx_toc.py +++ b/src/calibre/ebooks/markdown/mdx_toc.py @@ -18,9 +18,10 @@ def extract_alphanumeric(in_str=None): """ # I'm sure this is really inefficient and # could be done with a lambda/map() - #x.strip().title().replace(' ', "") + #x.strip(). title().replace(' ', "") out_str=[] - for x in in_str.title(): + for x in in_str: + x = icu_title(x) if x.isalnum(): out_str.append(x) return ''.join(out_str) diff --git a/src/calibre/ebooks/metadata/amazonfr.py b/src/calibre/ebooks/metadata/amazonfr.py new file mode 100644 index 0000000000..156fff3d75 --- /dev/null +++ b/src/calibre/ebooks/metadata/amazonfr.py @@ -0,0 +1,516 @@ +from __future__ import with_statement +__license__ = 'GPL 3' +__copyright__ = '2010, sengian <sengian1@gmail.com>' + +import sys, textwrap, re, traceback +from urllib import urlencode +from math import ceil + +from lxml import html +from lxml.html import soupparser + +from calibre.utils.date import parse_date, utcnow, replace_months +from calibre.utils.cleantext import clean_ascii_chars +from calibre import browser, preferred_encoding +from calibre.ebooks.chardet import xml_to_unicode +from calibre.ebooks.metadata import MetaInformation, check_isbn, \ + authors_to_sort_string +from calibre.ebooks.metadata.fetch import MetadataSource +from calibre.utils.config import OptionParser +from calibre.library.comments import sanitize_comments_html + + +class AmazonFr(MetadataSource): + + name = 'Amazon French' + description = _('Downloads metadata from amazon.fr') + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Sengian' + version = (1, 0, 0) + has_html_comments = True + + def fetch(self): + try: + self.results = search(self.title, self.book_author, self.publisher, + self.isbn, max_results=10, verbose=self.verbose, lang='fr') + except Exception, e: + self.exception = e + self.tb = traceback.format_exc() + +class AmazonEs(MetadataSource): + + name = 'Amazon Spanish' + description = _('Downloads metadata from amazon.com in spanish') + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Sengian' + version = (1, 0, 0) + has_html_comments = True + + def fetch(self): + try: + self.results = search(self.title, self.book_author, self.publisher, + self.isbn, max_results=10, verbose=self.verbose, lang='es') + except Exception, e: + self.exception = e + self.tb = traceback.format_exc() + +class AmazonEn(MetadataSource): + + name = 'Amazon English' + description = _('Downloads metadata from amazon.com in english') + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Sengian' + version = (1, 0, 0) + has_html_comments = True + + def fetch(self): + try: + self.results = search(self.title, self.book_author, self.publisher, + self.isbn, max_results=10, verbose=self.verbose, lang='en') + except Exception, e: + self.exception = e + self.tb = traceback.format_exc() + +class AmazonDe(MetadataSource): + + name = 'Amazon German' + description = _('Downloads metadata from amazon.de') + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Sengian' + version = (1, 0, 0) + has_html_comments = True + + def fetch(self): + try: + self.results = search(self.title, self.book_author, self.publisher, + self.isbn, max_results=10, verbose=self.verbose, lang='de') + except Exception, e: + self.exception = e + self.tb = traceback.format_exc() + +class Amazon(MetadataSource): + + name = 'Amazon' + description = _('Downloads metadata from amazon.com') + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Kovid Goyal & Sengian' + version = (1, 1, 0) + has_html_comments = True + + def fetch(self): + # if not self.site_customization: + # return + try: + self.results = search(self.title, self.book_author, self.publisher, + self.isbn, max_results=10, verbose=self.verbose, lang='all') + except Exception, e: + self.exception = e + self.tb = traceback.format_exc() + + # @property + # def string_customization_help(self): + # return _('You can select here the language for metadata search with amazon.com') + + +def report(verbose): + if verbose: + traceback.print_exc() + + +class Query(object): + + BASE_URL_ALL = 'http://www.amazon.com' + BASE_URL_FR = 'http://www.amazon.fr' + BASE_URL_DE = 'http://www.amazon.de' + + def __init__(self, title=None, author=None, publisher=None, isbn=None, keywords=None, + max_results=20, rlang='all'): + assert not(title is None and author is None and publisher is None \ + and isbn is None and keywords is None) + assert (max_results < 21) + + self.max_results = int(max_results) + self.renbres = re.compile(u'\s*(\d+)\s*') + + q = { 'search-alias' : 'stripbooks' , + 'unfiltered' : '1', + 'field-keywords' : '', + 'field-author' : '', + 'field-title' : '', + 'field-isbn' : '', + 'field-publisher' : '' + #get to amazon detailed search page to get all options + # 'node' : '', + # 'field-binding' : '', + #before, during, after + # 'field-dateop' : '', + #month as number + # 'field-datemod' : '', + # 'field-dateyear' : '', + #french only + # 'field-collection' : '', + #many options available + } + + if rlang =='all': + q['sort'] = 'relevanceexprank' + self.urldata = self.BASE_URL_ALL + elif rlang =='es': + q['sort'] = 'relevanceexprank' + q['field-language'] = 'Spanish' + self.urldata = self.BASE_URL_ALL + elif rlang =='en': + q['sort'] = 'relevanceexprank' + q['field-language'] = 'English' + self.urldata = self.BASE_URL_ALL + elif rlang =='fr': + q['sort'] = 'relevancerank' + self.urldata = self.BASE_URL_FR + elif rlang =='de': + q['sort'] = 'relevancerank' + self.urldata = self.BASE_URL_DE + self.baseurl = self.urldata + + if isbn is not None: + q['field-isbn'] = isbn.replace('-', '') + else: + if title is not None: + q['field-title'] = title + if author is not None: + q['field-author'] = author + if publisher is not None: + q['field-publisher'] = publisher + if keywords is not None: + q['field-keywords'] = keywords + + if isinstance(q, unicode): + q = q.encode('utf-8') + self.urldata += '/gp/search/ref=sr_adv_b/?' + urlencode(q) + + def __call__(self, browser, verbose, timeout = 5.): + if verbose: + print 'Query:', self.urldata + + try: + raw = browser.open_novisit(self.urldata, timeout=timeout).read() + except Exception, e: + report(verbose) + if callable(getattr(e, 'getcode', None)) and \ + e.getcode() == 404: + return + raise + if '<title>404 - ' in raw: + return + raw = xml_to_unicode(raw, strip_encoding_pats=True, + resolve_entities=True)[0] + + try: + feed = soupparser.fromstring(raw) + except: + try: + #remove ASCII invalid chars + return soupparser.fromstring(clean_ascii_chars(raw)) + except: + return None, self.urldata + + #nb of page + try: + nbresults = self.renbres.findall(feed.xpath("//*[@class='resultCount']")[0].text) + except: + return None, self.urldata + + pages =[feed] + if len(nbresults) > 1: + nbpagetoquery = int(ceil(float(min(int(nbresults[2]), self.max_results))/ int(nbresults[1]))) + for i in xrange(2, nbpagetoquery + 1): + try: + urldata = self.urldata + '&page=' + str(i) + raw = browser.open_novisit(urldata, timeout=timeout).read() + except Exception, e: + continue + if '<title>404 - ' in raw: + continue + raw = xml_to_unicode(raw, strip_encoding_pats=True, + resolve_entities=True)[0] + try: + feed = soupparser.fromstring(raw) + except: + try: + #remove ASCII invalid chars + return soupparser.fromstring(clean_ascii_chars(raw)) + except: + continue + pages.append(feed) + + results = [] + for x in pages: + results.extend([i.getparent().get('href') \ + for i in x.xpath("//a/span[@class='srTitle']")]) + return results[:self.max_results], self.baseurl + +class ResultList(list): + + def __init__(self, baseurl, lang = 'all'): + self.baseurl = baseurl + self.lang = lang + self.repub = re.compile(u'\((.*)\)') + self.rerat = re.compile(u'([0-9.]+)') + self.reattr = re.compile(r'<([a-zA-Z0-9]+)\s[^>]+>') + self.reoutp = re.compile(r'(?s)<em>--This text ref.*?</em>') + self.recom = re.compile(r'(?s)<!--.*?-->') + self.republi = re.compile(u'(Editeur|Publisher|Verlag)', re.I) + self.reisbn = re.compile(u'(ISBN-10|ISBN-10|ASIN)', re.I) + self.relang = re.compile(u'(Language|Langue|Sprache)', re.I) + self.reratelt = re.compile(u'(Average\s*Customer\s*Review|Moyenne\s*des\s*commentaires\s*client|Durchschnittliche\s*Kundenbewertung)', re.I) + self.reprod = re.compile(u'(Product\s*Details|D.tails\s*sur\s*le\s*produit|Produktinformation)', re.I) + + def strip_tags_etree(self, etreeobj, invalid_tags): + for (itag, rmv) in invalid_tags.iteritems(): + if rmv: + for elts in etreeobj.getiterator(itag): + elts.drop_tree() + else: + for elts in etreeobj.getiterator(itag): + elts.drop_tag() + + def clean_entry(self, entry, invalid_tags = {'script': True}, + invalid_id = (), invalid_class=()): + #invalid_tags: remove tag and keep content if False else remove + #remove tags + if invalid_tags: + self.strip_tags_etree(entry, invalid_tags) + #remove id + if invalid_id: + for eltid in invalid_id: + elt = entry.get_element_by_id(eltid) + if elt is not None: + elt.drop_tree() + #remove class + if invalid_class: + for eltclass in invalid_class: + elts = entry.find_class(eltclass) + if elts is not None: + for elt in elts: + elt.drop_tree() + + def get_title(self, entry): + title = entry.get_element_by_id('btAsinTitle') + if title is not None: + title = title.text + return unicode(title.replace('\n', '').strip()) + + def get_authors(self, entry): + author = entry.get_element_by_id('btAsinTitle') + while author.getparent().tag != 'div': + author = author.getparent() + author = author.getparent() + authortext = [] + for x in author.getiterator('a'): + authortext.append(unicode(x.text_content().strip())) + return authortext + + def get_description(self, entry, verbose): + try: + description = entry.get_element_by_id("productDescription").find("div[@class='content']") + inv_class = ('seeAll', 'emptyClear') + inv_tags ={'img': True, 'a': False} + self.clean_entry(description, invalid_tags=inv_tags, invalid_class=inv_class) + description = html.tostring(description, method='html', encoding=unicode).strip() + # remove all attributes from tags + description = self.reattr.sub(r'<\1>', description) + # Remove the notice about text referring to out of print editions + description = self.reoutp.sub('', description) + # Remove comments + description = self.recom.sub('', description) + return unicode(sanitize_comments_html(description)) + except: + report(verbose) + return None + + def get_tags(self, entry, browser, verbose): + try: + tags = entry.get_element_by_id('tagContentHolder') + testptag = tags.find_class('see-all') + if testptag: + for x in testptag: + alink = x.xpath('descendant-or-self::a') + if alink: + if alink[0].get('class') == 'tgJsActive': + continue + link = self.baseurl + alink[0].get('href') + entry = self.get_individual_metadata(browser, link, verbose) + tags = entry.get_element_by_id('tagContentHolder') + break + tags = [a.text for a in tags.getiterator('a') if a.get('rel') == 'tag'] + except: + report(verbose) + tags = [] + return tags + + def get_book_info(self, entry, mi, verbose): + try: + entry = entry.get_element_by_id('SalesRank').getparent() + except: + try: + for z in entry.getiterator('h2'): + if self.reprod.search(z.text_content()): + entry = z.getparent().find("div[@class='content']/ul") + break + except: + report(verbose) + return mi + elts = entry.findall('li') + #pub & date + elt = filter(lambda x: self.republi.search(x.find('b').text), elts) + if elt: + pub = elt[0].find('b').tail + mi.publisher = unicode(self.repub.sub('', pub).strip()) + d = self.repub.search(pub) + if d is not None: + d = d.group(1) + try: + default = utcnow().replace(day=15) + if self.lang != 'all': + d = replace_months(d, self.lang) + d = parse_date(d, assume_utc=True, default=default) + mi.pubdate = d + except: + report(verbose) + #ISBN + elt = filter(lambda x: self.reisbn.search(x.find('b').text), elts) + if elt: + isbn = elt[0].find('b').tail.replace('-', '').strip() + if check_isbn(isbn): + mi.isbn = unicode(isbn) + elif len(elt) > 1: + isbn = elt[1].find('b').tail.replace('-', '').strip() + if check_isbn(isbn): + mi.isbn = unicode(isbn) + #Langue + elt = filter(lambda x: self.relang.search(x.find('b').text), elts) + if elt: + langue = elt[0].find('b').tail.strip() + if langue: + mi.language = unicode(langue) + #ratings + elt = filter(lambda x: self.reratelt.search(x.find('b').text), elts) + if elt: + ratings = elt[0].find_class('swSprite') + if ratings: + ratings = self.rerat.findall(ratings[0].get('title')) + if len(ratings) == 2: + mi.rating = float(ratings[0])/float(ratings[1]) * 5 + return mi + + def fill_MI(self, entry, title, authors, browser, verbose): + mi = MetaInformation(title, authors) + mi.author_sort = authors_to_sort_string(authors) + mi.comments = self.get_description(entry, verbose) + mi = self.get_book_info(entry, mi, verbose) + mi.tags = self.get_tags(entry, browser, verbose) + return mi + + def get_individual_metadata(self, browser, linkdata, verbose): + try: + raw = browser.open_novisit(linkdata).read() + except Exception, e: + report(verbose) + if callable(getattr(e, 'getcode', None)) and \ + e.getcode() == 404: + return + raise + if '<title>404 - ' in raw: + report(verbose) + return + raw = xml_to_unicode(raw, strip_encoding_pats=True, + resolve_entities=True)[0] + try: + return soupparser.fromstring(raw) + except: + try: + #remove ASCII invalid chars + return soupparser.fromstring(clean_ascii_chars(raw)) + except: + report(verbose) + return + + def populate(self, entries, browser, verbose=False): + for x in entries: + try: + entry = self.get_individual_metadata(browser, x, verbose) + # clean results + # inv_ids = ('divsinglecolumnminwidth', 'sims.purchase', 'AutoBuyXGetY', 'A9AdsMiddleBoxTop') + # inv_class = ('buyingDetailsGrid', 'productImageGrid') + # inv_tags ={'script': True, 'style': True, 'form': False} + # self.clean_entry(entry, invalid_id=inv_ids) + title = self.get_title(entry) + authors = self.get_authors(entry) + except Exception, e: + if verbose: + print 'Failed to get all details for an entry' + print e + print 'URL who failed:', x + report(verbose) + continue + self.append(self.fill_MI(entry, title, authors, browser, verbose)) + + +def search(title=None, author=None, publisher=None, isbn=None, + max_results=5, verbose=False, keywords=None, lang='all'): + br = browser() + entries, baseurl = Query(title=title, author=author, isbn=isbn, publisher=publisher, + keywords=keywords, max_results=max_results,rlang=lang)(br, verbose) + + if entries is None or len(entries) == 0: + return + + #List of entry + ans = ResultList(baseurl, lang) + ans.populate(entries, br, verbose) + return ans + +def option_parser(): + parser = OptionParser(textwrap.dedent(\ + _('''\ + %prog [options] + + Fetch book metadata from Amazon. You must specify one of title, author, + ISBN, publisher or keywords. Will fetch a maximum of 10 matches, + so you should make your query as specific as possible. + You can chose the language for metadata retrieval: + All & english & french & german & spanish + ''' + ))) + parser.add_option('-t', '--title', help='Book title') + parser.add_option('-a', '--author', help='Book author(s)') + parser.add_option('-p', '--publisher', help='Book publisher') + parser.add_option('-i', '--isbn', help='Book ISBN') + parser.add_option('-k', '--keywords', help='Keywords') + parser.add_option('-m', '--max-results', default=10, + help='Maximum number of results to fetch') + parser.add_option('-l', '--lang', default='all', + help='Chosen language for metadata search (all, en, fr, es, de)') + parser.add_option('-v', '--verbose', default=0, action='count', + help='Be more verbose about errors') + return parser + +def main(args=sys.argv): + parser = option_parser() + opts, args = parser.parse_args(args) + try: + results = search(opts.title, opts.author, isbn=opts.isbn, publisher=opts.publisher, + keywords=opts.keywords, verbose=opts.verbose, max_results=opts.max_results, + lang=opts.lang) + except AssertionError: + report(True) + parser.print_help() + return 1 + if results is None or len(results) == 0: + print 'No result found for this search!' + return 0 + for result in results: + print unicode(result).encode(preferred_encoding, 'replace') + print + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index 125cd542b8..f0844e3711 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -531,6 +531,8 @@ class Metadata(object): res = format_date(res, cmeta['display'].get('date_format','dd MMM yyyy')) elif datatype == 'bool': res = _('Yes') if res else _('No') + elif datatype == 'rating': + res = res/2 return (name, unicode(res), orig_res, cmeta) # Translate aliases into the standard field name diff --git a/src/calibre/ebooks/metadata/fetch.py b/src/calibre/ebooks/metadata/fetch.py index b6b3fb9c40..b797a477d6 100644 --- a/src/calibre/ebooks/metadata/fetch.py +++ b/src/calibre/ebooks/metadata/fetch.py @@ -145,18 +145,21 @@ class MetadataSource(Plugin): # {{{ setattr(w, '_'+x, cb) cb.setChecked(c.get(x, True)) w._layout.addWidget(cb) - - cb = QCheckBox(_('Convert comments downloaded from %s to plain text')%(self.name)) - setattr(w, '_textcomments', cb) - cb.setChecked(c.get('textcomments', False)) - w._layout.addWidget(cb) + + if self.has_html_comments: + cb = QCheckBox(_('Convert comments downloaded from %s to plain text')%(self.name)) + setattr(w, '_textcomments', cb) + cb.setChecked(c.get('textcomments', False)) + w._layout.addWidget(cb) return w def save_settings(self, w): dl_settings = {} - for x in ('rating', 'tags', 'comments', 'textcomments'): + for x in ('rating', 'tags', 'comments'): dl_settings[x] = getattr(w, '_'+x).isChecked() + if self.has_html_comments: + dl_settings['textcomments'] = getattr(w, '_textcomments').isChecked() c = self.config_store() c.set(self.name, dl_settings) if hasattr(w, '_sc'): diff --git a/src/calibre/ebooks/metadata/fictionwise.py b/src/calibre/ebooks/metadata/fictionwise.py new file mode 100644 index 0000000000..b780f2b39d --- /dev/null +++ b/src/calibre/ebooks/metadata/fictionwise.py @@ -0,0 +1,390 @@ +from __future__ import with_statement +__license__ = 'GPL 3' +__copyright__ = '2010, sengian <sengian1@gmail.com>' +__docformat__ = 'restructuredtext en' + +import sys, textwrap, re, traceback, socket +from urllib import urlencode + +from lxml.html import soupparser, tostring + +from calibre import browser, preferred_encoding +from calibre.ebooks.chardet import xml_to_unicode +from calibre.ebooks.metadata import MetaInformation, check_isbn, \ + authors_to_sort_string +from calibre.library.comments import sanitize_comments_html +from calibre.ebooks.metadata.fetch import MetadataSource +from calibre.utils.config import OptionParser +from calibre.utils.date import parse_date, utcnow +from calibre.utils.cleantext import clean_ascii_chars + +class Fictionwise(MetadataSource): # {{{ + + author = 'Sengian' + name = 'Fictionwise' + description = _('Downloads metadata from Fictionwise') + + has_html_comments = True + + def fetch(self): + try: + self.results = search(self.title, self.book_author, self.publisher, + self.isbn, max_results=10, verbose=self.verbose) + except Exception, e: + self.exception = e + self.tb = traceback.format_exc() + + # }}} + +class FictionwiseError(Exception): + pass + +def report(verbose): + if verbose: + traceback.print_exc() + +class Query(object): + + BASE_URL = 'http://www.fictionwise.com/servlet/mw' + + def __init__(self, title=None, author=None, publisher=None, keywords=None, max_results=20): + assert not(title is None and author is None and publisher is None and keywords is None) + assert (max_results < 21) + + self.max_results = int(max_results) + q = { 'template' : 'searchresults_adv.htm' , + 'searchtitle' : '', + 'searchauthor' : '', + 'searchpublisher' : '', + 'searchkeyword' : '', + #possibilities startoflast, fullname, lastfirst + 'searchauthortype' : 'startoflast', + 'searchcategory' : '', + 'searchcategory2' : '', + 'searchprice_s' : '0', + 'searchprice_e' : 'ANY', + 'searchformat' : '', + 'searchgeo' : 'US', + 'searchfwdatetype' : '', + #maybe use dates fields if needed? + #'sortorder' : 'DESC', + #many options available: b.SortTitle, a.SortName, + #b.DateFirstPublished, b.FWPublishDate + 'sortby' : 'b.SortTitle' + } + if title is not None: + q['searchtitle'] = title + if author is not None: + q['searchauthor'] = author + if publisher is not None: + q['searchpublisher'] = publisher + if keywords is not None: + q['searchkeyword'] = keywords + + if isinstance(q, unicode): + q = q.encode('utf-8') + self.urldata = urlencode(q) + + def __call__(self, browser, verbose, timeout = 5.): + if verbose: + print _('Query: %s') % self.BASE_URL+self.urldata + + try: + raw = browser.open_novisit(self.BASE_URL, self.urldata, timeout=timeout).read() + except Exception, e: + report(verbose) + if callable(getattr(e, 'getcode', None)) and \ + e.getcode() == 404: + return + if isinstance(getattr(e, 'args', [None])[0], socket.timeout): + raise FictionwiseError(_('Fictionwise timed out. Try again later.')) + raise FictionwiseError(_('Fictionwise encountered an error.')) + if '<title>404 - ' in raw: + return + raw = xml_to_unicode(raw, strip_encoding_pats=True, + resolve_entities=True)[0] + try: + feed = soupparser.fromstring(raw) + except: + try: + #remove ASCII invalid chars + feed = soupparser.fromstring(clean_ascii_chars(raw)) + except: + return None + + # get list of results as links + results = feed.xpath("//table[3]/tr/td[2]/table/tr/td/p/table[2]/tr[@valign]") + results = results[:self.max_results] + results = [i.xpath('descendant-or-self::a')[0].get('href') for i in results] + #return feed if no links ie normally a single book or nothing + if not results: + results = [feed] + return results + +class ResultList(list): + + BASE_URL = 'http://www.fictionwise.com' + COLOR_VALUES = {'BLUE': 4, 'GREEN': 3, 'YELLOW': 2, 'RED': 1, 'NA': 0} + + def __init__(self): + self.retitle = re.compile(r'\[[^\[\]]+\]') + self.rechkauth = re.compile(r'.*book\s*by', re.I) + self.redesc = re.compile(r'book\s*description\s*:\s*(<br[^>]+>)*(?P<desc>.*)<br[^>]*>.{,15}publisher\s*:', re.I) + self.repub = re.compile(r'.*publisher\s*:\s*', re.I) + self.redate = re.compile(r'.*release\s*date\s*:\s*', re.I) + self.retag = re.compile(r'.*book\s*category\s*:\s*', re.I) + self.resplitbr = re.compile(r'<br[^>]*>', re.I) + self.recomment = re.compile(r'(?s)<!--.*?-->') + self.reimg = re.compile(r'<img[^>]*>', re.I) + self.resanitize = re.compile(r'\[HTML_REMOVED\]\s*', re.I) + self.renbcom = re.compile('(?P<nbcom>\d+)\s*Reader Ratings:') + self.recolor = re.compile('(?P<ncolor>[^/]+).gif') + self.resplitbrdiv = re.compile(r'(<br[^>]+>|</?div[^>]*>)', re.I) + self.reisbn = re.compile(r'.*ISBN\s*:\s*', re.I) + + def strip_tags_etree(self, etreeobj, invalid_tags): + for (itag, rmv) in invalid_tags.iteritems(): + if rmv: + for elts in etreeobj.getiterator(itag): + elts.drop_tree() + else: + for elts in etreeobj.getiterator(itag): + elts.drop_tag() + + def clean_entry(self, entry, invalid_tags = {'script': True}, + invalid_id = (), invalid_class=(), invalid_xpath = ()): + #invalid_tags: remove tag and keep content if False else remove + #remove tags + if invalid_tags: + self.strip_tags_etree(entry, invalid_tags) + #remove xpath + if invalid_xpath: + for eltid in invalid_xpath: + elt = entry.xpath(eltid) + for el in elt: + el.drop_tree() + #remove id + if invalid_id: + for eltid in invalid_id: + elt = entry.get_element_by_id(eltid) + if elt is not None: + elt.drop_tree() + #remove class + if invalid_class: + for eltclass in invalid_class: + elts = entry.find_class(eltclass) + if elts is not None: + for elt in elts: + elt.drop_tree() + + def output_entry(self, entry, prettyout = True, htmlrm="\d+"): + out = tostring(entry, pretty_print=prettyout) + #try to work around tostring to remove this encoding for exemle + reclean = re.compile('(\n+|\t+|\r+|&#'+htmlrm+';)') + return reclean.sub('', out) + + def get_title(self, entry): + title = entry.findtext('./') + return self.retitle.sub('', title).strip() + + def get_authors(self, entry): + authortext = entry.find('./br').tail + if not self.rechkauth.search(authortext): + return [] + authortext = self.rechkauth.sub('', authortext) + return [a.strip() for a in authortext.split('&')] + + def get_rating(self, entrytable, verbose): + nbcomment = tostring(entrytable.getprevious()) + try: + nbcomment = self.renbcom.search(nbcomment).group("nbcom") + except: + report(verbose) + return None + hval = dict((self.COLOR_VALUES[self.recolor.search(image.get('src', default='NA.gif')).group("ncolor")], + float(image.get('height', default=0))) \ + for image in entrytable.getiterator('img')) + #ratings as x/5 + return float(1.25*sum(k*v for (k, v) in hval.iteritems())/sum(hval.itervalues())) + + def get_description(self, entry): + description = self.output_entry(entry.xpath('./p')[1],htmlrm="") + description = self.redesc.search(description) + if not description or not description.group("desc"): + return None + #remove invalid tags + description = self.reimg.sub('', description.group("desc")) + description = self.recomment.sub('', description) + description = self.resanitize.sub('', sanitize_comments_html(description)) + return _('SUMMARY:\n %s') % re.sub(r'\n\s+</p>','\n</p>', description) + + def get_publisher(self, entry): + publisher = self.output_entry(entry.xpath('./p')[1]) + publisher = filter(lambda x: self.repub.search(x) is not None, + self.resplitbr.split(publisher)) + if not len(publisher): + return None + publisher = self.repub.sub('', publisher[0]) + return publisher.split(',')[0].strip() + + def get_tags(self, entry): + tag = self.output_entry(entry.xpath('./p')[1]) + tag = filter(lambda x: self.retag.search(x) is not None, + self.resplitbr.split(tag)) + if not len(tag): + return [] + return map(lambda x: x.strip(), self.retag.sub('', tag[0]).split('/')) + + def get_date(self, entry, verbose): + date = self.output_entry(entry.xpath('./p')[1]) + date = filter(lambda x: self.redate.search(x) is not None, + self.resplitbr.split(date)) + if not len(date): + return None + try: + d = self.redate.sub('', date[0]) + if d: + default = utcnow().replace(day=15) + d = parse_date(d, assume_utc=True, default=default) + else: + d = None + except: + report(verbose) + d = None + return d + + def get_ISBN(self, entry): + isbns = self.output_entry(entry.xpath('./p')[2]) + isbns = filter(lambda x: self.reisbn.search(x) is not None, + self.resplitbrdiv.split(isbns)) + if not len(isbns): + return None + isbns = [self.reisbn.sub('', x) for x in isbns if check_isbn(self.reisbn.sub('', x))] + return sorted(isbns, cmp=lambda x,y:cmp(len(x), len(y)))[-1] + + def fill_MI(self, entry, title, authors, ratings, verbose): + mi = MetaInformation(title, authors) + mi.rating = ratings + mi.comments = self.get_description(entry) + mi.publisher = self.get_publisher(entry) + mi.tags = self.get_tags(entry) + mi.pubdate = self.get_date(entry, verbose) + mi.isbn = self.get_ISBN(entry) + mi.author_sort = authors_to_sort_string(authors) + return mi + + def get_individual_metadata(self, browser, linkdata, verbose): + try: + raw = browser.open_novisit(self.BASE_URL + linkdata).read() + except Exception, e: + report(verbose) + if callable(getattr(e, 'getcode', None)) and \ + e.getcode() == 404: + return + if isinstance(getattr(e, 'args', [None])[0], socket.timeout): + raise FictionwiseError(_('Fictionwise timed out. Try again later.')) + raise FictionwiseError(_('Fictionwise encountered an error.')) + if '<title>404 - ' in raw: + report(verbose) + return + raw = xml_to_unicode(raw, strip_encoding_pats=True, + resolve_entities=True)[0] + try: + return soupparser.fromstring(raw) + except: + try: + #remove ASCII invalid chars + return soupparser.fromstring(clean_ascii_chars(raw)) + except: + return None + + def populate(self, entries, browser, verbose=False): + inv_tags ={'script': True, 'a': False, 'font': False, 'strong': False, 'b': False, + 'ul': False, 'span': False} + inv_xpath =('./table',) + #single entry + if len(entries) == 1 and not isinstance(entries[0], str): + try: + entry = entries.xpath("//table[3]/tr/td[2]/table[1]/tr/td/font/table/tr/td") + self.clean_entry(entry, invalid_tags=inv_tags, invalid_xpath=inv_xpath) + title = self.get_title(entry) + #maybe strenghten the search + ratings = self.get_rating(entry.xpath("./p/table")[1], verbose) + authors = self.get_authors(entry) + except Exception, e: + if verbose: + print _('Failed to get all details for an entry') + print e + return + self.append(self.fill_MI(entry, title, authors, ratings, verbose)) + else: + #multiple entries + for x in entries: + try: + entry = self.get_individual_metadata(browser, x, verbose) + entry = entry.xpath("//table[3]/tr/td[2]/table[1]/tr/td/font/table/tr/td")[0] + self.clean_entry(entry, invalid_tags=inv_tags, invalid_xpath=inv_xpath) + title = self.get_title(entry) + #maybe strenghten the search + ratings = self.get_rating(entry.xpath("./p/table")[1], verbose) + authors = self.get_authors(entry) + except Exception, e: + if verbose: + print _('Failed to get all details for an entry') + print e + continue + self.append(self.fill_MI(entry, title, authors, ratings, verbose)) + + +def search(title=None, author=None, publisher=None, isbn=None, + min_viewability='none', verbose=False, max_results=5, + keywords=None): + br = browser() + entries = Query(title=title, author=author, publisher=publisher, + keywords=keywords, max_results=max_results)(br, verbose, timeout = 15.) + + #List of entry + ans = ResultList() + ans.populate(entries, br, verbose) + return ans + + +def option_parser(): + parser = OptionParser(textwrap.dedent(\ + _('''\ + %prog [options] + + Fetch book metadata from Fictionwise. You must specify one of title, author, + or keywords. No ISBN specification possible. Will fetch a maximum of 20 matches, + so you should make your query as specific as possible. + ''') + )) + parser.add_option('-t', '--title', help=_('Book title')) + parser.add_option('-a', '--author', help=_('Book author(s)')) + parser.add_option('-p', '--publisher', help=_('Book publisher')) + parser.add_option('-k', '--keywords', help=_('Keywords')) + parser.add_option('-m', '--max-results', default=20, + help=_('Maximum number of results to fetch')) + parser.add_option('-v', '--verbose', default=0, action='count', + help=_('Be more verbose about errors')) + return parser + +def main(args=sys.argv): + parser = option_parser() + opts, args = parser.parse_args(args) + try: + results = search(opts.title, opts.author, publisher=opts.publisher, + keywords=opts.keywords, verbose=opts.verbose, max_results=opts.max_results) + except AssertionError: + report(True) + parser.print_help() + return 1 + if results is None or len(results) == 0: + print _('No result found for this search!') + return 0 + for result in results: + print unicode(result).encode(preferred_encoding, 'replace') + print + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/calibre/ebooks/metadata/isbndb.py b/src/calibre/ebooks/metadata/isbndb.py index 83cf6ee0ed..9169227326 100644 --- a/src/calibre/ebooks/metadata/isbndb.py +++ b/src/calibre/ebooks/metadata/isbndb.py @@ -90,10 +90,8 @@ def build_isbn(base_url, opts): return base_url + 'index1=isbn&value1='+opts.isbn def build_combined(base_url, opts): - query = '' - for e in (opts.title, opts.author, opts.publisher): - if e is not None: - query += ' ' + e + query = ' '.join([e for e in (opts.title, opts.author, opts.publisher) \ + if e is not None ]) query = query.strip() if len(query) == 0: raise ISBNDBError('You must specify at least one of --author, --title or --publisher') @@ -141,15 +139,8 @@ def create_books(opts, args, timeout=5.): print ('ISBNDB query: '+url) tans = [ISBNDBMetadata(book) for book in fetch_metadata(url, timeout=timeout)] - ans = [] - for x in tans: - add = True - for y in ans: - if y.isbn == x.isbn: - add = False - if add: - ans.append(x) - return ans + #remove duplicates ISBN + return list(dict((book.isbn, book) for book in tans).values()) def main(args=sys.argv): parser = option_parser() diff --git a/src/calibre/ebooks/metadata/nicebooks.py b/src/calibre/ebooks/metadata/nicebooks.py new file mode 100644 index 0000000000..8914e2d985 --- /dev/null +++ b/src/calibre/ebooks/metadata/nicebooks.py @@ -0,0 +1,411 @@ +from __future__ import with_statement +__license__ = 'GPL 3' +__copyright__ = '2010, sengian <sengian1@gmail.com>' +__docformat__ = 'restructuredtext en' + +import sys, textwrap, re, traceback, socket +from urllib import urlencode +from math import ceil +from copy import deepcopy + +from lxml.html import soupparser + +from calibre.utils.date import parse_date, utcnow, replace_months +from calibre.utils.cleantext import clean_ascii_chars +from calibre import browser, preferred_encoding +from calibre.ebooks.chardet import xml_to_unicode +from calibre.ebooks.metadata import MetaInformation, check_isbn, \ + authors_to_sort_string +from calibre.ebooks.metadata.fetch import MetadataSource +from calibre.ebooks.metadata.covers import CoverDownload +from calibre.utils.config import OptionParser + +class NiceBooks(MetadataSource): + + name = 'Nicebooks' + description = _('Downloads metadata from french Nicebooks') + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Sengian' + version = (1, 0, 0) + + def fetch(self): + try: + self.results = search(self.title, self.book_author, self.publisher, + self.isbn, max_results=10, verbose=self.verbose) + except Exception, e: + self.exception = e + self.tb = traceback.format_exc() + +class NiceBooksCovers(CoverDownload): + + name = 'Nicebooks covers' + description = _('Downloads covers from french Nicebooks') + supported_platforms = ['windows', 'osx', 'linux'] + author = 'Sengian' + type = _('Cover download') + version = (1, 0, 0) + + def has_cover(self, mi, ans, timeout=5.): + if not mi.isbn: + return False + br = browser() + try: + entry = Query(isbn=mi.isbn, max_results=1)(br, False, timeout)[0] + if Covers(mi.isbn)(entry).check_cover(): + self.debug('cover for', mi.isbn, 'found') + ans.set() + except Exception, e: + self.debug(e) + + def get_covers(self, mi, result_queue, abort, timeout=5.): + if not mi.isbn: + return + br = browser() + try: + entry = Query(isbn=mi.isbn, max_results=1)(br, False, timeout)[0] + cover_data, ext = Covers(mi.isbn)(entry).get_cover(br, timeout) + if not ext: + ext = 'jpg' + result_queue.put((True, cover_data, ext, self.name)) + except Exception, e: + result_queue.put((False, self.exception_to_string(e), + traceback.format_exc(), self.name)) + + +class NiceBooksError(Exception): + pass + +class ISBNNotFound(NiceBooksError): + pass + +def report(verbose): + if verbose: + traceback.print_exc() + +class Query(object): + + BASE_URL = 'http://fr.nicebooks.com/' + + def __init__(self, title=None, author=None, publisher=None, isbn=None, keywords=None, max_results=20): + assert not(title is None and author is None and publisher is None \ + and isbn is None and keywords is None) + assert (max_results < 21) + + self.max_results = int(max_results) + + if isbn is not None: + q = isbn + else: + q = ' '.join([i for i in (title, author, publisher, keywords) \ + if i is not None]) + + if isinstance(q, unicode): + q = q.encode('utf-8') + self.urldata = 'search?' + urlencode({'q':q,'s':'Rechercher'}) + + def __call__(self, browser, verbose, timeout = 5.): + if verbose: + print _('Query: %s') % self.BASE_URL+self.urldata + + try: + raw = browser.open_novisit(self.BASE_URL+self.urldata, timeout=timeout).read() + except Exception, e: + report(verbose) + if callable(getattr(e, 'getcode', None)) and \ + e.getcode() == 404: + return + if isinstance(getattr(e, 'args', [None])[0], socket.timeout): + raise NiceBooksError(_('Nicebooks timed out. Try again later.')) + raise NiceBooksError(_('Nicebooks encountered an error.')) + if '<title>404 - ' in raw: + return + raw = xml_to_unicode(raw, strip_encoding_pats=True, + resolve_entities=True)[0] + try: + feed = soupparser.fromstring(raw) + except: + try: + #remove ASCII invalid chars + feed = soupparser.fromstring(clean_ascii_chars(raw)) + except: + return None + + #nb of page to call + try: + nbresults = int(feed.xpath("//div[@id='topbar']/b")[0].text) + except: + #direct hit + return [feed] + + nbpagetoquery = int(ceil(float(min(nbresults, self.max_results))/10)) + pages =[feed] + if nbpagetoquery > 1: + for i in xrange(2, nbpagetoquery + 1): + try: + urldata = self.urldata + '&p=' + str(i) + raw = browser.open_novisit(self.BASE_URL+urldata, timeout=timeout).read() + except Exception, e: + continue + if '<title>404 - ' in raw: + continue + raw = xml_to_unicode(raw, strip_encoding_pats=True, + resolve_entities=True)[0] + try: + feed = soupparser.fromstring(raw) + except: + try: + #remove ASCII invalid chars + feed = soupparser.fromstring(clean_ascii_chars(raw)) + except: + continue + pages.append(feed) + + results = [] + for x in pages: + results.extend([i.find_class('title')[0].get('href') \ + for i in x.xpath("//ul[@id='results']/li")]) + return results[:self.max_results] + +class ResultList(list): + + BASE_URL = 'http://fr.nicebooks.com' + + def __init__(self): + self.repub = re.compile(u'\s*.diteur\s*', re.I) + self.reauteur = re.compile(u'\s*auteur.*', re.I) + self.reautclean = re.compile(u'\s*\(.*\)\s*') + + def get_title(self, entry): + title = deepcopy(entry) + title.remove(title.find("dl[@title='Informations sur le livre']")) + title = ' '.join([i.text_content() for i in title.iterchildren()]) + return unicode(title.replace('\n', '')) + + def get_authors(self, entry): + author = entry.find("dl[@title='Informations sur le livre']") + authortext = [] + for x in author.getiterator('dt'): + if self.reauteur.match(x.text): + elt = x.getnext() + while elt.tag == 'dd': + authortext.append(unicode(elt.text_content())) + elt = elt.getnext() + break + if len(authortext) == 1: + authortext = [self.reautclean.sub('', authortext[0])] + return authortext + + def get_description(self, entry, verbose): + try: + return u'RESUME:\n' + unicode(entry.getparent().xpath("//p[@id='book-description']")[0].text) + except: + report(verbose) + return None + + def get_book_info(self, entry, mi, verbose): + entry = entry.find("dl[@title='Informations sur le livre']") + for x in entry.getiterator('dt'): + if x.text == 'ISBN': + isbntext = x.getnext().text_content().replace('-', '') + if check_isbn(isbntext): + mi.isbn = unicode(isbntext) + elif self.repub.match(x.text): + mi.publisher = unicode(x.getnext().text_content()) + elif x.text == 'Langue': + mi.language = unicode(x.getnext().text_content()) + elif x.text == 'Date de parution': + d = x.getnext().text_content() + try: + default = utcnow().replace(day=15) + d = replace_months(d, 'fr') + d = parse_date(d, assume_utc=True, default=default) + mi.pubdate = d + except: + report(verbose) + return mi + + def fill_MI(self, entry, title, authors, verbose): + mi = MetaInformation(title, authors) + mi.author_sort = authors_to_sort_string(authors) + mi.comments = self.get_description(entry, verbose) + return self.get_book_info(entry, mi, verbose) + + def get_individual_metadata(self, browser, linkdata, verbose): + try: + raw = browser.open_novisit(self.BASE_URL + linkdata).read() + except Exception, e: + report(verbose) + if callable(getattr(e, 'getcode', None)) and \ + e.getcode() == 404: + return + if isinstance(getattr(e, 'args', [None])[0], socket.timeout): + raise NiceBooksError(_('Nicebooks timed out. Try again later.')) + raise NiceBooksError(_('Nicebooks encountered an error.')) + if '<title>404 - ' in raw: + report(verbose) + return + raw = xml_to_unicode(raw, strip_encoding_pats=True, + resolve_entities=True)[0] + try: + feed = soupparser.fromstring(raw) + except: + try: + #remove ASCII invalid chars + feed = soupparser.fromstring(clean_ascii_chars(raw)) + except: + return None + + # get results + return feed.xpath("//div[@id='container']")[0] + + def populate(self, entries, browser, verbose=False): + #single entry + if len(entries) == 1 and not isinstance(entries[0], str): + try: + entry = entries[0].xpath("//div[@id='container']")[0] + entry = entry.find("div[@id='book-info']") + title = self.get_title(entry) + authors = self.get_authors(entry) + except Exception, e: + if verbose: + print 'Failed to get all details for an entry' + print e + return + self.append(self.fill_MI(entry, title, authors, verbose)) + else: + #multiple entries + for x in entries: + try: + entry = self.get_individual_metadata(browser, x, verbose) + entry = entry.find("div[@id='book-info']") + title = self.get_title(entry) + authors = self.get_authors(entry) + except Exception, e: + if verbose: + print 'Failed to get all details for an entry' + print e + continue + self.append(self.fill_MI(entry, title, authors, verbose)) + +class Covers(object): + + def __init__(self, isbn = None): + assert isbn is not None + self.urlimg = '' + self.isbn = isbn + self.isbnf = False + + def __call__(self, entry = None): + try: + self.urlimg = entry.xpath("//div[@id='book-picture']/a")[0].get('href') + except: + return self + isbno = entry.get_element_by_id('book-info').find("dl[@title='Informations sur le livre']") + for x in isbno.getiterator('dt'): + if x.text == 'ISBN' and check_isbn(x.getnext().text_content()): + self.isbnf = True + break + return self + + def check_cover(self): + return True if self.urlimg else False + + def get_cover(self, browser, timeout = 5.): + try: + cover, ext = browser.open_novisit(self.urlimg, timeout=timeout).read(), \ + self.urlimg.rpartition('.')[-1] + return cover, ext if ext else 'jpg' + except Exception, err: + if isinstance(getattr(err, 'args', [None])[0], socket.timeout): + raise NiceBooksError(_('Nicebooks timed out. Try again later.')) + if not len(self.urlimg): + if not self.isbnf: + raise ISBNNotFound(_('ISBN: %s not found.') % self.isbn) + raise NiceBooksError(_('An errror occured with Nicebooks cover fetcher')) + + +def search(title=None, author=None, publisher=None, isbn=None, + max_results=5, verbose=False, keywords=None): + br = browser() + entries = Query(title=title, author=author, isbn=isbn, publisher=publisher, + keywords=keywords, max_results=max_results)(br, verbose,timeout = 10.) + + if entries is None or len(entries) == 0: + return None + + #List of entry + ans = ResultList() + ans.populate(entries, br, verbose) + return ans + +def check_for_cover(isbn): + br = browser() + entry = Query(isbn=isbn, max_results=1)(br, False)[0] + return Covers(isbn)(entry).check_cover() + +def cover_from_isbn(isbn, timeout = 5.): + br = browser() + entry = Query(isbn=isbn, max_results=1)(br, False, timeout)[0] + return Covers(isbn)(entry).get_cover(br, timeout) + + +def option_parser(): + parser = OptionParser(textwrap.dedent(\ + _('''\ + %prog [options] + + Fetch book metadata from Nicebooks. You must specify one of title, author, + ISBN, publisher or keywords. Will fetch a maximum of 20 matches, + so you should make your query as specific as possible. + It can also get covers if the option is activated. + ''') + )) + parser.add_option('-t', '--title', help=_('Book title')) + parser.add_option('-a', '--author', help=_('Book author(s)')) + parser.add_option('-p', '--publisher', help=_('Book publisher')) + parser.add_option('-i', '--isbn', help=_('Book ISBN')) + parser.add_option('-k', '--keywords', help=_('Keywords')) + parser.add_option('-c', '--covers', default=0, + help=_('Covers: 1-Check/ 2-Download')) + parser.add_option('-p', '--coverspath', default='', + help=_('Covers files path')) + parser.add_option('-m', '--max-results', default=20, + help=_('Maximum number of results to fetch')) + parser.add_option('-v', '--verbose', default=0, action='count', + help=_('Be more verbose about errors')) + return parser + +def main(args=sys.argv): + import os + parser = option_parser() + opts, args = parser.parse_args(args) + try: + results = search(opts.title, opts.author, isbn=opts.isbn, publisher=opts.publisher, + keywords=opts.keywords, verbose=opts.verbose, max_results=opts.max_results) + except AssertionError: + report(True) + parser.print_help() + return 1 + if results is None or len(results) == 0: + print _('No result found for this search!') + return 0 + for result in results: + print unicode(result).encode(preferred_encoding, 'replace') + covact = int(opts.covers) + if covact == 1: + textcover = _('No cover found!') + if check_for_cover(result.isbn): + textcover = _('A cover was found for this book') + print textcover + elif covact == 2: + cover_data, ext = cover_from_isbn(result.isbn) + cpath = result.isbn + if len(opts.coverspath): + cpath = os.path.normpath(opts.coverspath + '/' + result.isbn) + oname = os.path.abspath(cpath+'.'+ext) + open(oname, 'wb').write(cover_data) + print _('Cover saved to file '), oname + print + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/calibre/ebooks/metadata/worker.py b/src/calibre/ebooks/metadata/worker.py index 247050856d..d059d7e34c 100644 --- a/src/calibre/ebooks/metadata/worker.py +++ b/src/calibre/ebooks/metadata/worker.py @@ -8,12 +8,12 @@ __docformat__ = 'restructuredtext en' from threading import Thread from Queue import Empty -import os, time, sys, shutil +import os, time, sys, shutil, json from calibre.utils.ipc.job import ParallelJob from calibre.utils.ipc.server import Server from calibre.ptempfile import PersistentTemporaryDirectory, TemporaryDirectory -from calibre import prints +from calibre import prints, isbytestring from calibre.constants import filesystem_encoding @@ -194,14 +194,42 @@ class SaveWorker(Thread): self.daemon = True self.path, self.opts = path, opts self.ids = ids - self.library_path = db.library_path + self.db = db self.canceled = False self.result_queue = result_queue self.error = None self.spare_server = spare_server self.start() + def collect_data(self, ids): + from calibre.ebooks.metadata.opf2 import metadata_to_opf + data = {} + for i in set(ids): + mi = self.db.get_metadata(i, index_is_id=True, get_cover=True) + opf = metadata_to_opf(mi) + if isbytestring(opf): + opf = opf.decode('utf-8') + cpath = None + if mi.cover: + cpath = mi.cover + if isbytestring(cpath): + cpath = cpath.decode(filesystem_encoding) + formats = {} + if mi.formats: + for fmt in mi.formats: + fpath = self.db.format_abspath(i, fmt, index_is_id=True) + if fpath is not None: + if isbytestring(fpath): + fpath = fpath.decode(filesystem_encoding) + formats[fmt.lower()] = fpath + data[i] = [opf, cpath, formats] + return data + def run(self): + with TemporaryDirectory('save_to_disk_data') as tdir: + self._run(tdir) + + def _run(self, tdir): from calibre.library.save_to_disk import config server = Server() if self.spare_server is None else self.spare_server ids = set(self.ids) @@ -212,12 +240,19 @@ class SaveWorker(Thread): for pref in c.preferences: recs[pref.name] = getattr(self.opts, pref.name) + plugboards = self.db.prefs.get('plugboards', {}) + for i, task in enumerate(tasks): tids = [x[-1] for x in task] + data = self.collect_data(tids) + dpath = os.path.join(tdir, '%d.json'%i) + with open(dpath, 'wb') as f: + f.write(json.dumps(data, ensure_ascii=False).encode('utf-8')) + job = ParallelJob('save_book', 'Save books (%d of %d)'%(i, len(tasks)), lambda x,y:x, - args=[tids, self.library_path, self.path, recs]) + args=[tids, dpath, plugboards, self.path, recs]) jobs.add(job) server.add_job(job) @@ -226,21 +261,21 @@ class SaveWorker(Thread): time.sleep(0.2) running = False for job in jobs: - job.update(consume_notifications=False) - while True: - try: - id, title, ok, tb = job.notifications.get_nowait()[0] - if id in ids: - self.result_queue.put((id, title, ok, tb)) - ids.remove(id) - except Empty: - break + self.get_notifications(job, ids) if not job.is_finished: running = True if not running: break + for job in jobs: + if not job.result: + continue + for id_, title, ok, tb in job.result: + if id_ in ids: + self.result_queue.put((id_, title, ok, tb)) + ids.remove(id_) + server.close() time.sleep(1) @@ -257,21 +292,39 @@ class SaveWorker(Thread): except: pass + def get_notifications(self, job, ids): + job.update(consume_notifications=False) + while True: + try: + id, title, ok, tb = job.notifications.get_nowait()[0] + if id in ids: + self.result_queue.put((id, title, ok, tb)) + ids.remove(id) + except Empty: + break -def save_book(task, library_path, path, recs, notification=lambda x,y:x): - from calibre.library.database2 import LibraryDatabase2 - db = LibraryDatabase2(library_path) - from calibre.library.save_to_disk import config, save_to_disk + +def save_book(ids, dpath, plugboards, path, recs, notification=lambda x,y:x): + from calibre.library.save_to_disk import config, save_serialized_to_disk from calibre.customize.ui import apply_null_metadata opts = config().parse() for name in recs: setattr(opts, name, recs[name]) + results = [] def callback(id, title, failed, tb): + results.append((id, title, not failed, tb)) notification((id, title, not failed, tb)) return True - with apply_null_metadata: - save_to_disk(db, task, path, opts, callback) + data_ = json.loads(open(dpath, 'rb').read().decode('utf-8')) + data = {} + for k, v in data_.iteritems(): + data[int(k)] = v + + with apply_null_metadata: + save_serialized_to_disk(ids, data, plugboards, path, opts, callback) + + return results diff --git a/src/calibre/ebooks/mobi/mobiml.py b/src/calibre/ebooks/mobi/mobiml.py index 98e7b6023c..8d20179250 100644 --- a/src/calibre/ebooks/mobi/mobiml.py +++ b/src/calibre/ebooks/mobi/mobiml.py @@ -10,9 +10,10 @@ import copy import re from lxml import etree from calibre.ebooks.oeb.base import namespace, barename -from calibre.ebooks.oeb.base import XHTML, XHTML_NS, OEB_DOCS +from calibre.ebooks.oeb.base import XHTML, XHTML_NS, OEB_DOCS, urlnormalize from calibre.ebooks.oeb.stylizer import Stylizer from calibre.ebooks.oeb.transforms.flatcss import KeyMapper +from calibre.utils.magick.draw import identify_data MBP_NS = 'http://mobipocket.com/ns/mbp' def MBP(name): return '{%s}%s' % (MBP_NS, name) @@ -121,6 +122,7 @@ class MobiMLizer(object): body = item.data.find(XHTML('body')) nroot = etree.Element(XHTML('html'), nsmap=MOBI_NSMAP) nbody = etree.SubElement(nroot, XHTML('body')) + self.current_spine_item = item self.mobimlize_elem(body, stylizer, BlockState(nbody), [FormatState()]) item.data = nroot @@ -357,8 +359,9 @@ class MobiMLizer(object): if tag == 'img' and 'src' in elem.attrib: istate.attrib['src'] = elem.attrib['src'] istate.attrib['align'] = 'baseline' + cssdict = style.cssdict() for prop in ('width', 'height'): - if style[prop] != 'auto': + if cssdict[prop] != 'auto': value = style[prop] if value == getattr(self.profile, prop): result = '100%' @@ -371,8 +374,40 @@ class MobiMLizer(object): (72./self.profile.dpi))) except: continue - result = "%d"%pixs + result = str(pixs) istate.attrib[prop] = result + if 'width' not in istate.attrib or 'height' not in istate.attrib: + href = self.current_spine_item.abshref(elem.attrib['src']) + try: + item = self.oeb.manifest.hrefs[urlnormalize(href)] + except: + self.oeb.logger.warn('Failed to find image:', + href) + else: + try: + width, height = identify_data(item.data)[:2] + except: + self.oeb.logger.warn('Invalid image:', href) + else: + if 'width' not in istate.attrib and 'height' not in \ + istate.attrib: + istate.attrib['width'] = str(width) + istate.attrib['height'] = str(height) + else: + ar = float(width)/float(height) + if 'width' not in istate.attrib: + try: + width = int(istate.attrib['height'])*ar + except: + pass + istate.attrib['width'] = str(int(width)) + else: + try: + height = int(istate.attrib['width'])/ar + except: + pass + istate.attrib['height'] = str(int(height)) + item.unload_data_from_memory() elif tag == 'hr' and asfloat(style['width']) > 0: prop = style['width'] / self.profile.width istate.attrib['width'] = "%d%%" % int(round(prop * 100)) diff --git a/src/calibre/ebooks/mobi/reader.py b/src/calibre/ebooks/mobi/reader.py index c55b94cac5..48ece79f45 100644 --- a/src/calibre/ebooks/mobi/reader.py +++ b/src/calibre/ebooks/mobi/reader.py @@ -475,7 +475,14 @@ class MobiReader(object): self.processed_html = self.processed_html.replace('\r\n', '\n') self.processed_html = self.processed_html.replace('> <', '>\n<') self.processed_html = self.processed_html.replace('<mbp: ', '<mbp:') - self.processed_html = re.sub(r'<?xml[^>]*>', '', self.processed_html) + self.processed_html = re.sub(r'<\?xml[^>]*>', '', self.processed_html) + # Swap inline and block level elements, and order block level elements according to priority + # - lxml and beautifulsoup expect/assume a specific order based on xhtml spec + self.processed_html = re.sub(r'(?i)(?P<styletags>(<(h\d+|i|b|u|em|small|big|strong|tt)>\s*){1,})(?P<para><p[^>]*>)', '\g<para>'+'\g<styletags>', self.processed_html) + self.processed_html = re.sub(r'(?i)(?P<para></p[^>]*>)\s*(?P<styletags>(</(h\d+|i|b|u|em|small|big|strong|tt)>\s*){1,})', '\g<styletags>'+'\g<para>', self.processed_html) + self.processed_html = re.sub(r'(?i)(?P<blockquote>(</blockquote[^>]*>\s*){1,})(?P<para></p[^>]*>)', '\g<para>'+'\g<blockquote>', self.processed_html) + self.processed_html = re.sub(r'(?i)(?P<para><p[^>]*>)\s*(?P<blockquote>(<blockquote[^>]*>\s*){1,})', '\g<blockquote>'+'\g<para>', self.processed_html) + def remove_random_bytes(self, html): return re.sub('\x14|\x15|\x19|\x1c|\x1d|\xef|\x12|\x13|\xec|\x08', @@ -497,6 +504,9 @@ class MobiReader(object): 'x-large': '5', 'xx-large': '6', } + def barename(x): + return x.rpartition(':')[-1] + mobi_version = self.book_header.mobi_version for x in root.xpath('//ncx'): x.getparent().remove(x) @@ -505,8 +515,9 @@ class MobiReader(object): for x in tag.attrib: if ':' in x: del tag.attrib[x] - if tag.tag in ('country-region', 'place', 'placetype', 'placename', - 'state', 'city', 'street', 'address', 'content', 'form'): + if tag.tag and barename(tag.tag.lower()) in \ + ('country-region', 'place', 'placetype', 'placename', + 'state', 'city', 'street', 'address', 'content', 'form'): tag.tag = 'div' if tag.tag in ('content', 'form') else 'span' for key in tag.attrib.keys(): tag.attrib.pop(key) diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index 2e480a9941..0f364b8030 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -607,7 +607,7 @@ class Metadata(object): key = barename(key) attrib[key] = prefixname(value, nsrmap) if namespace(self.term) == DC11_NS: - name = DC(barename(self.term).title()) + name = DC(icu_title(barename(self.term))) elem = element(dcmeta, name, attrib=attrib) elem.text = self.value else: @@ -775,6 +775,7 @@ class Manifest(object): return u'Item(id=%r, href=%r, media_type=%r)' \ % (self.id, self.href, self.media_type) + # Parsing {{{ def _parse_xml(self, data): data = xml_to_unicode(data, strip_encoding_pats=True, assume_utf8=True, resolve_entities=True)[0] @@ -1035,6 +1036,8 @@ class Manifest(object): data = item.data.cssText return ('utf-8', data) + # }}} + @dynamic_property def data(self): doc = """Provides MIME type sensitive access to the manifest diff --git a/src/calibre/ebooks/oeb/iterator.py b/src/calibre/ebooks/oeb/iterator.py index 91028c2bc5..10180541a1 100644 --- a/src/calibre/ebooks/oeb/iterator.py +++ b/src/calibre/ebooks/oeb/iterator.py @@ -96,7 +96,10 @@ class EbookIterator(object): def search(self, text, index, backwards=False): text = text.lower() - for i, path in enumerate(self.spine): + pmap = [(i, path) for i, path in enumerate(self.spine)] + if backwards: + pmap.reverse() + for i, path in pmap: if (backwards and i < index) or (not backwards and i > index): if text in open(path, 'rb').read().decode(path.encoding).lower(): return i diff --git a/src/calibre/ebooks/oeb/reader.py b/src/calibre/ebooks/oeb/reader.py index 0f61969373..8e11ac6498 100644 --- a/src/calibre/ebooks/oeb/reader.py +++ b/src/calibre/ebooks/oeb/reader.py @@ -544,7 +544,7 @@ class OEBReader(object): data = render_html_svg_workaround(path, self.logger) if not data: data = '' - id, href = self.oeb.manifest.generate('cover', 'cover.jpeg') + id, href = self.oeb.manifest.generate('cover', 'cover.jpg') item = self.oeb.manifest.add(id, href, JPEG_MIME, data=data) return item diff --git a/src/calibre/ebooks/oeb/stylizer.py b/src/calibre/ebooks/oeb/stylizer.py index d10ea12394..6c0c384eb3 100644 --- a/src/calibre/ebooks/oeb/stylizer.py +++ b/src/calibre/ebooks/oeb/stylizer.py @@ -240,18 +240,29 @@ class Stylizer(object): else: for elem in matches: self.style(elem)._update_cssdict(cssdict) - for elem in xpath(tree, '//h:img[@width or @height]'): - base = elem.get('style', '').strip() - if base: - base += ';' - for prop in ('width', 'height'): - val = elem.get(prop, False) - if val: - base += '%s: %s;'%(prop, val) - del elem.attrib[prop] - elem.set('style', base) for elem in xpath(tree, '//h:*[@style]'): self.style(elem)._apply_style_attr() + num_pat = re.compile(r'\d+$') + for elem in xpath(tree, '//h:img[@width or @height]'): + style = self.style(elem) + # Check if either height or width is not default + is_styled = style._style.get('width', 'auto') != 'auto' or \ + style._style.get('height', 'auto') != 'auto' + if not is_styled: + # Update img style dimension using width and height + upd = {} + for prop in ('width', 'height'): + val = elem.get(prop, '').strip() + try: + del elem.attrib[prop] + except: + pass + if val: + if num_pat.match(val) is not None: + val += 'px' + upd[prop] = val + if upd: + style._update_cssdict(upd) def _fetch_css_file(self, path): hrefs = self.oeb.manifest.hrefs @@ -564,7 +575,7 @@ class Style(object): if parent is not None: base = parent.width else: - base = self._profile.width + base = self._profile.width_pts if 'width' in self._element.attrib: width = self._element.attrib['width'] elif 'width' in self._style: @@ -576,6 +587,13 @@ class Style(object): if isinstance(result, (unicode, str, bytes)): result = self._profile.width self._width = result + if 'max-width' in self._style: + result = self._unit_convert(self._style['max-width'], base=base) + if isinstance(result, (unicode, str, bytes)): + result = self._width + if result < self._width: + self._width = result + return self._width @property @@ -587,7 +605,7 @@ class Style(object): if parent is not None: base = parent.height else: - base = self._profile.height + base = self._profile.height_pts if 'height' in self._element.attrib: height = self._element.attrib['height'] elif 'height' in self._style: @@ -599,6 +617,13 @@ class Style(object): if isinstance(result, (unicode, str, bytes)): result = self._profile.height self._height = result + if 'max-height' in self._style: + result = self._unit_convert(self._style['max-height'], base=base) + if isinstance(result, (unicode, str, bytes)): + result = self._height + if result < self._height: + self._height = result + return self._height @property diff --git a/src/calibre/ebooks/oeb/transforms/cover.py b/src/calibre/ebooks/oeb/transforms/cover.py index 6d4c65c2fb..a3cf9e9f83 100644 --- a/src/calibre/ebooks/oeb/transforms/cover.py +++ b/src/calibre/ebooks/oeb/transforms/cover.py @@ -5,17 +5,12 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' -import textwrap, cStringIO +import textwrap from urllib import unquote from lxml import etree -try: - from PIL import Image as PILImage - PILImage -except ImportError: - import Image as PILImage - from calibre import guess_type +from calibre.utils.magick.draw import identify_data class CoverManager(object): @@ -126,9 +121,7 @@ class CoverManager(object): if x.href == urlnormalize(href): try: raw = x.data - f = cStringIO.StringIO(raw) - im = PILImage.open(f) - return im.size + return identify_data(raw)[:2] except: self.log.exception('Failed to read image dimensions') return None, None diff --git a/src/calibre/ebooks/oeb/transforms/filenames.py b/src/calibre/ebooks/oeb/transforms/filenames.py new file mode 100644 index 0000000000..2b22474d30 --- /dev/null +++ b/src/calibre/ebooks/oeb/transforms/filenames.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai + +__license__ = 'GPL v3' +__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' +__docformat__ = 'restructuredtext en' + +import posixpath +from urlparse import urldefrag + +from lxml import etree +import cssutils + +from calibre.ebooks.oeb.base import rewrite_links, urlnormalize + +class RenameFiles(object): + + ''' + Rename files and adjust all links pointing to them. Note that the spine + and manifest are not touched by this transform. + ''' + + def __init__(self, rename_map): + self.rename_map = rename_map + + def __call__(self, oeb, opts): + self.log = oeb.logger + self.opts = opts + self.oeb = oeb + + for item in oeb.manifest.items: + self.current_item = item + if etree.iselement(item.data): + rewrite_links(self.current_item.data, self.url_replacer) + elif hasattr(item.data, 'cssText'): + cssutils.replaceUrls(item.data, self.url_replacer) + + if self.oeb.guide: + for ref in self.oeb.guide.values(): + href = urlnormalize(ref.href) + href, frag = urldefrag(href) + replacement = self.rename_map.get(href, None) + if replacement is not None: + nhref = replacement + if frag: + nhref += '#' + frag + ref.href = nhref + + if self.oeb.toc: + self.fix_toc_entry(self.oeb.toc) + + + def fix_toc_entry(self, toc): + if toc.href: + href = urlnormalize(toc.href) + href, frag = urldefrag(href) + replacement = self.rename_map.get(href, None) + + if replacement is not None: + nhref = replacement + if frag: + nhref = '#'.join((nhref, frag)) + toc.href = nhref + + for x in toc: + self.fix_toc_entry(x) + + def url_replacer(self, orig_url): + url = urlnormalize(orig_url) + path, frag = urldefrag(url) + href = self.current_item.abshref(path) + replacement = self.rename_map.get(href, None) + if replacement is None: + return orig_url + replacement = self.current_item.relhref(replacement) + if frag: + replacement += '#' + frag + return replacement + +class UniqueFilenames(object): + + 'Ensure that every item in the manifest has a unique filename' + + def __call__(self, oeb, opts): + self.log = oeb.logger + self.opts = opts + self.oeb = oeb + + self.seen_filenames = set([]) + self.rename_map = {} + + for item in list(oeb.manifest.items): + fname = posixpath.basename(item.href) + if fname in self.seen_filenames: + suffix = self.unique_suffix(fname) + data = item.data + base, ext = posixpath.splitext(item.href) + nhref = base + suffix + ext + nhref = oeb.manifest.generate(href=nhref)[1] + nitem = oeb.manifest.add(item.id, nhref, item.media_type, data=data, + fallback=item.fallback) + self.seen_filenames.add(posixpath.basename(nhref)) + self.rename_map[item.href] = nhref + if item.spine_position is not None: + oeb.spine.insert(item.spine_position, nitem, item.linear) + oeb.spine.remove(item) + oeb.manifest.remove(item) + else: + self.seen_filenames.add(fname) + + if self.rename_map: + self.log('Found non-unique filenames, renaming to support broken' + ' EPUB readers like FBReader, Aldiko and Stanza...') + from pprint import pformat + self.log.debug(pformat(self.rename_map)) + + renamer = RenameFiles(self.rename_map) + renamer(oeb, opts) + + + def unique_suffix(self, fname): + base, ext = posixpath.splitext(fname) + c = 0 + while True: + c += 1 + suffix = '_u%d'%c + candidate = base + suffix + ext + if candidate not in self.seen_filenames: + return suffix + diff --git a/src/calibre/ebooks/oeb/transforms/jacket.py b/src/calibre/ebooks/oeb/transforms/jacket.py index e744a14389..84f2dd5d6a 100644 --- a/src/calibre/ebooks/oeb/transforms/jacket.py +++ b/src/calibre/ebooks/oeb/transforms/jacket.py @@ -93,7 +93,7 @@ class Jacket(object): # Render Jacket {{{ -def get_rating(rating, rchar): +def get_rating(rating, rchar, e_rchar): ans = '' try: num = float(rating)/2 @@ -104,12 +104,12 @@ def get_rating(rating, rchar): if num < 1: return ans - ans = rchar * int(num) + ans = ("%s%s") % (rchar * int(num), e_rchar * (5 - int(num))) return ans - def render_jacket(mi, output_profile, - alt_title=_('Unknown'), alt_tags=[], alt_comments=''): + alt_title=_('Unknown'), alt_tags=[], alt_comments='', + alt_publisher=('Unknown publisher')): css = P('jacket/stylesheet.css', data=True).decode('utf-8') try: @@ -124,12 +124,17 @@ def render_jacket(mi, output_profile, if not mi.series: series = '' + try: + publisher = mi.publisher if mi.publisher else alt_publisher + except: + publisher = _('Unknown publisher') + try: pubdate = strftime(u'%Y', mi.pubdate.timetuple()) except: pubdate = '' - rating = get_rating(mi.rating, output_profile.ratings_char) + rating = get_rating(mi.rating, output_profile.ratings_char, output_profile.empty_ratings_char) tags = mi.tags if mi.tags else alt_tags if tags: @@ -154,6 +159,7 @@ def render_jacket(mi, output_profile, css=css, title=title, author=author, + publisher=publisher, pubdate_label=_('Published'), pubdate=pubdate, series_label=_('Series'), series=series, rating_label=_('Rating'), rating=rating, @@ -168,16 +174,16 @@ def render_jacket(mi, output_profile, # Post-process the generated html to strip out empty header items soup = BeautifulSoup(generated_html) if not series: - series_tag = soup.find('tr', attrs={'class':'cbj_series'}) + series_tag = soup.find(attrs={'class':'cbj_series'}) series_tag.extract() if not rating: - rating_tag = soup.find('tr', attrs={'class':'cbj_rating'}) + rating_tag = soup.find(attrs={'class':'cbj_rating'}) rating_tag.extract() if not tags: - tags_tag = soup.find('tr', attrs={'class':'cbj_tags'}) + tags_tag = soup.find(attrs={'class':'cbj_tags'}) tags_tag.extract() if not pubdate: - pubdate_tag = soup.find('tr', attrs={'class':'cbj_pubdate'}) + pubdate_tag = soup.find(attrs={'class':'cbj_pubdate'}) pubdate_tag.extract() if output_profile.short_name != 'kindle': hr_tag = soup.find('hr', attrs={'class':'cbj_kindle_banner_hr'}) diff --git a/src/calibre/ebooks/oeb/transforms/manglecase.py b/src/calibre/ebooks/oeb/transforms/manglecase.py index 04bf63ac1d..240f7e7726 100644 --- a/src/calibre/ebooks/oeb/transforms/manglecase.py +++ b/src/calibre/ebooks/oeb/transforms/manglecase.py @@ -50,11 +50,11 @@ class CaseMangler(object): def text_transform(self, transform, text): if transform == 'capitalize': - return text.title() + return icu_title(text) elif transform == 'uppercase': - return text.upper() + return icu_upper(text) elif transform == 'lowercase': - return text.lower() + return icu_lower(text) return text def split_text(self, text): diff --git a/src/calibre/ebooks/oeb/transforms/rasterize.py b/src/calibre/ebooks/oeb/transforms/rasterize.py index b09037498a..a485ca41e2 100644 --- a/src/calibre/ebooks/oeb/transforms/rasterize.py +++ b/src/calibre/ebooks/oeb/transforms/rasterize.py @@ -55,18 +55,31 @@ class SVGRasterizer(object): self.rasterize_cover() def rasterize_svg(self, elem, width=0, height=0, format='PNG'): + view_box = elem.get('viewBox', elem.get('viewbox', None)) + sizes = None + logger = self.oeb.logger + + if view_box is not None: + box = [float(x) for x in view_box.split()] + sizes = [box[2]-box[0], box[3] - box[1]] + for image in elem.xpath('descendant::*[local-name()="image" and ' + '@height and contains(@height, "%")]'): + logger.info('Found SVG image height in %, trying to convert...') + try: + h = float(image.get('height').replace('%', ''))/100. + image.set('height', str(h*sizes[1])) + except: + logger.exception('Failed to convert percentage height:', + image.get('height')) + data = QByteArray(xml2str(elem, with_tail=False)) svg = QSvgRenderer(data) size = svg.defaultSize() - view_box = elem.get('viewBox', elem.get('viewbox', None)) - if size.width() == 100 and size.height() == 100 \ - and view_box is not None: - box = [float(x) for x in view_box.split()] - size.setWidth(box[2] - box[0]) - size.setHeight(box[3] - box[1]) + if size.width() == 100 and size.height() == 100 and sizes: + size.setWidth(sizes[0]) + size.setHeight(sizes[1]) if width or height: size.scale(width, height, Qt.KeepAspectRatio) - logger = self.oeb.logger logger.info('Rasterizing %r to %dx%d' % (elem, size.width(), size.height())) image = QImage(size, QImage.Format_ARGB32_Premultiplied) diff --git a/src/calibre/ebooks/pdb/input.py b/src/calibre/ebooks/pdb/input.py index dfe5b653dd..6850c48b16 100644 --- a/src/calibre/ebooks/pdb/input.py +++ b/src/calibre/ebooks/pdb/input.py @@ -9,6 +9,7 @@ import os from calibre.customize.conversion import InputFormatPlugin, OptionRecommendation from calibre.ebooks.pdb.header import PdbHeaderReader from calibre.ebooks.pdb import PDBError, IDENTITY_TO_NAME, get_reader +from calibre.ebooks.conversion.utils import PreProcessor class PDBInput(InputFormatPlugin): @@ -44,3 +45,8 @@ class PDBInput(InputFormatPlugin): opf = reader.extract_content(os.getcwd()) return opf + + def preprocess_html(self, options, html): + self.options = options + preprocessor = PreProcessor(self.options, log=getattr(self, 'log', None)) + return preprocessor(html) \ No newline at end of file diff --git a/src/calibre/ebooks/pdf/output.py b/src/calibre/ebooks/pdf/output.py index a395cdd847..7fa7a0cf4c 100644 --- a/src/calibre/ebooks/pdf/output.py +++ b/src/calibre/ebooks/pdf/output.py @@ -101,6 +101,8 @@ class PDFOutput(OutputFormatPlugin): for item in m: if item.href == urlnormalize(href): self.cover_data = item.data + if not isinstance(self.cover_data, basestring): + self.cover_data = None def convert_text(self, oeb_book): self.log.debug('Serializing oeb input to disk for processing...') diff --git a/src/calibre/ebooks/pdf/pdftohtml.py b/src/calibre/ebooks/pdf/pdftohtml.py index 971114a180..564ba14a32 100644 --- a/src/calibre/ebooks/pdf/pdftohtml.py +++ b/src/calibre/ebooks/pdf/pdftohtml.py @@ -23,8 +23,8 @@ if isosx and hasattr(sys, 'frameworks_dir'): if iswindows and hasattr(sys, 'frozen'): PDFTOHTML = os.path.join(os.path.dirname(sys.executable), 'pdftohtml.exe') popen = partial(subprocess.Popen, creationflags=0x08) # CREATE_NO_WINDOW=0x08 so that no ugly console is popped up -if (islinux or isfreebsd) and getattr(sys, 'frozen_path', False): - PDFTOHTML = os.path.join(getattr(sys, 'frozen_path'), 'pdftohtml') +if (islinux or isfreebsd) and getattr(sys, 'frozen', False): + PDFTOHTML = os.path.join(sys.executables_location, 'bin', 'pdftohtml') def pdftohtml(output_dir, pdf_path, no_images): ''' diff --git a/src/calibre/ebooks/pdf/reflow.cpp b/src/calibre/ebooks/pdf/reflow.cpp index 43efe2c103..c08d7e5507 100644 --- a/src/calibre/ebooks/pdf/reflow.cpp +++ b/src/calibre/ebooks/pdf/reflow.cpp @@ -620,6 +620,7 @@ static string get_link_dest(LinkAction *link, PDFDoc *doc) { case actionSound: break; case actionJavaScript: break; case actionUnknown: break; + default: break; } return oss.str(); } diff --git a/src/calibre/ebooks/pml/output.py b/src/calibre/ebooks/pml/output.py index 774fc4c8d1..7e3729aa4a 100644 --- a/src/calibre/ebooks/pml/output.py +++ b/src/calibre/ebooks/pml/output.py @@ -35,6 +35,12 @@ class PMLOutput(OutputFormatPlugin): OptionRecommendation(name='inline_toc', recommended_value=False, level=OptionRecommendation.LOW, help=_('Add Table of Contents to beginning of the book.')), + OptionRecommendation(name='full_image_depth', + recommended_value=False, level=OptionRecommendation.LOW, + help=_('Do not reduce the size or bit depth of images. Images ' \ + 'have their size and depth reduced by default to accommodate ' \ + 'applications that can not convert images on their ' \ + 'own such as Dropbook.')), ]) def convert(self, oeb_book, output_path, input_plugin, opts, log): @@ -44,16 +50,20 @@ class PMLOutput(OutputFormatPlugin): with open(os.path.join(tdir, 'index.pml'), 'wb') as out: out.write(pml.encode(opts.output_encoding, 'replace')) - self.write_images(oeb_book.manifest, pmlmlizer.image_hrefs, tdir) + self.write_images(oeb_book.manifest, pmlmlizer.image_hrefs, tdir, opts) log.debug('Compressing output...') pmlz = ZipFile(output_path, 'w') pmlz.add_dir(tdir) - def write_images(self, manifest, image_hrefs, out_dir): + def write_images(self, manifest, image_hrefs, out_dir, opts): for item in manifest: if item.media_type in OEB_RASTER_IMAGES and item.href in image_hrefs.keys(): - im = Image.open(cStringIO.StringIO(item.data)) + if opts.full_image_depth: + im = Image.open(cStringIO.StringIO(item.data)) + else: + im = Image.open(cStringIO.StringIO(item.data)).convert('P') + im.thumbnail((300,300), Image.ANTIALIAS) data = cStringIO.StringIO() im.save(data, 'PNG') diff --git a/src/calibre/ebooks/pml/pmlml.py b/src/calibre/ebooks/pml/pmlml.py index 560a132ce1..ceb7f36124 100644 --- a/src/calibre/ebooks/pml/pmlml.py +++ b/src/calibre/ebooks/pml/pmlml.py @@ -216,7 +216,9 @@ class PMLMLizer(object): w = '\\w' width = elem.get('width') if width: - w += '="%s%%"' % width + if not width.endswith('%'): + width += '%' + w += '="%s"' % width else: w += '="50%"' text.append(w) @@ -252,8 +254,8 @@ class PMLMLizer(object): if href not in self.link_hrefs.keys(): self.link_hrefs[href] = 'calibre_link-%s' % len(self.link_hrefs.keys()) href = '#%s' % self.link_hrefs[href] - text.append('\\q="%s"' % href) - tags.append('q') + text.append('\\q="%s"' % href) + tags.append('q') # Anchor ids id_name = elem.get('id') diff --git a/src/calibre/ebooks/rtf/input.py b/src/calibre/ebooks/rtf/input.py index 078b30627f..57903a6711 100644 --- a/src/calibre/ebooks/rtf/input.py +++ b/src/calibre/ebooks/rtf/input.py @@ -9,6 +9,36 @@ from lxml import etree from calibre.customize.conversion import InputFormatPlugin from calibre.ebooks.conversion.utils import PreProcessor +border_style_map = { + 'single' : 'solid', + 'double-thickness-border' : 'double', + 'shadowed-border': 'outset', + 'double-border': 'double', + 'dotted-border': 'dotted', + 'dashed': 'dashed', + 'hairline': 'solid', + 'inset': 'inset', + 'dash-small': 'dashed', + 'dot-dash': 'dotted', + 'dot-dot-dash': 'dotted', + 'outset': 'outset', + 'tripple': 'double', + 'thick-thin-small': 'solid', + 'thin-thick-small': 'solid', + 'thin-thick-thin-small': 'solid', + 'thick-thin-medium': 'solid', + 'thin-thick-medium': 'solid', + 'thin-thick-thin-medium': 'solid', + 'thick-thin-large': 'solid', + 'thin-thick-thin-large': 'solid', + 'wavy': 'ridge', + 'double-wavy': 'ridge', + 'striped': 'ridge', + 'emboss': 'inset', + 'engrave': 'inset', + 'frame': 'ridge', +} + class InlineClass(etree.XSLTExtension): FMTS = ('italics', 'bold', 'underlined', 'strike-through', 'small-caps') @@ -84,7 +114,7 @@ class RTFInput(InputFormatPlugin): group_borders = 1, # Write or do not write paragraphs. Default is 0. - empty_paragraphs = 0, + empty_paragraphs = 1, ) parser.parse_rtf() ans = open('out.xml').read() @@ -137,7 +167,7 @@ class RTFInput(InputFormatPlugin): return name - def write_inline_css(self, ic): + def write_inline_css(self, ic, border_styles): font_size_classes = ['span.fs%d { font-size: %spt }'%(i, x) for i, x in enumerate(ic.font_sizes)] color_classes = ['span.col%d { color: %s }'%(i, x) for i, x in @@ -161,6 +191,10 @@ class RTFInput(InputFormatPlugin): ''') css += '\n'+'\n'.join(font_size_classes) css += '\n' +'\n'.join(color_classes) + + for cls, val in border_styles.items(): + css += '\n\n.%s {\n%s\n}'%(cls, val) + with open('styles.css', 'ab') as f: f.write(css) @@ -180,6 +214,32 @@ class RTFInput(InputFormatPlugin): 'Failed to preprocess RTF to convert unicode sequences, ignoring...') return fname + def convert_borders(self, doc): + border_styles = [] + style_map = {} + for elem in doc.xpath(r'//*[local-name()="cell"]'): + style = ['border-style: hidden', 'border-width: 1px', + 'border-color: black'] + for x in ('bottom', 'top', 'left', 'right'): + bs = elem.get('border-cell-%s-style'%x, None) + if bs: + cbs = border_style_map.get(bs, 'solid') + style.append('border-%s-style: %s'%(x, cbs)) + bw = elem.get('border-cell-%s-line-width'%x, None) + if bw: + style.append('border-%s-width: %spt'%(x, bw)) + bc = elem.get('border-cell-%s-color'%x, None) + if bc: + style.append('border-%s-color: %s'%(x, bc)) + style = ';\n'.join(style) + if style not in border_styles: + border_styles.append(style) + idx = border_styles.index(style) + cls = 'border_style%d'%idx + style_map[cls] = style + elem.set('class', cls) + return style_map + def convert(self, stream, options, file_ext, log, accelerators): from calibre.ebooks.metadata.meta import get_metadata @@ -211,6 +271,7 @@ class RTFInput(InputFormatPlugin): self.log('Parsing XML...') parser = etree.XMLParser(recover=True, no_network=True) doc = etree.fromstring(xml, parser=parser) + border_styles = self.convert_borders(doc) for pict in doc.xpath('//rtf:pict[@num]', namespaces={'rtf':'http://rtf2xml.sourceforge.net/'}): num = int(pict.get('num')) @@ -228,11 +289,16 @@ class RTFInput(InputFormatPlugin): with open(html, 'wb') as f: res = transform.tostring(result) res = res[:100].replace('xmlns:html', 'xmlns') + res[100:] + # Replace newlines inserted by the 'empty_paragraphs' option in rtf2xml with html blank lines + if not getattr(self.options, 'remove_paragraph_spacing', False): + res = re.sub('\s*<body>', '<body>', res) + res = re.sub('(?<=\n)\n{2}', + u'<p>\u00a0</p>\n'.encode('utf-8'), res) if self.options.preprocess_html: preprocessor = PreProcessor(self.options, log=getattr(self, 'log', None)) res = preprocessor(res) f.write(res) - self.write_inline_css(inline_class) + self.write_inline_css(inline_class, border_styles) stream.seek(0) mi = get_metadata(stream, 'rtf') if not mi.title: diff --git a/src/calibre/ebooks/rtf/rtfml.py b/src/calibre/ebooks/rtf/rtfml.py index 3869c05152..5aa4979b04 100644 --- a/src/calibre/ebooks/rtf/rtfml.py +++ b/src/calibre/ebooks/rtf/rtfml.py @@ -81,7 +81,9 @@ def txt2rtf(text): buf = cStringIO.StringIO() for x in text: val = ord(x) - if val <= 127: + if val == 160: + buf.write('\\~') + elif val <= 127: buf.write(x) else: repl = ascii_text(x) @@ -191,6 +193,10 @@ class RTFMLizer(object): def dump_text(self, elem, stylizer, tag_stack=[]): if not isinstance(elem.tag, basestring) \ or namespace(elem.tag) != XHTML_NS: + p = elem.getparent() + if p is not None and isinstance(p.tag, basestring) and namespace(p.tag) == XHTML_NS \ + and elem.tail: + return elem.tail return u'' text = u'' diff --git a/src/calibre/ebooks/txt/markdownml.py b/src/calibre/ebooks/txt/markdownml.py new file mode 100644 index 0000000000..116561f355 --- /dev/null +++ b/src/calibre/ebooks/txt/markdownml.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- + +__license__ = 'GPL 3' +__copyright__ = '2009, John Schember <john@nachtimwald.com>' +__docformat__ = 'restructuredtext en' + +''' +Transform OEB content into Markdown formatted plain text +''' + +import re + +from lxml import etree + +from calibre.utils.html2text import html2text + +class MarkdownMLizer(object): + + def __init__(self, log): + self.log = log + + def extract_content(self, oeb_book, opts): + self.log.info('Converting XHTML to Markdown formatted TXT...') + self.oeb_book = oeb_book + self.opts = opts + + return self.mlize_spine() + + def mlize_spine(self): + output = [u''] + + for item in self.oeb_book.spine: + self.log.debug('Converting %s to Markdown formatted TXT...' % item.href) + + html = unicode(etree.tostring(item.data, encoding=unicode)) + + if not self.opts.keep_links: + html = re.sub(r'<\s*a[^>]*>', '', html) + html = re.sub(r'<\s*/\s*a\s*>', '', html) + if not self.opts.keep_image_references: + html = re.sub(r'<\s*img[^>]*>', '', html) + html = re.sub(r'<\s*img\s*>', '', html) + + text = html2text(html) + + # Ensure the section ends with at least two new line characters. + # This is to prevent the last paragraph from a section being + # combined into the fist paragraph of the next. + end_chars = text[-4:] + # Convert all newlines to \n + end_chars = end_chars.replace('\r\n', '\n') + end_chars = end_chars.replace('\r', '\n') + end_chars = end_chars[-2:] + if not end_chars[1] == '\n': + text += '\n\n' + if end_chars[1] == '\n' and not end_chars[0] == '\n': + text += '\n' + + output += text + + output = u''.join(output) + + return output diff --git a/src/calibre/ebooks/txt/output.py b/src/calibre/ebooks/txt/output.py index 15db4b1974..a6369b6f0b 100644 --- a/src/calibre/ebooks/txt/output.py +++ b/src/calibre/ebooks/txt/output.py @@ -8,6 +8,7 @@ import os from calibre.customize.conversion import OutputFormatPlugin, \ OptionRecommendation +from calibre.ebooks.txt.markdownml import MarkdownMLizer from calibre.ebooks.txt.txtml import TXTMLizer from calibre.ebooks.txt.newlines import TxtNewlines, specified_newlines @@ -44,10 +45,27 @@ class TXTOutput(OutputFormatPlugin): recommended_value=False, level=OptionRecommendation.LOW, help=_('Force splitting on the max-line-length value when no space ' 'is present. Also allows max-line-length to be below the minimum')), + OptionRecommendation(name='markdown_format', + recommended_value=False, level=OptionRecommendation.LOW, + help=_('Produce Markdown formatted text.')), + OptionRecommendation(name='keep_links', + recommended_value=False, level=OptionRecommendation.LOW, + help=_('Do not remove links within the document. This is only ' \ + 'useful when paired with the markdown-format option because' \ + 'links are always removed with plain text output.')), + OptionRecommendation(name='keep_image_references', + recommended_value=False, level=OptionRecommendation.LOW, + help=_('Do not remove image references within the document. This is only ' \ + 'useful when paired with the markdown-format option because' \ + 'image references are always removed with plain text output.')), ]) def convert(self, oeb_book, output_path, input_plugin, opts, log): - writer = TXTMLizer(log) + if opts.markdown_format: + writer = MarkdownMLizer(log) + else: + writer = TXTMLizer(log) + txt = writer.extract_content(oeb_book, opts) log.debug('\tReplacing newlines with selected type...') diff --git a/src/calibre/ebooks/txt/txtml.py b/src/calibre/ebooks/txt/txtml.py index bb730c0720..a3b4ed7afe 100644 --- a/src/calibre/ebooks/txt/txtml.py +++ b/src/calibre/ebooks/txt/txtml.py @@ -35,6 +35,7 @@ BLOCK_STYLES = [ SPACE_TAGS = [ 'td', + 'br', ] class TXTMLizer(object): @@ -155,6 +156,10 @@ class TXTMLizer(object): if not isinstance(elem.tag, basestring) \ or namespace(elem.tag) != XHTML_NS: + p = elem.getparent() + if p is not None and isinstance(p.tag, basestring) and namespace(p.tag) == XHTML_NS \ + and elem.tail: + return [elem.tail] return [''] text = [''] @@ -174,8 +179,7 @@ class TXTMLizer(object): text.append(u'\n\n') if tag in SPACE_TAGS: - if not end.endswith('u ') and hasattr(elem, 'text') and elem.text: - text.append(u' ') + text.append(u' ') # Process tags that contain text. if hasattr(elem, 'text') and elem.text: diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index f035c40cb4..57ca2a1880 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -123,6 +123,8 @@ def _config(): help=_('Download social metadata (tags/rating/etc.)')) c.add_opt('overwrite_author_title_metadata', default=True, help=_('Overwrite author and title with new metadata')) + c.add_opt('auto_download_cover', default=False, + help=_('Automatically download the cover, if available')) c.add_opt('enforce_cpu_limit', default=True, help=_('Limit max simultaneous jobs to number of CPUs')) c.add_opt('tag_browser_hidden_categories', default=set(), @@ -644,7 +646,7 @@ def open_url(qurl): '').split(os.pathsep) paths = [x for x in paths if x] if isfrozen and islinux and paths: - npaths = [x for x in paths if x != sys.frozen_path] + npaths = [x for x in paths if x != sys.frozen_path+'/lib'] os.environ['LD_LIBRARY_PATH'] = os.pathsep.join(npaths) QDesktopServices.openUrl(qurl) if isfrozen and islinux and paths: diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py index d2e7016e6f..9b348d8285 100644 --- a/src/calibre/gui2/actions/add.py +++ b/src/calibre/gui2/actions/add.py @@ -18,6 +18,7 @@ from calibre.ebooks import BOOK_EXTENSIONS from calibre.utils.filenames import ascii_filename from calibre.constants import preferred_encoding, filesystem_encoding from calibre.gui2.actions import InterfaceAction +from calibre.gui2 import config class AddAction(InterfaceAction): @@ -89,15 +90,24 @@ class AddAction(InterfaceAction): self.gui.library_view.model().db.import_book(MetaInformation(None), []) self.gui.library_view.model().books_added(num) - def add_isbns(self, isbns): + def add_isbns(self, books): from calibre.ebooks.metadata import MetaInformation ids = set([]) - for x in isbns: + for x in books: mi = MetaInformation(None) - mi.isbn = x - ids.add(self.gui.library_view.model().db.import_book(mi, [])) - self.gui.library_view.model().books_added(len(isbns)) - self.gui.iactions['Edit Metadata'].do_download_metadata(ids) + mi.isbn = x['isbn'] + db = self.gui.library_view.model().db + if x['path'] is not None: + ids.add(db.import_book(mi, [x['path']])) + else: + ids.add(db.import_book(mi, [])) + self.gui.library_view.model().books_added(len(books)) + orig = config['overwrite_author_title_metadata'] + config['overwrite_author_title_metadata'] = True + try: + self.gui.iactions['Edit Metadata'].do_download_metadata(ids) + finally: + config['overwrite_author_title_metadata'] = orig def files_dropped(self, paths): @@ -150,7 +160,7 @@ class AddAction(InterfaceAction): from calibre.gui2.dialogs.add_from_isbn import AddFromISBN d = AddFromISBN(self.gui) if d.exec_() == d.Accepted: - self.add_isbns(d.isbns) + self.add_isbns(d.books) def add_books(self, *args): ''' diff --git a/src/calibre/gui2/actions/catalog.py b/src/calibre/gui2/actions/catalog.py index 77fa4755c1..a253664a1e 100644 --- a/src/calibre/gui2/actions/catalog.py +++ b/src/calibre/gui2/actions/catalog.py @@ -37,7 +37,8 @@ class GenerateCatalogAction(InterfaceAction): dbspec[id] = {'ondevice': db.ondevice(id, index_is_id=True)} # Calling gui2.tools:generate_catalog() - ret = generate_catalog(self.gui, dbspec, ids, self.gui.device_manager) + ret = generate_catalog(self.gui, dbspec, ids, self.gui.device_manager, + db) if ret is None: return diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py index 01babc8e67..eb5902be48 100644 --- a/src/calibre/gui2/actions/choose_library.py +++ b/src/calibre/gui2/actions/choose_library.py @@ -132,9 +132,9 @@ class CheckIntegrity(QProgressDialog): titles = [self.db.title(x, index_is_id=True) for x in bad] det_msg = '\n'.join(titles) warning_dialog(self, _('Some inconsistencies found'), - _('The following books had formats listed in the ' + _('The following books had formats or covers listed in the ' 'database that are not actually available. ' - 'The entries for the formats have been removed. ' + 'The entries for the formats/covers have been removed. ' 'You should check them manually. This can ' 'happen if you manipulate the files in the ' 'library folder directly.'), det_msg=det_msg, show=True) diff --git a/src/calibre/gui2/actions/convert.py b/src/calibre/gui2/actions/convert.py index 3828e9e1bf..821ebcd37f 100644 --- a/src/calibre/gui2/actions/convert.py +++ b/src/calibre/gui2/actions/convert.py @@ -165,6 +165,11 @@ class ConvertAction(InterfaceAction): if job.failed: self.gui.job_exception(job) return + fmtf = temp_files[-1].name + if os.stat(fmtf).st_size < 1: + raise Exception(_('Empty output file, ' + 'probably the conversion process crashed')) + data = open(temp_files[-1].name, 'rb') self.gui.library_view.model().db.add_format(book_id, \ fmt, data, index_is_id=True) diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index 9b3f2c5bb9..4a527d94d8 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en' import os from functools import partial -from PyQt4.Qt import Qt, QMenu +from PyQt4.Qt import Qt, QMenu, QModelIndex from calibre.gui2 import error_dialog, config from calibre.gui2.dialogs.metadata_single import MetadataSingleDialog @@ -16,6 +16,7 @@ from calibre.gui2.dialogs.metadata_bulk import MetadataBulkDialog from calibre.gui2.dialogs.confirm_delete import confirm from calibre.gui2.dialogs.tag_list_editor import TagListEditor from calibre.gui2.actions import InterfaceAction +from calibre.utils.icu import sort_key class EditMetadataAction(InterfaceAction): @@ -126,20 +127,40 @@ class EditMetadataAction(InterfaceAction): if bulk or (bulk is None and len(rows) > 1): return self.edit_bulk_metadata(checked) - def accepted(id): - self.gui.library_view.model().refresh_ids([id]) + row_list = [r.row() for r in rows] + current_row = 0 + changed = set([]) + db = self.gui.library_view.model().db - for row in rows: - self.gui.iactions['View'].metadata_view_id = self.gui.library_view.model().db.id(row.row()) - d = MetadataSingleDialog(self.gui, row.row(), - self.gui.library_view.model().db, - accepted_callback=accepted, - cancel_all=rows.index(row) < len(rows)-1) - d.view_format.connect(self.gui.iactions['View'].metadata_view_format) - d.exec_() - if d.cancel_all: + if len(row_list) == 1: + cr = row_list[0] + row_list = \ + list(range(self.gui.library_view.model().rowCount(QModelIndex()))) + current_row = row_list.index(cr) + + while True: + prev = next_ = None + if current_row > 0: + prev = db.title(row_list[current_row-1]) + if current_row < len(row_list) - 1: + next_ = db.title(row_list[current_row+1]) + + d = MetadataSingleDialog(self.gui, row_list[current_row], db, + prev=prev, next_=next_) + d.view_format.connect(lambda + fmt:self.gui.iactions['View'].view_format(row_list[current_row], + fmt)) + if d.exec_() != d.Accepted: + d.view_format.disconnect() break - if rows: + d.view_format.disconnect() + changed.add(d.id) + if d.row_delta == 0: + break + current_row += d.row_delta + + if changed: + self.gui.library_view.model().refresh_ids(list(changed)) current = self.gui.library_view.currentIndex() m = self.gui.library_view.model() if self.gui.cover_flow: @@ -162,9 +183,17 @@ class EditMetadataAction(InterfaceAction): return # Prevent the TagView from updating due to signals from the database self.gui.tags_view.blockSignals(True) + changed = False try: - changed = MetadataBulkDialog(self.gui, rows, - self.gui.library_view.model()).changed + current_tab = 0 + while True: + dialog = MetadataBulkDialog(self.gui, rows, + self.gui.library_view.model(), current_tab) + if dialog.changed: + changed = True + if not dialog.do_again: + break + current_tab = dialog.central_widget.currentIndex() finally: self.gui.tags_view.blockSignals(False) if changed: @@ -340,8 +369,7 @@ class EditMetadataAction(InterfaceAction): def edit_device_collections(self, view, oncard=None): model = view.model() result = model.get_collections_with_ids() - compare = (lambda x,y:cmp(x.lower(), y.lower())) - d = TagListEditor(self.gui, tag_to_match=None, data=result, compare=compare) + d = TagListEditor(self.gui, tag_to_match=None, data=result, key=sort_key) d.exec_() if d.result() == d.Accepted: to_rename = d.to_rename # dict of new text to old ids diff --git a/src/calibre/gui2/actions/preferences.py b/src/calibre/gui2/actions/preferences.py index d9957bd70d..be536ca4e4 100644 --- a/src/calibre/gui2/actions/preferences.py +++ b/src/calibre/gui2/actions/preferences.py @@ -5,7 +5,7 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' -from PyQt4.Qt import QIcon, QMenu +from PyQt4.Qt import QIcon, QMenu, Qt from calibre.gui2.actions import InterfaceAction from calibre.gui2.preferences.main import Preferences @@ -41,5 +41,7 @@ class PreferencesAction(InterfaceAction): return d = Preferences(self.gui, initial_plugin=initial_plugin) d.show() + d.run_wizard_requested.connect(self.gui.run_wizard, + type=Qt.QueuedConnection) diff --git a/src/calibre/gui2/actions/show_book_details.py b/src/calibre/gui2/actions/show_book_details.py index 18b0a694bf..67903a7d58 100644 --- a/src/calibre/gui2/actions/show_book_details.py +++ b/src/calibre/gui2/actions/show_book_details.py @@ -29,5 +29,6 @@ class ShowBookDetailsAction(InterfaceAction): return index = self.gui.library_view.currentIndex() if index.isValid(): - BookInfo(self.gui, self.gui.library_view, index).show() + BookInfo(self.gui, self.gui.library_view, index, + self.gui.iactions['View'].view_format_by_id).show() diff --git a/src/calibre/gui2/actions/similar_books.py b/src/calibre/gui2/actions/similar_books.py index 644cd3160a..b1ee04a4d4 100644 --- a/src/calibre/gui2/actions/similar_books.py +++ b/src/calibre/gui2/actions/similar_books.py @@ -58,6 +58,7 @@ class SimilarBooksAction(InterfaceAction): for a in authors.split(',')] join = ' or ' if search: - self.gui.search.set_search_string(join.join(search)) + self.gui.search.set_search_string(join.join(search), + store_in_history=True) diff --git a/src/calibre/gui2/actions/view.py b/src/calibre/gui2/actions/view.py index 5f4f7ce428..0910745ac9 100644 --- a/src/calibre/gui2/actions/view.py +++ b/src/calibre/gui2/actions/view.py @@ -12,7 +12,7 @@ from PyQt4.Qt import Qt, QMenu from calibre.constants import isosx from calibre.gui2 import error_dialog, Dispatcher, question_dialog, config, \ - open_local_file + open_local_file, info_dialog from calibre.gui2.dialogs.choose_format import ChooseFormatDialog from calibre.utils.config import prefs from calibre.ptempfile import PersistentTemporaryFile @@ -26,7 +26,6 @@ class ViewAction(InterfaceAction): def genesis(self): self.persistent_files = [] - self.metadata_view_id = None self.qaction.triggered.connect(self.view_book) self.view_menu = QMenu() self.view_menu.addAction(_('View'), partial(self.view_book, False)) @@ -51,14 +50,6 @@ class ViewAction(InterfaceAction): if fmt_path: self._view_file(fmt_path) - def metadata_view_format(self, fmt): - fmt_path = self.gui.library_view.model().db.\ - format_abspath(self.metadata_view_id, - fmt, index_is_id=True) - if fmt_path: - self._view_file(fmt_path) - - def book_downloaded_for_viewing(self, job): if job.failed: self.gui.device_job_exception(job) @@ -89,18 +80,34 @@ class ViewAction(InterfaceAction): self._launch_viewer(name, viewer, internal) def view_specific_format(self, triggered): - rows = self.gui.library_view.selectionModel().selectedRows() + rows = list(self.gui.library_view.selectionModel().selectedRows()) if not rows or len(rows) == 0: d = error_dialog(self.gui, _('Cannot view'), _('No book selected')) d.exec_() return - row = rows[0].row() - formats = self.gui.library_view.model().db.formats(row).upper().split(',') - d = ChooseFormatDialog(self.gui, _('Choose the format to view'), formats) + db = self.gui.library_view.model().db + rows = [r.row() for r in rows] + formats = [db.formats(row) for row in rows] + formats = [list(f.upper().split(',')) if f else None for f in formats] + all_fmts = set([]) + for x in formats: + for f in x: all_fmts.add(f) + d = ChooseFormatDialog(self.gui, _('Choose the format to view'), + list(sorted(all_fmts))) if d.exec_() == d.Accepted: - format = d.format() - self.view_format(row, format) + fmt = d.format() + orig_num = len(rows) + rows = [rows[i] for i in range(len(rows)) if formats[i] and fmt in + formats[i]] + if self._view_check(len(rows)): + for row in rows: + self.view_format(row, fmt) + if len(rows) < orig_num: + info_dialog(self.gui, _('Format unavailable'), + _('Not all the selected books were available in' + ' the %s format. You should convert' + ' them first.')%fmt, show=True) def _view_check(self, num, max_=3): if num <= max_: diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index 1339070446..5f41f3a8e0 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -427,11 +427,27 @@ class Saver(QObject): # {{{ if not self.ids or not self.worker.is_alive(): self.timer.stop() self.pd.hide() + while self.ids: + before = len(self.ids) + self.get_result() + if before == len(self.ids): + for i in list(self.ids): + self.failures.add(('id:%d'%i, 'Unknown error')) + self.ids.remove(i) + break if not self.callback_called: + try: + self.worker.join(1.5) + except: + pass # The worker was not yet started self.callback(self.worker.path, self.failures, self.worker.error) self.callback_called = True return + self.get_result() + + + def get_result(self): try: id, title, ok, tb = self.rq.get_nowait() except Empty: @@ -441,6 +457,7 @@ class Saver(QObject): # {{{ if not isinstance(title, unicode): title = str(title).decode(preferred_encoding, 'replace') self.pd.set_msg(_('Saved')+' '+title) + if not ok: self.failures.add((title, tb)) # }}} diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index e193fe10b2..5214f1a1d5 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -19,6 +19,7 @@ from calibre.ebooks import BOOK_EXTENSIONS from calibre.constants import preferred_encoding from calibre.library.comments import comments_to_html from calibre.gui2 import config, open_local_file +from calibre.utils.icu import sort_key # render_rows(data) {{{ WEIGHTS = collections.defaultdict(lambda : 100) @@ -31,8 +32,8 @@ WEIGHTS[_('Tags')] = 4 def render_rows(data): keys = data.keys() # First sort by name. The WEIGHTS sort will preserve this sub-order - keys.sort(cmp=lambda x, y: cmp(x.lower(), y.lower())) - keys.sort(cmp=lambda x, y: cmp(WEIGHTS[x], WEIGHTS[y])) + keys.sort(key=sort_key) + keys.sort(key=lambda x: WEIGHTS[x]) rows = [] for key in keys: txt = data[key] @@ -190,6 +191,10 @@ class BookInfo(QWebView): self.page().setLinkDelegationPolicy(self.page().DelegateAllLinks) self.linkClicked.connect(self.link_activated) self._link_clicked = False + self.setAttribute(Qt.WA_OpaquePaintEvent, False) + palette = self.palette() + palette.setBrush(QPalette.Base, Qt.transparent) + self.page().setPalette(palette) def link_activated(self, link): self._link_clicked = True @@ -204,22 +209,30 @@ class BookInfo(QWebView): rows = u'\n'.join([u'<tr><td valign="top"><b>%s:</b></td><td valign="top">%s</td></tr>'%(k,t) for k, t in rows]) comments = data.get(_('Comments'), '') - if comments and comments != u'None': - self.renderer.queue.put((rows, comments)) + if not comments or comments == u'None': + comments = '' + self.renderer.queue.put((rows, comments)) self._show_data(rows, '') def _show_data(self, rows, comments): + + def color_to_string(col): + ans = '#000000' + if col.isValid(): + col = col.toRgb() + if col.isValid(): + ans = unicode(col.name()) + return ans + f = QFontInfo(QApplication.font(self.parent())).pixelSize() - p = unicode(QApplication.palette().color(QPalette.Normal, - QPalette.Window).name()) - c = unicode(QApplication.palette().color(QPalette.Normal, - QPalette.WindowText).name()) + c = color_to_string(QApplication.palette().color(QPalette.Normal, + QPalette.WindowText)) templ = u'''\ <html> <head> <style type="text/css"> - body, td {background-color: %s; font-size: %dpx; color: %s } + body, td {background-color: transparent; font-size: %dpx; color: %s } a { text-decoration: none; color: blue } </style> </head> @@ -227,7 +240,7 @@ class BookInfo(QWebView): %%s </body> <html> - '''%(p, f, c) + '''%(f, c) if self.vertical: if comments: rows += u'<tr><td colspan="2">%s</td></tr>'%comments diff --git a/src/calibre/gui2/catalog/catalog_bibtex.py b/src/calibre/gui2/catalog/catalog_bibtex.py index 6bbe85833c..5030cf6ec8 100644 --- a/src/calibre/gui2/catalog/catalog_bibtex.py +++ b/src/calibre/gui2/catalog/catalog_bibtex.py @@ -34,7 +34,7 @@ class PluginWidget(QWidget, Ui_Form): self.all_fields.append(x) QListWidgetItem(x, self.db_fields) - def initialize(self, name): #not working properly to update + def initialize(self, name, db): #not working properly to update self.name = name fields = gprefs.get(name+'_db_fields', self.all_fields) # Restore the activated db_fields from last use diff --git a/src/calibre/gui2/catalog/catalog_csv_xml.py b/src/calibre/gui2/catalog/catalog_csv_xml.py index 7ccb5e017e..077d4cbbca 100644 --- a/src/calibre/gui2/catalog/catalog_csv_xml.py +++ b/src/calibre/gui2/catalog/catalog_csv_xml.py @@ -28,7 +28,7 @@ class PluginWidget(QWidget, Ui_Form): self.all_fields.append(x) QListWidgetItem(x, self.db_fields) - def initialize(self, name): + def initialize(self, name, db): self.name = name fields = gprefs.get(name+'_db_fields', self.all_fields) # Restore the activated fields from last use diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.py b/src/calibre/gui2/catalog/catalog_epub_mobi.py index ea4edb10b9..1ae4efd014 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.py +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.py @@ -7,10 +7,11 @@ __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' -from calibre.gui2 import gprefs -from catalog_epub_mobi_ui import Ui_Form from calibre.ebooks.conversion.config import load_defaults -from PyQt4.Qt import QWidget +from calibre.gui2 import gprefs + +from catalog_epub_mobi_ui import Ui_Form +from PyQt4.Qt import QWidget, QLineEdit class PluginWidget(QWidget,Ui_Form): @@ -23,7 +24,8 @@ class PluginWidget(QWidget,Ui_Form): ('generate_recently_added', True), ('note_tag','*'), ('numbers_as_text', False), - ('read_tag','+'), + ('read_pattern','+'), + ('read_source_field_cb','Tag'), ('wishlist_tag','Wishlist'), ] @@ -38,16 +40,54 @@ class PluginWidget(QWidget,Ui_Form): QWidget.__init__(self, parent) self.setupUi(self) - def initialize(self, name): + def initialize(self, name, db): self.name = name + + # Populate the 'Read book' source fields + all_custom_fields = db.custom_field_keys() + custom_fields = {} + custom_fields['Tag'] = {'field':'tag', 'datatype':u'text'} + for custom_field in all_custom_fields: + field_md = db.metadata_for_field(custom_field) + if field_md['datatype'] in ['bool','composite','datetime','text']: + custom_fields[field_md['name']] = {'field':custom_field, + 'datatype':field_md['datatype']} + + # Add the sorted eligible fields to the combo box + for cf in sorted(custom_fields): + self.read_source_field_cb.addItem(cf) + + self.read_source_fields = custom_fields + self.read_source_field_cb.currentIndexChanged.connect(self.read_source_field_changed) + # 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] in ['numbers_as_text','generate_titles','generate_series','generate_recently_added']: + if opt[0] in [ + 'generate_recently_added', + 'generate_series', + 'generate_titles', + 'numbers_as_text', + ]: getattr(self, opt[0]).setChecked(opt_value) + + # Combo box + elif opt[0] in ['read_source_field_cb']: + # Look for last-stored combo box value + index = self.read_source_field_cb.findText(opt_value) + if index == -1: + index = self.read_source_field_cb.findText('Tag') + self.read_source_field_cb.setCurrentIndex(index) + + # Text fields else: getattr(self, opt[0]).setText(opt_value) + # Init self.read_source_field + cs = unicode(self.read_source_field_cb.currentText()) + read_source_spec = self.read_source_fields[cs] + self.read_source_field = read_source_spec['field'] + def options(self): # Save/return the current options # exclude_genre stores literally @@ -55,16 +95,60 @@ class PluginWidget(QWidget,Ui_Form): # others store as lists opts_dict = {} for opt in self.OPTION_FIELDS: - if opt[0] in ['numbers_as_text','generate_titles','generate_series','generate_recently_added']: + # Save values to gprefs + if opt[0] in [ + 'generate_recently_added', + 'generate_series', + 'generate_titles', + 'numbers_as_text', + ]: opt_value = getattr(self,opt[0]).isChecked() + + # Combo box uses .currentText() + elif opt[0] in ['read_source_field_cb']: + opt_value = unicode(getattr(self, opt[0]).currentText()) + + # text fields use .text() else: opt_value = unicode(getattr(self, opt[0]).text()) gprefs.set(self.name + '_' + opt[0], opt_value) - if opt[0] in ['exclude_genre','numbers_as_text','generate_titles','generate_series','generate_recently_added']: + # Construct opts + if opt[0] in [ + 'exclude_genre', + 'generate_recently_added', + 'generate_series', + 'generate_titles', + 'numbers_as_text', + ]: opts_dict[opt[0]] = opt_value else: opts_dict[opt[0]] = opt_value.split(',') - opts_dict['output_profile'] = [load_defaults('page_setup')['output_profile']] + # Generate read_book_marker + opts_dict['read_book_marker'] = "%s:%s" % (self.read_source_field, self.read_pattern.text()) + + # Append the output profile + opts_dict['output_profile'] = [load_defaults('page_setup')['output_profile']] return opts_dict + + def read_source_field_changed(self,new_index): + ''' + Process changes in the read_source_field combo box + Currently using QLineEdit for all field types + Possible to modify to switch QWidget type + ''' + new_source = str(self.read_source_field_cb.currentText()) + read_source_spec = self.read_source_fields[str(new_source)] + self.read_source_field = read_source_spec['field'] + + # Change pattern input widget to match the source field datatype + if read_source_spec['datatype'] in ['bool','composite','datetime','text']: + if not isinstance(self.read_pattern, QLineEdit): + self.read_spec_hl.removeWidget(self.read_pattern) + dw = QLineEdit(self) + dw.setObjectName('read_pattern') + dw.setToolTip('Pattern for read book') + self.read_pattern = dw + self.read_spec_hl.addWidget(dw) + diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.ui b/src/calibre/gui2/catalog/catalog_epub_mobi.ui index 3956886c4a..d72566f581 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.ui +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>579</width> - <height>411</height> + <width>627</width> + <height>549</height> </rect> </property> <property name="windowTitle"> @@ -28,42 +28,28 @@ </property> </widget> </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>'Mark this book as read' tag:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="read_tag"> - <property name="toolTip"> - <string extracomment="Default: +"/> - </property> - </widget> - </item> - <item row="3" column="0"> + <item row="4" column="0"> <widget class="QLabel" name="label_4"> <property name="text"> <string>Additional note tag prefix:</string> </property> </widget> </item> - <item row="3" column="1"> + <item row="4" column="1"> <widget class="QLineEdit" name="note_tag"> <property name="toolTip"> <string extracomment="Default: *"/> </property> </widget> </item> - <item row="5" column="1"> + <item row="6" column="1"> <widget class="QLineEdit" name="exclude_genre"> <property name="toolTip"> <string extracomment="Default: \[[\w]*\]"/> </property> </widget> </item> - <item row="5" column="0"> + <item row="6" column="0"> <widget class="QLabel" name="label"> <property name="text"> <string>Regex pattern describing tags to exclude as genres:</string> @@ -76,7 +62,7 @@ </property> </widget> </item> - <item row="6" column="1"> + <item row="7" column="1"> <widget class="QLabel" name="label_6"> <property name="text"> <string>Regex tips: @@ -88,7 +74,7 @@ </property> </widget> </item> - <item row="7" column="0"> + <item row="8" column="0"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -101,44 +87,84 @@ </property> </spacer> </item> - <item row="9" column="0"> + <item row="10" column="0"> <widget class="QCheckBox" name="generate_titles"> <property name="text"> <string>Include 'Titles' Section</string> </property> </widget> </item> - <item row="11" column="0"> + <item row="12" column="0"> <widget class="QCheckBox" name="generate_recently_added"> <property name="text"> <string>Include 'Recently Added' Section</string> </property> </widget> </item> - <item row="12" column="0"> + <item row="13" column="0"> <widget class="QCheckBox" name="numbers_as_text"> <property name="text"> <string>Sort numbers as text</string> </property> </widget> </item> - <item row="10" column="0"> + <item row="11" column="0"> <widget class="QCheckBox" name="generate_series"> <property name="text"> <string>Include 'Series' Section</string> </property> </widget> </item> - <item row="2" column="1"> + <item row="3" column="1"> <widget class="QLineEdit" name="wishlist_tag"/> </item> - <item row="2" column="0"> + <item row="3" column="0"> <widget class="QLabel" name="label_5"> <property name="text"> <string>Wishlist tag:</string> </property> </widget> </item> + <item row="2" column="1"> + <layout class="QHBoxLayout" name="read_spec_hl"> + <property name="sizeConstraint"> + <enum>QLayout::SetMinimumSize</enum> + </property> + <item> + <widget class="QComboBox" name="read_source_field_cb"> + <property name="sizePolicy"> + <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Source column for read book</string> + </property> + <property name="statusTip"> + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="read_pattern"> + <property name="toolTip"> + <string>Pattern for read book</string> + </property> + <property name="statusTip"> + <string/> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Books marked as read:</string> + </property> + </widget> + </item> </layout> </widget> <resources/> diff --git a/src/calibre/gui2/convert/fb2_output.py b/src/calibre/gui2/convert/fb2_output.py index a3cbe0e647..6b1497a9db 100644 --- a/src/calibre/gui2/convert/fb2_output.py +++ b/src/calibre/gui2/convert/fb2_output.py @@ -17,6 +17,6 @@ class PluginWidget(Widget, Ui_Form): ICON = I('mimetypes/fb2.png') def __init__(self, parent, get_option, get_help, db=None, book_id=None): - Widget.__init__(self, parent, ['inline_toc', 'sectionize_chapters']) + Widget.__init__(self, parent, ['h1_to_title', 'h2_to_title', 'h3_to_title']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/fb2_output.ui b/src/calibre/gui2/convert/fb2_output.ui index a43a8b72ea..436719aed4 100644 --- a/src/calibre/gui2/convert/fb2_output.ui +++ b/src/calibre/gui2/convert/fb2_output.ui @@ -14,7 +14,7 @@ <string>Form</string> </property> <layout class="QGridLayout" name="gridLayout"> - <item row="2" column="0"> + <item row="3" column="0"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -28,16 +28,23 @@ </spacer> </item> <item row="0" column="0"> - <widget class="QCheckBox" name="opt_inline_toc"> + <widget class="QCheckBox" name="opt_h1_to_title"> <property name="text"> - <string>&Inline TOC</string> + <string>Wrap h1 tags with <title> elements</string> </property> </widget> </item> <item row="1" column="0"> - <widget class="QCheckBox" name="opt_sectionize_chapters"> + <widget class="QCheckBox" name="opt_h2_to_title"> <property name="text"> - <string>Sectionize Chapters (Use with care!)</string> + <string>Wrap h2 tags with <title> elements</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QCheckBox" name="opt_h3_to_title"> + <property name="text"> + <string>Wrap h3 tags with <title> elements</string> </property> </widget> </item> diff --git a/src/calibre/gui2/convert/metadata.py b/src/calibre/gui2/convert/metadata.py index 7a02cf4429..d3744bb614 100644 --- a/src/calibre/gui2/convert/metadata.py +++ b/src/calibre/gui2/convert/metadata.py @@ -17,6 +17,7 @@ from calibre.ebooks.metadata import authors_to_string, string_to_authors, \ from calibre.ebooks.metadata.opf2 import metadata_to_opf from calibre.ptempfile import PersistentTemporaryFile from calibre.gui2.convert import Widget +from calibre.utils.icu import sort_key def create_opf_file(db, book_id): mi = db.get_metadata(book_id, index_is_id=True) @@ -102,7 +103,7 @@ class MetadataWidget(Widget, Ui_Form): def initalize_authors(self): all_authors = self.db.all_authors() - all_authors.sort(cmp=lambda x, y : cmp(x[1], y[1])) + all_authors.sort(key=lambda x : sort_key(x[1])) for i in all_authors: id, name = i @@ -117,7 +118,7 @@ class MetadataWidget(Widget, Ui_Form): def initialize_series(self): all_series = self.db.all_series() - all_series.sort(cmp=lambda x, y : cmp(x[1], y[1])) + all_series.sort(key=lambda x : sort_key(x[1])) for i in all_series: id, name = i @@ -126,7 +127,7 @@ class MetadataWidget(Widget, Ui_Form): def initialize_publisher(self): all_publishers = self.db.all_publishers() - all_publishers.sort(cmp=lambda x, y : cmp(x[1], y[1])) + all_publishers.sort(key=lambda x : sort_key(x[1])) for i in all_publishers: id, name = i diff --git a/src/calibre/gui2/convert/pml_output.py b/src/calibre/gui2/convert/pml_output.py new file mode 100644 index 0000000000..61207d3de5 --- /dev/null +++ b/src/calibre/gui2/convert/pml_output.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- + +__license__ = 'GPL 3' +__copyright__ = '2009, John Schember <john@nachtimwald.com>' +__docformat__ = 'restructuredtext en' + +from calibre.gui2.convert.pmlz_output_ui import Ui_Form +from calibre.gui2.convert import Widget + +format_model = None + +class PluginWidget(Widget, Ui_Form): + + TITLE = _('PMLZ Output') + HELP = _('Options specific to')+' PMLZ '+_('output') + COMMIT_NAME = 'pmlz_output' + ICON = I('mimetypes/unknown.png') + + def __init__(self, parent, get_option, get_help, db=None, book_id=None): + Widget.__init__(self, parent, ['inline_toc', 'full_image_depth']) + self.db, self.book_id = db, book_id + self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/pmlz_output.ui b/src/calibre/gui2/convert/pmlz_output.ui new file mode 100644 index 0000000000..3573e14210 --- /dev/null +++ b/src/calibre/gui2/convert/pmlz_output.ui @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>300</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="2" column="0"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>246</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0"> + <widget class="QCheckBox" name="opt_inline_toc"> + <property name="text"> + <string>&Inline TOC</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="opt_full_image_depth"> + <property name="text"> + <string>Do not reduce image size and depth</string> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/src/calibre/gui2/convert/txt_output.py b/src/calibre/gui2/convert/txt_output.py index 8b2e131ec6..2fafad4b43 100644 --- a/src/calibre/gui2/convert/txt_output.py +++ b/src/calibre/gui2/convert/txt_output.py @@ -21,7 +21,7 @@ class PluginWidget(Widget, Ui_Form): def __init__(self, parent, get_option, get_help, db=None, book_id=None): Widget.__init__(self, parent, ['newline', 'max_line_length', 'force_max_line_length', - 'inline_toc']) + 'inline_toc', 'markdown_format', 'keep_links', 'keep_image_references']) self.db, self.book_id = db, book_id self.initialize_options(get_option, get_help, db, book_id) diff --git a/src/calibre/gui2/convert/txt_output.ui b/src/calibre/gui2/convert/txt_output.ui index 9eae5a8115..19e4ec52a1 100644 --- a/src/calibre/gui2/convert/txt_output.ui +++ b/src/calibre/gui2/convert/txt_output.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>400</width> + <width>477</width> <height>300</height> </rect> </property> @@ -27,7 +27,7 @@ <item row="0" column="1"> <widget class="QComboBox" name="opt_newline"/> </item> - <item row="4" column="0"> + <item row="7" column="0"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -67,6 +67,27 @@ </property> </widget> </item> + <item row="4" column="0"> + <widget class="QCheckBox" name="opt_markdown_format"> + <property name="text"> + <string>Apply Markdown formatting to text</string> + </property> + </widget> + </item> + <item row="5" column="0"> + <widget class="QCheckBox" name="opt_keep_links"> + <property name="text"> + <string>Do not remove links (<a> tags) before processing</string> + </property> + </widget> + </item> + <item row="6" column="0"> + <widget class="QCheckBox" name="opt_keep_image_references"> + <property name="text"> + <string>Do not remove image references before processing</string> + </property> + </widget> + </item> </layout> </widget> <resources/> diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py index 3103d7c459..5ab8bb6940 100644 --- a/src/calibre/gui2/custom_column_widgets.py +++ b/src/calibre/gui2/custom_column_widgets.py @@ -15,8 +15,9 @@ from PyQt4.Qt import QComboBox, QLabel, QSpinBox, QDoubleSpinBox, QDateEdit, \ from calibre.utils.date import qt_to_dt, now from calibre.gui2.widgets import TagsLineEdit, EnComboBox -from calibre.gui2 import UNDEFINED_QDATE +from calibre.gui2 import UNDEFINED_QDATE, error_dialog from calibre.utils.config import tweaks +from calibre.utils.icu import sort_key class Base(object): @@ -207,7 +208,7 @@ class Text(Base): def setup_ui(self, parent): values = self.all_values = list(self.db.all_custom(num=self.col_id)) - values.sort(cmp = lambda x,y: cmp(x.lower(), y.lower())) + values.sort(key=sort_key) if self.col_metadata['is_multiple']: w = TagsLineEdit(parent, values) w.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) @@ -256,7 +257,7 @@ class Series(Base): def setup_ui(self, parent): values = self.all_values = list(self.db.all_custom(num=self.col_id)) - values.sort(cmp = lambda x,y: cmp(x.lower(), y.lower())) + values.sort(key=sort_key) w = EnComboBox(parent) w.setSizeAdjustPolicy(w.AdjustToMinimumContentsLengthWithIcon) w.setMinimumContentsLength(25) @@ -310,6 +311,49 @@ class Series(Base): self.db.set_custom(book_id, val, extra=s_index, num=self.col_id, notify=notify, commit=False) +class Enumeration(Base): + + def setup_ui(self, parent): + self.parent = parent + self.widgets = [QLabel('&'+self.col_metadata['name']+':', parent), + QComboBox(parent)] + w = self.widgets[1] + vals = self.col_metadata['display']['enum_values'] + w.addItem('') + for v in vals: + w.addItem(v) + + def initialize(self, book_id): + val = self.db.get_custom(book_id, num=self.col_id, index_is_id=True) + val = self.normalize_db_val(val) + self.initial_val = val + idx = self.widgets[1].findText(val) + if idx < 0: + error_dialog(self.parent, '', + _('The enumeration "{0}" contains an invalid value ' + 'that will be set to the default').format( + self.col_metadata['name']), + show=True, show_copy_button=False) + + idx = 0 + self.widgets[1].setCurrentIndex(idx) + + def setter(self, val): + self.widgets[1].setCurrentIndex(self.widgets[1].findText(val)) + + def getter(self): + return unicode(self.widgets[1].currentText()) + + def normalize_db_val(self, val): + if val is None: + val = '' + return val + + def normalize_ui_val(self, val): + if not val: + val = None + return val + widgets = { 'bool' : Bool, 'rating' : Rating, @@ -319,13 +363,13 @@ widgets = { 'text' : Text, 'comments': Comments, 'series': Series, + 'enumeration': Enumeration } -def field_sort(y, z, x=None): - m1, m2 = x[y], x[z] +def field_sort_key(y, x=None): + m1 = x[y] n1 = 'zzzzz' if m1['datatype'] == 'comments' else m1['name'] - n2 = 'zzzzz' if m2['datatype'] == 'comments' else m2['name'] - return cmp(n1.lower(), n2.lower()) + return sort_key(n1) def populate_metadata_page(layout, db, book_id, bulk=False, two_column=False, parent=None): def widget_factory(type, col): @@ -337,7 +381,7 @@ def populate_metadata_page(layout, db, book_id, bulk=False, two_column=False, pa return w x = db.custom_column_num_map cols = list(x) - cols.sort(cmp=partial(field_sort, x=x)) + cols.sort(key=partial(field_sort_key, x=x)) count_non_comment = len([c for c in cols if x[c]['datatype'] != 'comments']) layout.setColumnStretch(1, 10) @@ -437,7 +481,7 @@ class BulkBool(BulkBase, Bool): if tweaks['bool_custom_columns_are_tristate'] == 'no' and val is None: val = False if value is not None and value != val: - return None + return 'nochange' value = val return value @@ -445,19 +489,23 @@ class BulkBool(BulkBase, Bool): self.widgets = [QLabel('&'+self.col_metadata['name']+':', parent), QComboBox(parent)] w = self.widgets[1] - items = [_('Yes'), _('No'), _('Undefined')] - icons = [I('ok.png'), I('list_remove.png'), I('blank.png')] + items = [_('Yes'), _('No'), _('Undefined'), _('Do not change')] + icons = [I('ok.png'), I('list_remove.png'), I('blank.png'), I('blank.png')] for icon, text in zip(icons, items): w.addItem(QIcon(icon), text) + def getter(self): + val = self.widgets[1].currentIndex() + return {3: 'nochange', 2: None, 1: False, 0: True}[val] + def setter(self, val): - val = {None: 2, False: 1, True: 0}[val] + val = {'nochange': 3, None: 2, False: 1, True: 0}[val] self.widgets[1].setCurrentIndex(val) def commit(self, book_ids, notify=False): val = self.gui_val val = self.normalize_ui_val(val) - if val != self.initial_val: + if val != self.initial_val and val != 'nochange': if tweaks['bool_custom_columns_are_tristate'] == 'no' and val is None: val = False self.db.set_custom_bulk(book_ids, val, num=self.col_id, notify=notify) @@ -478,7 +526,7 @@ class BulkSeries(BulkBase): def setup_ui(self, parent): values = self.all_values = list(self.db.all_custom(num=self.col_id)) - values.sort(cmp = lambda x,y: cmp(x.lower(), y.lower())) + values.sort(key=sort_key) w = EnComboBox(parent) w.setSizeAdjustPolicy(w.AdjustToMinimumContentsLengthWithIcon) w.setMinimumContentsLength(25) @@ -547,6 +595,61 @@ class BulkSeries(BulkBase): self.db.set_custom_bulk(book_ids, val, extras=extras, num=self.col_id, notify=notify) +class BulkEnumeration(BulkBase, Enumeration): + + def get_initial_value(self, book_ids): + value = None + ret_value = None + dialog_shown = False + for book_id in book_ids: + val = self.db.get_custom(book_id, num=self.col_id, index_is_id=True) + if val and val not in self.col_metadata['display']['enum_values']: + if not dialog_shown: + error_dialog(self.parent, '', + _('The enumeration "{0}" contains invalid values ' + 'that will not appear in the list').format( + self.col_metadata['name']), + show=True, show_copy_button=False) + dialog_shown = True + ret_value = ' nochange ' + elif value is not None and value != val: + ret_value = ' nochange ' + value = val + if ret_value is None: + return value + return ret_value + + def setup_ui(self, parent): + self.parent = parent + self.widgets = [QLabel('&'+self.col_metadata['name']+':', parent), + QComboBox(parent)] + w = self.widgets[1] + vals = self.col_metadata['display']['enum_values'] + w.addItem('Do Not Change') + w.addItem('') + for v in vals: + w.addItem(v) + + def getter(self): + if self.widgets[1].currentIndex() == 0: + return ' nochange ' + return unicode(self.widgets[1].currentText()) + + def setter(self, val): + if val == ' nochange ': + self.widgets[1].setCurrentIndex(0) + else: + if val is None: + self.widgets[1].setCurrentIndex(1) + else: + self.widgets[1].setCurrentIndex(self.widgets[1].findText(val)) + + def commit(self, book_ids, notify=False): + val = self.gui_val + val = self.normalize_ui_val(val) + if val != self.initial_val and val != ' nochange ': + self.db.set_custom_bulk(book_ids, val, num=self.col_id, notify=notify) + class RemoveTags(QWidget): def __init__(self, parent, values): @@ -575,7 +678,7 @@ class BulkText(BulkBase): def setup_ui(self, parent): values = self.all_values = list(self.db.all_custom(num=self.col_id)) - values.sort(cmp = lambda x,y: cmp(x.lower(), y.lower())) + values.sort(key=sort_key) if self.col_metadata['is_multiple']: w = TagsLineEdit(parent, values) w.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) @@ -652,4 +755,5 @@ bulk_widgets = { 'datetime': BulkDateTime, 'text' : BulkText, 'series': BulkSeries, + 'enumeration': BulkEnumeration, } diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index 8d84f69249..008649f534 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -3,11 +3,8 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>' # Imports {{{ -import os, traceback, Queue, time, socket, cStringIO, re, sys -from threading import Thread, RLock -from itertools import repeat -from functools import partial -from binascii import unhexlify +import os, traceback, Queue, time, cStringIO, re, sys +from threading import Thread from PyQt4.Qt import QMenu, QAction, QActionGroup, QIcon, SIGNAL, \ Qt, pyqtSignal, QDialog, QMessageBox @@ -20,14 +17,11 @@ from calibre.gui2.dialogs.choose_format import ChooseFormatDialog from calibre.utils.ipc.job import BaseJob from calibre.devices.scanner import DeviceScanner from calibre.gui2 import config, error_dialog, Dispatcher, dynamic, \ - warning_dialog, \ - question_dialog, info_dialog, choose_dir + warning_dialog, info_dialog, choose_dir from calibre.ebooks.metadata import authors_to_string from calibre import preferred_encoding, prints, force_unicode from calibre.utils.filenames import ascii_filename from calibre.devices.errors import FreeSpaceError -from calibre.utils.smtp import compose_mail, sendmail, extract_email_address, \ - config as email_config from calibre.devices.apple.driver import ITUNES_ASYNC from calibre.devices.folder_device.driver import FOLDER_DEVICE from calibre.ebooks.metadata.meta import set_metadata @@ -592,64 +586,6 @@ class DeviceMenu(QMenu): # {{{ # }}} -class Emailer(Thread): # {{{ - - def __init__(self, timeout=60): - Thread.__init__(self) - self.setDaemon(True) - self.job_lock = RLock() - self.jobs = [] - self._run = True - self.timeout = timeout - - def run(self): - while self._run: - job = None - with self.job_lock: - if self.jobs: - job = self.jobs[0] - self.jobs = self.jobs[1:] - if job is not None: - self._send_mails(*job) - time.sleep(1) - - def stop(self): - self._run = False - - def send_mails(self, jobnames, callback, attachments, to_s, subjects, - texts, attachment_names): - job = (jobnames, callback, attachments, to_s, subjects, texts, - attachment_names) - with self.job_lock: - self.jobs.append(job) - - def _send_mails(self, jobnames, callback, attachments, - to_s, subjects, texts, attachment_names): - opts = email_config().parse() - opts.verbose = 3 if os.environ.get('CALIBRE_DEBUG_EMAIL', False) else 0 - from_ = opts.from_ - if not from_: - from_ = 'calibre <calibre@'+socket.getfqdn()+'>' - results = [] - for i, jobname in enumerate(jobnames): - try: - msg = compose_mail(from_, to_s[i], texts[i], subjects[i], - open(attachments[i], 'rb'), - attachment_name = attachment_names[i]) - efrom, eto = map(extract_email_address, (from_, to_s[i])) - eto = [eto] - sendmail(msg, efrom, eto, localhost=None, - verbose=opts.verbose, - timeout=self.timeout, relay=opts.relay_host, - username=opts.relay_username, - password=unhexlify(opts.relay_password), port=opts.relay_port, - encryption=opts.encryption) - results.append([jobname, None, None]) - except Exception, e: - results.append([jobname, e, traceback.format_exc()]) - callback(results) - - # }}} class DeviceMixin(object): # {{{ @@ -657,14 +593,22 @@ class DeviceMixin(object): # {{{ self.device_error_dialog = error_dialog(self, _('Error'), _('Error communicating with device'), ' ') self.device_error_dialog.setModal(Qt.NonModal) - self.emailer = Emailer() - self.emailer.start() self.device_manager = DeviceManager(Dispatcher(self.device_detected), self.job_manager, Dispatcher(self.status_bar.show_message)) self.device_manager.start() if tweaks['auto_connect_to_folder']: self.connect_to_folder_named(tweaks['auto_connect_to_folder']) + def auto_convert_question(self, msg, autos): + autos = u'\n'.join(map(unicode, map(force_unicode, autos))) + return self.ask_a_yes_no_question( + _('No suitable formats'), msg, + buttons=QMessageBox.Yes|QMessageBox.Cancel, + ans_when_user_unavailable=True, + det_msg=autos, + show_copy_button=False + ) + def set_default_thumbnail(self, height): img = I('book.png', data=True) self.default_thumbnail = thumbnail(img, height, height) @@ -902,126 +846,6 @@ class DeviceMixin(object): # {{{ fmts = [x.strip().lower() for x in fmts.split(',')] self.send_by_mail(to, fmts, delete) - def send_by_mail(self, to, fmts, delete_from_library, send_ids=None, - do_auto_convert=True, specific_format=None): - ids = [self.library_view.model().id(r) for r in self.library_view.selectionModel().selectedRows()] if send_ids is None else send_ids - if not ids or len(ids) == 0: - return - files, _auto_ids = self.library_view.model().get_preferred_formats_from_ids(ids, - fmts, set_metadata=True, - specific_format=specific_format, - exclude_auto=do_auto_convert) - if do_auto_convert: - nids = list(set(ids).difference(_auto_ids)) - ids = [i for i in ids if i in nids] - else: - _auto_ids = [] - - full_metadata = self.library_view.model().metadata_for(ids) - - bad, remove_ids, jobnames = [], [], [] - texts, subjects, attachments, attachment_names = [], [], [], [] - for f, mi, id in zip(files, full_metadata, ids): - t = mi.title - if not t: - t = _('Unknown') - if f is None: - bad.append(t) - else: - remove_ids.append(id) - jobnames.append(u'%s:%s'%(id, t)) - attachments.append(f) - subjects.append(_('E-book:')+ ' '+t) - a = authors_to_string(mi.authors if mi.authors else \ - [_('Unknown')]) - texts.append(_('Attached, you will find the e-book') + \ - '\n\n' + t + '\n\t' + _('by') + ' ' + a + '\n\n' + \ - _('in the %s format.') % - os.path.splitext(f)[1][1:].upper()) - prefix = ascii_filename(t+' - '+a) - if not isinstance(prefix, unicode): - prefix = prefix.decode(preferred_encoding, 'replace') - attachment_names.append(prefix + os.path.splitext(f)[1]) - remove = remove_ids if delete_from_library else [] - - to_s = list(repeat(to, len(attachments))) - if attachments: - self.emailer.send_mails(jobnames, - Dispatcher(partial(self.emails_sent, remove=remove)), - attachments, to_s, subjects, texts, attachment_names) - self.status_bar.show_message(_('Sending email to')+' '+to, 3000) - - auto = [] - if _auto_ids != []: - for id in _auto_ids: - if specific_format == None: - formats = [f.lower() for f in self.library_view.model().db.formats(id, index_is_id=True).split(',')] - formats = formats if formats != None else [] - if list(set(formats).intersection(available_input_formats())) != [] and list(set(fmts).intersection(available_output_formats())) != []: - auto.append(id) - else: - bad.append(self.library_view.model().db.title(id, index_is_id=True)) - else: - if specific_format in list(set(fmts).intersection(set(available_output_formats()))): - auto.append(id) - else: - bad.append(self.library_view.model().db.title(id, index_is_id=True)) - - if auto != []: - format = specific_format if specific_format in list(set(fmts).intersection(set(available_output_formats()))) else None - if not format: - for fmt in fmts: - if fmt in list(set(fmts).intersection(set(available_output_formats()))): - format = fmt - break - if format is None: - bad += auto - else: - autos = [self.library_view.model().db.title(id, index_is_id=True) for id in auto] - autos = '\n'.join('%s'%i for i in autos) - if question_dialog(self, _('No suitable formats'), - _('Auto convert the following books before sending via ' - 'email?'), det_msg=autos, - buttons=QMessageBox.Yes|QMessageBox.Cancel): - self.iactions['Convert Books'].auto_convert_mail(to, fmts, delete_from_library, auto, format) - - if bad: - bad = '\n'.join('%s'%(i,) for i in bad) - d = warning_dialog(self, _('No suitable formats'), - _('Could not email the following books ' - 'as no suitable formats were found:'), bad) - d.exec_() - - def emails_sent(self, results, remove=[]): - errors, good = [], [] - for jobname, exception, tb in results: - title = jobname.partition(':')[-1] - if exception is not None: - errors.append(list(map(force_unicode, [title, exception, tb]))) - else: - good.append(title) - if errors: - errors = u'\n'.join([ - u'%s\n\n%s\n%s\n' % - (title, e, tb) for \ - title, e, tb in errors - ]) - error_dialog(self, _('Failed to email books'), - _('Failed to email the following books:'), - '%s'%errors, show=True - ) - else: - self.status_bar.show_message(_('Sent by email:') + ', '.join(good), - 5000) - if remove: - try: - self.library_view.model().delete_books_by_id(remove) - except: - # Probably the user deleted the files, in any case, failing - # to delete the book is not catastrophic - traceback.print_exc() - - def cover_to_thumbnail(self, data): ht = self.device_manager.device.THUMBNAIL_HEIGHT \ if self.device_manager else DevicePlugin.THUMBNAIL_HEIGHT @@ -1030,36 +854,6 @@ class DeviceMixin(object): # {{{ except: pass - def email_news(self, id): - opts = email_config().parse() - accounts = [(account, [x.strip().lower() for x in x[0].split(',')]) - for account, x in opts.accounts.items() if x[1]] - sent_mails = [] - for account, fmts in accounts: - files, auto = self.library_view.model().\ - get_preferred_formats_from_ids([id], fmts) - files = [f for f in files if f is not None] - if not files: - continue - attachment = files[0] - mi = self.library_view.model().db.get_metadata(id, - index_is_id=True) - to_s = [account] - subjects = [_('News:')+' '+mi.title] - texts = [_('Attached is the')+' '+mi.title] - attachment_names = [ascii_filename(mi.title)+os.path.splitext(attachment)[1]] - attachments = [attachment] - jobnames = ['%s:%s'%(id, mi.title)] - remove = [id] if config['delete_news_from_library_on_upload']\ - else [] - self.emailer.send_mails(jobnames, - Dispatcher(partial(self.emails_sent, remove=remove)), - attachments, to_s, subjects, texts, attachment_names) - sent_mails.append(to_s[0]) - if sent_mails: - self.status_bar.show_message(_('Sent news to')+' '+\ - ', '.join(sent_mails), 3000) - def sync_catalogs(self, send_ids=None, do_auto_convert=True): if self.device_connected: settings = self.device_manager.device.settings() @@ -1085,11 +879,9 @@ class DeviceMixin(object): # {{{ break if format is not None: autos = [self.library_view.model().db.title(id, index_is_id=True) for id in auto] - autos = '\n'.join('%s'%i for i in autos) - if question_dialog(self, _('No suitable formats'), + if self.auto_convert_question( _('Auto convert the following books before uploading to ' - 'the device?'), det_msg=autos, - buttons=QMessageBox.Yes|QMessageBox.Cancel): + 'the device?'), autos): self.iactions['Convert Books'].auto_convert_catalogs(auto, format) files = [f for f in files if f is not None] if not files: @@ -1170,11 +962,9 @@ class DeviceMixin(object): # {{{ break if format is not None: autos = [self.library_view.model().db.title(id, index_is_id=True) for id in auto] - autos = '\n'.join('%s'%i for i in autos) - if question_dialog(self, _('No suitable formats'), + if self.auto_convert_question( _('Auto convert the following books before uploading to ' - 'the device?'), det_msg=autos, - buttons=QMessageBox.Yes|QMessageBox.Cancel): + 'the device?'), autos): self.iactions['Convert Books'].auto_convert_news(auto, format) files = [f for f in files if f is not None] for f in files: @@ -1289,11 +1079,9 @@ class DeviceMixin(object): # {{{ bad += auto else: autos = [self.library_view.model().db.title(id, index_is_id=True) for id in auto] - autos = '\n'.join('%s'%i for i in autos) - if question_dialog(self, _('No suitable formats'), + if self.auto_convert_question( _('Auto convert the following books before uploading to ' - 'the device?'), det_msg=autos, - buttons=QMessageBox.Yes|QMessageBox.Cancel): + 'the device?'), autos): self.iactions['Convert Books'].auto_convert(auto, on_card, format) if bad: diff --git a/src/calibre/gui2/dialogs/add_from_isbn.py b/src/calibre/gui2/dialogs/add_from_isbn.py index a7bd578d61..f93cddecd5 100644 --- a/src/calibre/gui2/dialogs/add_from_isbn.py +++ b/src/calibre/gui2/dialogs/add_from_isbn.py @@ -5,10 +5,13 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' +import os + from PyQt4.Qt import QDialog, QApplication from calibre.gui2.dialogs.add_from_isbn_ui import Ui_Dialog from calibre.ebooks.metadata import check_isbn +from calibre.constants import iswindows class AddFromISBN(QDialog, Ui_Dialog): @@ -16,7 +19,12 @@ class AddFromISBN(QDialog, Ui_Dialog): QDialog.__init__(self, parent) self.setupUi(self) + path = r'C:\Users\kovid\e-books\some_book.epub' if iswindows else \ + '/Users/kovid/e-books/some_book.epub' + self.label.setText(unicode(self.label.text())%path) + self.isbns = [] + self.books = [] self.paste_button.clicked.connect(self.paste) def paste(self, *args): @@ -30,11 +38,24 @@ class AddFromISBN(QDialog, Ui_Dialog): def accept(self, *args): for line in unicode(self.isbn_box.toPlainText()).strip().splitlines(): - if line: - isbn = check_isbn(line) - if isbn is not None: - isbn = isbn.upper() - if isbn not in self.isbns: - self.isbns.append(isbn) + line = line.strip() + if not line: + continue + parts = line.split('>>') + if len(parts) > 2: + parts = [parts[0] + '>>'.join(parts[1:])] + parts = [x.strip() for x in parts] + if not parts[0]: + continue + isbn = check_isbn(parts[0]) + if isbn is not None: + isbn = isbn.upper() + if isbn not in self.isbns: + self.isbns.append(isbn) + book = {'isbn': isbn, 'path': None} + if len(parts) > 1 and parts[1] and \ + os.access(parts[1], os.R_OK) and os.path.isfile(parts[1]): + book['path'] = parts[1] + self.books.append(book) QDialog.accept(self, *args) diff --git a/src/calibre/gui2/dialogs/add_from_isbn.ui b/src/calibre/gui2/dialogs/add_from_isbn.ui index ef4a4ebb8f..e37c4ed769 100644 --- a/src/calibre/gui2/dialogs/add_from_isbn.ui +++ b/src/calibre/gui2/dialogs/add_from_isbn.ui @@ -24,7 +24,10 @@ <item row="0" column="1"> <widget class="QLabel" name="label"> <property name="text"> - <string><p>Enter a list of ISBNs in the box to the left, one per line. calibre will automatically create entries for books based on the ISBN and download metadata and covers for them.<p>Any invalid ISBNs in the list will be ignored.</string> + <string><p>Enter a list of ISBNs in the box to the left, one per line. calibre will automatically create entries for books based on the ISBN and download metadata and covers for them.</p> +<p>Any invalid ISBNs in the list will be ignored.</p> +<p>You can also specify a file that will be added with each ISBN. To do this enter the full path to the file after a <code>>></code>. For example:</p> +<p><code>9788842915232 >> %s</code></p></string> </property> <property name="wordWrap"> <bool>true</bool> diff --git a/src/calibre/gui2/dialogs/book_info.py b/src/calibre/gui2/dialogs/book_info.py index 4cbe0ace7f..df21314712 100644 --- a/src/calibre/gui2/dialogs/book_info.py +++ b/src/calibre/gui2/dialogs/book_info.py @@ -15,12 +15,13 @@ from calibre.library.comments import comments_to_html class BookInfo(QDialog, Ui_BookInfo): - def __init__(self, parent, view, row): + def __init__(self, parent, view, row, view_func): QDialog.__init__(self, parent) Ui_BookInfo.__init__(self) self.setupUi(self) self.cover_pixmap = None self.comments.sizeHint = self.comments_size_hint + self.view_func = view_func desktop = QCoreApplication.instance().desktop() screen_height = desktop.availableGeometry().height() - 100 @@ -58,10 +59,7 @@ class BookInfo(QDialog, Ui_BookInfo): if os.sep in path: open_local_file(path) else: - path = self.view.model().db.format_abspath(self.current_row, path) - if path is not None: - open_local_file(path) - + self.view_func(self.view.model().id(self.current_row), path) def next(self): row = self.view.currentIndex().row() diff --git a/src/calibre/gui2/dialogs/catalog.py b/src/calibre/gui2/dialogs/catalog.py index f8e0f83746..7bb288ed20 100644 --- a/src/calibre/gui2/dialogs/catalog.py +++ b/src/calibre/gui2/dialogs/catalog.py @@ -19,7 +19,7 @@ from calibre.customize.ui import catalog_plugins class Catalog(QDialog, Ui_Dialog): ''' Catalog Dialog builder''' - def __init__(self, parent, dbspec, ids): + def __init__(self, parent, dbspec, ids, db): import re, cStringIO from calibre import prints as info from PyQt4.uic import compileUi @@ -51,7 +51,7 @@ class Catalog(QDialog, Ui_Dialog): catalog_widget = __import__('calibre.gui2.catalog.'+name, fromlist=[1]) pw = catalog_widget.PluginWidget() - pw.initialize(name) + pw.initialize(name, db) pw.ICON = I('forward.png') self.widgets.append(pw) [self.fmts.append([file_type.upper(), pw.sync_enabled,pw]) for file_type in plugin.file_types] diff --git a/src/calibre/gui2/dialogs/check_library.py b/src/calibre/gui2/dialogs/check_library.py index 55cd91dcd3..c00ee99cc0 100644 --- a/src/calibre/gui2/dialogs/check_library.py +++ b/src/calibre/gui2/dialogs/check_library.py @@ -32,23 +32,30 @@ class CheckLibraryDialog(QDialog): self.log.itemChanged.connect(self.item_changed) self._layout.addWidget(self.log) - self.check = QPushButton(_('&Run the check')) - self.check.setDefault(False) - self.check.clicked.connect(self.run_the_check) - self.copy = QPushButton(_('Copy &to clipboard')) - self.copy.setDefault(False) - self.copy.clicked.connect(self.copy_to_clipboard) - self.ok = QPushButton('&Done') - self.ok.setDefault(True) - self.ok.clicked.connect(self.accept) - self.delete = QPushButton('Delete &marked') - self.delete.setDefault(False) - self.delete.clicked.connect(self.delete_marked) + self.check_button = QPushButton(_('&Run the check')) + self.check_button.setDefault(False) + self.check_button.clicked.connect(self.run_the_check) + self.copy_button = QPushButton(_('Copy &to clipboard')) + self.copy_button.setDefault(False) + self.copy_button.clicked.connect(self.copy_to_clipboard) + self.ok_button = QPushButton('&Done') + self.ok_button.setDefault(True) + self.ok_button.clicked.connect(self.accept) + self.delete_button = QPushButton('Delete &marked') + self.delete_button.setToolTip(_('Delete marked files (checked subitems)')) + self.delete_button.setDefault(False) + self.delete_button.clicked.connect(self.delete_marked) + self.fix_button = QPushButton('&Fix marked') + self.fix_button.setDefault(False) + self.fix_button.setEnabled(False) + self.fix_button.setToolTip(_('Fix marked sections (checked fixable items)')) + self.fix_button.clicked.connect(self.fix_items) self.bbox = QDialogButtonBox(self) - self.bbox.addButton(self.check, QDialogButtonBox.ActionRole) - self.bbox.addButton(self.delete, QDialogButtonBox.ActionRole) - self.bbox.addButton(self.copy, QDialogButtonBox.ActionRole) - self.bbox.addButton(self.ok, QDialogButtonBox.AcceptRole) + self.bbox.addButton(self.check_button, QDialogButtonBox.ActionRole) + self.bbox.addButton(self.delete_button, QDialogButtonBox.ActionRole) + self.bbox.addButton(self.fix_button, QDialogButtonBox.ActionRole) + self.bbox.addButton(self.copy_button, QDialogButtonBox.ActionRole) + self.bbox.addButton(self.ok_button, QDialogButtonBox.AcceptRole) h = QHBoxLayout() ln = QLabel(_('Names to ignore:')) @@ -93,12 +100,19 @@ class CheckLibraryDialog(QDialog): plaintext = [] def builder(tree, checker, check): - attr, h, checkable = check + attr, h, checkable, fixable = check list = getattr(checker, attr, None) if list is None: return - tl = Item([h]) + tl = Item() + tl.setText(0, h) + if fixable: + tl.setText(1, _('(fixable)')) + tl.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) + tl.setCheckState(1, False) + self.top_level_items[attr] = tl + for problem in list: it = Item() if checkable: @@ -107,6 +121,7 @@ class CheckLibraryDialog(QDialog): else: it.setFlags(Qt.ItemIsEnabled) it.setText(0, problem[0]) + it.setData(0, Qt.UserRole, problem[2]) it.setText(1, problem[1]) tl.addChild(it) self.all_items.append(it) @@ -118,18 +133,25 @@ class CheckLibraryDialog(QDialog): t.setColumnCount(2); t.setHeaderLabels([_('Name'), _('Path from library')]) self.all_items = [] + self.top_level_items = {} for check in CHECKS: builder(t, checker, check) t.setColumnWidth(0, 200) t.setColumnWidth(1, 400) - self.delete.setEnabled(False) + self.delete_button.setEnabled(False) self.text_results = '\n'.join(plaintext) def item_changed(self, item, column): + self.fix_button.setEnabled(False) + for it in self.top_level_items.values(): + if it.checkState(1): + self.fix_button.setEnabled(True) + + self.delete_button.setEnabled(False) for it in self.all_items: if it.checkState(1): - self.delete.setEnabled(True) + self.delete_button.setEnabled(True) return def delete_marked(self): @@ -157,6 +179,33 @@ class CheckLibraryDialog(QDialog): unicode(it.text(1)))) self.run_the_check() + def fix_missing_covers(self): + tl = self.top_level_items['missing_covers'] + child_count = tl.childCount() + for i in range(0, child_count): + item = tl.child(i); + id = item.data(0, Qt.UserRole).toInt()[0] + self.db.set_has_cover(id, False) + + def fix_extra_covers(self): + tl = self.top_level_items['extra_covers'] + child_count = tl.childCount() + for i in range(0, child_count): + item = tl.child(i); + id = item.data(0, Qt.UserRole).toInt()[0] + self.db.set_has_cover(id, True) + + def fix_items(self): + for check in CHECKS: + attr = check[0] + fixable = check[3] + tl = self.top_level_items[attr] + if fixable and tl.checkState(1): + func = getattr(self, 'fix_' + attr, None) + if func is not None and callable(func): + func() + self.run_the_check() + def copy_to_clipboard(self): QApplication.clipboard().setText(self.text_results) diff --git a/src/calibre/gui2/dialogs/fetch_metadata.py b/src/calibre/gui2/dialogs/fetch_metadata.py index 6ee9cd9a96..3da0e67e3d 100644 --- a/src/calibre/gui2/dialogs/fetch_metadata.py +++ b/src/calibre/gui2/dialogs/fetch_metadata.py @@ -9,12 +9,12 @@ from threading import Thread from PyQt4.QtCore import Qt, QObject, SIGNAL, QVariant, pyqtSignal, \ QAbstractTableModel, QCoreApplication, QTimer -from PyQt4.QtGui import QDialog, QItemSelectionModel +from PyQt4.QtGui import QDialog, QItemSelectionModel, QIcon from calibre.gui2.dialogs.fetch_metadata_ui import Ui_FetchMetadata from calibre.gui2 import error_dialog, NONE, info_dialog, config from calibre.gui2.widgets import ProgressIndicator -from calibre import strftime +from calibre import strftime, force_unicode from calibre.customize.ui import get_isbndb_key, set_isbndb_key _hung_fetchers = set([]) @@ -42,13 +42,14 @@ class Matches(QAbstractTableModel): def __init__(self, matches): self.matches = matches + self.yes_icon = QVariant(QIcon(I('ok.png'))) QAbstractTableModel.__init__(self) def rowCount(self, *args): return len(self.matches) def columnCount(self, *args): - return 6 + return 8 def headerData(self, section, orientation, role): if role != Qt.DisplayRole: @@ -61,6 +62,8 @@ class Matches(QAbstractTableModel): elif section == 3: text = _("Publisher") elif section == 4: text = _("ISBN") elif section == 5: text = _("Published") + elif section == 6: text = _("Has Cover") + elif section == 7: text = _("Has Summary") return QVariant(text) else: @@ -71,8 +74,8 @@ class Matches(QAbstractTableModel): def data(self, index, role): row, col = index.row(), index.column() + book = self.matches[row] if role == Qt.DisplayRole: - book = self.matches[row] res = None if col == 0: res = book.title @@ -90,6 +93,11 @@ class Matches(QAbstractTableModel): if not res: return NONE return QVariant(res) + elif role == Qt.DecorationRole: + if col == 6 and book.has_cover: + return self.yes_icon + if col == 7 and book.comments: + return self.yes_icon return NONE class FetchMetadata(QDialog, Ui_FetchMetadata): @@ -131,7 +139,7 @@ class FetchMetadata(QDialog, Ui_FetchMetadata): self.fetch_metadata() self.opt_get_social_metadata.setChecked(config['get_social_metadata']) self.opt_overwrite_author_title_metadata.setChecked(config['overwrite_author_title_metadata']) - + self.opt_auto_download_cover.setChecked(config['auto_download_cover']) def show_summary(self, current, *args): row = current.row() @@ -179,7 +187,7 @@ class FetchMetadata(QDialog, Ui_FetchMetadata): self.terminate() return self.queue_reject.emit() self.model = Matches(self.fetcher.results) - warnings = [(x[0], unicode(x[1])) for x in \ + warnings = [(x[0], force_unicode(x[1])) for x in \ self.fetcher.exceptions if x[1] is not None] if warnings: warnings='<br>'.join(['<b>%s</b>: %s'%(name, exc) for name,exc in warnings]) @@ -213,6 +221,12 @@ class FetchMetadata(QDialog, Ui_FetchMetadata): _hung_fetchers.add(self.fetcher) if hasattr(self, '_hangcheck') and self._hangcheck.isActive(): self._hangcheck.stop() + # Save value of auto_download_cover, since this is the only place it can + # be set. The values of the other options can be set in + # Preferences->Behavior and should not be set here as they affect bulk + # downloading as well. + if self.opt_auto_download_cover.isChecked() != config['auto_download_cover']: + config.set('auto_download_cover', self.opt_auto_download_cover.isChecked()) def __enter__(self, *args): return self diff --git a/src/calibre/gui2/dialogs/fetch_metadata.ui b/src/calibre/gui2/dialogs/fetch_metadata.ui index 03a362096c..b140fa158d 100644 --- a/src/calibre/gui2/dialogs/fetch_metadata.ui +++ b/src/calibre/gui2/dialogs/fetch_metadata.ui @@ -1,172 +1,179 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>FetchMetadata</class> - <widget class="QDialog" name="FetchMetadata"> - <property name="windowModality"> - <enum>Qt::WindowModal</enum> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>830</width> - <height>642</height> - </rect> - </property> - <property name="windowTitle"> - <string>Fetch metadata</string> - </property> - <property name="windowIcon"> - <iconset resource="../../../../resources/images.qrc"> - <normaloff>:/images/metadata.png</normaloff>:/images/metadata.png</iconset> - </property> - <layout class="QVBoxLayout"> - <item> - <widget class="QLabel" name="tlabel"> - <property name="text"> - <string><p>calibre can find metadata for your books from two locations: <b>Google Books</b> and <b>isbndb.com</b>. <p>To use isbndb.com you must sign up for a <a href="http://www.isbndb.com">free account</a> and enter your access key below.</string> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - <property name="openExternalLinks"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout"> - <item> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>&Access Key:</string> - </property> - <property name="buddy"> - <cstring>key</cstring> - </property> - </widget> - </item> - <item> - <widget class="QLineEdit" name="key"/> - </item> - <item> - <widget class="QPushButton" name="fetch"> - <property name="text"> - <string>Fetch</string> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QLabel" name="warning"> - <property name="text"> - <string/> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>Matches</string> - </property> - <layout class="QVBoxLayout"> - <item> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Select the book that most closely matches your copy from the list below</string> - </property> - </widget> - </item> - <item> - <widget class="QTableView" name="matches"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> - <horstretch>0</horstretch> - <verstretch>1</verstretch> - </sizepolicy> - </property> - <property name="alternatingRowColors"> - <bool>true</bool> - </property> - <property name="selectionMode"> - <enum>QAbstractItemView::SingleSelection</enum> - </property> - <property name="selectionBehavior"> - <enum>QAbstractItemView::SelectRows</enum> - </property> - </widget> - </item> - <item> - <widget class="QTextBrowser" name="summary"/> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QCheckBox" name="opt_get_social_metadata"> - <property name="text"> - <string>Download &social metadata (tags/rating/etc.) for the selected book</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="opt_overwrite_author_title_metadata"> - <property name="text"> - <string>Overwrite author and title with author and title of selected book</string> - </property> - </widget> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> - </property> - </widget> - </item> - </layout> - </widget> - <resources> - <include location="../../../../resources/images.qrc"/> - </resources> - <connections> - <connection> - <sender>buttonBox</sender> - <signal>accepted()</signal> - <receiver>FetchMetadata</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel"> - <x>460</x> - <y>599</y> - </hint> - <hint type="destinationlabel"> - <x>657</x> - <y>530</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> - <receiver>FetchMetadata</receiver> - <slot>reject()</slot> - <hints> - <hint type="sourcelabel"> - <x>417</x> - <y>599</y> - </hint> - <hint type="destinationlabel"> - <x>0</x> - <y>491</y> - </hint> - </hints> - </connection> - </connections> -</ui> +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>FetchMetadata</class> + <widget class="QDialog" name="FetchMetadata"> + <property name="windowModality"> + <enum>Qt::WindowModal</enum> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>890</width> + <height>642</height> + </rect> + </property> + <property name="windowTitle"> + <string>Fetch metadata</string> + </property> + <property name="windowIcon"> + <iconset resource="../../../../resources/images.qrc"> + <normaloff>:/images/metadata.png</normaloff>:/images/metadata.png</iconset> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QLabel" name="tlabel"> + <property name="text"> + <string><p>calibre can find metadata for your books from two locations: <b>Google Books</b> and <b>isbndb.com</b>. <p>To use isbndb.com you must sign up for a <a href="http://www.isbndb.com">free account</a> and enter your access key below.</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + <property name="openExternalLinks"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout"> + <item> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>&Access Key:</string> + </property> + <property name="buddy"> + <cstring>key</cstring> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="key"/> + </item> + <item> + <widget class="QPushButton" name="fetch"> + <property name="text"> + <string>Fetch</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QLabel" name="warning"> + <property name="text"> + <string/> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>Matches</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Select the book that most closely matches your copy from the list below</string> + </property> + </widget> + </item> + <item> + <widget class="QTableView" name="matches"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>1</verstretch> + </sizepolicy> + </property> + <property name="alternatingRowColors"> + <bool>true</bool> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::SingleSelection</enum> + </property> + <property name="selectionBehavior"> + <enum>QAbstractItemView::SelectRows</enum> + </property> + </widget> + </item> + <item> + <widget class="QTextBrowser" name="summary"/> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QCheckBox" name="opt_overwrite_author_title_metadata"> + <property name="text"> + <string>Overwrite author and title with author and title of selected book</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="opt_get_social_metadata"> + <property name="text"> + <string>Download &social metadata (tags/rating/etc.) for the selected book</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="opt_auto_download_cover"> + <property name="text"> + <string>Automatically download the cover, if available</string> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources> + <include location="../../../../resources/images.qrc"/> + </resources> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>FetchMetadata</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>460</x> + <y>599</y> + </hint> + <hint type="destinationlabel"> + <x>657</x> + <y>530</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>FetchMetadata</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>417</x> + <y>599</y> + </hint> + <hint type="destinationlabel"> + <x>0</x> + <y>491</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index f8177b7680..a640c50fb8 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -6,7 +6,7 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>' import re from PyQt4.Qt import Qt, QDialog, QGridLayout, QVBoxLayout, QFont, QLabel, \ - pyqtSignal + pyqtSignal, QDialogButtonBox from PyQt4 import QtGui from calibre.gui2.dialogs.metadata_bulk_ui import Ui_MetadataBulkDialog @@ -17,6 +17,7 @@ from calibre.gui2 import error_dialog from calibre.gui2.progress_indicator import ProgressIndicator from calibre.utils.config import dynamic from calibre.utils.titlecase import titlecase +from calibre.utils.icu import sort_key, capitalize class MyBlockingBusy(QDialog): @@ -183,9 +184,10 @@ class MyBlockingBusy(QDialog): class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): s_r_functions = { '' : lambda x: x, - _('Lower Case') : lambda x: x.lower(), - _('Upper Case') : lambda x: x.upper(), + _('Lower Case') : lambda x: icu_lower(x), + _('Upper Case') : lambda x: icu_upper(x), _('Title Case') : lambda x: titlecase(x), + _('Capitalize') : lambda x: capitalize(x), } s_r_match_modes = [ _('Character match'), @@ -197,7 +199,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): _('Append to field'), ] - def __init__(self, window, rows, model): + def __init__(self, window, rows, model, tab): QDialog.__init__(self, window) Ui_MetadataBulkDialog.__init__(self) self.setupUi(self) @@ -232,8 +234,20 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): self.create_custom_column_editors() self.prepare_search_and_replace() + + self.button_box.clicked.connect(self.button_clicked) + self.button_box.button(QDialogButtonBox.Apply).setToolTip(_( + 'Immediately make all changes without closing the dialog. ' + 'This operation cannot be canceled or undone')) + self.do_again = False + self.central_widget.setCurrentIndex(tab) self.exec_() + def button_clicked(self, which): + if which == self.button_box.button(QDialogButtonBox.Apply): + self.do_again = True + self.accept() + def prepare_search_and_replace(self): self.search_for.initialize('bulk_edit_search_for') self.replace_with.initialize('bulk_edit_replace_with') @@ -243,7 +257,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): fm = self.db.field_metadata for f in fm: if (f in ['author_sort'] or - (fm[f]['datatype'] in ['text', 'series'] + (fm[f]['datatype'] in ['text', 'series', 'enumeration'] and fm[f].get('search_terms', None) and f not in ['formats', 'ondevice', 'sort'])): self.all_fields.append(f) @@ -582,7 +596,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): def initalize_authors(self): all_authors = self.db.all_authors() - all_authors.sort(cmp=lambda x, y : cmp(x[1].lower(), y[1].lower())) + all_authors.sort(key=lambda x : sort_key(x[1])) for i in all_authors: id, name = i @@ -592,7 +606,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): def initialize_series(self): all_series = self.db.all_series() - all_series.sort(cmp=lambda x, y : cmp(x[1], y[1])) + all_series.sort(key=lambda x : sort_key(x[1])) for i in all_series: id, name = i @@ -601,7 +615,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): def initialize_publisher(self): all_publishers = self.db.all_publishers() - all_publishers.sort(cmp=lambda x, y : cmp(x[1], y[1])) + all_publishers.sort(key=lambda x : sort_key(x[1])) for i in all_publishers: id, name = i @@ -692,7 +706,6 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): self.db.clean() return QDialog.accept(self) - def series_changed(self, *args): self.write_series = True diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui index c6830c5d5f..344bde0fa0 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.ui +++ b/src/calibre/gui2/dialogs/metadata_bulk.ui @@ -308,6 +308,9 @@ from the value in the box</string> <property name="minimum"> <number>1</number> </property> + <property name="maximum"> + <number>990000</number> + </property> <property name="value"> <number>1</number> </property> @@ -660,8 +663,8 @@ nothing should be put between the original text and the inserted text</string> <rect> <x>0</x> <y>0</y> - <width>726</width> - <height>334</height> + <width>122</width> + <height>38</height> </rect> </property> <layout class="QGridLayout" name="testgrid"> @@ -707,7 +710,7 @@ nothing should be put between the original text and the inserted text</string> <enum>Qt::Horizontal</enum> </property> <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> </property> </widget> </item> diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index 2b951a7b2b..3205b1d23c 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -7,9 +7,12 @@ add/remove formats ''' import os, re, time, traceback, textwrap +from functools import partial +from threading import Thread -from PyQt4.Qt import SIGNAL, QObject, Qt, QTimer, QThread, QDate, \ - QPixmap, QListWidgetItem, QDialog, pyqtSignal, QMessageBox +from PyQt4.Qt import SIGNAL, QObject, Qt, QTimer, QDate, \ + QPixmap, QListWidgetItem, QDialog, pyqtSignal, QMessageBox, QIcon, \ + QPushButton from calibre.gui2 import error_dialog, file_icon_provider, dynamic, \ choose_files, choose_images, ResizableDialog, \ @@ -26,14 +29,18 @@ from calibre.ebooks.metadata.meta import get_metadata from calibre.ebooks.metadata import MetaInformation from calibre.utils.config import prefs, tweaks from calibre.utils.date import qt_to_dt, local_tz, utcfromtimestamp +from calibre.utils.icu import sort_key from calibre.customize.ui import run_plugins_on_import, get_isbndb_key from calibre.gui2.preferences.social import SocialMetadata from calibre.gui2.custom_column_widgets import populate_metadata_page from calibre import strftime -class CoverFetcher(QThread): +class CoverFetcher(Thread): # {{{ def __init__(self, username, password, isbn, timeout, title, author): + Thread.__init__(self) + self.daemon = True + self.username = username.strip() if username else username self.password = password.strip() if password else password self.timeout = timeout @@ -41,8 +48,7 @@ class CoverFetcher(QThread): self.title = title self.needs_isbn = False self.author = author - QThread.__init__(self) - self.exception = self.traceback = self.cover_data = None + self.exception = self.traceback = self.cover_data = self.errors = None def run(self): try: @@ -74,9 +80,9 @@ class CoverFetcher(QThread): self.traceback = traceback.format_exc() print self.traceback +# }}} - -class Format(QListWidgetItem): +class Format(QListWidgetItem): # {{{ def __init__(self, parent, ext, size, path=None, timestamp=None): self.path = path @@ -92,15 +98,70 @@ class Format(QListWidgetItem): self.setToolTip(text) self.setStatusTip(text) +# }}} + class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): COVER_FETCH_TIMEOUT = 240 # seconds view_format = pyqtSignal(object) + # Cover processing {{{ + + def set_cover(self): + mi, ext = self.get_selected_format_metadata() + if mi is None: + return + cdata = None + if mi.cover and os.access(mi.cover, os.R_OK): + cdata = open(mi.cover).read() + elif mi.cover_data[1] is not None: + cdata = mi.cover_data[1] + if cdata is None: + error_dialog(self, _('Could not read cover'), + _('Could not read cover from %s format')%ext).exec_() + return + pix = QPixmap() + pix.loadFromData(cdata) + if pix.isNull(): + error_dialog(self, _('Could not read cover'), + _('The cover in the %s format is invalid')%ext).exec_() + return + self.cover.setPixmap(pix) + self.update_cover_tooltip() + self.cover_changed = True + self.cpixmap = pix + self.cover_data = cdata + + def trim_cover(self, *args): + from calibre.utils.magick import Image + cdata = self.cover_data + if not cdata: + return + im = Image() + im.load(cdata) + im.trim(10) + cdata = im.export('png') + pix = QPixmap() + pix.loadFromData(cdata) + self.cover.setPixmap(pix) + self.update_cover_tooltip() + self.cover_changed = True + self.cpixmap = pix + self.cover_data = cdata + + + + def update_cover_tooltip(self): + p = self.cover.pixmap() + self.cover.setToolTip(_('Cover size: %dx%d pixels') % + (p.width(), p.height())) + + def do_reset_cover(self, *args): pix = QPixmap(I('default_cover.png')) self.cover.setPixmap(pix) + self.update_cover_tooltip() self.cover_changed = True self.cover_data = None @@ -136,6 +197,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): else: self.cover_path.setText(_file) self.cover.setPixmap(pix) + self.update_cover_tooltip() self.cover_changed = True self.cpixmap = pix self.cover_data = cover @@ -161,9 +223,80 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): pix = QPixmap() pix.loadFromData(self.cover_data) self.cover.setPixmap(pix) + self.update_cover_tooltip() self.cover_changed = True self.cpixmap = pix + def cover_dropped(self, cover_data): + self.cover_changed = True + self.cover_data = cover_data + self.update_cover_tooltip() + + def fetch_cover(self): + isbn = re.sub(r'[^0-9a-zA-Z]', '', unicode(self.isbn.text())).strip() + self.fetch_cover_button.setEnabled(False) + self.setCursor(Qt.WaitCursor) + title, author = map(unicode, (self.title.text(), self.authors.text())) + self.cover_fetcher = CoverFetcher(None, None, isbn, + self.timeout, title, author) + self.cover_fetcher.start() + self._hangcheck = QTimer(self) + self._hangcheck.timeout.connect(self.hangcheck, + type=Qt.QueuedConnection) + self.cf_start_time = time.time() + self.pi.start(_('Downloading cover...')) + self._hangcheck.start(100) + + def hangcheck(self): + if self.cover_fetcher.is_alive() and \ + time.time()-self.cf_start_time < self.COVER_FETCH_TIMEOUT: + return + + self._hangcheck.stop() + try: + if self.cover_fetcher.is_alive(): + error_dialog(self, _('Cannot fetch cover'), + _('<b>Could not fetch cover.</b><br/>')+ + _('The download timed out.')).exec_() + return + if self.cover_fetcher.needs_isbn: + error_dialog(self, _('Cannot fetch cover'), + _('Could not find cover for this book. Try ' + 'specifying the ISBN first.')).exec_() + return + if self.cover_fetcher.exception is not None: + err = self.cover_fetcher.exception + error_dialog(self, _('Cannot fetch cover'), + _('<b>Could not fetch cover.</b><br/>')+unicode(err)).exec_() + return + if self.cover_fetcher.errors and self.cover_fetcher.cover_data is None: + details = u'\n\n'.join([e[-1] + ': ' + e[1] for e in self.cover_fetcher.errors]) + error_dialog(self, _('Cannot fetch cover'), + _('<b>Could not fetch cover.</b><br/>') + + _('For the error message from each cover source, ' + 'click Show details below.'), det_msg=details, show=True) + return + + pix = QPixmap() + pix.loadFromData(self.cover_fetcher.cover_data) + if pix.isNull(): + error_dialog(self, _('Bad cover'), + _('The cover is not a valid picture')).exec_() + else: + self.cover.setPixmap(pix) + self.update_cover_tooltip() + self.cover_changed = True + self.cpixmap = pix + self.cover_data = self.cover_fetcher.cover_data + finally: + self.fetch_cover_button.setEnabled(True) + self.unsetCursor() + self.pi.stop() + + + # }}} + + # Formats processing {{{ def add_format(self, x): files = choose_files(self, 'add formats dialog', _("Choose formats for ") + unicode((self.title.text())), @@ -276,48 +409,6 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.comments.setPlainText(mi.comments) - def set_cover(self): - mi, ext = self.get_selected_format_metadata() - if mi is None: - return - cdata = None - if mi.cover and os.access(mi.cover, os.R_OK): - cdata = open(mi.cover).read() - elif mi.cover_data[1] is not None: - cdata = mi.cover_data[1] - if cdata is None: - error_dialog(self, _('Could not read cover'), - _('Could not read cover from %s format')%ext).exec_() - return - pix = QPixmap() - pix.loadFromData(cdata) - if pix.isNull(): - error_dialog(self, _('Could not read cover'), - _('The cover in the %s format is invalid')%ext).exec_() - return - self.cover.setPixmap(pix) - self.cover_changed = True - self.cpixmap = pix - self.cover_data = cdata - - def trim_cover(self, *args): - from calibre.utils.magick import Image - cdata = self.cover_data - if not cdata: - return - im = Image() - im.load(cdata) - im.trim(10) - cdata = im.export('png') - pix = QPixmap() - pix.loadFromData(cdata) - self.cover.setPixmap(pix) - self.cover_changed = True - self.cpixmap = pix - self.cover_data = cdata - - - def sync_formats(self): old_extensions, new_extensions, paths = set(), set(), {} for row in range(self.formats.count()): @@ -338,11 +429,14 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): if ext not in extensions: self.db.remove_format(self.row, ext, notify=False) - def do_cancel_all(self): - self.cancel_all = True - self.reject() + def show_format(self, item, *args): + fmt = item.ext + self.view_format.emit(fmt) - def __init__(self, window, row, db, accepted_callback=None, cancel_all=False): + # }}} + + def __init__(self, window, row, db, prev=None, + next_=None): ResizableDialog.__init__(self, window) self.bc_box.layout().setAlignment(self.cover, Qt.AlignCenter|Qt.AlignHCenter) self.cancel_all = False @@ -354,16 +448,27 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): _(' The red color indicates that the current ' 'author sort does not match the current author')) - if cancel_all: - self.__abort_button = self.button_box.addButton(self.button_box.Abort) - self.__abort_button.setToolTip(_('Abort the editing of all remaining books')) - self.connect(self.__abort_button, SIGNAL('clicked()'), - self.do_cancel_all) + self.row_delta = 0 + if prev: + self.prev_button = QPushButton(QIcon(I('back.png')), _('Previous'), + self) + self.button_box.addButton(self.prev_button, self.button_box.ActionRole) + tip = _('Save changes and edit the metadata of %s')%prev + self.prev_button.setToolTip(tip) + self.prev_button.clicked.connect(partial(self.next_triggered, + -1)) + if next_: + self.next_button = QPushButton(QIcon(I('forward.png')), _('Next'), + self) + self.button_box.addButton(self.next_button, self.button_box.ActionRole) + tip = _('Save changes and edit the metadata of %s')%next_ + self.next_button.setToolTip(tip) + self.next_button.clicked.connect(partial(self.next_triggered, 1)) + self.splitter.setStretchFactor(100, 1) self.read_state() self.db = db self.pi = ProgressIndicator(self) - self.accepted_callback = accepted_callback self.id = db.id(row) self.row = row self.cover_data = None @@ -412,6 +517,8 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.connect(self.reset_cover, SIGNAL('clicked()'), self.do_reset_cover) self.connect(self.swap_button, SIGNAL('clicked()'), self.swap_title_author) self.timeout = float(prefs['network_timeout']) + + self.title.setText(db.title(row)) isbn = db.isbn(self.id, index_is_id=True) if not isbn: @@ -472,6 +579,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): else: self.cover_data = cover self.cover.setPixmap(pm) + self.update_cover_tooltip() self.original_series_name = unicode(self.series.text()).strip() if len(db.custom_column_label_map) == 0: self.central_widget.tabBar().setVisible(False) @@ -479,6 +587,9 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.create_custom_column_editors() self.generate_cover_button.clicked.connect(self.generate_cover) + self.original_author = unicode(self.authors.text()).strip() + self.original_title = unicode(self.title.text()).strip() + def create_custom_column_editors(self): w = self.central_widget.widget(1) layout = w.layout() @@ -531,10 +642,6 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.isbn.setStyleSheet('QLineEdit { background-color: rgba(255,0,0,20%) }') self.isbn.setToolTip(_('This ISBN number is invalid')) - def show_format(self, item, *args): - fmt = item.ext - self.view_format.emit(fmt) - def deduce_author_sort(self): au = unicode(self.authors.text()) au = re.sub(r'\s+et al\.$', '', au) @@ -547,9 +654,6 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.authors.setText(title) self.author_sort.setText('') - def cover_dropped(self, cover_data): - self.cover_changed = True - self.cover_data = cover_data def initialize_combos(self): self.initalize_authors() @@ -560,7 +664,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): def initalize_authors(self): all_authors = self.db.all_authors() - all_authors.sort(cmp=lambda x, y : cmp(x[1], y[1])) + all_authors.sort(key=lambda x : sort_key(x[1])) for i in all_authors: id, name = i name = [name.strip().replace('|', ',') for n in name.split(',')] @@ -575,7 +679,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): def initialize_series(self): self.series.setSizeAdjustPolicy(self.series.AdjustToContentsOnFirstShow) all_series = self.db.all_series() - all_series.sort(cmp=lambda x, y : cmp(x[1], y[1])) + all_series.sort(key=lambda x : sort_key(x[1])) series_id = self.db.series_id(self.row) idx, c = None, 0 for i in all_series: @@ -592,7 +696,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): def initialize_publisher(self): all_publishers = self.db.all_publishers() - all_publishers.sort(cmp=lambda x, y : cmp(x[1], y[1])) + all_publishers.sort(key=lambda x : sort_key(x[1])) publisher_id = self.db.publisher_id(self.row) idx, c = None, 0 for i in all_publishers: @@ -625,66 +729,6 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.tags.setText(tag_string) self.tags.update_tags_cache(self.db.all_tags()) - def fetch_cover(self): - isbn = re.sub(r'[^0-9a-zA-Z]', '', unicode(self.isbn.text())).strip() - self.fetch_cover_button.setEnabled(False) - self.setCursor(Qt.WaitCursor) - title, author = map(unicode, (self.title.text(), self.authors.text())) - self.cover_fetcher = CoverFetcher(None, None, isbn, - self.timeout, title, author) - self.cover_fetcher.start() - self._hangcheck = QTimer(self) - self.connect(self._hangcheck, SIGNAL('timeout()'), self.hangcheck) - self.cf_start_time = time.time() - self.pi.start(_('Downloading cover...')) - self._hangcheck.start(100) - - def hangcheck(self): - if not self.cover_fetcher.isFinished() and \ - time.time()-self.cf_start_time < self.COVER_FETCH_TIMEOUT: - return - - self._hangcheck.stop() - try: - if self.cover_fetcher.isRunning(): - self.cover_fetcher.terminate() - error_dialog(self, _('Cannot fetch cover'), - _('<b>Could not fetch cover.</b><br/>')+ - _('The download timed out.')).exec_() - return - if self.cover_fetcher.needs_isbn: - error_dialog(self, _('Cannot fetch cover'), - _('Could not find cover for this book. Try ' - 'specifying the ISBN first.')).exec_() - return - if self.cover_fetcher.exception is not None: - err = self.cover_fetcher.exception - error_dialog(self, _('Cannot fetch cover'), - _('<b>Could not fetch cover.</b><br/>')+unicode(err)).exec_() - return - if self.cover_fetcher.errors and self.cover_fetcher.cover_data is None: - details = u'\n\n'.join([e[-1] + ': ' + e[1] for e in self.cover_fetcher.errors]) - error_dialog(self, _('Cannot fetch cover'), - _('<b>Could not fetch cover.</b><br/>') + - _('For the error message from each cover source, ' - 'click Show details below.'), det_msg=details, show=True) - return - - pix = QPixmap() - pix.loadFromData(self.cover_fetcher.cover_data) - if pix.isNull(): - error_dialog(self, _('Bad cover'), - _('The cover is not a valid picture')).exec_() - else: - self.cover.setPixmap(pix) - self.cover_changed = True - self.cpixmap = pix - self.cover_data = self.cover_fetcher.cover_data - finally: - self.fetch_cover_button.setEnabled(True) - self.unsetCursor() - self.pi.stop() - def fetch_metadata(self): isbn = re.sub(r'[^0-9a-zA-Z]', '', unicode(self.isbn.text())) @@ -719,8 +763,8 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): if book.publisher: self.publisher.setEditText(book.publisher) if book.isbn: self.isbn.setText(book.isbn) if book.pubdate: - d = book.pubdate - self.pubdate.setDate(QDate(d.year, d.month, d.day)) + dt = book.pubdate + self.pubdate.setDate(QDate(dt.year, dt.month, dt.day)) summ = book.comments if summ: prefix = unicode(self.comments.toPlainText()) @@ -736,8 +780,11 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.series.setText(book.series) if book.series_index is not None: self.series_index.setValue(book.series_index) - # Needed because of Qt focus bug on OS X - self.fetch_cover_button.setFocus(Qt.OtherFocusReason) + if book.has_cover: + if d.opt_auto_download_cover.isChecked() and book.has_cover: + self.fetch_cover() + else: + self.fetch_cover_button.setFocus(Qt.OtherFocusReason) else: error_dialog(self, _('Cannot fetch metadata'), _('You must specify at least one of ISBN, Title, ' @@ -776,6 +823,10 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): unicode(self.tags.text()).split(',')], notify=notify, commit=commit) + def next_triggered(self, row_delta, *args): + self.row_delta = row_delta + self.accept() + def accept(self): cf = getattr(self, 'cover_fetcher', None) if cf is not None and hasattr(cf, 'terminate'): @@ -785,9 +836,10 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): if self.formats_changed: self.sync_formats() title = unicode(self.title.text()).strip() - self.db.set_title(self.id, title, notify=False) + if title != self.original_title: + self.db.set_title(self.id, title, notify=False) au = unicode(self.authors.text()).strip() - if au: + if au and au != self.original_author: self.db.set_authors(self.id, string_to_authors(au), notify=False) aus = unicode(self.author_sort.text()).strip() if aus: @@ -837,8 +889,6 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): raise self.save_state() QDialog.accept(self) - if callable(self.accepted_callback): - self.accepted_callback(self.id) def reject(self, *args): cf = getattr(self, 'cover_fetcher', None) diff --git a/src/calibre/gui2/dialogs/saved_search_editor.py b/src/calibre/gui2/dialogs/saved_search_editor.py index 3f9f7ad437..1143a6f06a 100644 --- a/src/calibre/gui2/dialogs/saved_search_editor.py +++ b/src/calibre/gui2/dialogs/saved_search_editor.py @@ -8,6 +8,7 @@ from PyQt4.QtGui import QDialog from calibre.gui2.dialogs.saved_search_editor_ui import Ui_SavedSearchEditor from calibre.utils.search_query_parser import saved_searches +from calibre.utils.icu import sort_key from calibre.gui2.dialogs.confirm_delete import confirm class SavedSearchEditor(QDialog, Ui_SavedSearchEditor): @@ -34,7 +35,7 @@ class SavedSearchEditor(QDialog, Ui_SavedSearchEditor): def populate_search_list(self): self.search_name_box.clear() - for name in sorted(self.searches.keys()): + for name in sorted(self.searches.keys(), key=sort_key): self.search_name_box.addItem(name) def add_search(self): diff --git a/src/calibre/gui2/dialogs/scheduler.py b/src/calibre/gui2/dialogs/scheduler.py index 071c5778a8..572bbcf1c4 100644 --- a/src/calibre/gui2/dialogs/scheduler.py +++ b/src/calibre/gui2/dialogs/scheduler.py @@ -10,7 +10,8 @@ Scheduler for automated recipe downloads from datetime import timedelta from PyQt4.Qt import QDialog, SIGNAL, Qt, QTime, QObject, QMenu, \ - QAction, QIcon, QMutex, QTimer, pyqtSignal + QAction, QIcon, QMutex, QTimer, pyqtSignal, QWidget, QHBoxLayout, \ + QLabel from calibre.gui2.dialogs.scheduler_ui import Ui_Dialog from calibre.gui2.search_box import SearchBox2 @@ -28,15 +29,21 @@ class SchedulerDialog(QDialog, Ui_Dialog): self.recipe_model = recipe_model self.recipe_model.do_refresh() + self._cont = QWidget(self) + self._cont.l = QHBoxLayout() + self._cont.setLayout(self._cont.l) + self._cont.la = QLabel(_('&Search:')) + self._cont.l.addWidget(self._cont.la, 1) self.search = SearchBox2(self) + self._cont.l.addWidget(self.search, 100) + self._cont.la.setBuddy(self.search) self.search.setMinimumContentsLength(25) self.search.initialize('scheduler_search_history') - self.recipe_box.layout().insertWidget(0, self.search) + self.recipe_box.layout().insertWidget(0, self._cont) self.search.search.connect(self.recipe_model.search) - self.connect(self.recipe_model, SIGNAL('searched(PyQt_PyObject)'), - self.search.search_done) - self.connect(self.recipe_model, SIGNAL('searched(PyQt_PyObject)'), - self.search_done) + self.recipe_model.searched.connect(self.search.search_done, + type=Qt.QueuedConnection) + self.recipe_model.searched.connect(self.search_done) self.search.setFocus(Qt.OtherFocusReason) self.commit_on_change = True diff --git a/src/calibre/gui2/dialogs/search.py b/src/calibre/gui2/dialogs/search.py index ba09a34a68..8e8fd09652 100644 --- a/src/calibre/gui2/dialogs/search.py +++ b/src/calibre/gui2/dialogs/search.py @@ -8,6 +8,7 @@ from PyQt4.QtGui import QDialog, QDialogButtonBox from calibre.gui2.dialogs.search_ui import Ui_Dialog from calibre.library.caches import CONTAINS_MATCH, EQUALS_MATCH from calibre.gui2 import gprefs +from calibre.utils.icu import sort_key box_values = {} @@ -18,8 +19,7 @@ class SearchDialog(QDialog, Ui_Dialog): self.setupUi(self) self.mc = '' searchables = sorted(db.field_metadata.searchable_fields(), - lambda x, y: cmp(x if x[0] != '#' else x[1:], - y if y[0] != '#' else y[1:])) + key=lambda x: sort_key(x if x[0] != '#' else x[1:])) self.general_combo.addItems(searchables) self.box_last_values = copy.deepcopy(box_values) diff --git a/src/calibre/gui2/dialogs/tag_categories.py b/src/calibre/gui2/dialogs/tag_categories.py index 679a5c9da9..60092e4bd2 100644 --- a/src/calibre/gui2/dialogs/tag_categories.py +++ b/src/calibre/gui2/dialogs/tag_categories.py @@ -9,6 +9,7 @@ from PyQt4.QtGui import QDialog, QIcon, QListWidgetItem from calibre.gui2.dialogs.tag_categories_ui import Ui_TagCategories from calibre.gui2.dialogs.confirm_delete import confirm from calibre.constants import islinux +from calibre.utils.icu import sort_key class Item: def __init__(self, name, label, index, icon, exists): @@ -21,6 +22,15 @@ class Item: return 'name=%s, label=%s, index=%s, exists='%(self.name, self.label, self.index, self.exists) class TagCategories(QDialog, Ui_TagCategories): + ''' + The structure of user_categories stored in preferences is + {cat_name: [ [name, category, v], [], []}, cat_name [ [name, cat, v] ...} + where name is the item name, category is where it came from (series, etc), + and v is a scratch area that this editor uses to keep track of categories. + + If you add a category, it is permissible to set v to zero. If you delete + a category, ensure that both the name and the category match. + ''' category_labels_orig = ['', 'authors', 'series', 'publisher', 'tags'] def __init__(self, window, db, on_category=None): @@ -51,7 +61,7 @@ class TagCategories(QDialog, Ui_TagCategories): cc_map = self.db.custom_column_label_map for cc in cc_map: - if cc_map[cc]['datatype'] == 'text': + if cc_map[cc]['datatype'] in ['text', 'series']: self.category_labels.append(db.field_metadata.label_to_key(cc)) category_icons.append(cc_icon) category_values.append(lambda col=cc: self.db.all_custom(label=col)) @@ -85,7 +95,7 @@ class TagCategories(QDialog, Ui_TagCategories): # remove any references to a category that no longer exists del self.categories[cat][item] - self.all_items_sorted = sorted(self.all_items, cmp=lambda x,y: cmp(x.name.lower(), y.name.lower())) + self.all_items_sorted = sorted(self.all_items, key=lambda x: sort_key(x.name)) self.display_filtered_categories(0) for v in category_names: @@ -135,7 +145,7 @@ class TagCategories(QDialog, Ui_TagCategories): index = self.all_items[node.data(Qt.UserRole).toPyObject()].index if index not in self.applied_items: self.applied_items.append(index) - self.applied_items.sort(cmp=lambda x, y:cmp(self.all_items[x].name.lower(), self.all_items[y].name.lower())) + self.applied_items.sort(key=lambda x:sort_key(self.all_items[x])) self.display_filtered_categories(None) def unapply_tags(self, node=None): @@ -198,5 +208,5 @@ class TagCategories(QDialog, Ui_TagCategories): self.categories[self.current_cat_name] = l def populate_category_list(self): - for n in sorted(self.categories.keys(), cmp=lambda x,y: cmp(x.lower(), y.lower())): + for n in sorted(self.categories.keys(), key=sort_key): self.category_box.addItem(n) diff --git a/src/calibre/gui2/dialogs/tag_editor.py b/src/calibre/gui2/dialogs/tag_editor.py index 34c61914fe..48a07c4b9e 100644 --- a/src/calibre/gui2/dialogs/tag_editor.py +++ b/src/calibre/gui2/dialogs/tag_editor.py @@ -6,12 +6,10 @@ from PyQt4.QtGui import QDialog from calibre.gui2.dialogs.tag_editor_ui import Ui_TagEditor from calibre.gui2 import question_dialog, error_dialog from calibre.constants import islinux +from calibre.utils.icu import sort_key class TagEditor(QDialog, Ui_TagEditor): - def tag_cmp(self, x, y): - return cmp(x.lower(), y.lower()) - def __init__(self, window, db, index=None): QDialog.__init__(self, window) Ui_TagEditor.__init__(self) @@ -25,7 +23,7 @@ class TagEditor(QDialog, Ui_TagEditor): tags = [] if tags: tags = [tag.strip() for tag in tags.split(',') if tag.strip()] - tags.sort(cmp=self.tag_cmp) + tags.sort(key=sort_key) for tag in tags: self.applied_tags.addItem(tag) else: @@ -35,7 +33,7 @@ class TagEditor(QDialog, Ui_TagEditor): all_tags = [tag for tag in self.db.all_tags()] all_tags = list(set(all_tags)) - all_tags.sort(cmp=self.tag_cmp) + all_tags.sort(key=sort_key) for tag in all_tags: if tag not in tags: self.available_tags.addItem(tag) @@ -82,7 +80,7 @@ class TagEditor(QDialog, Ui_TagEditor): self.tags.append(tag) self.available_tags.takeItem(self.available_tags.row(item)) - self.tags.sort(cmp=self.tag_cmp) + self.tags.sort(key=sort_key) self.applied_tags.clear() for tag in self.tags: self.applied_tags.addItem(tag) @@ -96,14 +94,14 @@ class TagEditor(QDialog, Ui_TagEditor): self.tags.remove(tag) self.available_tags.addItem(tag) - self.tags.sort(cmp=self.tag_cmp) + self.tags.sort(key=sort_key) self.applied_tags.clear() for tag in self.tags: self.applied_tags.addItem(tag) items = [unicode(self.available_tags.item(x).text()) for x in range(self.available_tags.count())] - items.sort(cmp=self.tag_cmp) + items.sort(key=sort_key) self.available_tags.clear() for item in items: self.available_tags.addItem(item) @@ -117,7 +115,7 @@ class TagEditor(QDialog, Ui_TagEditor): if tag not in self.tags: self.tags.append(tag) - self.tags.sort(cmp=self.tag_cmp) + self.tags.sort(key=sort_key) self.applied_tags.clear() for tag in self.tags: self.applied_tags.addItem(tag) diff --git a/src/calibre/gui2/dialogs/tag_list_editor.py b/src/calibre/gui2/dialogs/tag_list_editor.py index 7cdc0a089a..a7d6fe03e7 100644 --- a/src/calibre/gui2/dialogs/tag_list_editor.py +++ b/src/calibre/gui2/dialogs/tag_list_editor.py @@ -39,7 +39,7 @@ class ListWidgetItem(QListWidgetItem): class TagListEditor(QDialog, Ui_TagListEditor): - def __init__(self, window, tag_to_match, data, compare): + def __init__(self, window, tag_to_match, data, key): QDialog.__init__(self, window) Ui_TagListEditor.__init__(self) self.setupUi(self) @@ -54,7 +54,7 @@ class TagListEditor(QDialog, Ui_TagListEditor): for k,v in data: self.all_tags[v] = k - for tag in sorted(self.all_tags.keys(), cmp=compare): + for tag in sorted(self.all_tags.keys(), key=key): item = ListWidgetItem(tag) item.setData(Qt.UserRole, self.all_tags[tag]) self.available_tags.addItem(item) diff --git a/src/calibre/gui2/dialogs/user_profiles.py b/src/calibre/gui2/dialogs/user_profiles.py index 6901e13968..71c9ebcd04 100644 --- a/src/calibre/gui2/dialogs/user_profiles.py +++ b/src/calibre/gui2/dialogs/user_profiles.py @@ -13,6 +13,7 @@ from calibre.gui2 import error_dialog, question_dialog, open_url, \ choose_files, ResizableDialog, NONE from calibre.gui2.widgets import PythonHighlighter from calibre.ptempfile import PersistentTemporaryFile +from calibre.utils.icu import sort_key class CustomRecipeModel(QAbstractListModel): @@ -256,7 +257,7 @@ class %(classname)s(%(base_class)s): def add_builtin_recipe(self): from calibre.web.feeds.recipes.collection import \ get_builtin_recipe_by_title, get_builtin_recipe_titles - items = sorted(get_builtin_recipe_titles()) + items = sorted(get_builtin_recipe_titles(), key=sort_key) title, ok = QInputDialog.getItem(self, _('Pick recipe'), _('Pick the recipe to customize'), diff --git a/src/calibre/gui2/email.py b/src/calibre/gui2/email.py new file mode 100644 index 0000000000..2911222ba8 --- /dev/null +++ b/src/calibre/gui2/email.py @@ -0,0 +1,333 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import print_function + +__license__ = 'GPL v3' +__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' +__docformat__ = 'restructuredtext en' + +import os, socket, time, cStringIO +from threading import Thread +from Queue import Queue +from binascii import unhexlify +from functools import partial +from itertools import repeat + +from calibre.utils.smtp import compose_mail, sendmail, extract_email_address, \ + config as email_config +from calibre.utils.filenames import ascii_filename +from calibre.utils.ipc.job import BaseJob +from calibre.ptempfile import PersistentTemporaryFile +from calibre.customize.ui import available_input_formats, available_output_formats +from calibre.ebooks.metadata import authors_to_string +from calibre.constants import preferred_encoding +from calibre.gui2 import config, Dispatcher, warning_dialog + +class EmailJob(BaseJob): # {{{ + + def __init__(self, callback, description, attachment, aname, to, subject, text, job_manager): + BaseJob.__init__(self, description) + self.exception = None + self.job_manager = job_manager + self.email_args = (attachment, aname, to, subject, text) + self.email_sent_callback = callback + self.log_path = None + self._log_file = cStringIO.StringIO() + self._log_file.write(self.description.encode('utf-8') + '\n') + + @property + def log_file(self): + if self.log_path is not None: + return open(self.log_path, 'rb') + return cStringIO.StringIO(self._log_file.getvalue()) + + def start_work(self): + self.start_time = time.time() + self.job_manager.changed_queue.put(self) + + def job_done(self): + self.duration = time.time() - self.start_time + self.percent = 1 + # Dump log onto disk + lf = PersistentTemporaryFile('email_log') + lf.write(self._log_file.getvalue()) + lf.close() + self.log_path = lf.name + self._log_file.close() + self._log_file = None + + self.job_manager.changed_queue.put(self) + + def log_write(self, what): + self._log_file.write(what) + +# }}} + +class Emailer(Thread): # {{{ + + MAX_RETRIES = 1 + + def __init__(self, job_manager): + Thread.__init__(self) + self.daemon = True + self.jobs = Queue() + self.job_manager = job_manager + self._run = True + self.calculate_rate_limit() + + self.last_send_time = time.time() - self.rate_limit + + def calculate_rate_limit(self): + self.rate_limit = 1 + opts = email_config().parse() + rh = opts.relay_host + if rh and ( + 'gmail.com' in rh or 'live.com' in rh): + self.rate_limit = 301 + + def stop(self): + self._run = False + self.jobs.put(None) + + def run(self): + while self._run: + try: + job = self.jobs.get() + except: + break + if job is None or not self._run: + break + try_count = 0 + failed, exc = False, None + job.start_work() + if job.kill_on_start: + job.log_write('Aborted\n') + job.failed = failed + job.killed = True + job.job_done() + continue + + while try_count <= self.MAX_RETRIES: + failed = False + if try_count > 0: + job.log_write('\nRetrying in %d seconds...\n' % + self.rate_limit) + try: + self.sendmail(job) + break + except Exception, e: + if not self._run: + return + import traceback + failed = True + exc = e + job.log_write('\nSending failed...\n') + job.log_write(traceback.format_exc()) + + try_count += 1 + + if not self._run: + break + + job.failed = failed + job.exception = exc + job.job_done() + try: + job.email_sent_callback(job) + except: + import traceback + traceback.print_exc() + + def send_mails(self, jobnames, callback, attachments, to_s, subjects, + texts, attachment_names): + for name, attachment, to, subject, text, aname in zip(jobnames, + attachments, to_s, subjects, texts, attachment_names): + description = _('Email %s to %s') % (name, to) + job = EmailJob(callback, description, attachment, aname, to, + subject, text, self.job_manager) + self.job_manager.add_job(job) + self.jobs.put(job) + + def sendmail(self, job): + while time.time() - self.last_send_time <= self.rate_limit: + time.sleep(1) + try: + opts = email_config().parse() + from_ = opts.from_ + if not from_: + from_ = 'calibre <calibre@'+socket.getfqdn()+'>' + attachment, aname, to, subject, text = job.email_args + msg = compose_mail(from_, to, text, subject, open(attachment, 'rb'), + aname) + efrom, eto = map(extract_email_address, (from_, to)) + eto = [eto] + sendmail(msg, efrom, eto, localhost=None, + verbose=1, + relay=opts.relay_host, + username=opts.relay_username, + password=unhexlify(opts.relay_password), port=opts.relay_port, + encryption=opts.encryption, + debug_output=partial(print, file=job._log_file)) + finally: + self.last_send_time = time.time() + + def email_news(self, mi, remove, get_fmts, done): + opts = email_config().parse() + accounts = [(account, [x.strip().lower() for x in x[0].split(',')]) + for account, x in opts.accounts.items() if x[1]] + sent_mails = [] + for i, x in enumerate(accounts): + account, fmts = x + files = get_fmts(fmts) + files = [f for f in files if f is not None] + if not files: + continue + attachment = files[0] + to_s = [account] + subjects = [_('News:')+' '+mi.title] + texts = [ + _('Attached is the %s periodical downloaded by calibre.') + % (mi.title,) + ] + attachment_names = [ascii_filename(mi.title)+os.path.splitext(attachment)[1]] + attachments = [attachment] + jobnames = [mi.title] + do_remove = [] + if i == len(accounts) - 1: + do_remove = remove + self.send_mails(jobnames, + Dispatcher(partial(done, remove=do_remove)), + attachments, to_s, subjects, texts, attachment_names) + sent_mails.append(to_s[0]) + return sent_mails + + +# }}} + +class EmailMixin(object): # {{{ + + def __init__(self): + self.emailer = Emailer(self.job_manager) + self.emailer.start() + + def send_by_mail(self, to, fmts, delete_from_library, send_ids=None, + do_auto_convert=True, specific_format=None): + ids = [self.library_view.model().id(r) for r in self.library_view.selectionModel().selectedRows()] if send_ids is None else send_ids + if not ids or len(ids) == 0: + return + files, _auto_ids = self.library_view.model().get_preferred_formats_from_ids(ids, + fmts, set_metadata=True, + specific_format=specific_format, + exclude_auto=do_auto_convert) + if do_auto_convert: + nids = list(set(ids).difference(_auto_ids)) + ids = [i for i in ids if i in nids] + else: + _auto_ids = [] + + full_metadata = self.library_view.model().metadata_for(ids) + + bad, remove_ids, jobnames = [], [], [] + texts, subjects, attachments, attachment_names = [], [], [], [] + for f, mi, id in zip(files, full_metadata, ids): + t = mi.title + if not t: + t = _('Unknown') + if f is None: + bad.append(t) + else: + remove_ids.append(id) + jobnames.append(t) + attachments.append(f) + subjects.append(_('E-book:')+ ' '+t) + a = authors_to_string(mi.authors if mi.authors else \ + [_('Unknown')]) + texts.append(_('Attached, you will find the e-book') + \ + '\n\n' + t + '\n\t' + _('by') + ' ' + a + '\n\n' + \ + _('in the %s format.') % + os.path.splitext(f)[1][1:].upper()) + prefix = ascii_filename(t+' - '+a) + if not isinstance(prefix, unicode): + prefix = prefix.decode(preferred_encoding, 'replace') + attachment_names.append(prefix + os.path.splitext(f)[1]) + remove = remove_ids if delete_from_library else [] + + to_s = list(repeat(to, len(attachments))) + if attachments: + self.emailer.send_mails(jobnames, + Dispatcher(partial(self.email_sent, remove=remove)), + attachments, to_s, subjects, texts, attachment_names) + self.status_bar.show_message(_('Sending email to')+' '+to, 3000) + + auto = [] + if _auto_ids != []: + for id in _auto_ids: + if specific_format == None: + formats = [f.lower() for f in self.library_view.model().db.formats(id, index_is_id=True).split(',')] + formats = formats if formats != None else [] + if list(set(formats).intersection(available_input_formats())) != [] and list(set(fmts).intersection(available_output_formats())) != []: + auto.append(id) + else: + bad.append(self.library_view.model().db.title(id, index_is_id=True)) + else: + if specific_format in list(set(fmts).intersection(set(available_output_formats()))): + auto.append(id) + else: + bad.append(self.library_view.model().db.title(id, index_is_id=True)) + + if auto != []: + format = specific_format if specific_format in list(set(fmts).intersection(set(available_output_formats()))) else None + if not format: + for fmt in fmts: + if fmt in list(set(fmts).intersection(set(available_output_formats()))): + format = fmt + break + if format is None: + bad += auto + else: + autos = [self.library_view.model().db.title(id, index_is_id=True) for id in auto] + if self.auto_convert_question( + _('Auto convert the following books before sending via ' + 'email?'), autos): + self.iactions['Convert Books'].auto_convert_mail(to, fmts, delete_from_library, auto, format) + + if bad: + bad = '\n'.join('%s'%(i,) for i in bad) + d = warning_dialog(self, _('No suitable formats'), + _('Could not email the following books ' + 'as no suitable formats were found:'), bad) + d.exec_() + + def email_sent(self, job, remove=[]): + if job.failed: + self.job_exception(job, dialog_title=_('Failed to email book')) + return + + self.status_bar.show_message(job.description + ' ' + _('sent'), + 5000) + if remove: + try: + self.library_view.model().delete_books_by_id(remove) + except: + import traceback + # Probably the user deleted the files, in any case, failing + # to delete the book is not catastrophic + traceback.print_exc() + + def email_news(self, id_): + mi = self.library_view.model().db.get_metadata(id_, + index_is_id=True) + remove = [id_] if config['delete_news_from_library_on_upload'] \ + else [] + def get_fmts(fmts): + files, auto = self.library_view.model().\ + get_preferred_formats_from_ids([id_], fmts) + return files + sent_mails = self.emailer.email_news(mi, remove, + get_fmts, self.email_sent) + if sent_mails: + self.status_bar.show_message(_('Sent news to')+' '+\ + ', '.join(sent_mails), 3000) + +# }}} + diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index 223efcf95b..27a6a2352a 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -86,6 +86,10 @@ class LibraryViewMixin(object): # {{{ if view is self.current_view(): self.search.search_done(ok) self.set_number_of_books_shown() + if ok: + v = self.current_view() + if hasattr(v, 'set_current_row'): + v.set_current_row(0) # }}} diff --git a/src/calibre/gui2/jobs.py b/src/calibre/gui2/jobs.py index 8a63b6fac5..a2bd8e4492 100644 --- a/src/calibre/gui2/jobs.py +++ b/src/calibre/gui2/jobs.py @@ -221,16 +221,27 @@ class JobManager(QAbstractTableModel): if job.duration is not None: return error_dialog(view, _('Cannot kill job'), _('Job has already run')).exec_() - self.server.kill_job(job) + if isinstance(job, ParallelJob): + self.server.kill_job(job) + else: + job.kill_on_start = True def kill_all_jobs(self): for job in self.jobs: if isinstance(job, DeviceJob) or job.duration is not None: continue - self.server.kill_job(job) + if isinstance(job, ParallelJob): + self.server.kill_job(job) + else: + job.kill_on_start = True def terminate_all_jobs(self): self.server.killall() + for job in self.jobs: + if isinstance(job, DeviceJob) or job.duration is not None: + continue + if not isinstance(job, ParallelJob): + job.kill_on_start = True class ProgressBarDelegate(QAbstractItemDelegate): diff --git a/src/calibre/gui2/layout.py b/src/calibre/gui2/layout.py index c6177ed882..aaaf1b0267 100644 --- a/src/calibre/gui2/layout.py +++ b/src/calibre/gui2/layout.py @@ -182,7 +182,7 @@ class SearchBar(QWidget): # {{{ l.addWidget(self.search_button) self.search_button.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) - self.search_button.clicked.connect(parent.search.do_search) + self.search_button.clicked.connect(parent.do_search_button) self.search_button.setToolTip( _('Do Quick Search (you can also press the Enter key)')) @@ -315,6 +315,9 @@ class ToolBar(QToolBar): # {{{ self.child_bar.addWidget(self.spacers[1]) if gprefs['show_child_bar']: self.addWidget(self.spacers[3]) + else: + for s in self.spacers[2:]: + s.setVisible(False) def setup_tool_button(self, ac, menu_mode=None): ch = self.widgetForAction(ac) diff --git a/src/calibre/gui2/library/delegates.py b/src/calibre/gui2/library/delegates.py index f9ba612bc9..8b6c2a8ae5 100644 --- a/src/calibre/gui2/library/delegates.py +++ b/src/calibre/gui2/library/delegates.py @@ -20,6 +20,7 @@ from calibre.gui2.widgets import EnLineEdit, TagsLineEdit from calibre.utils.date import now, format_date from calibre.utils.config import tweaks from calibre.utils.formatter import validation_formatter +from calibre.utils.icu import sort_key from calibre.gui2.dialogs.comments_dialog import CommentsDialog class RatingDelegate(QStyledItemDelegate): # {{{ @@ -173,7 +174,8 @@ class TagsDelegate(QStyledItemDelegate): # {{{ editor = TagsLineEdit(parent, self.db.all_tags()) else: editor = TagsLineEdit(parent, - sorted(list(self.db.all_custom(label=self.db.field_metadata.key_to_label(col))))) + sorted(list(self.db.all_custom(label=self.db.field_metadata.key_to_label(col))), + key=sort_key)) return editor else: editor = EnLineEdit(parent) @@ -245,7 +247,8 @@ class CcTextDelegate(QStyledItemDelegate): # {{{ editor.setDecimals(2) else: editor = EnLineEdit(parent) - complete_items = sorted(list(m.db.all_custom(label=m.db.field_metadata.key_to_label(col)))) + complete_items = sorted(list(m.db.all_custom(label=m.db.field_metadata.key_to_label(col))), + key=sort_key) completer = QCompleter(complete_items, self) completer.setCaseSensitivity(Qt.CaseInsensitive) completer.setCompletionMode(QCompleter.PopupCompletion) @@ -254,6 +257,38 @@ class CcTextDelegate(QStyledItemDelegate): # {{{ # }}} +class CcEnumDelegate(QStyledItemDelegate): # {{{ + ''' + Delegate for text/int/float data. + ''' + + def createEditor(self, parent, option, index): + m = index.model() + col = m.column_map[index.column()] + editor = QComboBox(parent) + editor.addItem('') + for v in m.custom_columns[col]['display']['enum_values']: + editor.addItem(v) + return editor + + def setModelData(self, editor, model, index): + val = unicode(editor.currentText()) + if not val: + val = None + model.setData(index, QVariant(val), Qt.EditRole) + + def setEditorData(self, editor, index): + m = index.model() + val = m.db.data[index.row()][m.custom_columns[m.column_map[index.column()]]['rec_index']] + if val is None: + val = '' + idx = editor.findText(val) + if idx < 0: + editor.setCurrentIndex(0) + else: + editor.setCurrentIndex(idx) +# }}} + class CcCommentsDelegate(QStyledItemDelegate): # {{{ ''' Delegate for comments data. diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py index 4ef2c34c03..e82e1dddd4 100644 --- a/src/calibre/gui2/library/models.py +++ b/src/calibre/gui2/library/models.py @@ -18,6 +18,7 @@ from calibre.ebooks.metadata import fmt_sidx, authors_to_string, string_to_autho from calibre.ptempfile import PersistentTemporaryFile from calibre.utils.config import tweaks, prefs from calibre.utils.date import dt_factory, qt_to_dt, isoformat +from calibre.utils.icu import sort_key, strcmp as icu_strcmp from calibre.ebooks.metadata.meta import set_metadata as _set_metadata from calibre.utils.search_query_parser import SearchQueryParser from calibre.library.caches import _match, CONTAINS_MATCH, EQUALS_MATCH, \ @@ -305,9 +306,10 @@ class BooksModel(QAbstractTableModel): # {{{ cdata = self.cover(idx) if cdata: data['cover'] = cdata - tags = self.db.tags(idx) + tags = list(self.db.get_tags(self.db.id(idx))) if tags: - tags = tags.replace(',', ', ') + tags.sort(key=sort_key) + tags = ', '.join(tags) else: tags = _('None') data[_('Tags')] = tags @@ -544,7 +546,7 @@ class BooksModel(QAbstractTableModel): # {{{ def tags(r, idx=-1): tags = self.db.data[r][idx] if tags: - return QVariant(', '.join(sorted(tags.split(',')))) + return QVariant(', '.join(sorted(tags.split(','), key=sort_key))) return None def series_type(r, idx=-1, siix=-1): @@ -595,7 +597,7 @@ class BooksModel(QAbstractTableModel): # {{{ def text_type(r, mult=False, idx=-1): text = self.db.data[r][idx] if text and mult: - return QVariant(', '.join(sorted(text.split('|')))) + return QVariant(', '.join(sorted(text.split('|'),key=sort_key))) return QVariant(text) def number_type(r, idx=-1): @@ -634,7 +636,7 @@ class BooksModel(QAbstractTableModel): # {{{ for col in self.custom_columns: idx = self.custom_columns[col]['rec_index'] datatype = self.custom_columns[col]['datatype'] - if datatype in ('text', 'comments', 'composite'): + if datatype in ('text', 'comments', 'composite', 'enumeration'): self.dc[col] = functools.partial(text_type, idx=idx, mult=self.custom_columns[col]['is_multiple']) elif datatype in ('int', 'float'): @@ -722,7 +724,11 @@ class BooksModel(QAbstractTableModel): # {{{ if typ in ('text', 'comments'): val = unicode(value.toString()).strip() val = val if val else None - if typ == 'bool': + elif typ == 'enumeration': + val = unicode(value.toString()).strip() + if not val: + val = None + elif typ == 'bool': val = value.toPyObject() elif typ == 'rating': val = value.toInt()[0] @@ -730,7 +736,7 @@ class BooksModel(QAbstractTableModel): # {{{ val *= 2 elif typ in ('int', 'float'): val = unicode(value.toString()).strip() - if val is None or not val: + if not val: val = None elif typ == 'datetime': val = value.toDate() @@ -1017,8 +1023,7 @@ class DeviceBooksModel(BooksModel): # {{{ x = '' if y == None: y = '' - x, y = x.strip().lower(), y.strip().lower() - return cmp(x, y) + return icu_strcmp(x.strip(), y.strip()) return _strcmp def datecmp(x, y): x = self.db[x].datetime @@ -1029,8 +1034,8 @@ class DeviceBooksModel(BooksModel): # {{{ x, y = int(self.db[x].size), int(self.db[y].size) return cmp(x, y) def tagscmp(x, y): - x = ','.join(sorted(getattr(self.db[x], 'device_collections', []))).lower() - y = ','.join(sorted(getattr(self.db[y], 'device_collections', []))).lower() + x = ','.join(sorted(getattr(self.db[x], 'device_collections', []),key=sort_key)) + y = ','.join(sorted(getattr(self.db[y], 'device_collections', []),key=sort_key)) return cmp(x, y) def libcmp(x, y): x, y = self.db[x].in_library, self.db[y].in_library @@ -1207,7 +1212,7 @@ class DeviceBooksModel(BooksModel): # {{{ elif cname == 'collections': tags = self.db[self.map[row]].device_collections if tags: - tags.sort(cmp=lambda x,y: cmp(x.lower(), y.lower())) + tags.sort(key=sort_key) return QVariant(', '.join(tags)) elif DEBUG and cname == 'inlibrary': return QVariant(self.db[self.map[row]].in_library) diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index a972acfc13..f724ca7b58 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -14,7 +14,8 @@ from PyQt4.Qt import QTableView, Qt, QAbstractItemView, QMenu, pyqtSignal, \ from calibre.gui2.library.delegates import RatingDelegate, PubDateDelegate, \ TextDelegate, DateDelegate, TagsDelegate, CcTextDelegate, \ - CcBoolDelegate, CcCommentsDelegate, CcDateDelegate, CcTemplateDelegate + CcBoolDelegate, CcCommentsDelegate, CcDateDelegate, CcTemplateDelegate, \ + CcEnumDelegate from calibre.gui2.library.models import BooksModel, DeviceBooksModel from calibre.utils.config import tweaks, prefs from calibre.gui2 import error_dialog, gprefs @@ -76,6 +77,7 @@ class BooksView(QTableView): # {{{ self.publisher_delegate = TextDelegate(self) self.text_delegate = TextDelegate(self) self.cc_text_delegate = CcTextDelegate(self) + self.cc_enum_delegate = CcEnumDelegate(self) self.cc_bool_delegate = CcBoolDelegate(self) self.cc_comments_delegate = CcCommentsDelegate(self) self.cc_template_delegate = CcTemplateDelegate(self) @@ -427,6 +429,8 @@ class BooksView(QTableView): # {{{ self.setItemDelegateForColumn(cm.index(colhead), self.rating_delegate) elif cc['datatype'] == 'composite': self.setItemDelegateForColumn(cm.index(colhead), self.cc_template_delegate) + elif cc['datatype'] == 'enumeration': + self.setItemDelegateForColumn(cm.index(colhead), self.cc_enum_delegate) else: dattr = colhead+'_delegate' delegate = colhead if hasattr(self, dattr) else 'text' @@ -517,6 +521,8 @@ class BooksView(QTableView): # {{{ md.setUrls([url_for_id(i) for i in selected]) drag = QDrag(self) + col = self.selectionModel().currentIndex().column() + md.column_name = self.column_map[col] drag.setMimeData(md) cover = self.drag_icon(m.cover(self.currentIndex().row()), len(selected) > 1) diff --git a/src/calibre/gui2/lrf_renderer/main.py b/src/calibre/gui2/lrf_renderer/main.py index 8ddda175fa..2acfd3c9a7 100644 --- a/src/calibre/gui2/lrf_renderer/main.py +++ b/src/calibre/gui2/lrf_renderer/main.py @@ -127,7 +127,7 @@ class Main(MainWindow, Ui_MainWindow): self.progress_label.setText('Parsing '+ self.file_name) self.renderer = RenderWorker(self, stream, self.logger, self.opts) QObject.connect(self.renderer, SIGNAL('finished()'), self.parsed, Qt.QueuedConnection) - self.search.clear_to_help() + self.search.clear() self.last_search = None else: self.stack.setCurrentIndex(0) diff --git a/src/calibre/gui2/metadata.py b/src/calibre/gui2/metadata.py index 45cda50433..19859ed3ec 100644 --- a/src/calibre/gui2/metadata.py +++ b/src/calibre/gui2/metadata.py @@ -176,6 +176,7 @@ class DoDownload(QObject): set_metadata=set_metadata, get_social_metadata=get_social_metadata) self.timer = QTimer(self) + self.get_covers = get_covers self.timer.timeout.connect(self.do_one, type=Qt.QueuedConnection) self.db = db self.updated = set([]) @@ -222,7 +223,10 @@ class DoDownload(QObject): id_, typ, ok, title = r what = _('cover') if typ == 'cover' else _('metadata') which = _('Downloaded') if ok else _('Failed to get') - self.pd.set_msg(_('%s %s for: %s') % (which, what, title)) + if self.get_covers or typ != 'cover' or ok: + # Do not show message when cover fetch fails if user didn't ask to + # download covers + self.pd.set_msg(_('%s %s for: %s') % (which, what, title)) self.pd.value += 1 if ok: self.updated.add(id_) diff --git a/src/calibre/gui2/preferences/behavior.py b/src/calibre/gui2/preferences/behavior.py index d6d6d7be23..169a2b76fe 100644 --- a/src/calibre/gui2/preferences/behavior.py +++ b/src/calibre/gui2/preferences/behavior.py @@ -19,6 +19,7 @@ from calibre.utils.search_query_parser import saved_searches from calibre.ebooks import BOOK_EXTENSIONS from calibre.ebooks.oeb.iterator import is_supported from calibre.constants import iswindows +from calibre.utils.icu import sort_key class ConfigWidget(ConfigWidgetBase, Ui_Form): @@ -45,8 +46,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): choices = [(x.upper(), x) for x in output_formats] r('output_format', prefs, choices=choices) - restrictions = sorted(saved_searches().names(), - cmp=lambda x,y: cmp(x.lower(), y.lower())) + restrictions = sorted(saved_searches().names(), key=sort_key) choices = [('', '')] + [(x, x) for x in restrictions] r('gui_restriction', db.prefs, choices=choices) r('new_book_tags', prefs, setting=CommaSeparatedList) diff --git a/src/calibre/gui2/preferences/create_custom_column.py b/src/calibre/gui2/preferences/create_custom_column.py index ebf33784d4..3eed04f709 100644 --- a/src/calibre/gui2/preferences/create_custom_column.py +++ b/src/calibre/gui2/preferences/create_custom_column.py @@ -27,18 +27,20 @@ class CreateCustomColumn(QDialog, Ui_QCreateCustomColumn): 3:{'datatype':'series', 'text':_('Text column for keeping series-like information'), 'is_multiple':False}, - 4:{'datatype':'datetime', + 4:{'datatype':'enumeration', + 'text':_('Text, but with a fixed set of permitted values'), 'is_multiple':False}, + 5:{'datatype':'datetime', 'text':_('Date'), 'is_multiple':False}, - 5:{'datatype':'float', + 6:{'datatype':'float', 'text':_('Floating point numbers'), 'is_multiple':False}, - 6:{'datatype':'int', + 7:{'datatype':'int', 'text':_('Integers'), 'is_multiple':False}, - 7:{'datatype':'rating', + 8:{'datatype':'rating', 'text':_('Ratings, shown with stars'), 'is_multiple':False}, - 8:{'datatype':'bool', + 9:{'datatype':'bool', 'text':_('Yes/No'), 'is_multiple':False}, - 9:{'datatype':'composite', + 10:{'datatype':'composite', 'text':_('Column built from other columns'), 'is_multiple':False}, } @@ -59,6 +61,7 @@ class CreateCustomColumn(QDialog, Ui_QCreateCustomColumn): self.editing_col = editing self.standard_colheads = standard_colheads self.standard_colnames = standard_colnames + self.column_type_box.setMaxVisibleItems(len(self.column_types)) for t in self.column_types: self.column_type_box.addItem(self.column_types[t]['text']) self.column_type_box.currentIndexChanged.connect(self.datatype_changed) @@ -91,6 +94,8 @@ class CreateCustomColumn(QDialog, Ui_QCreateCustomColumn): self.date_format_box.setText(c['display'].get('date_format', '')) elif ct == 'composite': self.composite_box.setText(c['display'].get('composite_template', '')) + elif ct == 'enumeration': + self.enum_box.setText(','.join(c['display'].get('enum_values', []))) self.datatype_changed() self.exec_() @@ -103,7 +108,8 @@ class CreateCustomColumn(QDialog, Ui_QCreateCustomColumn): getattr(self, 'date_format_'+x).setVisible(col_type == 'datetime') for x in ('box', 'default_label', 'label'): getattr(self, 'composite_'+x).setVisible(col_type == 'composite') - + for x in ('box', 'default_label', 'label'): + getattr(self, 'enum_'+x).setVisible(col_type == 'enumeration') def accept(self): col = unicode(self.column_name_box.text()) @@ -145,17 +151,31 @@ class CreateCustomColumn(QDialog, Ui_QCreateCustomColumn): return self.simple_error('', _('The heading %s is already used')%col_heading) display_dict = {} + if col_type == 'datetime': if self.date_format_box.text(): display_dict = {'date_format':unicode(self.date_format_box.text())} else: display_dict = {'date_format': None} - - if col_type == 'composite': + elif col_type == 'composite': if not self.composite_box.text(): return self.simple_error('', _('You must enter a template for' ' composite columns')) display_dict = {'composite_template':unicode(self.composite_box.text())} + elif col_type == 'enumeration': + if not self.enum_box.text(): + return self.simple_error('', _('You must enter at least one' + ' value for enumeration columns')) + l = [v.strip() for v in unicode(self.enum_box.text()).split(',')] + for v in l: + if not v: + return self.simple_error('', _('You cannot provide the empty ' + 'value, as it is included by default')) + for i in range(0, len(l)-1): + if l[i] in l[i+1:]: + return self.simple_error('', _('The value "{0}" is in the ' + 'list more than once').format(l[i])) + display_dict = {'enum_values': l} db = self.parent.gui.library_view.model().db key = db.field_metadata.custom_field_prefix+col diff --git a/src/calibre/gui2/preferences/create_custom_column.ui b/src/calibre/gui2/preferences/create_custom_column.ui index 640becca8c..d4e85a24c9 100644 --- a/src/calibre/gui2/preferences/create_custom_column.ui +++ b/src/calibre/gui2/preferences/create_custom_column.ui @@ -10,7 +10,7 @@ <x>0</x> <y>0</y> <width>528</width> - <height>199</height> + <height>212</height> </rect> </property> <property name="sizePolicy"> @@ -24,7 +24,7 @@ </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> - <layout class="QGridLayout" name="gridLayout_2" rowstretch="0,0,0,0"> + <layout class="QGridLayout" name="gridLayout_2" rowstretch="0,0,0,0,0,0,0,0,0,0,0,0"> <property name="sizeConstraint"> <enum>QLayout::SetDefaultConstraint</enum> </property> @@ -56,7 +56,7 @@ </property> </widget> </item> - <item row="0" column="1"> + <item row="0" column="2"> <widget class="QLineEdit" name="column_name_box"> <property name="minimumSize"> <size> @@ -69,7 +69,7 @@ </property> </widget> </item> - <item row="1" column="1"> + <item row="1" column="2"> <widget class="QLineEdit" name="column_heading_box"> <property name="toolTip"> <string>Column heading in the library view and category name in the tag browser</string> @@ -86,7 +86,7 @@ </property> </widget> </item> - <item row="2" column="1"> + <item row="2" column="2"> <widget class="QComboBox" name="column_type_box"> <property name="sizePolicy"> <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> @@ -105,7 +105,7 @@ </property> </widget> </item> - <item row="4" column="1"> + <item row="4" column="2"> <layout class="QHBoxLayout" name="horizontalLayout_3"> <item> <widget class="QLineEdit" name="date_format_box"> @@ -147,18 +147,18 @@ </property> </widget> </item> - <item row="5" column="1"> + <item row="5" column="2"> <layout class="QHBoxLayout" name="horizontalLayout_4"> <item> <widget class="QLineEdit" name="composite_box"> <property name="sizePolicy"> - <sizepolicy hsizetype="Maximum" vsizetype="Fixed"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="toolTip"> - <string><p>Field template. Uses the same syntax as save templates.</string> + <string>Field template. Uses the same syntax as save templates.</string> </property> </widget> </item> @@ -184,7 +184,7 @@ </property> </widget> </item> - <item row="10" column="0" colspan="3"> + <item row="11" column="0" colspan="4"> <spacer name="verticalSpacer_2"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -197,6 +197,45 @@ </property> </spacer> </item> + <item row="6" column="0"> + <widget class="QLabel" name="enum_label"> + <property name="text"> + <string>Values</string> + </property> + <property name="buddy"> + <cstring>enum_box</cstring> + </property> + </widget> + </item> + <item row="6" column="2"> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <widget class="QLineEdit" name="enum_box"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>A comma-separated list of permitted values. The empty value is always +included, and is the default. For example, the list 'one,two,three' has +four values, the first of them being the empty value.</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="enum_default_label"> + <property name="toolTip"> + <string>The empty string is always the first value</string> + </property> + <property name="text"> + <string>Default: (nothing)</string> + </property> + </widget> + </item> + </layout> + </item> </layout> </item> <item row="11" column="0"> diff --git a/src/calibre/gui2/preferences/emailp.py b/src/calibre/gui2/preferences/emailp.py index f0b079e209..19007dfcf1 100644 --- a/src/calibre/gui2/preferences/emailp.py +++ b/src/calibre/gui2/preferences/emailp.py @@ -170,6 +170,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): if not self.send_email_widget.set_email_settings(to_set): raise AbortCommit('abort') self.proxy['accounts'] = self._email_accounts.accounts + return ConfigWidgetBase.commit(self) def make_default(self, *args): @@ -188,6 +189,9 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self._email_accounts.remove(idx) self.changed_signal.emit() + def refresh_gui(self, gui): + gui.emailer.calculate_rate_limit() + if __name__ == '__main__': from PyQt4.Qt import QApplication diff --git a/src/calibre/gui2/preferences/main.py b/src/calibre/gui2/preferences/main.py index c82ddcc022..fc01a33cf6 100644 --- a/src/calibre/gui2/preferences/main.py +++ b/src/calibre/gui2/preferences/main.py @@ -155,6 +155,8 @@ class Browser(QScrollArea): # {{{ class Preferences(QMainWindow): + run_wizard_requested = pyqtSignal() + def __init__(self, gui, initial_plugin=None): QMainWindow.__init__(self, gui) self.gui = gui @@ -195,6 +197,11 @@ class Preferences(QMainWindow): self.cw.setLayout(QVBoxLayout()) self.cw.layout().addWidget(self.stack) self.bb = QDialogButtonBox(QDialogButtonBox.Close) + self.wizard_button = self.bb.addButton(_('Run welcome wizard'), + self.bb.DestructiveRole) + self.wizard_button.setIcon(QIcon(I('wizard.png'))) + self.wizard_button.clicked.connect(self.run_wizard, + type=Qt.QueuedConnection) self.cw.layout().addWidget(self.bb) self.bb.rejected.connect(self.close, type=Qt.QueuedConnection) self.setCentralWidget(self.cw) @@ -240,6 +247,9 @@ class Preferences(QMainWindow): if plugin is not None: self.show_plugin(plugin) + def run_wizard(self): + self.close() + self.run_wizard_requested.emit() def show_plugin(self, plugin): self.showing_widget = plugin.create_widget(self.scroll_area) diff --git a/src/calibre/gui2/preferences/plugins.py b/src/calibre/gui2/preferences/plugins.py index 388227e438..d493b615b5 100644 --- a/src/calibre/gui2/preferences/plugins.py +++ b/src/calibre/gui2/preferences/plugins.py @@ -151,6 +151,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self._plugin_model.populate() self._plugin_model.reset() self.changed_signal.emit() + self.plugin_path.setText('') else: error_dialog(self, _('No valid plugin path'), _('%s is not a valid plugin path')%path).exec_() diff --git a/src/calibre/gui2/search_box.py b/src/calibre/gui2/search_box.py index b37d74f51f..8849e2b2ec 100644 --- a/src/calibre/gui2/search_box.py +++ b/src/calibre/gui2/search_box.py @@ -8,82 +8,78 @@ __docformat__ = 'restructuredtext en' import re -from PyQt4.Qt import QComboBox, Qt, QLineEdit, QStringList, pyqtSlot, \ - pyqtSignal, SIGNAL, QObject, QDialog, QCompleter, \ - QAction, QKeySequence, QTimer +from PyQt4.Qt import QComboBox, Qt, QLineEdit, QStringList, pyqtSlot, QDialog, \ + pyqtSignal, QCompleter, QAction, QKeySequence, QTimer, \ + QString from calibre.gui2 import config from calibre.gui2.dialogs.confirm_delete import confirm from calibre.gui2.dialogs.saved_search_editor import SavedSearchEditor from calibre.gui2.dialogs.search import SearchDialog from calibre.utils.search_query_parser import saved_searches +from calibre.utils.icu import sort_key -class SearchLineEdit(QLineEdit): +class SearchLineEdit(QLineEdit): # {{{ key_pressed = pyqtSignal(object) - mouse_released = pyqtSignal(object) - focus_out = pyqtSignal(object) def keyPressEvent(self, event): self.key_pressed.emit(event) QLineEdit.keyPressEvent(self, event) - def mouseReleaseEvent(self, event): - self.mouse_released.emit(event) - QLineEdit.mouseReleaseEvent(self, event) - - def focusOutEvent(self, event): - self.focus_out.emit(event) - QLineEdit.focusOutEvent(self, event) - def dropEvent(self, ev): - if self.parent().help_state: - self.parent().normalize_state() + self.parent().normalize_state() return QLineEdit.dropEvent(self, ev) def contextMenuEvent(self, ev): - if self.parent().help_state: - self.parent().normalize_state() + self.parent().normalize_state() return QLineEdit.contextMenuEvent(self, ev) @pyqtSlot() def paste(self, *args): - if self.parent().help_state: - self.parent().normalize_state() + self.parent().normalize_state() return QLineEdit.paste(self) +# }}} -class SearchBox2(QComboBox): +class SearchBox2(QComboBox): # {{{ ''' To use this class: * Call initialize() * Connect to the search() and cleared() signals from this widget. - * Connect to the cleared() signal to know when the box content changes + * Connect to the changed() signal to know when the box content changes + * Connect to focus_to_library() signal to be told to manually change focus * Call search_done() after every search is complete - * Use clear() to clear back to the help message + * Call set_search_string() to perform a search programmatically + * You can use the current_text property to get the current search text + Be aware that if you are using it in a slot connected to the + changed() signal, if the connection is not queued it will not be + accurate. ''' INTERVAL = 1500 #: Time to wait before emitting search signal MAX_COUNT = 25 - search = pyqtSignal(object) + search = pyqtSignal(object) + cleared = pyqtSignal() + changed = pyqtSignal() + focus_to_library = pyqtSignal() def __init__(self, parent=None): QComboBox.__init__(self, parent) self.normal_background = 'rgb(255, 255, 255, 0%)' self.line_edit = SearchLineEdit(self) self.setLineEdit(self.line_edit) + c = self.line_edit.completer() c.setCompletionMode(c.PopupCompletion) - self.line_edit.key_pressed.connect(self.key_pressed, - type=Qt.DirectConnection) - self.line_edit.mouse_released.connect(self.mouse_released, - type=Qt.DirectConnection) + c.highlighted[QString].connect(self.completer_used) + c.activated[QString].connect(self.history_selected) + + self.line_edit.key_pressed.connect(self.key_pressed, type=Qt.DirectConnection) self.activated.connect(self.history_selected) self.setEditable(True) - self.help_state = False self.as_you_type = True - self.prev_search = '' self.timer = QTimer() self.timer.setSingleShot(True) self.timer.timeout.connect(self.timer_event, type=Qt.QueuedConnection) @@ -97,136 +93,130 @@ class SearchBox2(QComboBox): def initialize(self, opt_name, colorize=False, help_text=_('Search')): self.as_you_type = config['search_as_you_type'] self.opt_name = opt_name - self.addItems(QStringList(list(set(config[opt_name])))) - self.help_text = help_text + items = [] + for item in config[opt_name]: + if item not in items: + items.append(item) + self.addItems(QStringList(items)) + try: + self.line_edit.setPlaceholderText(help_text) + except: + # Using Qt < 4.7 + pass self.colorize = colorize - self.clear_to_help() + self.clear() def normalize_state(self): self.setToolTip(self.tool_tip_text) - if self.help_state: - self.setEditText('') - self.line_edit.setStyleSheet( - 'QLineEdit { color: black; background-color: %s; }' % - self.normal_background) - self.help_state = False - else: - self.line_edit.setStyleSheet( - 'QLineEdit { color: black; background-color: %s; }' % - self.normal_background) - - def clear_to_help(self): - self.setToolTip(self.tool_tip_text) - if self.help_state: - return - self.help_state = True - self.search.emit('') - self._in_a_search = False - self.setEditText(self.help_text) - self.line_edit.home(False) self.line_edit.setStyleSheet( - 'QLineEdit { color: gray; background-color: %s; }' % - self.normal_background) - self.emit(SIGNAL('cleared()')) + 'QLineEdit{color:black;background-color:%s;}' % self.normal_background) def text(self): return self.currentText() - def clear(self): - self.clear_to_help() + def clear(self, emit_search=True): + self.normalize_state() + self.setEditText('') + if emit_search: + self.search.emit('') + self._in_a_search = False + self.cleared.emit() + + def clear_clicked(self, *args): + self.clear() def search_done(self, ok): if isinstance(ok, basestring): self.setToolTip(ok) ok = False if not unicode(self.currentText()).strip(): - return self.clear_to_help() + self.clear(emit_search=False) + return self._in_a_search = ok col = 'rgba(0,255,0,20%)' if ok else 'rgb(255,0,0,20%)' if not self.colorize: col = self.normal_background - self.line_edit.setStyleSheet('QLineEdit { color: black; background-color: %s; }' % col) + self.line_edit.setStyleSheet('QLineEdit{color:black;background-color:%s;}' % col) + # Comes from the lineEdit control def key_pressed(self, event): k = event.key() if k in (Qt.Key_Left, Qt.Key_Right, Qt.Key_Up, Qt.Key_Down, - Qt.Key_Home, Qt.Key_End, Qt.Key_PageUp, Qt.Key_PageDown): + Qt.Key_Home, Qt.Key_End, Qt.Key_PageUp, Qt.Key_PageDown, + Qt.Key_unknown): return self.normalize_state() if self._in_a_search: - self.emit(SIGNAL('changed()')) + self.changed.emit() self._in_a_search = False if event.key() in (Qt.Key_Return, Qt.Key_Enter): self.do_search() - if self.as_you_type: + self.focus_to_library.emit() + elif self.as_you_type and unicode(event.text()): self.timer.start(1500) - def mouse_released(self, event): + # Comes from the combobox itself + def keyPressEvent(self, event): + k = event.key() + if k not in (Qt.Key_Up, Qt.Key_Down): + QComboBox.keyPressEvent(self, event) + else: + self.blockSignals(True) + self.normalize_state() + QComboBox.keyPressEvent(self, event) + self.blockSignals(False) + + def completer_used(self, text): + self.timer.stop() self.normalize_state() - # Dont trigger a search since it make - # re-positioning the cursor using the mouse - # impossible - #if self.as_you_type: - # self.timer.start(1500) def timer_event(self): self.do_search() def history_selected(self, text): - self.emit(SIGNAL('changed()')) + self.changed.emit() self.do_search() - @property - def smart_text(self): + def _do_search(self, store_in_history=True): text = unicode(self.currentText()).strip() - if not text or text == self.help_text: - return '' - return text - - def do_search(self, *args): - text = unicode(self.currentText()).strip() - if not text or text == self.help_text: + if not text: return self.clear() - self.help_state = False - self.prev_search = text self.search.emit(text) - idx = self.findText(text, Qt.MatchFixedString) - self.block_signals(True) - if idx < 0: - self.insertItem(0, text) - else: - t = self.itemText(idx) - self.removeItem(idx) - self.insertItem(0, t) + if store_in_history: + idx = self.findText(text, Qt.MatchFixedString) + self.block_signals(True) + if idx < 0: + self.insertItem(0, text) + else: + t = self.itemText(idx) + self.removeItem(idx) + self.insertItem(0, t) self.setCurrentIndex(0) - self.block_signals(False) - config[self.opt_name] = [unicode(self.itemText(i)) for i in - range(self.count())] + self.block_signals(False) + history = [unicode(self.itemText(i)) for i in + range(self.count())] + config[self.opt_name] = history + + def do_search(self, *args): + self._do_search() def block_signals(self, yes): self.blockSignals(yes) self.line_edit.blockSignals(yes) - def search_from_tokens(self, tokens, all): - ans = u' '.join([u'%s:%s'%x for x in tokens]) - if not all: - ans = '[' + ans + ']' - self.set_search_string(ans) - - def search_from_tags(self, tags, all): - joiner = ' and ' if all else ' or ' - self.set_search_string(joiner.join(tags)) - - def set_search_string(self, txt): + def set_search_string(self, txt, store_in_history=False, emit_changed=True): + self.setFocus(Qt.OtherFocusReason) if not txt: - self.clear_to_help() - return - self.normalize_state() - self.setEditText(txt) - self.search.emit(txt) - self.line_edit.end(False) - self.initial_state = False + self.clear() + else: + self.normalize_state() + self.setEditText(txt) + self.line_edit.end(False) + if emit_changed: + self.changed.emit() + self._do_search(store_in_history=store_in_history) + self.focus_to_library.emit() def search_as_you_type(self, enabled): self.as_you_type = enabled @@ -234,7 +224,13 @@ class SearchBox2(QComboBox): def in_a_search(self): return self._in_a_search -class SavedSearchBox(QComboBox): + @property + def current_text(self): + return unicode(self.lineEdit().text()) + + # }}} + +class SavedSearchBox(QComboBox): # {{{ ''' To use this class: @@ -243,25 +239,23 @@ class SavedSearchBox(QComboBox): if you care about changes to the list of saved searches. ''' + changed = pyqtSignal() + def __init__(self, parent=None): QComboBox.__init__(self, parent) self.normal_background = 'rgb(255, 255, 255, 0%)' self.line_edit = SearchLineEdit(self) self.setLineEdit(self.line_edit) - self.line_edit.key_pressed.connect(self.key_pressed, - type=Qt.DirectConnection) - self.line_edit.mouse_released.connect(self.mouse_released, - type=Qt.DirectConnection) - self.line_edit.focus_out.connect(self.focus_out, - type=Qt.DirectConnection) + self.line_edit.key_pressed.connect(self.key_pressed, type=Qt.DirectConnection) self.activated[str].connect(self.saved_search_selected) - completer = QCompleter(self) # turn off auto-completion + # Turn off auto-completion so that it doesn't interfere with typing + # names of new searches. + completer = QCompleter(self) self.setCompleter(completer) + self.setEditable(True) - self.help_state = True - self.prev_search = '' self.setInsertPolicy(self.NoInsert) self.setSizeAdjustPolicy(self.AdjustToMinimumContentsLengthWithIcon) self.setMinimumContentsLength(10) @@ -269,50 +263,42 @@ class SavedSearchBox(QComboBox): def initialize(self, _search_box, colorize=False, help_text=_('Search')): self.search_box = _search_box - self.help_text = help_text + try: + self.line_edit.setPlaceholderText(help_text) + except: + # Using Qt < 4.7 + pass self.colorize = colorize - self.clear_to_help() + self.clear() def normalize_state(self): - self.setEditText('') - self.line_edit.setStyleSheet( - 'QLineEdit { color: black; background-color: %s; }' % - self.normal_background) - self.help_state = False + # need this because line_edit will call it in some cases such as paste + pass - def clear_to_help(self): - self.setToolTip(self.tool_tip_text) + def clear(self): + QComboBox.clear(self) self.initialize_saved_search_names() - self.setEditText(self.help_text) + self.setEditText('') self.line_edit.home(False) - self.help_state = True - self.line_edit.setStyleSheet( - 'QLineEdit { color: gray; background-color: %s; }' % - self.normal_background) - - def focus_out(self, event): - if self.currentText() == '': - self.clear_to_help() def key_pressed(self, event): - if self.help_state: - self.normalize_state() - - def mouse_released(self, event): - if self.help_state: - self.normalize_state() + if event.key() in (Qt.Key_Return, Qt.Key_Enter): + self.saved_search_selected(self.currentText()) def saved_search_selected(self, qname): qname = unicode(qname) if qname is None or not qname.strip(): + self.search_box.clear() return - self.normalize_state() - self.search_box.set_search_string(u'search:"%s"' % qname) + if not saved_searches().lookup(qname): + self.search_box.clear() + self.setEditText(qname) + return + self.search_box.set_search_string(u'search:"%s"' % qname, emit_changed=False) self.setEditText(qname) self.setToolTip(saved_searches().lookup(qname)) def initialize_saved_search_names(self): - self.clear() qnames = saved_searches().names() self.addItems(qnames) self.setCurrentIndex(-1) @@ -330,25 +316,24 @@ class SavedSearchBox(QComboBox): if ss is None: return saved_searches().delete(unicode(self.currentText())) - self.clear_to_help() - self.search_box.clear_to_help() - self.emit(SIGNAL('changed()')) + self.clear() + self.search_box.clear() + self.changed.emit() # SIGNALed from the main UI def save_search_button_clicked(self): name = unicode(self.currentText()) - if self.help_state or not name.strip(): + if not name.strip(): name = unicode(self.search_box.text()).replace('"', '') saved_searches().delete(name) saved_searches().add(name, unicode(self.search_box.text())) # now go through an initialization cycle to ensure that the combobox has # the new search in it, that it is selected, and that the search box # references the new search instead of the text in the search. - self.clear_to_help() - self.normalize_state() + self.clear() self.setCurrentIndex(self.findText(name)) self.saved_search_selected (name) - self.emit(SIGNAL('changed()')) + self.changed.emit() # SIGNALed from the main UI def copy_search_button_clicked (self): @@ -357,16 +342,20 @@ class SavedSearchBox(QComboBox): return self.search_box.set_search_string(saved_searches().lookup(unicode(self.currentText()))) -class SearchBoxMixin(object): + # }}} + +class SearchBoxMixin(object): # {{{ def __init__(self): self.search.initialize('main_search_history', colorize=True, help_text=_('Search (For Advanced Search click the button to the left)')) - self.connect(self.search, SIGNAL('cleared()'), self.search_box_cleared) - self.connect(self.search, SIGNAL('changed()'), self.search_box_changed) - self.connect(self.clear_button, SIGNAL('clicked()'), self.search.clear) - QObject.connect(self.advanced_search_button, SIGNAL('clicked(bool)'), - self.do_advanced_search) + self.search.cleared.connect(self.search_box_cleared) + # Queued so that search.current_text will be correct + self.search.changed.connect(self.search_box_changed, + type=Qt.QueuedConnection) + self.search.focus_to_library.connect(self.focus_to_library) + self.clear_button.clicked.connect(self.search.clear_clicked) + self.advanced_search_button.clicked[bool].connect(self.do_advanced_search) self.search.clear() self.search.setMaximumWidth(self.width()-150) @@ -374,42 +363,54 @@ class SearchBoxMixin(object): shortcuts = QKeySequence.keyBindings(QKeySequence.Find) shortcuts = list(shortcuts) + [QKeySequence('/'), QKeySequence('Alt+S')] self.action_focus_search.setShortcuts(shortcuts) - self.action_focus_search.triggered.connect(lambda x: - self.search.setFocus(Qt.OtherFocusReason)) + self.action_focus_search.triggered.connect(self.focus_search_box) self.addAction(self.action_focus_search) self.search.setStatusTip(re.sub(r'<\w+>', ' ', unicode(self.search.toolTip()))) self.advanced_search_button.setStatusTip(self.advanced_search_button.toolTip()) self.clear_button.setStatusTip(self.clear_button.toolTip()) + def focus_search_box(self, *args): + self.search.setFocus(Qt.OtherFocusReason) + self.search.lineEdit().selectAll() + def search_box_cleared(self): self.tags_view.clear() - self.saved_search.clear_to_help() + self.saved_search.clear() self.set_number_of_books_shown() def search_box_changed(self): - self.saved_search.clear_to_help() - self.tags_view.clear() + self.saved_search.clear() + self.tags_view.conditional_clear(self.search.current_text) def do_advanced_search(self, *args): d = SearchDialog(self, self.library_view.model().db) if d.exec_() == QDialog.Accepted: - self.search.set_search_string(d.search_string()) + self.search.set_search_string(d.search_string(), store_in_history=True) -class SavedSearchBoxMixin(object): + def do_search_button(self): + self.search.do_search() + self.focus_to_library() + + def focus_to_library(self): + self.current_view().setFocus(Qt.OtherFocusReason) + + # }}} + +class SavedSearchBoxMixin(object): # {{{ def __init__(self): - self.connect(self.saved_search, SIGNAL('changed()'), self.saved_searches_changed) + self.saved_search.changed.connect(self.saved_searches_changed) + self.clear_button.clicked.connect(self.saved_search.clear) + self.save_search_button.clicked.connect( + self.saved_search.save_search_button_clicked) + self.delete_search_button.clicked.connect( + self.saved_search.delete_search_button_clicked) + self.copy_search_button.clicked.connect( + self.saved_search.copy_search_button_clicked) self.saved_searches_changed() - self.connect(self.clear_button, SIGNAL('clicked()'), self.saved_search.clear_to_help) self.saved_search.initialize(self.search, colorize=True, help_text=_('Saved Searches')) - self.connect(self.save_search_button, SIGNAL('clicked()'), - self.saved_search.save_search_button_clicked) - self.connect(self.delete_search_button, SIGNAL('clicked()'), - self.saved_search.delete_search_button_clicked) - self.connect(self.copy_search_button, SIGNAL('clicked()'), - self.saved_search.copy_search_button_clicked) self.saved_search.setToolTip( _('Choose saved search or enter name for new saved search')) self.saved_search.setStatusTip(self.saved_search.toolTip()) @@ -418,9 +419,10 @@ class SavedSearchBoxMixin(object): b.setStatusTip(b.toolTip()) def saved_searches_changed(self): - p = sorted(saved_searches().names(), cmp=lambda x,y: cmp(x.lower(), y.lower())) + p = sorted(saved_searches().names(), key=sort_key) t = unicode(self.search_restriction.currentText()) - self.search_restriction.clear() # rebuild the restrictions combobox using current saved searches + # rebuild the restrictions combobox using current saved searches + self.search_restriction.clear() self.search_restriction.addItem('') self.tags_view.recount() for s in p: @@ -433,6 +435,7 @@ class SavedSearchBoxMixin(object): d.exec_() if d.result() == d.Accepted: self.saved_searches_changed() - self.saved_search.clear_to_help() + self.saved_search.clear() + # }}} diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index 139d7c551d..74132ae610 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -4,6 +4,8 @@ Created on 10 Jun 2010 @author: charles ''' +from PyQt4.Qt import Qt + class SearchRestrictionMixin(object): def __init__(self): @@ -49,10 +51,11 @@ class SearchRestrictionMixin(object): restriction = '' self.restriction_count_of_books_in_view = \ self.library_view.model().set_search_restriction(restriction) - self.search.clear_to_help() - self.saved_search.clear_to_help() + self.search.clear() + self.saved_search.clear() self.tags_view.set_search_restriction(restriction) self.set_number_of_books_shown() + self.current_view().setFocus(Qt.OtherFocusReason) def set_number_of_books_shown(self): if self.current_view() == self.library_view and self.restriction_in_effect: diff --git a/src/calibre/gui2/shortcuts.py b/src/calibre/gui2/shortcuts.py index 24395a22b6..bdd699a69d 100644 --- a/src/calibre/gui2/shortcuts.py +++ b/src/calibre/gui2/shortcuts.py @@ -14,6 +14,7 @@ from PyQt4.Qt import QAbstractListModel, Qt, QKeySequence, QListView, \ from calibre.gui2 import NONE, error_dialog from calibre.utils.config import XMLConfig +from calibre.utils.icu import sort_key from calibre.gui2.shortcuts_ui import Ui_Frame DEFAULTS = Qt.UserRole @@ -175,8 +176,7 @@ class Shortcuts(QAbstractListModel): for k, v in shortcuts.items(): self.keys[k] = v[0] self.order = list(shortcuts) - self.order.sort(cmp=lambda x,y : cmp(self.descriptions[x], - self.descriptions[y])) + self.order.sort(key=lambda x : sort_key(self.descriptions[x])) self.sequences = {} for k, v in self.keys.items(): self.sequences[k] = [QKeySequence(x) for x in v] diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index 76b2478015..fdae1bdbc9 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -18,6 +18,7 @@ from PyQt4.Qt import Qt, QTreeView, QApplication, pyqtSignal, \ from calibre.ebooks.metadata import title_sort from calibre.gui2 import config, NONE from calibre.library.field_metadata import TagsIcons, category_icon_map +from calibre.utils.icu import sort_key from calibre.utils.search_query_parser import saved_searches from calibre.gui2 import error_dialog from calibre.gui2.dialogs.confirm_delete import confirm @@ -60,14 +61,14 @@ class TagDelegate(QItemDelegate): # {{{ class TagsView(QTreeView): # {{{ refresh_required = pyqtSignal() - tags_marked = pyqtSignal(object, object) + tags_marked = pyqtSignal(object) user_category_edit = pyqtSignal(object) tag_list_edit = pyqtSignal(object, object) saved_search_edit = pyqtSignal(object) author_sort_edit = pyqtSignal(object, object) tag_item_renamed = pyqtSignal() search_item_renamed = pyqtSignal() - drag_drop_finished = pyqtSignal(object) + drag_drop_finished = pyqtSignal(object, object) def __init__(self, parent=None): QTreeView.__init__(self, parent=None) @@ -106,10 +107,13 @@ class TagsView(QTreeView): # {{{ self.refresh_required.connect(self.recount, type=Qt.QueuedConnection) self.sort_by.currentIndexChanged.connect(self.sort_changed) self.made_connections = True + self.refresh_signal_processed = True db.add_listener(self.database_changed) def database_changed(self, event, ids): - self.refresh_required.emit() + if self.refresh_signal_processed: + self.refresh_signal_processed = False + self.refresh_required.emit() @property def match_all(self): @@ -135,11 +139,21 @@ class TagsView(QTreeView): # {{{ # swallow these to avoid toggling and editing at the same time pass + @property + def search_string(self): + tokens = self._model.tokens() + joiner = ' and ' if self.match_all else ' or ' + return joiner.join(tokens) + def toggle(self, index): modifiers = int(QApplication.keyboardModifiers()) exclusive = modifiers not in (Qt.CTRL, Qt.SHIFT) if self._model.toggle(index, exclusive): - self.tags_marked.emit(self._model.tokens(), self.match_all) + self.tags_marked.emit(self.search_string) + + def conditional_clear(self, search_string): + if search_string != self.search_string: + self.clear() def context_menu_handler(self, action=None, category=None, key=None, index=None): @@ -174,77 +188,106 @@ class TagsView(QTreeView): # {{{ def show_context_menu(self, point): index = self.indexAt(point) - if not index.isValid(): - return False - item = index.internalPointer() - tag_name = '' - if item.type == TagTreeItem.TAG: - tag_item = item - tag_name = item.tag.name - tag_id = item.tag.id - item = item.parent - if item.type == TagTreeItem.CATEGORY: - category = unicode(item.name.toString()) - key = item.category_key - # Verify that we are working with a field that we know something about - if key not in self.db.field_metadata: - return True + self.context_menu = QMenu(self) - self.context_menu = QMenu(self) - # If the user right-clicked on an editable item, then offer - # the possibility of renaming that item - if tag_name and \ - (key in ['authors', 'tags', 'series', 'publisher', 'search'] or \ - self.db.field_metadata[key]['is_custom'] and \ - self.db.field_metadata[key]['datatype'] != 'rating'): - self.context_menu.addAction(_('Rename \'%s\'')%tag_name, - partial(self.context_menu_handler, action='edit_item', - category=tag_item, index=index)) - if key == 'authors': - self.context_menu.addAction(_('Edit sort for \'%s\'')%tag_name, - partial(self.context_menu_handler, - action='edit_author_sort', index=tag_id)) + if index.isValid(): + item = index.internalPointer() + tag_name = '' + + if item.type == TagTreeItem.TAG: + tag_item = item + tag_name = item.tag.name + tag_id = item.tag.id + item = item.parent + + if item.type == TagTreeItem.CATEGORY: + category = unicode(item.name.toString()) + key = item.category_key + # Verify that we are working with a field that we know something about + if key not in self.db.field_metadata: + return True + + # If the user right-clicked on an editable item, then offer + # the possibility of renaming that item + if tag_name and \ + (key in ['authors', 'tags', 'series', 'publisher', 'search'] or \ + self.db.field_metadata[key]['is_custom'] and \ + self.db.field_metadata[key]['datatype'] != 'rating'): + self.context_menu.addAction(_('Rename \'%s\'')%tag_name, + partial(self.context_menu_handler, action='edit_item', + category=tag_item, index=index)) + if key == 'authors': + self.context_menu.addAction(_('Edit sort for \'%s\'')%tag_name, + partial(self.context_menu_handler, + action='edit_author_sort', index=tag_id)) + self.context_menu.addSeparator() + # Hide/Show/Restore categories + self.context_menu.addAction(_('Hide category %s') % category, + partial(self.context_menu_handler, action='hide', category=category)) + if self.hidden_categories: + m = self.context_menu.addMenu(_('Show category')) + for col in sorted(self.hidden_categories, key=sort_key): + m.addAction(col, + partial(self.context_menu_handler, action='show', category=col)) + + # Offer specific editors for tags/series/publishers/saved searches self.context_menu.addSeparator() - # Hide/Show/Restore categories - self.context_menu.addAction(_('Hide category %s') % category, - partial(self.context_menu_handler, action='hide', category=category)) - if self.hidden_categories: - m = self.context_menu.addMenu(_('Show category')) - for col in sorted(self.hidden_categories, cmp=lambda x,y: cmp(x.lower(), y.lower())): - m.addAction(col, - partial(self.context_menu_handler, action='show', category=col)) - self.context_menu.addAction(_('Show all categories'), - partial(self.context_menu_handler, action='defaults')) + if key in ['tags', 'publisher', 'series'] or \ + self.db.field_metadata[key]['is_custom']: + self.context_menu.addAction(_('Manage %s')%category, + partial(self.context_menu_handler, action='open_editor', + category=tag_name, key=key)) + elif key == 'authors': + self.context_menu.addAction(_('Manage %s')%category, + partial(self.context_menu_handler, action='edit_author_sort')) + elif key == 'search': + self.context_menu.addAction(_('Manage Saved Searches'), + partial(self.context_menu_handler, action='manage_searches', + category=tag_name)) - # Offer specific editors for tags/series/publishers/saved searches - self.context_menu.addSeparator() - if key in ['tags', 'publisher', 'series'] or \ - self.db.field_metadata[key]['is_custom']: - self.context_menu.addAction(_('Manage %s')%category, - partial(self.context_menu_handler, action='open_editor', - category=tag_name, key=key)) - elif key == 'authors': - self.context_menu.addAction(_('Manage %s')%category, - partial(self.context_menu_handler, action='edit_author_sort')) - elif key == 'search': - self.context_menu.addAction(_('Manage Saved Searches'), - partial(self.context_menu_handler, action='manage_searches', - category=tag_name)) + # Always show the user categories editor + self.context_menu.addSeparator() + if category in self.db.prefs.get('user_categories', {}).keys(): + self.context_menu.addAction(_('Manage User Categories'), + partial(self.context_menu_handler, action='manage_categories', + category=category)) + else: + self.context_menu.addAction(_('Manage User Categories'), + partial(self.context_menu_handler, action='manage_categories', + category=None)) - # Always show the user categories editor - self.context_menu.addSeparator() - if category in self.db.prefs.get('user_categories', {}).keys(): - self.context_menu.addAction(_('Manage User Categories'), - partial(self.context_menu_handler, action='manage_categories', - category=category)) - else: - self.context_menu.addAction(_('Manage User Categories'), - partial(self.context_menu_handler, action='manage_categories', - category=None)) + if self.hidden_categories: + if not self.context_menu.isEmpty(): + self.context_menu.addSeparator() + self.context_menu.addAction(_('Show all categories'), + partial(self.context_menu_handler, action='defaults')) + if not self.context_menu.isEmpty(): self.context_menu.popup(self.mapToGlobal(point)) return True + def dragMoveEvent(self, event): + QTreeView.dragMoveEvent(self, event) + self.setDropIndicatorShown(False) + index = self.indexAt(event.pos()) + if not index.isValid(): + return + item = index.internalPointer() + flags = self._model.flags(index) + if item.type == TagTreeItem.TAG and flags & Qt.ItemIsDropEnabled: + self.setDropIndicatorShown(True) + else: + if item.type == TagTreeItem.CATEGORY: + fm_dest = self.db.metadata_for_field(item.category_key) + if fm_dest['kind'] == 'user': + md = event.mimeData() + fm_src = self.db.metadata_for_field(md.column_name) + if md.column_name in ['authors', 'publisher', 'series'] or \ + (fm_src['is_custom'] and + fm_src['datatype'] in ['series', 'text'] and + not fm_src['is_multiple']): + self.setDropIndicatorShown(True) + def clear(self): if self.model(): self.model().clear_state() @@ -256,6 +299,7 @@ class TagsView(QTreeView): # {{{ return self.isExpanded(idx) def recount(self, *args): + self.refresh_signal_processed = True ci = self.currentIndex() if not ci.isValid(): ci = self.indexAt(QPoint(10, 10)) @@ -441,8 +485,59 @@ class TagsModel(QAbstractItemModel): # {{{ ids = list(map(int, str(md.data(mime)).split())) self.handle_drop(node, ids) return True + elif node.type == TagTreeItem.CATEGORY: + fm_dest = self.db.metadata_for_field(node.category_key) + if fm_dest['kind'] == 'user': + fm_src = self.db.metadata_for_field(md.column_name) + if md.column_name in ['authors', 'publisher', 'series'] or \ + (fm_src['is_custom'] and + fm_src['datatype'] in ['series', 'text'] and + not fm_src['is_multiple']): + mime = 'application/calibre+from_library' + ids = list(map(int, str(md.data(mime)).split())) + self.handle_user_category_drop(node, ids, md.column_name) + return True return False + def handle_user_category_drop(self, on_node, ids, column): + categories = self.db.prefs.get('user_categories', {}) + category = categories.get(on_node.category_key[:-1], None) + if category is None: + return + fm_src = self.db.metadata_for_field(column) + for id in ids: + vmap = {} + label = fm_src['label'] + if not fm_src['is_custom']: + if label == 'authors': + items = self.db.get_authors_with_ids() + items = [(i[0], i[1].replace('|', ',')) for i in items] + value = self.db.authors(id, index_is_id=True) + value = [v.replace('|', ',') for v in value.split(',')] + elif label == 'publisher': + items = self.db.get_publishers_with_ids() + value = self.db.publisher(id, index_is_id=True) + elif label == 'series': + items = self.db.get_series_with_ids() + value = self.db.series(id, index_is_id=True) + else: + items = self.db.get_custom_items_with_ids(label=label) + value = self.db.get_custom(id, label=label, index_is_id=True) + if value is None: + return + if not isinstance(value, list): + value = [value] + for v in items: + vmap[v[1]] = v[0] + for val in value: + for (v, c, id) in category: + if v == val and c == column: + break + else: + category.append([val, column, vmap[val]]) + categories[on_node.category_key[:-1]] = category + self.db.prefs.set('user_categories', categories) + self.drag_drop_finished.emit(None, True) def handle_drop(self, on_node, ids): #print 'Dropped ids:', ids, on_node.tag @@ -492,7 +587,7 @@ class TagsModel(QAbstractItemModel): # {{{ self.db.set_metadata(id, mi, set_title=False, set_authors=set_authors, commit=False) self.db.commit() - self.drag_drop_finished.emit(ids) + self.drag_drop_finished.emit(ids, False) def set_search_restriction(self, s): self.search_restriction = s @@ -505,7 +600,8 @@ class TagsModel(QAbstractItemModel): # {{{ # Reconstruct the user categories, putting them into metadata self.db.field_metadata.remove_dynamic_categories() tb_cats = self.db.field_metadata - for user_cat in sorted(self.db.prefs.get('user_categories', {}).keys()): + for user_cat in sorted(self.db.prefs.get('user_categories', {}).keys(), + key=sort_key): cat_name = user_cat+':' # add the ':' to avoid name collision tb_cats.add_user_category(label=cat_name, name=user_cat) if len(saved_searches().names()): @@ -634,6 +730,8 @@ class TagsModel(QAbstractItemModel): # {{{ (fm['is_custom'] and \ fm['datatype'] in ['text', 'rating', 'series']): ans |= Qt.ItemIsDropEnabled + else: + ans |= Qt.ItemIsDropEnabled return ans def supportedDropActions(self): @@ -760,8 +858,7 @@ class TagBrowserMixin(object): # {{{ self.library_view.model().count_changed_signal.connect(self.tags_view.recount) self.tags_view.set_database(self.library_view.model().db, self.tag_match, self.sort_by) - self.tags_view.tags_marked.connect(self.search.search_from_tags) - self.tags_view.tags_marked.connect(self.saved_search.clear_to_help) + self.tags_view.tags_marked.connect(self.search.set_search_string) self.tags_view.tag_list_edit.connect(self.do_tags_list_edit) self.tags_view.user_category_edit.connect(self.do_user_categories_edit) self.tags_view.saved_search_edit.connect(self.do_saved_search_edit) @@ -783,23 +880,23 @@ class TagBrowserMixin(object): # {{{ db=self.library_view.model().db if category == 'tags': result = db.get_tags_with_ids() - compare = (lambda x,y:cmp(x.lower(), y.lower())) + key = sort_key elif category == 'series': result = db.get_series_with_ids() - compare = (lambda x,y:cmp(title_sort(x).lower(), title_sort(y).lower())) + key = lambda x:sort_key(title_sort(x)) elif category == 'publisher': result = db.get_publishers_with_ids() - compare = (lambda x,y:cmp(x.lower(), y.lower())) + key = sort_key else: # should be a custom field cc_label = None if category in db.field_metadata: cc_label = db.field_metadata[category]['label'] - result = self.db.get_custom_items_with_ids(label=cc_label) + result = db.get_custom_items_with_ids(label=cc_label) else: result = [] - compare = (lambda x,y:cmp(x.lower(), y.lower())) + key = sort_key - d = TagListEditor(self, tag_to_match=tag, data=result, compare=compare) + d = TagListEditor(self, tag_to_match=tag, data=result, key=key) d.exec_() if d.result() == d.Accepted: to_rename = d.to_rename # dict of new text to old id @@ -828,14 +925,14 @@ class TagBrowserMixin(object): # {{{ self.library_view.model().refresh() self.tags_view.set_new_model() self.tags_view.recount() - self.saved_search.clear_to_help() - self.search.clear_to_help() + self.saved_search.clear() + self.search.clear() def do_tag_item_renamed(self): # Clean up library view and search self.library_view.model().refresh() - self.saved_search.clear_to_help() - self.search.clear_to_help() + self.saved_search.clear() + self.search.clear() def do_author_sort_edit(self, parent, id): db = self.library_view.model().db @@ -846,12 +943,17 @@ class TagBrowserMixin(object): # {{{ if old_author != new_author: # The id might change if the new author already exists id = db.rename_author(id, new_author) - db.set_sort_field_for_author(id, unicode(new_sort)) + db.set_sort_field_for_author(id, unicode(new_sort), + commit=False, notify=False) + db.commit() self.library_view.model().refresh() self.tags_view.recount() - def drag_drop_finished(self, ids): - self.library_view.model().refresh_ids(ids) + def drag_drop_finished(self, ids, is_category): + if is_category: + self.tags_view.recount() + else: + self.library_view.model().refresh_ids(ids) # }}} diff --git a/src/calibre/gui2/tools.py b/src/calibre/gui2/tools.py index 2919493d12..fc84e88d09 100644 --- a/src/calibre/gui2/tools.py +++ b/src/calibre/gui2/tools.py @@ -245,11 +245,11 @@ def fetch_scheduled_recipe(arg): return 'gui_convert', args, _('Fetch news from ')+arg['title'], fmt.upper(), [pt] -def generate_catalog(parent, dbspec, ids, device_manager): +def generate_catalog(parent, dbspec, ids, device_manager, db): from calibre.gui2.dialogs.catalog import Catalog # Build the Catalog dialog in gui2.dialogs.catalog - d = Catalog(parent, dbspec, ids) + d = Catalog(parent, dbspec, ids, db) if d.exec_() != d.Accepted: return None diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index 0ae15b0caa..cb25f75d4a 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -26,13 +26,15 @@ from calibre.utils.ipc.server import Server from calibre.library.database2 import LibraryDatabase2 from calibre.customize.ui import interface_actions from calibre.gui2 import error_dialog, GetMetadata, open_local_file, \ - gprefs, max_available_height, config, info_dialog, Dispatcher + gprefs, max_available_height, config, info_dialog, Dispatcher, \ + question_dialog from calibre.gui2.cover_flow import CoverFlowMixin from calibre.gui2.widgets import ProgressIndicator from calibre.gui2.update import UpdateMixin from calibre.gui2.main_window import MainWindow from calibre.gui2.layout import MainWindowMixin from calibre.gui2.device import DeviceMixin +from calibre.gui2.email import EmailMixin from calibre.gui2.jobs import JobManager, JobsDialog, JobsButton from calibre.gui2.init import LibraryViewMixin, LayoutMixin from calibre.gui2.search_box import SearchBoxMixin, SavedSearchBoxMixin @@ -87,7 +89,7 @@ class SystemTrayIcon(QSystemTrayIcon): # {{{ # }}} -class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ +class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ TagBrowserMixin, CoverFlowMixin, LibraryViewMixin, SearchBoxMixin, SavedSearchBoxMixin, SearchRestrictionMixin, LayoutMixin, UpdateMixin ): @@ -100,9 +102,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ self.device_connected = None acmap = OrderedDict() for action in interface_actions(): - mod, cls = action.actual_plugin.split(':') - ac = getattr(__import__(mod, fromlist=['1'], level=0), cls)(self, - action.site_customization) + ac = action.load_actual_plugin(self) if ac.name in acmap: if ac.priority >= acmap[ac.name].priority: acmap[ac.name] = ac @@ -140,6 +140,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ # }}} LayoutMixin.__init__(self) + EmailMixin.__init__(self) DeviceMixin.__init__(self) self.restriction_count_of_books_in_view = 0 @@ -181,9 +182,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ self.connect(self.donate_action, SIGNAL('triggered(bool)'), self.donate) self.connect(self.restore_action, SIGNAL('triggered()'), self.show_windows) - self.connect(self.system_tray_icon, - SIGNAL('activated(QSystemTrayIcon::ActivationReason)'), - self.system_tray_icon_activated) + self.system_tray_icon.activated.connect( + self.system_tray_icon_activated) ####################### Start spare job server ######################## @@ -250,7 +250,6 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ self.keyboard_interrupt.connect(self.quit, type=Qt.QueuedConnection) - self.read_settings() self.finalize_layout() if self.tool_bar.showing_donate: @@ -301,6 +300,16 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ else: self.show_windows() + @property + def is_minimized_to_tray(self): + return getattr(self, '__systray_minimized', False) + + def ask_a_yes_no_question(self, title, msg, **kwargs): + awu = kwargs.pop('ans_when_user_unavailable', True) + if self.is_minimized_to_tray: + return awu + return question_dialog(self, title, msg, **kwargs) + def hide_windows(self): for window in QApplication.topLevelWidgets(): if isinstance(window, (MainWindow, QDialog)) and \ @@ -374,8 +383,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ self.tags_view.set_database(db, self.tag_match, self.sort_by) self.library_view.model().set_book_on_device_func(self.book_on_device) self.status_bar.clear_message() - self.search.clear_to_help() - self.saved_search.clear_to_help() + self.search.clear() + self.saved_search.clear() self.book_details.reset_info() self.library_view.model().count_changed() prefs['library_path'] = self.library_path @@ -425,34 +434,37 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ - def job_exception(self, job): + def job_exception(self, job, dialog_title=_('Conversion Error')): if not hasattr(self, '_modeless_dialogs'): self._modeless_dialogs = [] + minz = self.is_minimized_to_tray if self.isVisible(): for x in list(self._modeless_dialogs): if not x.isVisible(): self._modeless_dialogs.remove(x) try: if 'calibre.ebooks.DRMError' in job.details: - d = error_dialog(self, _('Conversion Error'), - _('<p>Could not convert: %s<p>It is a ' - '<a href="%s">DRM</a>ed book. You must first remove the ' - 'DRM using third party tools.')%\ - (job.description.split(':')[-1], - 'http://bugs.calibre-ebook.com/wiki/DRM')) - d.setModal(False) - d.show() - self._modeless_dialogs.append(d) + if not minz: + d = error_dialog(self, _('Conversion Error'), + _('<p>Could not convert: %s<p>It is a ' + '<a href="%s">DRM</a>ed book. You must first remove the ' + 'DRM using third party tools.')%\ + (job.description.split(':')[-1], + 'http://bugs.calibre-ebook.com/wiki/DRM')) + d.setModal(False) + d.show() + self._modeless_dialogs.append(d) return if 'calibre.web.feeds.input.RecipeDisabled' in job.details: - msg = job.details - msg = msg[msg.find('calibre.web.feeds.input.RecipeDisabled:'):] - msg = msg.partition(':')[-1] - d = error_dialog(self, _('Recipe Disabled'), - '<p>%s</p>'%msg) - d.setModal(False) - d.show() - self._modeless_dialogs.append(d) + if not minz: + msg = job.details + msg = msg[msg.find('calibre.web.feeds.input.RecipeDisabled:'):] + msg = msg.partition(':')[-1] + d = error_dialog(self, _('Recipe Disabled'), + '<p>%s</p>'%msg) + d.setModal(False) + d.show() + self._modeless_dialogs.append(d) return except: pass @@ -462,12 +474,13 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ prints(job.details, file=sys.stderr) except: pass - d = error_dialog(self, _('Conversion Error'), - _('<b>Failed</b>')+': '+unicode(job.description), - det_msg=job.details) - d.setModal(False) - d.show() - self._modeless_dialogs.append(d) + if not minz: + d = error_dialog(self, dialog_title, + _('<b>Failed</b>')+': '+unicode(job.description), + det_msg=job.details) + d.setModal(False) + d.show() + self._modeless_dialogs.append(d) def read_settings(self): geometry = config['main_window_geometry'] diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py index 93e19c38e1..8ce0b46a6d 100644 --- a/src/calibre/gui2/viewer/documentview.py +++ b/src/calibre/gui2/viewer/documentview.py @@ -23,7 +23,8 @@ from calibre.constants import iswindows from calibre import prints, guess_type from calibre.gui2.viewer.keys import SHORTCUTS -bookmarks = referencing = hyphenation = jquery = jquery_scrollTo = hyphenator = images =None +bookmarks = referencing = hyphenation = jquery = jquery_scrollTo = \ + hyphenator = images = hyphen_pats = None def load_builtin_fonts(): base = P('fonts/liberation/*.ttf') @@ -80,7 +81,7 @@ class ConfigDialog(QDialog, Ui_Dialog): self.css.setPlainText(opts.user_css) self.css.setToolTip(_('Set the user CSS stylesheet. This can be used to customize the look of all books.')) self.max_view_width.setValue(opts.max_view_width) - pats = [os.path.basename(x).split('.')[0] for x in + pats = [os.path.basename(x).split('.')[0].replace('-', '_') for x in glob.glob(P('viewer/hyphenate/patterns/*.js', allow_user_override=False))] names = list(map(get_language, pats)) @@ -92,7 +93,7 @@ class ConfigDialog(QDialog, Ui_Dialog): try: idx = pats.index(opts.hyphenate_default_lang) except ValueError: - idx = pats.index('en') + idx = pats.index('en_us') idx = self.hyphenate_default_lang.findText(names[idx]) self.hyphenate_default_lang.setCurrentIndex(idx) self.hyphenate.setChecked(opts.hyphenate) @@ -143,7 +144,7 @@ class Document(QWebPage): self.set_font_settings() self.set_user_stylesheet() self.misc_config() - self.triggerAction(QWebPage.Reload) + self.after_load() def __init__(self, shortcuts, parent=None): QWebPage.__init__(self, parent) @@ -202,7 +203,8 @@ class Document(QWebPage): self.loaded_javascript = False def load_javascript_libraries(self): - global bookmarks, referencing, hyphenation, jquery, jquery_scrollTo, hyphenator, images + global bookmarks, referencing, hyphenation, jquery, jquery_scrollTo, \ + hyphenator, images, hyphen_pats if self.loaded_javascript: return self.loaded_javascript = True @@ -228,17 +230,26 @@ class Document(QWebPage): lang = self.current_language if not lang: lang = default_lang - lang = lang.lower()[:2] + def lang_name(l): + if l == 'en': + l = 'en-us' + return l.lower().replace('_', '-') if hyphenator is None: hyphenator = P('viewer/hyphenate/Hyphenator.js', data=True).decode('utf-8') - self.javascript(hyphenator) - p = P('viewer/hyphenate/patterns/%s.js'%lang) + if hyphen_pats is None: + hyphen_pats = [] + for x in glob.glob(P('viewer/hyphenate/patterns/*.js', + allow_user_override=False)): + with open(x, 'rb') as f: + hyphen_pats.append(f.read().decode('utf-8')) + hyphen_pats = u'\n'.join(hyphen_pats) + + self.javascript(hyphenator+hyphen_pats) + p = P('viewer/hyphenate/patterns/%s.js'%lang_name(lang)) if not os.path.exists(p): lang = default_lang - p = P('viewer/hyphenate/patterns/%s.js'%lang) - self.javascript(open(p, 'rb').read().decode('utf-8')) - self.loaded_lang = lang - + p = P('viewer/hyphenate/patterns/%s.js'%lang_name(lang)) + self.loaded_lang = lang_name(lang) @pyqtSignature("") def animated_scroll_done(self): @@ -249,6 +260,11 @@ class Document(QWebPage): if self.hyphenate: self.javascript('do_hyphenation("%s")'%self.loaded_lang) + def after_load(self): + self.set_bottom_padding(0) + self.fit_images() + self.init_hyphenate() + @pyqtSignature("QString") def debug(self, msg): prints(msg) @@ -598,7 +614,7 @@ class DocumentView(QWebView): def search(self, text, backwards=False): if backwards: - return self.findText(text, self.document.FindBackwards) + return self.findText(text, self.document.FindBackward) return self.findText(text) def path(self): @@ -652,8 +668,7 @@ class DocumentView(QWebView): return self.loading_url = None self.document.load_javascript_libraries() - self.document.set_bottom_padding(0) - self.document.fit_images() + self.document.after_load() self._size_hint = self.document.mainFrame().contentsSize() scrolled = False if self.to_bottom: diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py index 81a372a3ca..96fe758ca6 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -17,10 +17,10 @@ from calibre.gui2.viewer.bookmarkmanager import BookmarkManager from calibre.gui2.widgets import ProgressIndicator from calibre.gui2.main_window import MainWindow from calibre.gui2 import Application, ORG_NAME, APP_UID, choose_files, \ - info_dialog, error_dialog, open_url + info_dialog, error_dialog, open_url, available_height from calibre.ebooks.oeb.iterator import EbookIterator from calibre.ebooks import DRMError -from calibre.constants import islinux, isfreebsd +from calibre.constants import islinux, isfreebsd, isosx from calibre.utils.config import Config, StringConfig, dynamic from calibre.gui2.search_box import SearchBox2 from calibre.ebooks.metadata import MetaInformation @@ -172,6 +172,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer): self.iterator = None self.current_page = None self.pending_search = None + self.pending_search_dir= None self.pending_anchor = None self.pending_reference = None self.pending_bookmark = None @@ -209,7 +210,10 @@ class EbookViewer(MainWindow, Ui_EbookViewer): self.toc.setVisible(False) self.action_quit = QAction(self) self.addAction(self.action_quit) - self.action_quit.setShortcut(Qt.CTRL+Qt.Key_Q) + qs = [Qt.CTRL+Qt.Key_Q] + if isosx: + qs += [Qt.CTRL+Qt.Key_W] + self.action_quit.setShortcuts(qs) self.connect(self.action_quit, SIGNAL('triggered(bool)'), lambda x:QApplication.instance().quit()) self.action_copy.setDisabled(True) @@ -234,9 +238,9 @@ class EbookViewer(MainWindow, Ui_EbookViewer): self.connect(self.action_previous_page, SIGNAL('triggered(bool)'), lambda x:self.view.previous_page()) self.connect(self.action_find_next, SIGNAL('triggered(bool)'), - lambda x:self.find(self.search.smart_text, repeat=True)) + lambda x:self.find(unicode(self.search.text()), repeat=True)) self.connect(self.action_find_previous, SIGNAL('triggered(bool)'), - lambda x:self.find(self.search.smart_text, + lambda x:self.find(unicode(self.search.text()), repeat=True, backwards=True)) self.connect(self.action_full_screen, SIGNAL('triggered(bool)'), @@ -250,6 +254,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer): self.connect(self.vertical_scrollbar, SIGNAL('valueChanged(int)'), lambda x: self.goto_page(x/100.)) self.search.search.connect(self.find) + self.search.focus_to_library.connect(lambda: self.view.setFocus(Qt.OtherFocusReason)) self.connect(self.toc, SIGNAL('clicked(QModelIndex)'), self.toc_clicked) self.connect(self.reference, SIGNAL('goto(PyQt_PyObject)'), self.goto) @@ -431,7 +436,7 @@ class EbookViewer(MainWindow, Ui_EbookViewer): if not text: self.view.search('') return self.search.search_done(False) - if self.view.search(text): + if self.view.search(text, backwards=backwards): self.scrolled(self.view.scroll_fraction) return self.search.search_done(True) index = self.iterator.search(text, self.current_index, @@ -445,11 +450,13 @@ class EbookViewer(MainWindow, Ui_EbookViewer): return self.search.search_done(True) return self.search.search_done(True) self.pending_search = text + self.pending_search_dir = 'backwards' if backwards else 'forwards' self.load_path(self.iterator.spine[index]) - def do_search(self, text): + def do_search(self, text, backwards): self.pending_search = None - if self.view.search(text): + self.pending_search_dir = None + if self.view.search(text, backwards=backwards): self.scrolled(self.view.scroll_fraction) def keyPressEvent(self, event): @@ -495,8 +502,10 @@ class EbookViewer(MainWindow, Ui_EbookViewer): self.current_index = index self.set_page_number(self.view.scroll_fraction) if self.pending_search is not None: - self.do_search(self.pending_search) + self.do_search(self.pending_search, + self.pending_search_dir=='backwards') self.pending_search = None + self.pending_search_dir = None if self.pending_anchor is not None: self.view.scroll_to(self.pending_anchor) self.pending_anchor = None @@ -690,6 +699,9 @@ class EbookViewer(MainWindow, Ui_EbookViewer): if ss is not None: self.splitter.restoreState(ss) self.show_toc_on_open = dynamic.get('viewer_toc_isvisible', False) + av = available_height() - 30 + if self.height() > av: + self.resize(self.width(), av) def config(defaults=None): desc = _('Options to control the ebook viewer') diff --git a/src/calibre/gui2/wizard/__init__.py b/src/calibre/gui2/wizard/__init__.py index 2ac0908ea9..4f418d34d5 100644 --- a/src/calibre/gui2/wizard/__init__.py +++ b/src/calibre/gui2/wizard/__init__.py @@ -38,6 +38,7 @@ class Device(object): name = 'Default' manufacturer = 'Default' id = 'default' + supports_color = False @classmethod def set_output_profile(cls): @@ -56,6 +57,12 @@ class Device(object): def commit(cls): cls.set_output_profile() cls.set_output_format() + if cls.supports_color: + from calibre.ebooks.conversion.config import load_defaults, save_defaults + recs = load_defaults('comic_input') + recs['dont_grayscale'] = True + save_defaults('comic_input', recs) + class Kindle(Device): @@ -138,6 +145,12 @@ class Nook(Sony505): manufacturer = 'Barnes & Noble' output_profile = 'nook' +class NookColor(Nook): + id = 'nook_color' + name = 'Nook Color' + output_profile = 'nook_color' + supports_color = True + class CybookG3(Device): name = 'Cybook Gen 3' @@ -178,6 +191,7 @@ class iPhone(Device): output_format = 'EPUB' manufacturer = 'Apple' id = 'iphone' + supports_color = True class Android(Device): @@ -185,6 +199,7 @@ class Android(Device): output_format = 'EPUB' manufacturer = 'Android' id = 'android' + supports_color = True class HanlinV3(Device): @@ -354,11 +369,6 @@ class StanzaPage(QWizardPage, StanzaUI): return FinishPage.ID def commit(self): - from calibre.ebooks.conversion.config import load_defaults, save_defaults - recs = load_defaults('comic_input') - recs['dont_grayscale'] = True - save_defaults('comic_input', recs) - p = self.set_port() if p is not None: from calibre.library.server import server_config @@ -605,10 +615,14 @@ class LibraryPage(QWizardPage, LibraryUI): self.emit(SIGNAL('retranslate()')) self.init_languages() try: - if prefs['language'].lower().startswith('zh'): - from calibre.customize.ui import enable_plugin - for name in ('Douban Books', 'Douban.com covers'): - enable_plugin(name) + lang = prefs['language'].lower()[:2] + metadata_plugins = { + 'zh' : ('Douban Books', 'Douban.com covers'), + 'fr' : ('Nicebooks', 'Nicebooks covers'), + }.get(lang, []) + from calibre.customize.ui import enable_plugin + for name in metadata_plugins: + enable_plugin(name) except: pass diff --git a/src/calibre/gui2/wizard/library.ui b/src/calibre/gui2/wizard/library.ui index 0d43f4ccee..4c70f8c561 100644 --- a/src/calibre/gui2/wizard/library.ui +++ b/src/calibre/gui2/wizard/library.ui @@ -36,7 +36,7 @@ <item row="2" column="0" colspan="3"> <widget class="QLabel" name="label"> <property name="text"> - <string>Choose a location for your books. When you add books to calibre, they will be copied here:</string> + <string><p>Choose a location for your books. When you add books to calibre, they will be copied here. Use an <b>empty folder</b> for a new calibre library:</string> </property> <property name="wordWrap"> <bool>true</bool> diff --git a/src/calibre/gui2/wizard/send_email.py b/src/calibre/gui2/wizard/send_email.py index da9c21c864..20e73fabe2 100644 --- a/src/calibre/gui2/wizard/send_email.py +++ b/src/calibre/gui2/wizard/send_email.py @@ -73,7 +73,7 @@ class SendEmail(QWidget, Ui_Form): if opts.relay_password: self.relay_password.setText(unhexlify(opts.relay_password)) self.relay_password.textChanged.connect(self.changed) - (self.relay_tls if opts.encryption == 'TLS' else self.relay_ssl).setChecked(True) + getattr(self, 'relay_'+opts.encryption.lower()).setChecked(True) self.relay_tls.toggled.connect(self.changed) for x in ('gmail', 'hotmail'): @@ -125,6 +125,7 @@ class SendEmail(QWidget, Ui_Form): 'port': 587, 'username': '@gmail.com', 'url': 'www.gmail.com', + 'extra': '' }, 'hotmail': { 'name': 'Hotmail', @@ -132,6 +133,9 @@ class SendEmail(QWidget, Ui_Form): 'port': 587, 'username': '', 'url': 'www.hotmail.com', + 'extra': _('If you are setting up a new' + ' hotmail account, you must log in to it ' + ' once before you will be able to send mails.'), } }[service] d = QDialog(self) @@ -141,7 +145,7 @@ class SendEmail(QWidget, Ui_Form): bb.accepted.connect(d.accept) bb.rejected.connect(d.reject) d.tl = QLabel('<p>'+_('You can sign up for a free {name} email ' - 'account at <a href="http://{url}">http://{url}</a>.').format( + 'account at <a href="http://{url}">http://{url}</a>. {extra}').format( **service)) l.addWidget(d.tl, 0, 0, 3, 0) d.tl.setWordWrap(True) @@ -206,7 +210,8 @@ class SendEmail(QWidget, Ui_Form): conf.set('relay_port', self.relay_port.value()) conf.set('relay_username', username if username else None) conf.set('relay_password', hexlify(password)) - conf.set('encryption', 'TLS' if self.relay_tls.isChecked() else 'SSL') + conf.set('encryption', 'TLS' if self.relay_tls.isChecked() else 'SSL' + if self.relay_ssl.isChecked() else 'NONE') return True diff --git a/src/calibre/gui2/wizard/send_email.ui b/src/calibre/gui2/wizard/send_email.ui index ba6b6866e2..fbb9500661 100644 --- a/src/calibre/gui2/wizard/send_email.ui +++ b/src/calibre/gui2/wizard/send_email.ui @@ -168,7 +168,7 @@ </property> </widget> </item> - <item row="4" column="2" colspan="2"> + <item row="4" column="2"> <widget class="QRadioButton" name="relay_ssl"> <property name="toolTip"> <string>Use SSL encryption when connecting to the mail server.</string> @@ -191,6 +191,16 @@ </property> </spacer> </item> + <item row="4" column="3"> + <widget class="QRadioButton" name="relay_none"> + <property name="toolTip"> + <string>WARNING: Using no encryption is highly insecure</string> + </property> + <property name="text"> + <string>&None</string> + </property> + </widget> + </item> </layout> </widget> </item> diff --git a/src/calibre/library/__init__.py b/src/calibre/library/__init__.py index 0f8e5e5496..8ff23c0a0a 100644 --- a/src/calibre/library/__init__.py +++ b/src/calibre/library/__init__.py @@ -6,3 +6,53 @@ def db(path=None): from calibre.library.database2 import LibraryDatabase2 from calibre.utils.config import prefs return LibraryDatabase2(path if path else prefs['library_path']) + + +def generate_test_db(library_path, + num_of_records=20000, + num_of_authors=6000, + num_of_tags=10000, + tag_length=7, + author_length=7, + title_length=10, + max_authors=10, + max_tags=10 + ): + import random, string, os, sys, time + + if not os.path.exists(library_path): + os.makedirs(library_path) + + def randstr(length): + return ''.join(random.choice(string.letters) for i in + xrange(length)) + + all_tags = [randstr(tag_length) for j in xrange(num_of_tags)] + print 'Generated', num_of_tags, 'tags' + all_authors = [randstr(author_length) for j in xrange(num_of_authors)] + print 'Generated', num_of_authors, 'authors' + all_titles = [randstr(title_length) for j in xrange(num_of_records)] + print 'Generated', num_of_records, 'titles' + + testdb = db(library_path) + + print 'Creating', num_of_records, 'records...' + + start = time.time() + + for i, title in enumerate(all_titles): + print i+1, + sys.stdout.flush() + authors = random.randint(1, max_authors) + authors = [random.choice(all_authors) for i in xrange(authors)] + tags = random.randint(0, max_tags) + tags = [random.choice(all_tags) for i in xrange(tags)] + from calibre.ebooks.metadata.book.base import Metadata + mi = Metadata(title, authors) + mi.tags = tags + testdb.import_book(mi, []) + + t = time.time() - start + print '\nGenerated', num_of_records, 'records in:', t, 'seconds' + print 'Time per record:', t/float(num_of_records) + diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index 5f3e66beef..5b6b79e3df 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -223,7 +223,7 @@ EQUALS_MATCH = 1 REGEXP_MATCH = 2 def _match(query, value, matchkind): for t in value: - t = t.lower() + t = icu_lower(t) try: ### ignore regexp exceptions, required because search-ahead tries before typing is finished if ((matchkind == EQUALS_MATCH and query == t) or (matchkind == REGEXP_MATCH and re.search(query, t, re.I)) or ### search unanchored @@ -403,7 +403,7 @@ class ResultCache(SearchQueryParser): # {{{ '<=':[2, lambda r, q: r <= q] } - def get_numeric_matches(self, location, query): + def get_numeric_matches(self, location, query, val_func = None): matches = set([]) if len(query) == 0: return matches @@ -419,7 +419,10 @@ class ResultCache(SearchQueryParser): # {{{ if relop is None: (p, relop) = self.numeric_search_relops['='] - loc = self.field_metadata[location]['rec_index'] + if val_func is None: + loc = self.field_metadata[location]['rec_index'] + val_func = lambda item, loc=loc: item[loc] + dt = self.field_metadata[location]['datatype'] if dt == 'int': cast = (lambda x: int (x)) @@ -430,6 +433,9 @@ class ResultCache(SearchQueryParser): # {{{ elif dt == 'float': cast = lambda x : float (x) adjust = lambda x: x + else: # count operation + cast = (lambda x: int (x)) + adjust = lambda x: x if len(query) > 1: mult = query[-1:].lower() @@ -446,10 +452,11 @@ class ResultCache(SearchQueryParser): # {{{ for item in self._data: if item is None: continue - if not item[loc]: + v = val_func(item) + if not v: i = 0 else: - i = adjust(item[loc]) + i = adjust(v) if relop(i, q): matches.add(item[0]) return matches @@ -467,15 +474,23 @@ class ResultCache(SearchQueryParser): # {{{ return matches raise ParseException(query, len(query), 'Recursive query group detected', self) - # take care of dates special case - if location in self.field_metadata and \ - self.field_metadata[location]['datatype'] == 'datetime': - return self.get_dates_matches(location, query.lower()) + if location in self.field_metadata: + fm = self.field_metadata[location] + # take care of dates special case + if fm['datatype'] == 'datetime': + return self.get_dates_matches(location, query.lower()) - # take care of numbers special case - if location in self.field_metadata and \ - self.field_metadata[location]['datatype'] in ('rating', 'int', 'float'): - return self.get_numeric_matches(location, query.lower()) + # take care of numbers special case + if fm['datatype'] in ('rating', 'int', 'float'): + return self.get_numeric_matches(location, query.lower()) + + # take care of the 'count' operator for is_multiples + if fm['is_multiple'] and \ + len(query) > 1 and query.startswith('#') and \ + query[1:1] in '=<>!': + vf = lambda item, loc=fm['rec_index'], ms=fm['is_multiple']:\ + len(item[loc].split(ms)) if item[loc] is not None else 0 + return self.get_numeric_matches(location, query[1:], val_func=vf) # everything else, or 'all' matches matchkind = CONTAINS_MATCH @@ -490,7 +505,7 @@ class ResultCache(SearchQueryParser): # {{{ query = query[1:] if matchkind != REGEXP_MATCH: # leave case in regexps because it can be significant e.g. \S \W \D - query = query.lower() + query = icu_lower(query) if not isinstance(query, unicode): query = query.decode('utf-8') @@ -505,7 +520,7 @@ class ResultCache(SearchQueryParser): # {{{ if len(self.field_metadata[x]['search_terms']): db_col[x] = self.field_metadata[x]['rec_index'] if self.field_metadata[x]['datatype'] not in \ - ['composite', 'text', 'comments', 'series']: + ['composite', 'text', 'comments', 'series', 'enumeration']: exclude_fields.append(db_col[x]) col_datatype[db_col[x]] = self.field_metadata[x]['datatype'] is_multiple_cols[db_col[x]] = self.field_metadata[x]['is_multiple'] @@ -670,7 +685,6 @@ class ResultCache(SearchQueryParser): # {{{ for id in ids: try: self._data[id] = db.conn.get('SELECT * from meta2 WHERE id=?', (id,))[0] - self._data[id].append(db.has_cover(id, index_is_id=True)) self._data[id].append(db.book_on_device_string(id)) self._data[id].append(None) if len(self.composites) > 0: @@ -691,7 +705,6 @@ class ResultCache(SearchQueryParser): # {{{ self._data.extend(repeat(None, max(ids)-len(self._data)+2)) for id in ids: self._data[id] = db.conn.get('SELECT * from meta2 WHERE id=?', (id,))[0] - self._data[id].append(db.has_cover(id, index_is_id=True)) self._data[id].append(db.book_on_device_string(id)) self._data[id].append(None) if len(self.composites) > 0: @@ -721,7 +734,6 @@ class ResultCache(SearchQueryParser): # {{{ self._data[r[0]] = r for item in self._data: if item is not None: - item.append(db.has_cover(item[0], index_is_id=True)) item.append(db.book_on_device_string(item[0])) item.append(None) if len(self.composites) > 0: @@ -784,11 +796,13 @@ class SortKey(object): class SortKeyGenerator(object): def __init__(self, fields, field_metadata, data): + from calibre.utils.icu import sort_key self.field_metadata = field_metadata self.orders = [-1 if x[1] else 1 for x in fields] self.entries = [(x[0], field_metadata[x[0]]) for x in fields] self.library_order = tweaks['title_series_sorting'] == 'library_order' self.data = data + self.string_sort_key = sort_key def __call__(self, record): values = tuple(self.itervals(self.data[record])) @@ -809,17 +823,14 @@ class SortKeyGenerator(object): if val is None: val = ('', 1) else: - val = val.lower() if self.library_order: val = title_sort(val) sidx_fm = self.field_metadata[name + '_index'] sidx = record[sidx_fm['rec_index']] - val = (val, sidx) + val = (self.string_sort_key(val), sidx) - elif dt in ('text', 'comments', 'composite'): - if val is None: - val = '' - val = val.lower() + elif dt in ('text', 'comments', 'composite', 'enumeration'): + val = self.string_sort_key(val) elif dt == 'bool': val = {True: 1, False: 2, None: 3}.get(val, 3) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index cca59dcb1a..0b317d6a6e 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -278,10 +278,10 @@ class BIBTEX(CatalogPlugin): from calibre.library.save_to_disk import preprocess_template #Bibtex functions - from calibre.utils.bibtex import bibtex_author_format, utf8ToBibtex, ValidateCitationKey + from calibre.utils.bibtex import BibTeX def create_bibtex_entry(entry, fields, mode, template_citation, - asccii_bibtex = True, citation_bibtex = True): + bibtexdict, citation_bibtex = True): #Bibtex doesn't like UTF-8 but keep unicode until writing #Define starting chain or if book valid strict and not book return a Fail string @@ -297,7 +297,8 @@ class BIBTEX(CatalogPlugin): if citation_bibtex : # Citation tag - bibtex_entry.append(make_bibtex_citation(entry, template_citation, asccii_bibtex)) + bibtex_entry.append(make_bibtex_citation(entry, template_citation, + bibtexdict)) bibtex_entry = [u' '.join(bibtex_entry)] for field in fields: @@ -312,11 +313,11 @@ class BIBTEX(CatalogPlugin): pass if field == 'authors' : - bibtex_entry.append(u'author = "%s"' % bibtex_author_format(item)) + bibtex_entry.append(u'author = "%s"' % bibtexdict.bibtex_author_format(item)) elif field in ['title', 'publisher', 'cover', 'uuid', 'author_sort', 'series'] : - bibtex_entry.append(u'%s = "%s"' % (field, utf8ToBibtex(item, asccii_bibtex))) + bibtex_entry.append(u'%s = "%s"' % (field, bibtexdict.utf8ToBibtex(item))) elif field == 'id' : bibtex_entry.append(u'calibreid = "%s"' % int(item)) @@ -329,13 +330,13 @@ class BIBTEX(CatalogPlugin): elif field == 'tags' : #A list to flatten - bibtex_entry.append(u'tags = "%s"' % utf8ToBibtex(u', '.join(item), asccii_bibtex)) + bibtex_entry.append(u'tags = "%s"' % bibtexdict.utf8ToBibtex(u', '.join(item))) elif field == 'comments' : #\n removal item = item.replace(u'\r\n',u' ') item = item.replace(u'\n',u' ') - bibtex_entry.append(u'note = "%s"' % utf8ToBibtex(item, asccii_bibtex)) + bibtex_entry.append(u'note = "%s"' % bibtexdict.utf8ToBibtex(item)) elif field == 'isbn' : # Could be 9, 10 or 13 digits @@ -353,8 +354,7 @@ class BIBTEX(CatalogPlugin): elif field == 'pubdate' : bibtex_entry.append(u'year = "%s"' % item.year) - bibtex_entry.append(u'month = "%s"' % utf8ToBibtex(strftime("%b", item), - asccii_bibtex)) + bibtex_entry.append(u'month = "%s"' % bibtexdict.utf8ToBibtex(strftime("%b", item))) bibtex_entry = u',\n '.join(bibtex_entry) bibtex_entry += u' }\n\n' @@ -371,7 +371,7 @@ class BIBTEX(CatalogPlugin): else : return True - def make_bibtex_citation(entry, template_citation, asccii_bibtex): + def make_bibtex_citation(entry, template_citation, bibtexclass): #define a function to replace the template entry by its value def tpl_replace(objtplname) : @@ -392,8 +392,9 @@ class BIBTEX(CatalogPlugin): return u'' if len(template_citation) >0 : - tpl_citation = utf8ToBibtex(ValidateCitationKey(re.sub(u'\{[^{}]*\}', - tpl_replace, template_citation)), asccii_bibtex) + tpl_citation = bibtexclass.utf8ToBibtex( + bibtexclass.ValidateCitationKey(re.sub(u'\{[^{}]*\}', + tpl_replace, template_citation))) if len(tpl_citation) >0 : return tpl_citation @@ -404,10 +405,7 @@ class BIBTEX(CatalogPlugin): else : template_citation = u'%s' % str(entry["id"]) - if asccii_bibtex : - return ValidateCitationKey(template_citation.encode('ascii', 'replace')) - else : - return ValidateCitationKey(template_citation) + return bibtexclass.ValidateCitationKey(template_citation) self.fmt = path_to_output.rpartition('.')[2] self.notification = notification @@ -475,13 +473,16 @@ class BIBTEX(CatalogPlugin): if not len(data): log.error("\nNo matching database entries for search criteria '%s'" % opts.search_text) + #Initialize BibTeX class + bibtexc = BibTeX() + #Entries writing after Bibtex formating (or not) if bibfile_enc != 'ascii' : - asccii_bibtex = False + bibtexc.ascii_bibtex = False else : - asccii_bibtex = True + bibtexc.ascii_bibtex = True - #Check and go to default in case of bad CLI + #Check citation choice and go to default in case of bad CLI if isinstance(opts.impcit, (StringType, UnicodeType)) : if opts.impcit == 'False' : citation_bibtex= False @@ -493,6 +494,7 @@ class BIBTEX(CatalogPlugin): else : citation_bibtex= opts.impcit + #Preprocess for error and light correction template_citation = preprocess_template(opts.bib_cit) #Open output and write entries @@ -514,7 +516,7 @@ class BIBTEX(CatalogPlugin): for entry in data: outfile.write(create_bibtex_entry(entry, fields, bib_entry, template_citation, - asccii_bibtex, citation_bibtex)) + bibtexc, citation_bibtex)) outfile.close() @@ -604,12 +606,12 @@ class EPUB_MOBI(CatalogPlugin): help=_("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")), - Option('--read-tag', - default='+', - dest='read_tag', + Option('--read-book-marker', + default='tag:+', + dest='read_book_marker', action = None, - help=_("Tag indicating book has been read.\n" "Default: '%default'\n" - "Applies to: ePub, MOBI output formats")), + help=_("field:pattern indicating book has been read.\n" "Default: '%default'\n" + "Applies to ePub, MOBI output formats")), Option('--wishlist-tag', default='Wishlist', dest='wishlist_tag', @@ -896,6 +898,8 @@ class EPUB_MOBI(CatalogPlugin): self.__plugin = plugin self.__progressInt = 0.0 self.__progressString = '' + f, _, p = opts.read_book_marker.partition(':') + self.__read_book_marker = {'field':f, 'pattern':p} self.__reporter = report_progress self.__stylesheet = stylesheet self.__thumbs = None @@ -934,7 +938,6 @@ class EPUB_MOBI(CatalogPlugin): if self.opts.generate_series: self.__totalSteps += 2 - # Accessors if True: ''' @@ -1208,7 +1211,7 @@ class EPUB_MOBI(CatalogPlugin): def READING_SYMBOL(self): def fget(self): return '<span style="color:black">▷</span>' if self.generateForKindle else \ - '<span style="color:white">%s</span>' % self.opts.read_tag + '<span style="color:white">+</span>' return property(fget=fget) @dynamic_property def READ_SYMBOL(self): @@ -1399,8 +1402,7 @@ class EPUB_MOBI(CatalogPlugin): if record['cover']: this_title['cover'] = re.sub('&', '&', record['cover']) - # This may be updated in self.processSpecialTags() - this_title['read'] = False + this_title['read'] = self.discoverReadStatus(record) if record['tags']: this_title['tags'] = self.processSpecialTags(record['tags'], @@ -1474,20 +1476,20 @@ class EPUB_MOBI(CatalogPlugin): self.opts.log.warn(" '%s' != '%s'" % (author[1], current_author[1])) # New author, save the previous author/sort/count - unique_authors.append((current_author[0], current_author[1].title(), + unique_authors.append((current_author[0], icu_title(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].title(), + unique_authors.append((current_author[0], icu_title(current_author[1]), books_by_current_author)) else: books_by_current_author += 1 else: # Add final author to list or single-author dataset if (current_author == author and len(authors) > 1) or not multiple_authors: - unique_authors.append((current_author[0], current_author[1].title(), + unique_authors.append((current_author[0], icu_title(current_author[1]), books_by_current_author)) if False and self.verbose: @@ -1666,7 +1668,8 @@ class EPUB_MOBI(CatalogPlugin): elif self.opts.connected_kindle and title['id'] in self.bookmarked_books: authorTag.insert(0, NavigableString(self.READING_SYMBOL + " by ")) else: - authorTag.insert(0, NavigableString(self.NOT_READ_SYMBOL + " by ")) + #authorTag.insert(0, NavigableString(self.NOT_READ_SYMBOL + " by ")) + authorTag.insert(0, NavigableString("by ")) authorTag.insert(1, aTag) ''' @@ -1695,6 +1698,7 @@ class EPUB_MOBI(CatalogPlugin): tagsTag = body.find(attrs={'class':'tags'}) ttc = 0 + ''' # Insert a spacer to match the author indent fontTag = Tag(soup,"font") fontTag['style'] = 'color:white;font-size:large' @@ -1703,19 +1707,28 @@ class EPUB_MOBI(CatalogPlugin): fontTag.insert(0, NavigableString(" by ")) tagsTag.insert(ttc, fontTag) ttc += 1 + ''' - for tag in title['tags']: + for tag in title.get('tags', []): aTag = Tag(soup,'a') #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) - if ttc < len(title['tags']): + if ttc < len(title['tags'])-1: emTag.insert(1, NavigableString(' · ')) tagsTag.insert(ttc, emTag) ttc += 1 + # Insert formats + if 'formats' in title: + formatsTag = body.find(attrs={'class':'formats'}) + formats = [] + for format in sorted(title['formats']): + formats.append(format.rpartition('.')[2].upper()) + formatsTag.insert(0, NavigableString(' · '.join(formats))) + # Insert the cover <img> if available imgTag = Tag(soup,"img") if 'cover' in title: @@ -1859,7 +1872,7 @@ class EPUB_MOBI(CatalogPlugin): ptc = 0 # book with read|reading|unread symbol or wishlist item - if self.opts.wishlist_tag in book['tags']: + if self.opts.wishlist_tag in book.get('tags', []): pBookTag['class'] = "wishlist_item" pBookTag.insert(ptc,NavigableString(self.MISSING_SYMBOL)) ptc += 1 @@ -2166,7 +2179,7 @@ class EPUB_MOBI(CatalogPlugin): ptc = 0 # book with read|reading|unread symbol or wishlist item - if self.opts.wishlist_tag in new_entry['tags']: + if self.opts.wishlist_tag in new_entry.get('tags', []): pBookTag['class'] = "wishlist_item" pBookTag.insert(ptc,NavigableString(self.MISSING_SYMBOL)) ptc += 1 @@ -2217,7 +2230,7 @@ class EPUB_MOBI(CatalogPlugin): ptc = 0 # book with read|reading|unread symbol or wishlist item - if self.opts.wishlist_tag in new_entry['tags']: + if self.opts.wishlist_tag in new_entry.get('tags', []): pBookTag['class'] = "wishlist_item" pBookTag.insert(ptc,NavigableString(self.MISSING_SYMBOL)) ptc += 1 @@ -2662,21 +2675,15 @@ class EPUB_MOBI(CatalogPlugin): pBookTag = Tag(soup, "p") ptc = 0 - # book with read/reading/unread symbol - for tag in book['tags']: - if tag == self.opts.read_tag: - book['read'] = True - break - else: - book['read'] = False + book['read'] = self.discoverReadStatus(book) # book with read|reading|unread symbol or wishlist item - if self.opts.wishlist_tag in book['tags']: + if self.opts.wishlist_tag in book.get('tags', []): pBookTag['class'] = "wishlist_item" pBookTag.insert(ptc,NavigableString(self.MISSING_SYMBOL)) ptc += 1 else: - if book['read']: + if book.get('read', False): # check mark pBookTag.insert(ptc,NavigableString(self.READ_SYMBOL)) pBookTag['class'] = "read_book" @@ -3964,7 +3971,7 @@ class EPUB_MOBI(CatalogPlugin): for x in output_profiles(): if x.short_name == self.opts.output_profile: # .9" width aspect ratio: 3:4 - self.thumbWidth = int(x.dpi * .9) + self.thumbWidth = int(x.dpi * 1) self.thumbHeight = int(self.thumbWidth * 1.33) if 'kindle' in x.short_name and self.opts.fmt == 'mobi': # Kindle DPI appears to be off by a factor of 2 @@ -4014,6 +4021,34 @@ class EPUB_MOBI(CatalogPlugin): if not os.path.isdir(images_path): os.makedirs(images_path) + def discoverReadStatus(self, record): + ''' + Given a field:pattern spec, discover if this book marked as read + + if field == tag, scan tags for pattern + if custom field, try regex match for pattern + This allows maximum flexibility with fields of type + datatype bool: #field_name:True + datatype text: #field_name:<string> + datatype datetime: #field_name:.* + + ''' + # Legacy handling of special 'read' tag + field = self.__read_book_marker['field'] + pat = self.__read_book_marker['pattern'] + if field == 'tag' and pat in record['tags']: + return True + + field_contents = self.__db.get_field(record['id'], + field, + index_is_id=True) + if field_contents: + if re.search(pat, unicode(field_contents), + re.IGNORECASE) is not None: + return True + + return False + def filterDbTags(self, tags): # Remove the special marker tags from the database's tag list, # return sorted list of normalized genre tags @@ -4169,7 +4204,8 @@ class EPUB_MOBI(CatalogPlugin): pBookTag = Tag(soup, "p") ptc = 0 - # book with read|reading|unread symbol or wishlist item + ''' + # This if clause does not display MISSING_SYMBOL for wishlist items # If this is the wishlist_tag genre, don't show missing symbols # normalized_wishlist_tag = self.genre_tags_dict[self.opts.wishlist_tag] if self.opts.wishlist_tag in book['tags'] and \ @@ -4177,6 +4213,13 @@ class EPUB_MOBI(CatalogPlugin): pBookTag['class'] = "wishlist_item" pBookTag.insert(ptc,NavigableString(self.MISSING_SYMBOL)) ptc += 1 + ''' + + # book with read|reading|unread symbol or wishlist item + if self.opts.wishlist_tag in book.get('tags', []): + pBookTag['class'] = "wishlist_item" + pBookTag.insert(ptc,NavigableString(self.MISSING_SYMBOL)) + ptc += 1 else: if book['read']: # check mark @@ -4238,34 +4281,28 @@ class EPUB_MOBI(CatalogPlugin): <p class="author"></p> <!--p class="series"></p--> <p class="tags"> </p> + <p class="formats"> </p> <table width="100%" border="0"> <tr> - <td class="thumbnail" rowspan="7"></td> - <!--td> </td--> + <td class="thumbnail" rowspan="7" width="40%"></td> <td> </td> </tr> <tr> - <!--td> </td--> <td> </td> </tr> <tr> - <!--td>Publisher</td--> <td class="publisher"></td> </tr> <tr> - <!--td>Published</td--> <td class="date"></td> </tr> <tr> - <!--td>Rating</td--> <td class="rating"></td> </tr> <tr> - <!--td class="notes_label">Notes</td--> <td class="notes"></td> </tr> <tr> - <!--td> </td--> <td> </td> </tr> </table> @@ -4504,7 +4541,6 @@ class EPUB_MOBI(CatalogPlugin): markerTags = [] markerTags.extend(self.opts.exclude_tags.split(',')) markerTags.extend(self.opts.note_tag.split(',')) - markerTags.extend(self.opts.read_tag.split(',')) return markerTags def letter_or_symbol(self,char): @@ -4614,6 +4650,7 @@ class EPUB_MOBI(CatalogPlugin): if open_pTag: result.insert(rtc, pTag) + rtc += 1 paras = result.findAll('p') for p in paras: @@ -4632,10 +4669,12 @@ class EPUB_MOBI(CatalogPlugin): tag = self.convertHTMLEntities(tag) if tag.startswith(opts.note_tag): 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): continue + elif self.__read_book_marker['field'] == 'tag' and \ + tag == self.__read_book_marker['pattern']: + # remove 'read' tag + continue else: tag_list.append(tag) return tag_list @@ -4744,7 +4783,7 @@ class EPUB_MOBI(CatalogPlugin): for key in keys: if key in ['catalog_title','authorClip','connected_kindle','descriptionClip', 'exclude_genre','exclude_tags','note_tag','numbers_as_text', - 'output_profile','read_tag', + 'output_profile','read_book_marker', 'search_text','sort_by','sort_descriptions_by_author','sync', 'wishlist_tag']: build_log.append(" %s: %s" % (key, opts_dict[key])) diff --git a/src/calibre/library/check_library.py b/src/calibre/library/check_library.py index b285da0006..b49330db3e 100644 --- a/src/calibre/library/check_library.py +++ b/src/calibre/library/check_library.py @@ -14,14 +14,25 @@ from calibre.ebooks import BOOK_EXTENSIONS EBOOK_EXTENSIONS = frozenset(BOOK_EXTENSIONS) NORMALS = frozenset(['metadata.opf', 'cover.jpg']) -CHECKS = [('invalid_titles', _('Invalid titles'), True), - ('extra_titles', _('Extra titles'), True), - ('invalid_authors', _('Invalid authors'), True), - ('extra_authors', _('Extra authors'), True), - ('missing_formats', _('Missing book formats'), False), - ('extra_formats', _('Extra book formats'), True), - ('extra_files', _('Unknown files in books'), True), - ('failed_folders', _('Folders raising exception'), False) +''' +Checks fields: +- name of array containing info +- user-readable name of info +- can be deleted (can be checked) +- can be fixed. In this case, the name of the fix method is derived from the + array name +''' + +CHECKS = [('invalid_titles', _('Invalid titles'), True, False), + ('extra_titles', _('Extra titles'), True, False), + ('invalid_authors', _('Invalid authors'), True, False), + ('extra_authors', _('Extra authors'), True, False), + ('missing_formats', _('Missing book formats'), False, False), + ('extra_formats', _('Extra book formats'), True, False), + ('extra_files', _('Unknown files in books'), True, False), + ('missing_covers', _('Missing covers in books'), False, True), + ('extra_covers', _('Extra covers in books'), True, True), + ('failed_folders', _('Folders raising exception'), False, False) ] @@ -57,6 +68,10 @@ class CheckLibrary(object): self.extra_formats = [] self.extra_files = [] + self.missing_covers = [] + self.extra_covers = [] + + self.failed_folders = [] def dbpath(self, id): return self.db.path(id, index_is_id=True) @@ -83,7 +98,7 @@ class CheckLibrary(object): auth_path = os.path.join(lib, auth_dir) # First check: author must be a directory if not os.path.isdir(auth_path): - self.invalid_authors.append((auth_dir, auth_dir)) + self.invalid_authors.append((auth_dir, auth_dir, 0)) continue self.potential_authors[auth_dir] = {} @@ -98,7 +113,7 @@ class CheckLibrary(object): m = self.db_id_regexp.search(title_dir) # Second check: title must have an ID and must be a directory if m is None or not os.path.isdir(title_path): - self.invalid_titles.append((auth_dir, db_path)) + self.invalid_titles.append((auth_dir, db_path, 0)) continue id = m.group(1) @@ -106,12 +121,12 @@ class CheckLibrary(object): if self.is_case_sensitive: if int(id) not in self.all_ids or \ db_path not in self.all_dbpaths: - self.extra_titles.append((title_dir, db_path)) + self.extra_titles.append((title_dir, db_path, 0)) continue else: if int(id) not in self.all_ids or \ db_path.lower() not in self.all_lc_dbpaths: - self.extra_titles.append((title_dir, db_path)) + self.extra_titles.append((title_dir, db_path, 0)) continue # Record the book to check its formats @@ -120,7 +135,7 @@ class CheckLibrary(object): # Fourth check: author directories that contain no titles if not found_titles: - self.extra_authors.append((auth_dir, auth_dir)) + self.extra_authors.append((auth_dir, auth_dir, 0)) for x in self.book_dirs: try: @@ -152,17 +167,20 @@ class CheckLibrary(object): unknowns = frozenset(filenames-formats-NORMALS) # Check: any books that aren't formats or normally there? for u in unknowns: - self.extra_files.append((title_dir, os.path.join(db_path, u))) + self.extra_files.append((title_dir, + os.path.join(db_path, u), book_id)) # Check: any book formats that should be there? missing = book_formats - formats for m in missing: - self.missing_formats.append((title_dir, os.path.join(db_path, m))) + self.missing_formats.append((title_dir, + os.path.join(db_path, m), book_id)) # Check: any book formats that shouldn't be there? extra = formats - book_formats - NORMALS for e in extra: - self.extra_formats.append((title_dir, os.path.join(db_path, e))) + self.extra_formats.append((title_dir, + os.path.join(db_path, e), book_id)) else: def lc_map(fnames, fset): m = {} @@ -175,15 +193,28 @@ class CheckLibrary(object): unknowns = frozenset(filenames_lc-formats_lc-NORMALS) # Check: any books that aren't formats or normally there? for f in lc_map(filenames, unknowns): - self.extra_files.append((title_dir, os.path.join(db_path, f))) + self.extra_files.append((title_dir, os.path.join(db_path, f), + book_id)) book_formats_lc = frozenset([f.lower() for f in book_formats]) # Check: any book formats that should be there? missing = book_formats_lc - formats_lc for m in lc_map(book_formats, missing): - self.missing_formats.append((title_dir, os.path.join(db_path, m))) + self.missing_formats.append((title_dir, + os.path.join(db_path, m), book_id)) # Check: any book formats that shouldn't be there? extra = formats_lc - book_formats_lc - NORMALS for e in lc_map(formats, extra): - self.extra_formats.append((title_dir, os.path.join(db_path, e))) + self.extra_formats.append((title_dir, os.path.join(db_path, e), + book_id)) + + # check cached has_cover + if self.db.has_cover(book_id): + if 'cover.jpg' not in filenames: + self.missing_covers.append((title_dir, + os.path.join(db_path, title_dir, 'cover.jpg'), book_id)) + else: + if 'cover.jpg' in filenames: + self.extra_covers.append((title_dir, + os.path.join(db_path, title_dir, 'cover.jpg'), book_id)) diff --git a/src/calibre/library/cli.py b/src/calibre/library/cli.py index 7d3fb329e0..01e8ad449b 100644 --- a/src/calibre/library/cli.py +++ b/src/calibre/library/cli.py @@ -565,8 +565,9 @@ datatype is one of: {0} 'applies if datatype is text.')) parser.add_option('--display', default='{}', help=_('A dictionary of options to customize how ' - 'the data in this column will be interpreted.')) - + 'the data in this column will be interpreted. This is a JSON ' + ' string. For enumeration columns, use ' + '--display=\'{"enum_values":["val1", "val2"]}\'')) return parser @@ -640,7 +641,7 @@ def catalog_option_parser(args): log = Log() parser = get_parser(_( ''' - %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options] + %prog catalog /path/to/destination.(CSV|EPUB|MOBI|XML ...) [options] Export a catalog in format specified by path/to/destination extension. Options control how entries are displayed in the generated catalog ouput. diff --git a/src/calibre/library/comments.py b/src/calibre/library/comments.py index 83eec89abe..00a6ef55ae 100644 --- a/src/calibre/library/comments.py +++ b/src/calibre/library/comments.py @@ -131,7 +131,8 @@ def comments_to_html(comments): def sanitize_comments_html(html): text = html2text(html) md = markdown.Markdown(safe_mode=True) - return md.convert(text) + cleansed = re.sub('\n+', '', md.convert(text)) + return cleansed def test(): for pat, val in [ diff --git a/src/calibre/library/custom_columns.py b/src/calibre/library/custom_columns.py index fdd78e89f8..f544a9bf7e 100644 --- a/src/calibre/library/custom_columns.py +++ b/src/calibre/library/custom_columns.py @@ -18,7 +18,7 @@ from calibre.utils.date import parse_date class CustomColumns(object): CUSTOM_DATA_TYPES = frozenset(['rating', 'text', 'comments', 'datetime', - 'int', 'float', 'bool', 'series', 'composite']) + 'int', 'float', 'bool', 'series', 'composite', 'enumeration']) def custom_table_names(self, num): return 'custom_column_%d'%num, 'books_custom_column_%d_link'%num @@ -136,6 +136,12 @@ class CustomColumns(object): x = bool(int(x)) return x + def adapt_enum(x, d): + v = adapt_text(x, d) + if not v: + v = None + return v + self.custom_data_adapters = { 'float': lambda x,d : x if x is None else float(x), 'int': lambda x,d : x if x is None else int(x), @@ -144,7 +150,8 @@ class CustomColumns(object): 'comments': lambda x,d: adapt_text(x, {'is_multiple':False}), 'datetime' : adapt_datetime, 'text':adapt_text, - 'series':adapt_text + 'series':adapt_text, + 'enumeration': adapt_enum } # Create Tag Browser categories for custom columns @@ -439,6 +446,9 @@ class CustomColumns(object): val = self.custom_data_adapters[data['datatype']](val, data) if data['normalized']: + if data['datatype'] == 'enumeration' and ( + val and val not in data['display']['enum_values']): + return None if not append or not data['is_multiple']: self.conn.execute('DELETE FROM %s WHERE book=?'%lt, (id_,)) self.conn.execute( @@ -558,7 +568,7 @@ class CustomColumns(object): if datatype in ('rating', 'int'): dt = 'INT' - elif datatype in ('text', 'comments', 'series', 'composite'): + elif datatype in ('text', 'comments', 'series', 'composite', 'enumeration'): dt = 'TEXT' elif datatype in ('float',): dt = 'REAL' diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index c4d11beb58..4efb5e6233 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -14,6 +14,7 @@ from operator import itemgetter from PyQt4.QtGui import QImage + from calibre.ebooks.metadata import title_sort, author_to_author_sort from calibre.ebooks.metadata.opf2 import metadata_to_opf from calibre.library.database import LibraryDatabase @@ -33,36 +34,12 @@ from calibre import isbytestring from calibre.utils.filenames import ascii_filename from calibre.utils.date import utcnow, now as nowf, utcfromtimestamp from calibre.utils.config import prefs, tweaks +from calibre.utils.icu import sort_key from calibre.utils.search_query_parser import saved_searches, set_saved_searches from calibre.ebooks import BOOK_EXTENSIONS, check_ebook_format from calibre.utils.magick.draw import save_cover_data_to +from calibre.utils.recycle_bin import delete_file, delete_tree -if iswindows: - import calibre.utils.winshell as winshell - -def delete_file(path): - try: - winshell.delete_file(path, silent=True, no_confirm=True) - except: - os.remove(path) - -def delete_tree(path, permanent=False): - if permanent: - try: - # For completely mysterious reasons, sometimes a file is left open - # leading to access errors. If we get an exception, wait and hope - # that whatever has the file (the O/S?) lets go of it. - shutil.rmtree(path) - except: - traceback.print_exc() - time.sleep(1) - shutil.rmtree(path) - else: - try: - if not permanent: - winshell.delete_file(path, silent=True, no_confirm=True) - except: - delete_tree(path, permanent=True) copyfile = os.link if hasattr(os, 'link') else shutil.copyfile @@ -251,7 +228,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): 'lccn', 'pubdate', 'flags', - 'uuid' + 'uuid', + 'has_cover' ] lines = [] for col in columns: @@ -270,7 +248,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): 'size':4, 'rating':5, 'tags':6, 'comments':7, 'series':8, 'publisher':9, 'series_index':10, 'sort':11, 'author_sort':12, 'formats':13, 'isbn':14, 'path':15, - 'lccn':16, 'pubdate':17, 'flags':18, 'uuid':19} + 'lccn':16, 'pubdate':17, 'flags':18, 'uuid':19, 'cover':20} for k,v in self.FIELD_MAP.iteritems(): self.field_metadata.set_field_record_index(k, v, prefer_custom=False) @@ -292,12 +270,10 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): base, prefer_custom=True) - self.FIELD_MAP['cover'] = base+1 - self.field_metadata.set_field_record_index('cover', base+1, prefer_custom=False) - self.FIELD_MAP['ondevice'] = base+2 - self.field_metadata.set_field_record_index('ondevice', base+2, prefer_custom=False) - self.FIELD_MAP['all_metadata'] = base+3 - self.field_metadata.set_field_record_index('all_metadata', base+3, prefer_custom=False) + self.FIELD_MAP['ondevice'] = base+1 + self.field_metadata.set_field_record_index('ondevice', base+1, prefer_custom=False) + self.FIELD_MAP['all_metadata'] = base+2 + self.field_metadata.set_field_record_index('all_metadata', base+2, prefer_custom=False) script = ''' DROP VIEW IF EXISTS meta2; @@ -313,7 +289,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): # Assumption is that someone else will fix them if they change. self.field_metadata.remove_dynamic_categories() tb_cats = self.field_metadata - for user_cat in sorted(self.prefs.get('user_categories', {}).keys()): + for user_cat in sorted(self.prefs.get('user_categories', {}).keys(), key=sort_key): cat_name = user_cat+':' # add the ':' to avoid name collision tb_cats.add_user_category(label=cat_name, name=user_cat) if len(saved_searches().names()): @@ -788,17 +764,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): identical_book_ids.add(book_id) return identical_book_ids - def has_cover(self, index, index_is_id=False): - id = index if index_is_id else self.id(index) - try: - path = os.path.join(self.abspath(id, index_is_id=True, - create_dirs=False), 'cover.jpg') - except: - # Can happen if path has not yet been set - return False - return os.access(path, os.R_OK) - - def remove_cover(self, id, notify=True): + def remove_cover(self, id, notify=True, commit=True): path = os.path.join(self.library_path, self.path(id, index_is_id=True), 'cover.jpg') if os.path.exists(path): try: @@ -806,11 +772,14 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): except (IOError, OSError): time.sleep(0.2) os.remove(path) + self.conn.execute('UPDATE books SET has_cover=0 WHERE id=?', (id,)) + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['cover'], False, row_is_id=True) if notify: self.notify('cover', [id]) - def set_cover(self, id, data, notify=True): + def set_cover(self, id, data, notify=True, commit=True): ''' Set the cover for this book. @@ -827,10 +796,21 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): except (IOError, OSError): time.sleep(0.2) save_cover_data_to(data, path) + self.conn.execute('UPDATE books SET has_cover=1 WHERE id=?', (id,)) + if commit: + self.conn.commit() self.data.set(id, self.FIELD_MAP['cover'], True, row_is_id=True) if notify: self.notify('cover', [id]) + def has_cover(self, id): + return self.data.get(id, self.FIELD_MAP['cover'], row_is_id=True) + + def set_has_cover(self, id, val): + dval = 1 if val else 0 + self.conn.execute('UPDATE books SET has_cover=? WHERE id=?', (dval, id,)) + self.data.set(id, self.FIELD_MAP['cover'], val, row_is_id=True) + def book_on_device(self, id): if callable(self.book_on_device_func): return self.book_on_device_func(id) @@ -983,10 +963,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): path = None self.data.remove(id) if path and os.path.exists(path): - try: - winshell.delete_file(path, no_confirm=True, silent=True) - except: - self.rmtree(path) + self.rmtree(path) parent = os.path.dirname(path) if len(os.listdir(parent)) == 0: self.rmtree(parent) @@ -1090,7 +1067,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): if sort == 'popularity': query += ' ORDER BY count DESC, sort ASC' elif sort == 'name': - query += ' ORDER BY sort ASC' + query += ' ORDER BY sort COLLATE icucollate' else: query += ' ORDER BY avg_rating DESC, sort ASC' data = self.conn.get(query) @@ -1162,6 +1139,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): if sort == 'popularity': categories['formats'].sort(key=lambda x: x.count, reverse=True) else: # no ratings exist to sort on + # No need for ICU here. categories['formats'].sort(key = lambda x:x.name) #### Now do the user-defined categories. #### @@ -1176,7 +1154,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): for c in categories.keys(): taglist[c] = dict(map(lambda t:(t.name, t), categories[c])) - for user_cat in sorted(user_categories.keys()): + for user_cat in sorted(user_categories.keys(), key=sort_key): items = [] for (name,label,ign) in user_categories[user_cat]: if label in taglist and name in taglist[label]: @@ -1192,7 +1170,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): sorted(items, key=lambda x: x.count, reverse=True) elif sort == 'name': categories[cat_name] = \ - sorted(items, key=lambda x: x.sort.lower()) + sorted(items, key=lambda x: sort_key(x.sort)) else: categories[cat_name] = \ sorted(items, key=lambda x:x.avg_rating, reverse=True) @@ -1276,15 +1254,20 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): traceback.print_exc() else: raise + path_changed = False if set_title and mi.title: - self.set_title(id, mi.title, commit=False) + self._set_title(id, mi.title) + path_changed = True if set_authors: if not mi.authors: mi.authors = [_('Unknown')] authors = [] for a in mi.authors: authors += string_to_authors(a) - self.set_authors(id, authors, notify=False, commit=False) + self._set_authors(id, authors) + path_changed = True + if path_changed: + self.set_path(id, index_is_id=True) if mi.author_sort: doit(self.set_author_sort, id, mi.author_sort, notify=False, commit=False) @@ -1296,11 +1279,11 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): if mi.series: doit(self.set_series, id, mi.series, notify=False, commit=False) if mi.cover_data[1] is not None: - doit(self.set_cover, id, mi.cover_data[1]) # doesn't use commit + doit(self.set_cover, id, mi.cover_data[1], commit=False) elif mi.cover is not None: if os.access(mi.cover, os.R_OK): with lopen(mi.cover, 'rb') as f: - doit(self.set_cover, id, f) + doit(self.set_cover, id, f, commit=False) if mi.tags: doit(self.set_tags, id, mi.tags, notify=False, commit=False) if mi.comments: @@ -1376,13 +1359,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): result.append(r) return ' & '.join(result).replace('|', ',') - def set_authors(self, id, authors, notify=True, commit=True): - ''' - Note that even if commit is False, the db will still be committed to - because this causes the location of files to change - - :param authors: A list of authors. - ''' + def _set_authors(self, id, authors): if not authors: authors = [_('Unknown')] self.conn.execute('DELETE FROM books_authors_link WHERE book=?',(id,)) @@ -1407,25 +1384,30 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): ss = self.author_sort_from_book(id, index_is_id=True) self.conn.execute('UPDATE books SET author_sort=? WHERE id=?', (ss, id)) - self.dirtied([id], commit=False) - if commit: - self.conn.commit() self.data.set(id, self.FIELD_MAP['authors'], ','.join([a.replace(',', '|') for a in authors]), row_is_id=True) self.data.set(id, self.FIELD_MAP['author_sort'], ss, row_is_id=True) + + def set_authors(self, id, authors, notify=True, commit=True): + ''' + Note that even if commit is False, the db will still be committed to + because this causes the location of files to change + + :param authors: A list of authors. + ''' + self._set_authors(id, authors) + self.dirtied([id], commit=False) + if commit: + self.conn.commit() self.set_path(id, index_is_id=True) if notify: self.notify('metadata', [id]) - def set_title(self, id, title, notify=True, commit=True): - ''' - Note that even if commit is False, the db will still be committed to - because this causes the location of files to change - ''' + def _set_title(self, id, title): if not title: - return - if not isinstance(title, unicode): + return False + if isbytestring(title): title = title.decode(preferred_encoding, 'replace') self.conn.execute('UPDATE books SET title=? WHERE id=?', (title, id)) self.data.set(id, self.FIELD_MAP['title'], title, row_is_id=True) @@ -1433,6 +1415,15 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): self.data.set(id, self.FIELD_MAP['sort'], title_sort(title), row_is_id=True) else: self.data.set(id, self.FIELD_MAP['sort'], title, row_is_id=True) + return True + + def set_title(self, id, title, notify=True, commit=True): + ''' + Note that even if commit is False, the db will still be committed to + because this causes the location of files to change + ''' + if not self._set_title(id, title): + return self.set_path(id, index_is_id=True) self.dirtied([id], commit=False) if commit: @@ -1651,15 +1642,16 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): return [] return result - def set_sort_field_for_author(self, old_id, new_sort): + def set_sort_field_for_author(self, old_id, new_sort, commit=True, notify=False): self.conn.execute('UPDATE authors SET sort=? WHERE id=?', \ (new_sort.strip(), old_id)) - self.conn.commit() + if commit: + self.conn.commit() # Now change all the author_sort fields in books by this author bks = self.conn.get('SELECT book from books_authors_link WHERE author=?', (old_id,)) for (book_id,) in bks: ss = self.author_sort_from_book(book_id, index_is_id=True) - self.set_author_sort(book_id, ss) + self.set_author_sort(book_id, ss, notify=notify, commit=commit) def rename_author(self, old_id, new_name): # Make sure that any commas in new_name are changed to '|'! @@ -2100,13 +2092,11 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): (id, title, series_index, aus)) self.data.books_added([id], self) - self.set_path(id, True) - self.conn.commit() if mi.timestamp is None: mi.timestamp = utcnow() if mi.pubdate is None: mi.pubdate = utcnow() - self.set_metadata(id, mi, ignore_errors=True) + self.set_metadata(id, mi, ignore_errors=True, commit=True) if cover is not None: try: self.set_cover(id, cover) @@ -2142,13 +2132,11 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): id = obj.lastrowid self.data.books_added([id], self) ids.append(id) - self.set_path(id, True) - self.conn.commit() if mi.timestamp is None: mi.timestamp = utcnow() if mi.pubdate is None: mi.pubdate = utcnow() - self.set_metadata(id, mi) + self.set_metadata(id, mi, commit=True, ignore_errors=True) npath = self.run_import_plugins(path, format) format = os.path.splitext(npath)[-1].lower().replace('.', '').upper() stream = lopen(npath, 'rb') @@ -2182,12 +2170,11 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): (title, series_index, aus)) id = obj.lastrowid self.data.books_added([id], self) - self.set_path(id, True) if mi.timestamp is None: mi.timestamp = utcnow() if mi.pubdate is None: mi.pubdate = utcnow() - self.set_metadata(id, mi, ignore_errors=True) + self.set_metadata(id, mi, ignore_errors=True, commit=True) if preserve_uuid and mi.uuid: self.set_uuid(id, mi.uuid, commit=False) for path in formats: @@ -2311,7 +2298,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): x['tags'] = [i.replace('|', ',').strip() for i in x['tags'].split(',')] if x['tags'] else [] path = os.path.join(prefix, self.path(record[self.FIELD_MAP['id']], index_is_id=True)) x['cover'] = os.path.join(path, 'cover.jpg') - if not self.has_cover(x['id'], index_is_id=True): + if not record[self.FIELD_MAP['cover']]: x['cover'] = None formats = self.formats(record[self.FIELD_MAP['id']], index_is_id=True) if formats: @@ -2530,11 +2517,20 @@ books_series_link feeds if id not in bad: bad[id] = [] bad[id].append(fmt) + has_cover = self.data.get(id, self.FIELD_MAP['cover'], + row_is_id=True) + if has_cover and self.cover(id, index_is_id=True, as_path=True) is None: + if id not in bad: + bad[id] = [] + bad[id].append('COVER') callback(0.1+0.9*(1+i)/total, _('Checked id') + ' %d'%id) for id in bad: for fmt in bad[id]: - self.conn.execute('DELETE FROM data WHERE book=? AND format=?', (id, fmt.upper())) + if fmt != 'COVER': + self.conn.execute('DELETE FROM data WHERE book=? AND format=?', (id, fmt.upper())) + else: + self.conn.execute('UPDATE books SET has_cover=0 WHERE id=?', (id,)) self.conn.commit() self.refresh_ids(list(bad.keys())) diff --git a/src/calibre/library/field_metadata.py b/src/calibre/library/field_metadata.py index dbc871026e..1be6604d5d 100644 --- a/src/calibre/library/field_metadata.py +++ b/src/calibre/library/field_metadata.py @@ -3,6 +3,7 @@ Created on 25 May 2010 @author: charles ''' +import copy from calibre.utils.ordered_dict import OrderedDict from calibre.utils.config import tweaks @@ -82,11 +83,11 @@ class FieldMetadata(dict): ''' VALID_DATA_TYPES = frozenset([None, 'rating', 'text', 'comments', 'datetime', - 'int', 'float', 'bool', 'series', 'composite']) + 'int', 'float', 'bool', 'series', 'composite', 'enumeration']) # Builtin metadata {{{ - _field_metadata = [ + _field_metadata_prototype = [ ('authors', {'table':'authors', 'column':'name', 'link_column':'author', @@ -161,13 +162,22 @@ class FieldMetadata(dict): 'search_terms':['tags', 'tag'], 'is_custom':False, 'is_category':True}), + ('all_metadata',{'table':None, + 'column':None, + 'datatype':None, + 'is_multiple':None, + 'kind':'field', + 'name':None, + 'search_terms':[], + 'is_custom':False, + 'is_category':False}), ('author_sort',{'table':None, 'column':None, 'datatype':'text', 'is_multiple':None, 'kind':'field', 'name':None, - 'search_terms':[], + 'search_terms':['author_sort'], 'is_custom':False, 'is_category':False}), ('comments', {'table':None, @@ -180,7 +190,7 @@ class FieldMetadata(dict): 'is_custom':False, 'is_category':False}), ('cover', {'table':None, 'column':None, - 'datatype':None, + 'datatype':'int', 'is_multiple':None, 'kind':'field', 'name':None, @@ -223,15 +233,6 @@ class FieldMetadata(dict): 'search_terms':[], 'is_custom':False, 'is_category':False}), - ('all_metadata',{'table':None, - 'column':None, - 'datatype':None, - 'is_multiple':None, - 'kind':'field', - 'name':None, - 'search_terms':[], - 'is_custom':False, - 'is_category':False}), ('ondevice', {'table':None, 'column':None, 'datatype':'text', @@ -322,6 +323,7 @@ class FieldMetadata(dict): ] def __init__(self): + self._field_metadata = copy.deepcopy(self._field_metadata_prototype) self._tb_cats = OrderedDict() self._search_term_map = {} self.custom_label_to_key_map = {} diff --git a/src/calibre/library/save_to_disk.py b/src/calibre/library/save_to_disk.py index c6cc12a978..af57d563ac 100644 --- a/src/calibre/library/save_to_disk.py +++ b/src/calibre/library/save_to_disk.py @@ -6,7 +6,7 @@ __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' -import os, traceback, cStringIO, re +import os, traceback, cStringIO, re, shutil from calibre.constants import DEBUG from calibre.utils.config import Config, StringConfig, tweaks @@ -203,31 +203,49 @@ def get_components(template, mi, id, timefmt='%b %Y', length=250, return shorten_components_to(length, components) -def save_book_to_disk(id, db, root, opts, length): - mi = db.get_metadata(id, index_is_id=True) +def save_book_to_disk(id_, db, root, opts, length): + mi = db.get_metadata(id_, index_is_id=True) + cover = db.cover(id_, index_is_id=True, as_path=True) + plugboards = db.prefs.get('plugboards', {}) - available_formats = db.formats(id, index_is_id=True) + available_formats = db.formats(id_, index_is_id=True) if not available_formats: available_formats = [] else: available_formats = [x.lower().strip() for x in available_formats.split(',')] + formats = {} + fmts = db.formats(id_, index_is_id=True, verify_formats=False) + if fmts: + fmts = fmts.split(',') + for fmt in fmts: + fpath = db.format_abspath(id_, fmt, index_is_id=True) + if fpath is not None: + formats[fmt.lower()] = fpath + + return do_save_book_to_disk(id_, mi, cover, plugboards, + formats, root, opts, length) + + +def do_save_book_to_disk(id_, mi, cover, plugboards, + format_map, root, opts, length): + available_formats = [x.lower().strip() for x in format_map.keys()] if opts.formats == 'all': asked_formats = available_formats else: asked_formats = [x.lower().strip() for x in opts.formats.split(',')] formats = set(available_formats).intersection(set(asked_formats)) if not formats: - return True, id, mi.title + return True, id_, mi.title - components = get_components(opts.template, mi, id, opts.timefmt, length, + components = get_components(opts.template, mi, id_, opts.timefmt, length, ascii_filename if opts.asciiize else sanitize_file_name, to_lowercase=opts.to_lowercase, replace_whitespace=opts.replace_whitespace) base_path = os.path.join(root, *components) base_name = os.path.basename(base_path) dirpath = os.path.dirname(base_path) - # Don't test for existence first are the test could fail but + # Don't test for existence first as the test could fail but # another worker process could create the directory before # the call to makedirs try: @@ -236,29 +254,23 @@ def save_book_to_disk(id, db, root, opts, length): if not os.path.exists(dirpath): raise - cdata = db.cover(id, index_is_id=True) - if opts.save_cover: - if cdata is not None: - with open(base_path+'.jpg', 'wb') as f: - f.write(cdata) - mi.cover = base_name+'.jpg' - else: - mi.cover = None + if opts.save_cover and cover and os.access(cover, os.R_OK): + with open(base_path+'.jpg', 'wb') as f: + with open(cover, 'rb') as s: + shutil.copyfileobj(s, f) + mi.cover = base_name+'.jpg' + else: + mi.cover = None if opts.write_opf: opf = metadata_to_opf(mi) with open(base_path+'.opf', 'wb') as f: f.write(opf) - if cdata is not None: - mi.cover_data = ('jpg', cdata) - mi.cover = None - written = False for fmt in formats: global plugboard_save_to_disk_value, plugboard_any_format_value dev_name = plugboard_save_to_disk_value - plugboards = db.prefs.get('plugboards', {}) cpb = None if fmt in plugboards: cpb = plugboards[fmt] @@ -275,11 +287,12 @@ def save_book_to_disk(id, db, root, opts, length): # Leave this here for a while, in case problems arise. if cpb is not None: prints('Save-to-disk using plugboard:', fmt, cpb) - data = db.format(id, fmt, index_is_id=True) - if data is None: + fp = format_map.get(fmt, None) + if fp is None: continue - else: - written = True + with open(fp, 'rb') as f: + data = f.read() + written = True if opts.update_metadata: stream = cStringIO.StringIO() stream.write(data) @@ -300,9 +313,21 @@ def save_book_to_disk(id, db, root, opts, length): with open(fmt_path, 'wb') as f: f.write(data) - return not written, id, mi.title + return not written, id_, mi.title +def _sanitize_args(root, opts): + if opts is None: + opts = config().parse() + if isinstance(root, unicode): + root = root.encode(filesystem_encoding) + root = os.path.abspath(root) + opts.template = preprocess_template(opts.template) + length = 1000 if supports_long_names(root) else 250 + length -= len(root) + if length < 5: + raise ValueError('%r is too long.'%root) + return root, opts, length def save_to_disk(db, ids, root, opts=None, callback=None): ''' @@ -316,17 +341,7 @@ def save_to_disk(db, ids, root, opts=None, callback=None): :return: A list of failures. Each element of the list is a tuple (id, title, traceback) ''' - if opts is None: - opts = config().parse() - if isinstance(root, unicode): - root = root.encode(filesystem_encoding) - root = os.path.abspath(root) - - opts.template = preprocess_template(opts.template) - length = 1000 if supports_long_names(root) else 250 - length -= len(root) - if length < 5: - raise ValueError('%r is too long.'%root) + root, opts, length = _sanitize_args(root, opts) failures = [] for x in ids: tb = '' @@ -343,4 +358,28 @@ def save_to_disk(db, ids, root, opts=None, callback=None): break return failures +def save_serialized_to_disk(ids, data, plugboards, root, opts, callback): + from calibre.ebooks.metadata.opf2 import OPF + root, opts, length = _sanitize_args(root, opts) + failures = [] + for x in ids: + opf, cover, format_map = data[x] + if isinstance(opf, unicode): + opf = opf.encode('utf-8') + mi = OPF(cStringIO.StringIO(opf)).to_book_metadata() + tb = '' + try: + failed, id, title = do_save_book_to_disk(x, mi, cover, plugboards, + format_map, root, opts, length) + tb = _('Requested formats not available') + except: + failed, id, title = True, x, mi.title + tb = traceback.format_exc() + if failed: + failures.append((id, title, tb)) + if callable(callback): + if not callback(int(id), title, failed, tb): + break + + return failures diff --git a/src/calibre/library/schema_upgrades.py b/src/calibre/library/schema_upgrades.py index 167cc0a327..e35c8521ce 100644 --- a/src/calibre/library/schema_upgrades.py +++ b/src/calibre/library/schema_upgrades.py @@ -6,6 +6,8 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' +import os + class SchemaUpgrade(object): def __init__(self): @@ -409,3 +411,17 @@ class SchemaUpgrade(object): ''' self.conn.executescript(script) + def upgrade_version_14(self): + 'Cache has_cover' + self.conn.execute('ALTER TABLE books ADD COLUMN has_cover BOOL DEFAULT 0') + data = self.conn.get('SELECT id,path FROM books', all=True) + def has_cover(path): + if path: + path = os.path.join(self.library_path, path.replace('/', os.sep), + 'cover.jpg') + return os.path.exists(path) + return False + + ids = [(x[0],) for x in data if has_cover(x[1])] + self.conn.executemany('UPDATE books SET has_cover=1 WHERE id=?', ids) + diff --git a/src/calibre/library/server/base.py b/src/calibre/library/server/base.py index 29636c5659..711fcf03d8 100644 --- a/src/calibre/library/server/base.py +++ b/src/calibre/library/server/base.py @@ -147,7 +147,7 @@ class LibraryServer(ContentServer, MobileServer, XMLServer, OPDSServer, Cache, self.config['/'] = { 'tools.digest_auth.on' : True, 'tools.digest_auth.realm' : ( - _('Password to access your calibre library. Username is ') + 'Password to access your calibre library. Username is ' + opts.username.strip()), 'tools.digest_auth.users' : {opts.username.strip():opts.password.strip()}, } diff --git a/src/calibre/library/server/browse.py b/src/calibre/library/server/browse.py index 5609416273..0a3a7f6fd2 100644 --- a/src/calibre/library/server/browse.py +++ b/src/calibre/library/server/browse.py @@ -5,9 +5,8 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' -import operator, os, json +import operator, os, json, re from binascii import hexlify, unhexlify -from urllib import quote, unquote import cherrypy @@ -17,10 +16,12 @@ from calibre import isbytestring, force_unicode, fit_image, \ from calibre.utils.ordered_dict import OrderedDict from calibre.utils.filenames import ascii_filename from calibre.utils.config import prefs +from calibre.utils.icu import sort_key from calibre.utils.magick import Image from calibre.library.comments import comments_to_html from calibre.library.server import custom_fields_to_display from calibre.library.field_metadata import category_icon_map +from calibre.library.server.utils import quote, unquote def render_book_list(ids, prefix, suffix=''): # {{{ pages = [] @@ -43,18 +44,33 @@ def render_book_list(ids, prefix, suffix=''): # {{{ <div class="loaded"></div> </div> ''' - rpages = [] + pagelist_template = u'''\ + <div class="pagelist"> + <ul> + {pages} + </ul> + </div> + ''' + rpages, lpages = [], [] for i, x in enumerate(pages): pg, pos = x ld = xml(json.dumps(pg), True) + start, end = pos+1, pos+len(pg) rpages.append(page_template.format(i, ld, xml(_('Loading, please wait')) + '…', - start=pos+1, end=pos+len(pg), prefix=prefix)) + start=start, end=end, prefix=prefix)) + lpages.append(' '*20 + (u'<li><a href="#" title="Books {start} to {end}"' + ' onclick="gp_internal(\'{id}\'); return false;"> ' + '{start} to {end}</a></li>').format(start=start, end=end, + id='page%d'%i)) rpages = u'\n\n'.join(rpages) + lpages = u'\n'.join(lpages) + pagelist = pagelist_template.format(pages=lpages) templ = u'''\ <h3>{0} {suffix}</h3> <div id="booklist"> + <div id="pagelist" title="{goto}">{pagelist}</div> <div class="listnav topnav"> {navbar} </div> @@ -64,24 +80,31 @@ def render_book_list(ids, prefix, suffix=''): # {{{ </div> </div> ''' - + gp_start = gp_end = '' + if len(pages) > 1: + gp_start = '<a href="#" onclick="goto_page(); return false;" title="%s">' % \ + (_('Go to') + '…') + gp_end = '</a>' navbar = u'''\ <div class="navleft"> <a href="#" onclick="first_page(); return false;">{first}</a> <a href="#" onclick="previous_page(); return false;">{previous}</a> </div> <div class="navmiddle"> - <span class="start">0</span> to <span class="end">0</span> of {num} + {gp_start} + <span class="start">0</span> to <span class="end">0</span> + {gp_end}of {num} </div> <div class="navright"> <a href="#" onclick="next_page(); return false;">{next}</a> <a href="#" onclick="last_page(); return false;">{last}</a> </div> '''.format(first=_('First'), last=_('Last'), previous=_('Previous'), - next=_('Next'), num=num) + next=_('Next'), num=num, gp_start=gp_start, gp_end=gp_end) return templ.format(_('Browsing %d books')%num, suffix=suffix, - pages=rpages, navbar=navbar) + pages=rpages, navbar=navbar, pagelist=pagelist, + goto=xml(_('Go to'), True) + '…') # }}} @@ -251,7 +274,7 @@ class BrowseServer(object): opts = ['<option %svalue="%s">%s</option>' % ( 'selected="selected" ' if k==sort else '', xml(k), xml(n), ) for k, n in - sorted(sort_opts, key=operator.itemgetter(1)) if k and n] + sorted(sort_opts, key=lambda x: sort_key(operator.itemgetter(1)(x))) if k and n] ans = ans.replace('{sort_select_options}', ('\n'+' '*20).join(opts)) lp = self.db.library_path if isbytestring(lp): @@ -315,8 +338,7 @@ class BrowseServer(object): return category_meta[x]['name'].lower() displayed_custom_fields = custom_fields_to_display(self.db) - for category in sorted(categories, - cmp=lambda x,y: cmp(getter(x), getter(y))): + for category in sorted(categories, key=lambda x: sort_key(getter(x))): if len(categories[category]) == 0: continue if category == 'formats': @@ -337,28 +359,23 @@ class BrowseServer(object): icon = 'blank.png' cats.append((meta['name'], category, icon)) - cats = [('<li><a title="{2} {0}" href="/browse/category/{1}"> </a>' - '<img src="{3}{src}" alt="{0}" />' - '<span class="label">{0}</span>' - '</li>') + cats = [(u'<li><a title="{2} {0}" href="/browse/category/{1}"> </a>' + u'<img src="{3}{src}" alt="{0}" />' + u'<span class="label">{0}</span>' + u'</li>') .format(xml(x, True), xml(quote(y)), xml(_('Browse books by')), self.opts.url_prefix, src='/browse/icon/'+z) for x, y, z in cats] - main = '<div class="toplevel"><h3>{0}</h3><ul>{1}</ul></div>'\ - .format(_('Choose a category to browse by:'), '\n\n'.join(cats)) + main = u'<div class="toplevel"><h3>{0}</h3><ul>{1}</ul></div>'\ + .format(_('Choose a category to browse by:'), u'\n\n'.join(cats)) return self.browse_template('name').format(title='', script='toplevel();', main=main) def browse_sort_categories(self, items, sort): if sort not in ('rating', 'name', 'popularity'): sort = 'name' - def sorter(x): - ans = getattr(x, 'sort', x.name) - if hasattr(ans, 'upper'): - ans = ans.upper() - return ans - items.sort(key=sorter) + items.sort(key=lambda x: sort_key(getattr(x, 'sort', x.name))) if sort == 'popularity': items.sort(key=operator.attrgetter('count'), reverse=True) elif sort == 'rating': @@ -379,6 +396,16 @@ class BrowseServer(object): script = 'true' + if len(items) == 1: + # Only one item in category, go directly to book list + prefix = '' if self.is_wsgi else self.opts.url_prefix + html = get_category_items(category, items, + self.search_restriction_name, datatype, + self.opts.url_prefix) + href = re.search(r'<a href="([^"]+)"', html) + if href is not None: + raise cherrypy.HTTPRedirect(prefix+href.group(1)) + if len(items) <= self.opts.max_opds_ungrouped_items: script = 'false' items = get_category_items(category, items, @@ -671,7 +698,7 @@ class BrowseServer(object): args[field] fields.append((m['name'], r)) - fields.sort(key=lambda x: x[0].lower()) + fields.sort(key=lambda x: sort_key(x[0])) fields = [u'<div class="field">{0}</div>'.format(f[1]) for f in fields] fields = u'<div class="fields">%s</div>'%('\n\n'.join(fields)) diff --git a/src/calibre/library/server/mobile.py b/src/calibre/library/server/mobile.py index d38c2f206e..0992e6c30b 100644 --- a/src/calibre/library/server/mobile.py +++ b/src/calibre/library/server/mobile.py @@ -21,6 +21,7 @@ from calibre.constants import __appname__ from calibre import human_readable, isbytestring from calibre.utils.date import utcfromtimestamp from calibre.utils.filenames import ascii_filename +from calibre.utils.icu import sort_key def CLASS(*args, **kwargs): # class is a reserved word in Python kwargs['class'] = ' '.join(args) @@ -211,8 +212,7 @@ class MobileServer(object): CFM = self.db.field_metadata CKEYS = [key for key in sorted(custom_fields_to_display(self.db), - cmp=lambda x,y: cmp(CFM[x]['name'].lower(), - CFM[y]['name'].lower()))] + key=lambda x:sort_key(CFM[x]['name']))] # This method uses its own book dict, not the Metadata dict. The loop # below could be changed to use db.get_metadata instead of reading # info directly from the record made by the view, but it doesn't seem diff --git a/src/calibre/library/server/opds.py b/src/calibre/library/server/opds.py index 4b5db63ac3..af635ebf48 100644 --- a/src/calibre/library/server/opds.py +++ b/src/calibre/library/server/opds.py @@ -20,6 +20,7 @@ from calibre.library.comments import comments_to_html from calibre.library.server import custom_fields_to_display from calibre.library.server.utils import format_tag_string, Offsets from calibre import guess_type +from calibre.utils.icu import sort_key from calibre.utils.ordered_dict import OrderedDict BASE_HREFS = { @@ -279,8 +280,7 @@ class AcquisitionFeed(NavFeed): NavFeed.__init__(self, id_, updated, version, offsets, page_url, up_url) CFM = db.field_metadata CKEYS = [key for key in sorted(custom_fields_to_display(db), - cmp=lambda x,y: cmp(CFM[x]['name'].lower(), - CFM[y]['name'].lower()))] + key=lambda x: sort_key(CFM[x]['name']))] for item in items: self.root.append(ACQUISITION_ENTRY(item, version, db, updated, CFM, CKEYS, prefix)) @@ -492,7 +492,7 @@ class OPDSServer(object): val = 'A' starts.add(val[0].upper()) category_groups = OrderedDict() - for x in sorted(starts, cmp=lambda x,y:cmp(x.lower(), y.lower())): + for x in sorted(starts, key=sort_key): category_groups[x] = len([y for y in items if getattr(y, 'sort', y.name).startswith(x)]) items = [Group(x, y) for x, y in category_groups.items()] @@ -571,8 +571,7 @@ class OPDSServer(object): ] def getter(x): return category_meta[x]['name'].lower() - for category in sorted(categories, - cmp=lambda x,y: cmp(getter(x), getter(y))): + for category in sorted(categories, key=lambda x: sort_key(getter(x))): if len(categories[category]) == 0: continue if category == 'formats': diff --git a/src/calibre/library/server/utils.py b/src/calibre/library/server/utils.py index 35c92f7ae2..e58dd2f19b 100644 --- a/src/calibre/library/server/utils.py +++ b/src/calibre/library/server/utils.py @@ -6,12 +6,14 @@ __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' import time, sys +from urllib import quote as quote_, unquote as unquote_ import cherrypy -from calibre import strftime as _strftime, prints +from calibre import strftime as _strftime, prints, isbytestring from calibre.utils.date import now as nowf from calibre.utils.config import tweaks +from calibre.utils.icu import sort_key class Offsets(object): 'Calculate offsets for a paginated view' @@ -72,7 +74,7 @@ def format_tag_string(tags, sep, ignore_max=False, no_tag_count=False): tlist = [t.strip() for t in tags.split(sep)] else: tlist = [] - tlist.sort(cmp=lambda x,y:cmp(x.lower(), y.lower())) + tlist.sort(key=sort_key) if len(tlist) > MAX: tlist = tlist[:MAX]+['...'] if no_tag_count: @@ -81,3 +83,14 @@ def format_tag_string(tags, sep, ignore_max=False, no_tag_count=False): return u'%s:&:%s'%(tweaks['max_content_server_tags_shown'], ', '.join(tlist)) if tlist else '' +def quote(s): + if isinstance(s, unicode): + s = s.encode('utf-8') + return quote_(s) + +def unquote(s): + ans = unquote_(s) + if isbytestring(ans): + ans = ans.decode('utf-8') + return ans + diff --git a/src/calibre/library/server/xml.py b/src/calibre/library/server/xml.py index e99fc2839c..efbceb9771 100644 --- a/src/calibre/library/server/xml.py +++ b/src/calibre/library/server/xml.py @@ -17,6 +17,7 @@ from calibre.ebooks.metadata import fmt_sidx from calibre.constants import preferred_encoding from calibre import isbytestring from calibre.utils.filenames import ascii_filename +from calibre.utils.icu import sort_key E = ElementMaker() @@ -101,8 +102,7 @@ class XMLServer(object): CFM = self.db.field_metadata CKEYS = [key for key in sorted(custom_fields_to_display(self.db), - cmp=lambda x,y: cmp(CFM[x]['name'].lower(), - CFM[y]['name'].lower()))] + key=lambda x: sort_key(CFM[x]['name']))] custcols = [] for key in CKEYS: def concat(name, val): diff --git a/src/calibre/library/sqlite.py b/src/calibre/library/sqlite.py index 1242d0bf7b..ca6b0fc178 100644 --- a/src/calibre/library/sqlite.py +++ b/src/calibre/library/sqlite.py @@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en' Wrapper for multi-threaded access to a single sqlite database connection. Serializes all calls. ''' -import sqlite3 as sqlite, traceback, time, uuid +import sqlite3 as sqlite, traceback, time, uuid, sys, os from sqlite3 import IntegrityError, OperationalError from threading import Thread from Queue import Queue @@ -18,7 +18,9 @@ from functools import partial from calibre.ebooks.metadata import title_sort, author_to_author_sort from calibre.utils.config import tweaks from calibre.utils.date import parse_date, isoformat -from calibre import isbytestring +from calibre import isbytestring, force_unicode +from calibre.constants import iswindows, DEBUG +from calibre.utils.icu import strcmp global_lock = RLock() @@ -34,10 +36,11 @@ sqlite.register_adapter(datetime, adapt_datetime) sqlite.register_converter('timestamp', convert_timestamp) def convert_bool(val): - return bool(int(val)) + return val != '0' sqlite.register_adapter(bool, lambda x : 1 if x else 0) sqlite.register_converter('bool', convert_bool) +sqlite.register_converter('BOOL', convert_bool) class DynamicFilter(object): @@ -113,6 +116,24 @@ def pynocase(one, two, encoding='utf-8'): pass return cmp(one.lower(), two.lower()) +def icu_collator(s1, s2): + return strcmp(force_unicode(s1, 'utf-8'), force_unicode(s2, 'utf-8')) + +def load_c_extensions(conn, debug=DEBUG): + try: + conn.enable_load_extension(True) + ext_path = os.path.join(sys.extensions_location, 'sqlite_custom.'+ + ('pyd' if iswindows else 'so')) + conn.load_extension(ext_path) + conn.enable_load_extension(False) + return True + except Exception, e: + if debug: + print 'Failed to load high performance sqlite C extension' + print e + return False + + class DBThread(Thread): CLOSE = '-------close---------' @@ -130,11 +151,14 @@ class DBThread(Thread): def connect(self): self.conn = sqlite.connect(self.path, factory=Connection, detect_types=sqlite.PARSE_DECLTYPES|sqlite.PARSE_COLNAMES) + self.conn.execute('pragma cache_size=5000') encoding = self.conn.execute('pragma encoding').fetchone()[0] + c_ext_loaded = load_c_extensions(self.conn) self.conn.row_factory = sqlite.Row if self.row_factory else lambda cursor, row : list(row) self.conn.create_aggregate('concat', 1, Concatenate) - self.conn.create_aggregate('sortconcat', 2, SortedConcatenate) - self.conn.create_aggregate('sort_concat', 2, SafeSortedConcatenate) + if not c_ext_loaded: + self.conn.create_aggregate('sortconcat', 2, SortedConcatenate) + self.conn.create_aggregate('sort_concat', 2, SafeSortedConcatenate) self.conn.create_collation('PYNOCASE', partial(pynocase, encoding=encoding)) if tweaks['title_series_sorting'] == 'strictly_alphabetic': @@ -146,6 +170,7 @@ class DBThread(Thread): self.conn.create_function('uuid4', 0, lambda : str(uuid.uuid4())) # Dummy functions for dynamically created filters self.conn.create_function('books_list_filter', 1, lambda x: 1) + self.conn.create_collation('icucollate', icu_collator) def run(self): try: @@ -262,3 +287,9 @@ def connect(dbpath, row_factory=None): if conn.proxy.unhandled_error[0] is not None: raise DatabaseException(*conn.proxy.unhandled_error) return conn + +def test(): + c = sqlite.connect(':memory:') + if load_c_extensions(c, True): + print 'Loaded C extension successfully' + diff --git a/src/calibre/library/sqlite_custom.c b/src/calibre/library/sqlite_custom.c new file mode 100644 index 0000000000..650c474c2c --- /dev/null +++ b/src/calibre/library/sqlite_custom.c @@ -0,0 +1,173 @@ +#define UNICODE +#include <Python.h> + + +#include <stdlib.h> + +#include <sqlite3ext.h> +SQLITE_EXTENSION_INIT1 + +#ifdef _MSC_VER +#define MYEXPORT __declspec(dllexport) +#else +#define MYEXPORT +#endif + +// sortconcat {{{ + +typedef struct { + unsigned char *val; + int index; + int length; +} SortConcatItem; + +typedef struct { + SortConcatItem **vals; + int count; + int length; +} SortConcatList; + +static void sort_concat_step(sqlite3_context *context, int argc, sqlite3_value **argv) { + const unsigned char *val; + int idx, sz; + SortConcatList *list; + + assert(argc == 2); + + list = (SortConcatList*) sqlite3_aggregate_context(context, sizeof(*list)); + if (list == NULL) return; + + if (list->vals == NULL) { + list->vals = (SortConcatItem**)calloc(100, sizeof(SortConcatItem*)); + if (list->vals == NULL) return; + list->length = 100; + list->count = 0; + } + + if (list->count == list->length) { + list->vals = (SortConcatItem**)realloc(list->vals, list->length + 100); + if (list->vals == NULL) return; + list->length = list->length + 100; + } + + list->vals[list->count] = (SortConcatItem*)calloc(1, sizeof(SortConcatItem)); + if (list->vals[list->count] == NULL) return; + + idx = sqlite3_value_int(argv[0]); + val = sqlite3_value_text(argv[1]); + sz = sqlite3_value_bytes(argv[1]); + if (idx == 0 || val == NULL || sz == 0) {free(list->vals[list->count]); return;} + + + + list->vals[list->count]->val = (unsigned char*)calloc(sz, sizeof(unsigned char)); + if (list->vals[list->count]->val == NULL) + {free(list->vals[list->count]); return;} + list->vals[list->count]->index = idx; + list->vals[list->count]->length = sz; + memcpy(list->vals[list->count]->val, val, sz); + list->count = list->count + 1; + +} + +static void sort_concat_free(SortConcatList *list) { + int i; + if (list == NULL) return; + for (i = 0; i < list->count; i++) { + free(list->vals[i]->val); + free(list->vals[i]); + } +} + +static int sort_concat_cmp(const void *a_, const void *b_) { + return (*((SortConcatItem**)a_))->index - (*((SortConcatItem**)b_))->index; +} + +static unsigned char* sort_concat_do_finalize(SortConcatList *list, const unsigned char join) { + unsigned char *ans, *pos; + int sz = 0, i; + + for (i = 0; i < list->count; i++) { + sz += list->vals[i]->length; + } + sz += list->count; + + ans = (unsigned char *) calloc(sz, sizeof(unsigned char)); + if (ans == NULL) return ans; + + pos = ans; + for (i = 0; i < list->count; i++) { + if (list->vals[i]->length > 0) { + memcpy(pos, list->vals[i]->val, list->vals[i]->length); + pos += list->vals[i]->length; + if (i < list->count -1) { *pos = join; pos += 1; } + } + } + + return ans; + +} + +static void sort_concat_finalize(sqlite3_context *context) { + SortConcatList *list; + unsigned char *ans; + + list = (SortConcatList*) sqlite3_aggregate_context(context, sizeof(*list)); + + if (list != NULL && list->vals != NULL && list->count > 0) { + qsort(list->vals, list->count, sizeof(list->vals[0]), sort_concat_cmp); + ans = sort_concat_do_finalize(list, ','); + if (ans != NULL) sqlite3_result_text(context, (char*)ans, -1, SQLITE_TRANSIENT); + free(ans); + sort_concat_free(list); + } + +} + +static void sort_concat_finalize2(sqlite3_context *context) { + SortConcatList *list; + unsigned char *ans; + + list = (SortConcatList*) sqlite3_aggregate_context(context, sizeof(*list)); + + if (list != NULL && list->vals != NULL && list->count > 0) { + qsort(list->vals, list->count, sizeof(list->vals[0]), sort_concat_cmp); + ans = sort_concat_do_finalize(list, '|'); + if (ans != NULL) sqlite3_result_text(context, (char*)ans, -1, SQLITE_TRANSIENT); + free(ans); + sort_concat_free(list); + } + +} + +// }}} + +MYEXPORT int sqlite3_extension_init( + sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi){ + SQLITE_EXTENSION_INIT2(pApi); + sqlite3_create_function(db, "sortconcat", 2, SQLITE_UTF8, NULL, NULL, sort_concat_step, sort_concat_finalize); + sqlite3_create_function(db, "sort_concat", 2, SQLITE_UTF8, NULL, NULL, sort_concat_step, sort_concat_finalize2); + return 0; +} + +static PyObject * +sqlite_custom_init_funcs(PyObject *self, PyObject *args) { + Py_RETURN_NONE; +} + +static PyMethodDef sqlite_custom_methods[] = { + {"init_funcs", sqlite_custom_init_funcs, METH_VARARGS, + "init_funcs()\n\nInitialize module." + }, + + {NULL, NULL, 0, NULL} +}; + +PyMODINIT_FUNC +initsqlite_custom(void) { + PyObject *m; + m = Py_InitModule3("sqlite_custom", sqlite_custom_methods, + "Implementation of custom sqlite methods in C for speed." + ); + if (m == NULL) return; +} diff --git a/src/calibre/libunrar.py b/src/calibre/libunrar.py index e05afc4e38..4bfd5c537a 100644 --- a/src/calibre/libunrar.py +++ b/src/calibre/libunrar.py @@ -28,7 +28,7 @@ if hasattr(sys, 'frozen') and iswindows: lp = os.path.join(os.path.dirname(sys.executable), 'DLLs', 'unrar.dll') _libunrar = cdll.LoadLibrary(lp) elif hasattr(sys, 'frozen_path'): - lp = os.path.join(sys.frozen_path, 'libunrar.so') + lp = os.path.join(sys.frozen_path, 'lib', 'libunrar.so') _libunrar = cdll.LoadLibrary(lp) else: _libunrar = load_library(_librar_name, cdll) diff --git a/src/calibre/manual/customize.rst b/src/calibre/manual/customize.rst index e0f799f572..d7b4e931d9 100644 --- a/src/calibre/manual/customize.rst +++ b/src/calibre/manual/customize.rst @@ -98,6 +98,46 @@ Every time you use calibre to convert a book, the plugin's :meth:`run` method wi converted book will have its publisher set to "Hello World". For more information about |app|'s plugin system, read on... + +A Hello World GUI plugin +--------------------------- + +Here's a simple Hello World plugin for the |app| GUI. It will cause a box to popup with the message "Hellooo World!" when you press Ctrl+Shift+H + +.. note:: Only available in calibre versions ``>= 0.7.32``. + +.. code-block:: python + + from calibre.customize import InterfaceActionBase + + class HelloWorldBase(InterfaceActionBase): + + name = 'Hello World GUI' + author = 'The little green man' + + def load_actual_plugin(self, gui): + from calibre.gui2.actions import InterfaceAction + + class HelloWorld(InterfaceAction): + name = 'Hello World GUI' + action_spec = ('Hello World!', 'add_book.png', None, + _('Ctrl+Shift+H')) + + def genesis(self): + self.qaction.triggered.connect(self.hello_world) + + def hello_world(self, *args): + from calibre.gui2 import info_dialog + info_dialog(self.gui, 'Hello World!', 'Hellooo World!', + show=True) + + return HelloWorld(gui, self.site_customization) + +You can also have it show up in the toolbars/context menu by going to Preferences->Toolbars and adding this plugin to the locations you want it to be in. + +While this plugin is utterly useless, note that all calibre GUI actions like adding/saving/removing/viewing/etc. are implemented as plugins, so there is no limit to what you can achieve. The key thing to remember is that the plugin has access to the full |app| GUI via ``self.gui``. + + The Plugin base class ------------------------ diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst index 687c8480be..55451206b6 100644 --- a/src/calibre/manual/faq.rst +++ b/src/calibre/manual/faq.rst @@ -247,6 +247,32 @@ Also, :: must return ``CONFIG_SCSI_MULTI_LUN=y``. If you don't see either, you have to recompile your kernel with the correct settings. +My device is getting mounted read-only in linux, so |app| cannot connect to it? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +linux kernels mount devices read-only when their filesystems have errors. You can repair the filesystem with:: + + sudo fsck.vfat -y /dev/sdc + +Replace /dev/sdc with the path to the device node of your device. You can find the device node of your device, which +will always be under /dev by examining the output of:: + + mount + + +Why does |app| not support collection on the Kindle or shelves on the Nook? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Neither the Kindle nor the Nook provide any way to manipulate collections over a USB connection. +If you really care about using collections, I would urge you to sell your Kindle/Nook and get a SONY. +Only SONY seems to understand that life is too short to be entering collections one by one on an +e-ink screen :) + +Note that in the case of the Kindle, there is a way to manipulate collections via USB, +but it requires that the Kindle be rebooted *every time* it is disconnected from the computer, for the +changes to the collections to be recognized. As such, it is unlikely that +any |app| developers will ever feel motivated enough to support it. + Library Management ------------------ diff --git a/src/calibre/manual/gui.rst b/src/calibre/manual/gui.rst index c81688ba8c..28fd0307d3 100644 --- a/src/calibre/manual/gui.rst +++ b/src/calibre/manual/gui.rst @@ -12,6 +12,7 @@ for using |app| is to first add books to the library from your hard disk. to its internal database. Once they are in the database, you can perform a various :ref:`actions` on them that include conversion from one format to another, transfer to the reading device, viewing on your computer, editing metadata, including covers, etc. +Note that |app| creates copies of the files you add to it, your original files are left untouched. The interface is divided into various sections: @@ -27,7 +28,7 @@ Actions .. image:: images/actions.png :alt: The Actions Toolbar -The actions toolbar provides convenient shortcuts to commonly used actions. Most of the action buttons have little arrows next to them. By clicking the arrows, you can perform variations on the default action. +The actions toolbar provides convenient shortcuts to commonly used actions. Most of the action buttons have little arrows next to them. By clicking the arrows, you can perform variations on the default action. Please note that the actions toolbar will look slightly different depending on whether you have an ebook reader attached to your computer. .. contents:: :depth: 1 @@ -39,99 +40,51 @@ Add books ~~~~~~~~~~~~~~~~~~ .. |adbi| image:: images/add_books.png -|adbi| The :guilabel:`Add books` action has three variations, accessed by the arrow next to the button. +|adbi| The :guilabel:`Add books` action has five variations, accessed by the clicking the down arrow on the right side of the button. 1. **Add books from a single directory**: Opens a file chooser dialog and allows you to specify which books in a directory should be added. This action is *context sensitive*, i.e. it depends on which :ref:`catalog <catalogs>` you have selected. If you have selected the :guilabel:`Library`, books will be added to the library. If you have selected the ebook reader device, the books will be uploaded to the device, and so on. - 2. **Add books recursively (One book per directory)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any ebooks found are added to the library.The algorithm assumes that each directory contains a single book. All ebook files in a directory are assumedto be the same book in different formats. This action is the inverse of the :ref:`Save to disk <save_to_disk_multiple>` action, i.e. you can :guilabel:`Save to disk`, delete the books and re-add them with no lost information (except date). + 2. **Add books from directories, including sub-directories (One book per directory, assumes every ebook file is the same book in a different format)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any ebooks found are added to the library. The algorithm assumes that each directory contains a single book. All ebook files in a directory are assumedto be the same book in different formats. This action is the inverse of the :ref:`Save to disk <save_to_disk_multiple>` action, i.e. you can :guilabel:`Save to disk`, delete the books and re-add them with no lost information (except date). - 3. **Add books recursively (Multiple books per directory)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any ebooks found are added to the library.The algorithm assumes that each directory contains many books. All ebook files with the same name in a directory are assumed to be the same book in different formats. This action is the inverse of the :ref:`Save to disk <save_to_disk_single>` action, i.e. you can :guilabel:`Save to disk`, delete the books and re-add them with no lost information (except date). + 3. **Add books directories, including sub-directories (Multiple books per directory, assumes every ebook file is a different book)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any ebooks found are added to the library. The algorithm assumes that each directory contains many books. All ebook files with the same name in a directory are assumed to be the same book in different formats. Ebooks with different names are added as different books. This action is the inverse of the :ref:`Save to disk <save_to_disk_single>` action, i.e. you can :guilabel:`Save to disk`, delete the books and re-add them with no lost information (except date). + 4. **Add empty book. (Book Entry with blank formats)**: Allows you to create a blank book record. This can be used to then manually fill out the information about a book that you may not have yet in your collection. + + 5. **Add by ISBN**: Allows you to add one or more books by entering just their ISBN into a list or pasting the list of ISBNs from your clipboard. + +The :guilabel:`Add books` action can read metadata from a wide variety of e-book formats. In addition it tries to guess metadata from the filename. +See the :ref:`config_filename_metadata` section, to learn how to configure this. -The :guilabel:`Add books` action can read metadata from the following ebook formats: ``LRF, EPUB, LIT, MOBI, RTF, PDF, PRC, HTML``. In addition it tries to guess metadata from the filename. See the :ref:`config_filename_metadata` section, to learn how to configure this. - -To add a new format to an existing book, use the :ref:`edit_meta_information` action. - -.. _remove_books: - -Remove books -~~~~~~~~~~~~~~~~~~~~~ -.. |rbi| image:: images/remove_books.png - -|rbi| The :guilabel:`Remove books` action deletes books permanently, so use it with care. It is *context sensitive*, i.e. it depends on which :ref:`catalog <catalogs>` you have selected. If you have selected the :guilabel:`Library`, books will be removed from the library. If you have selected the ebook reader device, the books will be removed from the device. To remove only a particular format for a given book use the :ref:`edit_meta_information` action. +To add an additional format for an existing book, use the :ref:`edit_meta_information` action. .. _edit_meta_information: -Edit meta information +Edit metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. |emii| image:: images/edit_meta_information.png -|emii| The :guilabel:`Edit meta information` action has two variations, accessed by the arrow next to the button. +|emii| The :guilabel:`Edit metadata` action has six variations, which can be accessed by clicking the down arrow on the right side of the button. 1. **Edit metadata individually**: This allows you to edit the metadata of books one-by-one, with the option of fetching metadata, including covers from the internet. It also allows you to add/remove particular ebook formats from a book. For more detail see :ref:`metadata`. - 2. **Edit metadata in bulk**: This allows you to edit common metadata fields for large numbers of books simulataneously. It operates on all the books you have selected in the :ref:`Library view <search_sort>`. + 3. **Download metadata and covers**: Downloads metadata and covers (if available), for the books that are selected in the book list. + 4. **Download only metadata**: Downloads only metadata (if available), for the books that are selected in the book list. + 5. **Download only covers**: Downloads only covers (if available), for the books that are selected in the book list. + 6. **Download only social metadata**: Downloads only social metadata such as tags and reviews (if available), for the books that are selected in the book list. + 7. **Merge Book Records**: Gives you the capability of merging the metadata and formats of two or more book records together. You can choose to either delete or keep the records that were not clicked first. -.. _send_to_device: - -Send to device -~~~~~~~~~~~~~~~~~~~~~~~~ -.. |stdi| image:: images/send_to_device.png - -|stdi| The :guilabel:`Send to device` action has two variations, accessed by the arrow next to the button. - - 1. **Send to main memory**: The selected books are transferred to the main memory of the ebook reader. - 2. **Send to card**: The selected books are transferred to the storage card on the ebook reader. - -You can control the file name and folder structure of files sent to the device by setting up a template in -:guilabel:`Preferences->Import/Export->Sending books to devices`. Also see :ref:`templatelangcalibre`. - -.. _save_to_disk: - -Save to disk -~~~~~~~~~~~~~~~~~~~~~~~~~ -.. |svdi| image:: images/save_to_disk.png - -|svdi| The :guilabel:`Save to disk` action has two variations, accessed by the arrow next to the button. - -.. _save_to_disk_multiple: - - 1. **Save to disk**: This will save the selected books to disk organized in directories. The directory structure looks like:: - - Author - Title - Book Files - -.. _save_to_disk_single: - - 2. **Save to disk in a single directory**: The selected books are saved to disk in a single directory. - -All available formats as well as metadata is stored to disk for each selected book. Metadata is stored in an OPF file. - -Saved books can be re-imported to the library without any loss of information by using the :ref:`Add books <add_books>` action. - -You can control the file name and folder structure of files saved to disk by setting up a template in -:guilabel:`Preferences->Import/Export->Saving books to disk`. Also see :ref:`templatelangcalibre`. - - -.. _fetch_news: - -Fetch news -~~~~~~~~~~~~~~~~~ -.. |fni| image:: images/fetch_news.png - -|fni| The :guilabel:`Fetch news` action downloads news from various websites and converts it into an ebook that can be read on your ebook reader. Normally, the newly created ebook is added to your ebook library, but if an ebook reader is connected at the time the download finishes, the news is uploaded to the reader directly. - -The :guilabel:`Fetch news` action uses simple recipes (10-15 lines of code) for each news site. To learn how to create recipes for your own news sources, see :ref:`news`. - + .. _convert_ebooks: Convert e-books ~~~~~~~~~~~~~~~~~~~~~~ .. |cei| image:: images/convert_ebooks.png -|cei| Ebooks can be converted from a number of formats into the LRF format (for the SONY Reader). Note that ebooks you purchase will typically have `Digital Rights Management <http://bugs.calibre-ebook.com/wiki/DRM>`_ *(DRM)*. |app| will not convert these ebooks. For many DRM formats, it is easy to remove the DRM, but as this is illegal, you have to find tools to liberate your books yourself and then use |app| to convert them. +|cei| Ebooks can be converted from a number of formats into whatever format your e-book reader prefers. +Note that ebooks you purchase will typically have `Digital Rights Management <http://bugs.calibre-ebook.com/wiki/DRM>`_ *(DRM)*. +|app| will not convert these ebooks. For many DRM formats, it is easy to remove the DRM, but as this may be illegal, +you have to find tools to liberate your books yourself and then use |app| to convert them. For most people, conversion should be a simple 1-click affair. But if you want to learn more about the conversion process, see :ref:`conversion`. @@ -141,29 +94,180 @@ The :guilabel:`Convert E-books` action has three variations, accessed by the arr 2. **Bulk convert**: This allows you to specify options only once to convert a number of ebooks in bulk. - 3. **Create catalog**: This action allows you to generate a complete listing with all metadata of the books in your library, in several formats, like XML, CSV, EPUB and MOBI. The catalog will contain all the books showing in the library view currently, so you can use the search features to limit the books to be catalogued. In addition, if you select multiple books using the mouse, only those books will be added to the catalog. If you generate the catalog in an e-book format such as EPUB or MOBI, the next time you connect your e-book reader, the catalog will be automatically sent to the device. For details on how catalogs work, see `here <http://www.mobileread.com/forums/showthread.php?p=755468#post755468>`_. - + 3. **Create catalog**: This action allows you to generate a complete listing with all metadata of the books in your library, + in several formats, like XML, CSV, BiBTeX, EPUB and MOBI. The catalog will contain all the books showing in the library view currently, + so you can use the search features to limit the books to be catalogued. In addition, if you select multiple books using the mouse, + only those books will be added to the catalog. If you generate the catalog in an e-book format such as EPUB or MOBI, + the next time you connect your e-book reader, the catalog will be automatically sent to the device. + For details on how catalogs work, see `here <http://www.mobileread.com/forums/showthread.php?p=755468#post755468>`. + .. _view: View ~~~~~~~~~~~ .. |vi| image:: images/view.png -|vi| The :guilabel:`View` action displays the book in an ebook viewer program. |app| has a builtin viewer for the LRF format. For other formats it uses the default operating system application. If a book has more than one format, you can view a particular format by clicking the arrow next to the :guilabel:`View` button. +|vi| The :guilabel:`View` action displays the book in an ebook viewer program. |app| has a builtin viewer for the most e-book formats. +For other formats it uses the default operating system application. You can configure which formats should open with the internal viewer via +Preferences->Behavior. If a book has more than one format, you can view a particular format by clicking the down arrow +on the right of the :guilabel:`View` button. + +.. _send_to_device: + +Send to device +~~~~~~~~~~~~~~~~~~~~~~~~ +.. |stdi| image:: images/send_to_device.png + +|stdi| The :guilabel:`Send to device` action has eight variations, accessed by clicking the down arrow on the right of the button. + + 1. **Send to main memory**: The selected books are transferred to the main memory of the ebook reader. + 2. **Send to card (A)**: The selected books are transferred to the storage card (A) on the ebook reader. + 3. **Send to card (B)**: The selected books are transferred to the storage card (B) on the ebook reader. + 4. **Send and delete from library>**: The selected books are transferred to the selected storage location on the device, and then **deleted** from the Library. + 5. **Send Specific format>**: The selected books are transferred to the selected storage location on the device, in the format that you specify. + 6. **Eject device**: The device is detached from |app|. + 7. **Set default send to device action>**: This action allows you to Specify which of the option 1) through 6) above will be the default action when you click the main button. + 8. **Fetch Annotations**: This is an experimental action which will transfer annotations you may have made on an ebook on your device, and add those annotations to the comments metadata of the book in the |app| library + +You can control the file name and folder structure of files sent to the device by setting up a template in +:guilabel:`Preferences->Import/Export->Sending books to devices`. Also see :ref:`templatelangcalibre`. + +.. _fetch_news: + +Fetch news +~~~~~~~~~~~~~~~~~ +.. |fni| image:: images/fetch_news.png + +|fni| The :guilabel:`Fetch news` action downloads news from various websites and converts it into an ebook that can be read on your ebook reader. Normally, the newly created ebook is added to your ebook library, but if an ebook reader is connected at the time the download finishes, the news is also uploaded to the reader automatically. + +The :guilabel:`Fetch news` action uses simple recipes (10-15 lines of code) for each news site. To learn how to create recipes for your own news sources, see :ref:`news`. + +The :guilabel:`Fetch news` action has three variations, accessed by clicking the down arrow on the right of the button. + + 1. **Schedule news download**: This action allows you to schedule the download of of your selected news sources from a list of hundreds of available. Scheduling can be set individually for each news source you select and the scheduling is flexible allowing you to select specific days of the week or a frequency of days between downloads. + 2. **Add a custom news service**: This action allows you to create a simple recipe for downloading news from a custom news site that you wish to access. Creating the recipe can be as simple as specifying an RSS news feed URL, or you can be more prescriptive by creating python based code for the task, see :ref:`news`. + 3. **Download all scheduled news sources**: This action causes |app| to immediately begin to download all news sources that you have previously scheduled. + + +.. _library: + +Library +~~~~~~~~~~~~~~~~~ +.. |lii| image:: images/library.png + +|lii| The :guilabel: `Library` action allows you to create, switch between, rename or delete a Library. |app| allows you to create as many libraries as you wish. You coudl for instance create a fiction library, a non fiction library, a foreign language library a project library, basically any structure that suits your needs. Libraries are the highest organizational structure within |app|, each library has its own set of books, tags, categories and base storage location. + + 1. **Switch\Create library..**: This action allows you to; a) connect to a pre-existing |app| library at another location from your currently open library, b) Create and empty library at a nw location or, c) Move the current Library to a newly specified location. + 2. **Quick Switch>**: This action allows you to switch between libraries that have been registered or created within |app|. + 3. **Rename Library>**: This action allows you to rename a Library. + 4. **Delete Library>**: This action allows you to **permanenetly delete** a Library. + 5. **<calibre library>**: Actions 5, 6 etc .. give you immediate switch access between multiple Libraries that you have created or attached to. + +.. _device: + +Device +~~~~~~~~~~~~~~~~~ +.. |dvi| image:: images/device.png + +|dvi| The :guilabel:`Device` action allows you to view the books in the main memory or storage cards of your device, or to eject the device (detach it from |app|). +This icon shows up automatically on the main |app| toolbar when you connect a supported device. You can click on it to see the books on your device. You can also drag and drop books from your |app| library onto the icon to transfer them to your device. Conversely, you can drag and drop books from your device onto the |app| icon on the toolbar to transfer books from your device to the |app| library. + + +.. _save_to_disk: + +Save to disk +~~~~~~~~~~~~~~~~~~~~~~~~~ +.. |svdi| image:: images/save_to_disk.png + +|svdi| The :guilabel:`Save to disk` action has five variations, accessed by the arrow next to the button. + +.. _save_to_disk_multiple: + + 1. **Save to disk**: This will save the selected books to disk organized in directories. The directory structure looks like:: + + Author_(sort) + Title + Book Files + + You can control the file name and folder structure of files saved to disk by setting up a template in + :guilabel:`Preferences->Import/Export->Saving books to disk`. Also see :ref:`templatelangcalibre`. + +.. _save_to_disk_single: + + 2. **Save to disk in a single directory**: The selected books are saved to disk in a single directory. + + For 1. and 2. All available formats as well as metadata is stored to disk for each selected book. Metadata is stored in an OPF file. + + Saved books can be re-imported to the library without any loss of information by using the :ref:`Add books <add_books>` action. + + 3. **Save only *<your preferred>* format to disk**: The selected books are saved to disk in the directory structure as shown in (1.) but only in your preferred ebook format you can set <your preferred> format in :guilabel:`Preferences->Behaviour->Preferred output format` + + 4. **Save only *<your preferred>* format to disk in a single directory**: The selected books are saved to disk in a single directory but only in <your preferred> ebook format you can set <your preferred> format in :guilabel:`Preferences->Behaviour->Preferred output format` + + 5. **Save single format to disk ..**: The selected books are saved to disk in the directory structure as shown in (1.) but only in the format you select from the pop-out list. There are currently 35 formats available and new ones are being added all the time. + +.. _connect_share: + +Connect/Share +~~~~~~~~~~~~~~~~~ +.. |csi| image:: images/connect_share.png + +|csi| The :guilabel:`Connect/Share` action allows you to manually connect to a device or folder on your computer, it also allows you to set up you |app| library for access via a web browser, or email. + + The :guilabel:`Connect/Share` action has four variations, accessed by clicking the down arrow on the right of the button. + + 1. **Connect to folder**: This action allows you to connect to any folder on your computer as though it were a device and use all the facilities |app| has for devices with that folder. Useful if your device cannot be supported by |app| but is available as a USB disk. + + 2. **Connect to iTunes**: Allows you to connect to your iTunes books database as though it were a device. Once the books are sent to iTunes, you can then use iTunes to make them available on your various iDevices. Useful if you would rather not have |app| send books to your iDevice directly. + + 3. **Start Content Server**: This action causes |app| to start up its built-in web server. When this is started, your |app| library will be accessible via a web browser from the internet (if you choose). You can configure how the web server is accessed by setting preferences at :guilabel:`Preferences->Sharing->Sharing over the net` + + 4. **Setup email based sharing of books**: This action allows you to setup |app| to share books (and news feeds) by email. After setting up email addresses for this option |app| will send news updates and book updates to the entered email addresses. You can configure how the |app| sends email by setting preferences at :guilabel:`Preferences->Sharing->Sharing books by email`. Once you have setup one or more email addresses, this menu entry get replaced by menu entries to send books to the setup email addresses. + +.. _remove_books: + +Remove books +~~~~~~~~~~~~~~~~~~~~~ +.. |rbi| image:: images/remove_books.png + +|rbi| The :guilabel:`Remove books` action **deletes books permanently**, so use it with care. It is *context sensitive*, i.e. it depends on which :ref:`catalog <catalogs>` you have selected. If you have selected the :guilabel:`Library`, books will be removed from the library. If you have selected the ebook reader device, the books will be removed from the device. To remove only a particular format for a given book use the :ref:`edit_meta_information` action. Remove books also has five variations which can be accessed by clicking the down arrow on the right side of the button. + + 1. **Remove Selected Books**: Allows you to **permanently** remove all books that are selected in the book list. + + 2. **Remove files of a specified format from selected books..**: Allows you to **permanently** remove ebook files of a specified format, from books that are selected in the book list. + + 3. **Remove all files of a specified format, except..**: Allows you to **permanently** remove ebook files of a multiple formats except a given format, from books that are selected in the book list. + + 4. **Remove covers from selected books**: Allows you to **permanently** remove cover images files, from books that are selected in the book list. + + 5. **Remove matching books from device**: Allows you to remove ebook files from a connected device, that match the books that are selected in the book list. + +.. note:: + Note that when you use Remove books to delete books from your |app| library, the book record is permanently deleted, but, on (Windows and OS X) the files are placed into the recycle bin, so you can recover them if you change your mind. + +.. _configuration: + +Preferences +--------------- +.. |cbi| image:: images/preferences.png + +The Preferences Action allows you to change the way various aspects of |app| work. To access it, click the |cbi|. + .. _catalogs: Catalogs ---------- .. image:: images/catalogs.png -A *catalog* is a collection of books. |app| can manage three different catalogs: +A *catalog* is a collection of books. |app| can manage two types of different catalogs: - 1. **Library**: This is a collection of books stored in a database file on your computers harddisk. + 1. **Library**: This is a collection of books stored in your |app| library on your computer - 2. **Reader**: This is a collection of books stored in the main memory of your ebook reader. It will be available when you connect the reader to your computer. - - 3. **Card**: This is a collection of books stored on the storage card in your reader. + 2. **Device**: This is a collection of books stored in the main memory of your ebook reader. It will be available when you connect the reader to your computer. + - In addition, you can see the books on the storage card (if any) in your reader device. + +Many operations, like Adding books, deleting, viewing, etc. are context sensitive. So, for example, if you click the View button when you have the **Device** catalog selected, |app| will open the files on the device to view. If you have the **Library** catalog selected, files in your |app| library will be opened instead. .. _search_sort: @@ -281,14 +385,6 @@ Saving searches Now, you can access your saved search in the Tag Browser under "Searches". A single click will allow you to re-use any arbitrarily complex search easily, without needing to re-create it. -.. _configuration: - -Preferences ---------------- -The Preferences dialog allows you to change the way various aspects of |app| work. To access it, click the |cbi|. - -.. |cbi| image:: images/configuration.png - .. _config_filename_metadata: Guessing metadata from file names diff --git a/src/calibre/manual/images/actions.png b/src/calibre/manual/images/actions.png index efee432da2..90f1ec4567 100644 Binary files a/src/calibre/manual/images/actions.png and b/src/calibre/manual/images/actions.png differ diff --git a/src/calibre/manual/images/add_books.png b/src/calibre/manual/images/add_books.png index 1a0b341bbd..624a5bf8a5 100644 Binary files a/src/calibre/manual/images/add_books.png and b/src/calibre/manual/images/add_books.png differ diff --git a/src/calibre/manual/images/auto_author_sort.png b/src/calibre/manual/images/auto_author_sort.png new file mode 100644 index 0000000000..9950b77c95 Binary files /dev/null and b/src/calibre/manual/images/auto_author_sort.png differ diff --git a/src/calibre/manual/images/catalogs.png b/src/calibre/manual/images/catalogs.png index 8e5ba480e3..49357d15b2 100644 Binary files a/src/calibre/manual/images/catalogs.png and b/src/calibre/manual/images/catalogs.png differ diff --git a/src/calibre/manual/images/connect_share.png b/src/calibre/manual/images/connect_share.png new file mode 100644 index 0000000000..0275089d1c Binary files /dev/null and b/src/calibre/manual/images/connect_share.png differ diff --git a/src/calibre/manual/images/convert_ebooks.png b/src/calibre/manual/images/convert_ebooks.png index e82725e170..2218a541b8 100644 Binary files a/src/calibre/manual/images/convert_ebooks.png and b/src/calibre/manual/images/convert_ebooks.png differ diff --git a/src/calibre/manual/images/device.png b/src/calibre/manual/images/device.png new file mode 100644 index 0000000000..ce16ea67b4 Binary files /dev/null and b/src/calibre/manual/images/device.png differ diff --git a/src/calibre/manual/images/edit_meta_information.png b/src/calibre/manual/images/edit_meta_information.png index 061653a60a..9f68050767 100644 Binary files a/src/calibre/manual/images/edit_meta_information.png and b/src/calibre/manual/images/edit_meta_information.png differ diff --git a/src/calibre/manual/images/fetch_news.png b/src/calibre/manual/images/fetch_news.png index f93108db49..a0116b15aa 100644 Binary files a/src/calibre/manual/images/fetch_news.png and b/src/calibre/manual/images/fetch_news.png differ diff --git a/src/calibre/manual/images/folder_device.png b/src/calibre/manual/images/folder_device.png new file mode 100644 index 0000000000..87b2d7862f Binary files /dev/null and b/src/calibre/manual/images/folder_device.png differ diff --git a/src/calibre/manual/images/jobs.png b/src/calibre/manual/images/jobs.png index ab0716af48..2c70a947d4 100644 Binary files a/src/calibre/manual/images/jobs.png and b/src/calibre/manual/images/jobs.png differ diff --git a/src/calibre/manual/images/library.png b/src/calibre/manual/images/library.png new file mode 100644 index 0000000000..781c87430f Binary files /dev/null and b/src/calibre/manual/images/library.png differ diff --git a/src/calibre/manual/images/preferences.png b/src/calibre/manual/images/preferences.png new file mode 100644 index 0000000000..ad939d2388 Binary files /dev/null and b/src/calibre/manual/images/preferences.png differ diff --git a/src/calibre/manual/images/remove_books.png b/src/calibre/manual/images/remove_books.png index 9d798394d9..065de14be5 100644 Binary files a/src/calibre/manual/images/remove_books.png and b/src/calibre/manual/images/remove_books.png differ diff --git a/src/calibre/manual/images/save_to_disk.png b/src/calibre/manual/images/save_to_disk.png index 74db6ba6b1..a4d3137349 100644 Binary files a/src/calibre/manual/images/save_to_disk.png and b/src/calibre/manual/images/save_to_disk.png differ diff --git a/src/calibre/manual/images/send_to_device.png b/src/calibre/manual/images/send_to_device.png index 1cc45f020f..ed325ed753 100644 Binary files a/src/calibre/manual/images/send_to_device.png and b/src/calibre/manual/images/send_to_device.png differ diff --git a/src/calibre/manual/images/show_tag_editor.png b/src/calibre/manual/images/show_tag_editor.png new file mode 100644 index 0000000000..55b7a855e4 Binary files /dev/null and b/src/calibre/manual/images/show_tag_editor.png differ diff --git a/src/calibre/manual/images/swap_title_author.png b/src/calibre/manual/images/swap_title_author.png new file mode 100644 index 0000000000..e4d7470a44 Binary files /dev/null and b/src/calibre/manual/images/swap_title_author.png differ diff --git a/src/calibre/manual/images/view.png b/src/calibre/manual/images/view.png index c16ec58bcf..7c3346383f 100644 Binary files a/src/calibre/manual/images/view.png and b/src/calibre/manual/images/view.png differ diff --git a/src/calibre/manual/plugins.rst b/src/calibre/manual/plugins.rst index eb955aebee..0a62218fb9 100644 --- a/src/calibre/manual/plugins.rst +++ b/src/calibre/manual/plugins.rst @@ -161,11 +161,20 @@ The base class for such devices is :class:`calibre.devices.usbms.driver.USBMS`. User Interface Actions -------------------------- +If you are adding your own plugin in a zip file, you should subclass both InterfaceActionBase and InterfaceAction. The :meth:`load_actual_plugin` method of you InterfaceActionBase subclass must return an instantiated object of your InterfaceBase subclass. + + .. autoclass:: calibre.gui2.actions.InterfaceAction :show-inheritance: :members: :member-order: bysource +.. autoclass:: calibre.customize.InterfaceActionBase + :show-inheritance: + :members: + :member-order: bysource + + Preferences Plugins -------------------------- diff --git a/src/calibre/manual/template_lang.rst b/src/calibre/manual/template_lang.rst index e1eb876cb7..b2d32f0767 100644 --- a/src/calibre/manual/template_lang.rst +++ b/src/calibre/manual/template_lang.rst @@ -46,7 +46,6 @@ and if a book does not have a series:: (|app| automatically removes multiple slashes and leading or trailing spaces). - Advanced formatting ---------------------- @@ -80,6 +79,9 @@ For trailing zeros, use:: {series_index:0<3s} - Three digits with trailing zeros +If you use series indices with sub values (e.g., 1.1), you might want to ensure that the decimal points line up. For example, you might want the indices 1 and 2.5 to appear as 01.00 and 02.50 so that they will sort correctly. To do this, use:: + + {series_index:0>5.2f} - Five characters, consisting of two digits with leading zeros, a decimal point, then 2 digits after the decimal point If you want only the first two letters of the data, use:: @@ -115,14 +117,15 @@ The functions available are: * ``lowercase()`` -- return value of the field in lower case. * ``uppercase()`` -- return the value of the field in upper case. * ``titlecase()`` -- return the value of the field in title case. - * ``capitalize()`` -- return the value as capitalized. - * ``ifempty(text)`` -- if the field is not empty, return the value of the field. Otherwise return `text`. - * ``test(text if not empty, text if empty)`` -- return `text if not empty` if the field is not empty, otherwise return `text if empty`. + * ``capitalize()`` -- return the value with the first letter upper case and the rest lower case. * ``contains(pattern, text if match, text if not match`` -- checks if field contains matches for the regular expression `pattern`. Returns `text if match` if matches are found, otherwise it returns `text if no match`. - * ``switch(pattern, value, pattern, value, ..., else_value)`` -- for each ``pattern, value`` pair, checks if the field matches the regular expression ``pattern`` and if so, returns that ``value``. If no ``pattern`` matches, then ``else_value`` is returned. You can have as many ``pattern, value`` pairs as you want. + * ``count(separator)`` -- interprets the value as a list of items separated by `separator`, returning the number of items in the list. Most lists use a comma as the separator, but authors uses an ampersand. Examples: `{tags:count(,)}`, `{authors:count(&)}` + * ``ifempty(text)`` -- if the field is not empty, return the value of the field. Otherwise return `text`. + * ``lookup(pattern, field, pattern, field, ..., else_field)`` -- like switch, except the arguments are field (metadata) names, not text. The value of the appropriate field will be fetched and used. Note that because composite columns are fields, you can use this function in one composite field to use the value of some other composite field. This is extremely useful when constructing variable save paths (more later). * ``re(pattern, replacement)`` -- return the field after applying the regular expression. All instances of `pattern` are replaced with `replacement`. As in all of |app|, these are python-compatible regular expressions. * ``shorten(left chars, middle text, right chars)`` -- Return a shortened version of the field, consisting of `left chars` characters from the beginning of the field, followed by `middle text`, followed by `right chars` characters from the end of the string. `Left chars` and `right chars` must be integers. For example, assume the title of the book is `Ancient English Laws in the Times of Ivanhoe`, and you want it to fit in a space of at most 15 characters. If you use ``{title:shorten(9,-,5)}``, the result will be `Ancient E-nhoe`. If the field's length is less than ``left chars`` + ``right chars`` + the length of ``middle text``, then the field will be used intact. For example, the title `The Dome` would not be changed. - * ``lookup(pattern, field, pattern, field, ..., else_field)`` -- like switch, except the arguments are field (metadata) names, not text. The value of the appropriate field will be fetched and used. Note that because composite columns are fields, you can use this function in one composite field to use the value of some other composite field. This is extremely useful when constructing variable save paths (more later). + * ``switch(pattern, value, pattern, value, ..., else_value)`` -- for each ``pattern, value`` pair, checks if the field matches the regular expression ``pattern`` and if so, returns that ``value``. If no ``pattern`` matches, then ``else_value`` is returned. You can have as many ``pattern, value`` pairs as you want. + * ``test(text if not empty, text if empty)`` -- return `text if not empty` if the field is not empty, otherwise return `text if empty`. Now, about using functions and formatting in the same field. Suppose you have an integer custom column called ``#myint`` that you want to see with leading zeros, as in ``003``. To do this, you would use a format of ``0>3s``. However, by default, if a number (integer or float) equals zero then the field produces the empty value, so zero values will produce nothing, not ``000``. If you really want to see ``000`` values, then you use both the format string and the ``ifempty`` function to change the empty value back to a zero. The field reference would be:: diff --git a/src/calibre/startup.py b/src/calibre/startup.py index e384153993..41b20f3946 100644 --- a/src/calibre/startup.py +++ b/src/calibre/startup.py @@ -129,7 +129,7 @@ if not _run_once: def __getattribute__(self, attr): if attr in ('name', '__enter__', '__str__', '__unicode__', - '__repr__'): + '__repr__', '__exit__'): return object.__getattribute__(self, attr) fobject = object.__getattribute__(self, 'fobject') return getattr(fobject, attr) @@ -155,6 +155,11 @@ if not _run_once: fobject.__enter__() return self + def __exit__(self, *args): + fobject = object.__getattribute__(self, 'fobject') + return fobject.__exit__(*args) + + m = mode[0] random = len(mode) > 1 and mode[1] == '+' binary = mode[-1] == 'b' @@ -194,6 +199,15 @@ if not _run_once: __builtin__.__dict__['lopen'] = local_open + from calibre.utils.icu import title_case, lower as icu_lower, upper as icu_upper + __builtin__.__dict__['icu_lower'] = icu_lower + __builtin__.__dict__['icu_upper'] = icu_upper + __builtin__.__dict__['icu_title'] = title_case + + import mimetypes + mimetypes.init([P('mime.types')]) + guess_type = mimetypes.guess_type + def test_lopen(): from calibre.ptempfile import TemporaryDirectory from calibre import CurrentDir diff --git a/src/calibre/trac/bzr_commit_plugin.py b/src/calibre/trac/bzr_commit_plugin.py index f2a40e6266..df6bf699d1 100644 --- a/src/calibre/trac/bzr_commit_plugin.py +++ b/src/calibre/trac/bzr_commit_plugin.py @@ -56,6 +56,7 @@ class cmd_commit(_cmd_commit): summary = self.get_trac_summary(bug, url) if summary: msg = msg.replace('#%s'%bug, '#%s (%s)'%(bug, summary)) + msg = msg.replace('Fixesed', 'Fixed') return msg, bug, url, action diff --git a/src/calibre/translations/ca.po b/src/calibre/translations/ca.po index 1822bdbd79..dd61705cd2 100644 --- a/src/calibre/translations/ca.po +++ b/src/calibre/translations/ca.po @@ -10,19 +10,19 @@ msgid "" msgstr "" "Project-Id-Version: ca\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 19:55+0000\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-28 12:13+0000\n" "Last-Translator: FerranRius <frius64@hotmail.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-11 04:40+0000\n" +"X-Launchpad-Export-Date: 2010-11-29 04:46+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" -msgstr "No fa absolutament res" +msgstr "No fa res" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:87 @@ -30,11 +30,11 @@ msgstr "No fa absolutament res" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -43,8 +43,8 @@ msgstr "No fa absolutament res" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -58,7 +58,7 @@ msgstr "No fa absolutament res" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -77,14 +77,14 @@ msgstr "No fa absolutament res" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -92,7 +92,7 @@ msgstr "No fa absolutament res" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -112,10 +112,10 @@ msgstr "No fa absolutament res" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -124,15 +124,15 @@ msgstr "No fa absolutament res" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -140,14 +140,14 @@ msgstr "No fa absolutament res" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -175,7 +175,7 @@ msgstr "Lector de metadades" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:238 msgid "Metadata writer" -msgstr "Escriptor de metadades" +msgstr "Editor de metadades" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:268 msgid "Catalog generator" @@ -188,24 +188,24 @@ msgstr "Acció d'interfície d'usuari" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Preferències" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 "" -"Segueix tots els enllaços locals en un fitxer HTML i crea un arxiu ZIP que " -"contingui els fitxers enllaçats. Aquest connector s'executa cada vegada que " -"s'afegeix un fitxer HTML a la biblioteca." +"Segueix tots els enllaços locals d'un fitxer HTML i crea un arxiu ZIP amb " +"tots els fitxers enllaçats. S'executa cada cop que s'afegeix un fitxer HTML " +"a la biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -213,17 +213,17 @@ msgstr "" "Joc de caràcters dels fitxers HTML d'entrada. Les opcions comunes inclouen: " "cp1252, latin1, iso-8859-1 i utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 "" "Crea un arxiu PMLZ que conté el fitxer PML i totes les imatges de les " -"carpetes pmlname_ing o images. Aquest connector s'executa cada vegada que " -"afegiu un fitxer PML a la biblioteca." +"carpetes pmlname_img o imatges. S'executa cada cop que s'afegeix un fitxer " +"PML a la biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Extreu la portada dels fitxers de còmic" @@ -270,107 +270,106 @@ msgstr "Estableix les metadades als fitxers %s" msgid "Set metadata from %s files" msgstr "Estableix les metadades des dels fitxers %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Aspecte i comportament" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interfície" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" "Ajusta l'aspecte i el comportament de la interfície del calibre adaptar-lo " "al vostre gust" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Comportament" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Canvia el comportament del calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 -msgid "Add your own columns" -msgstr "Afegeix les teves columnes" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 -msgid "Add/remove your own columns to the calibre book list" -msgstr "" -"Afegeix/elimina les teves columnes a la llista de llibres del calibre" +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 +msgid "Add your own columns" +msgstr "Columnes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 +msgid "Add/remove your own columns to the calibre book list" +msgstr "Configura les columnes de la llista de llibres del calibre" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Personalitza la barra d'eines" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" msgstr "" -"Personalitza les barres d'eines i els menús de context, canviant quines " -"accions estan disponibles" +"Personalitza les barres d'eines i els menús de context, canviant les accions " +"que estaran disponibles" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Opcions d'entrada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Conversió" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "" "Ajusta les opcions de conversió específiques per a cada format d'entrada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Opcions comunes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Ajusta les opcions de conversió comunes a tots els formats" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Opcions de sortida" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "" "Ajusta les opcions de conversió específiques de cada format de sortida" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" -msgstr "Afegint llibres" +msgstr "Afegeix llibres" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Importa/exporta" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Controla com el calibre llegeix les metadades dels arxius quan s'afegeixen " "llibres" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 -msgid "Saving books to disk" -msgstr "Desant els llibres al disc" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +msgid "Saving books to disk" +msgstr "Desa llibres al disc" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -378,32 +377,32 @@ msgstr "" "Controla com el calibre exporta fitxers de la seva base de dades al disc en " "utilitzar «Desa al disc»" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 -msgid "Sending books to devices" -msgstr "S'està enviant llibres als dispositius" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +msgid "Sending books to devices" +msgstr "Envia llibres als dispositius" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Controla com el calibre envia fitxers al lector de llibres" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Metadades dels quadres de connexions" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Canvia els camps de les metadades abans de desar/enviar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 -msgid "Sharing books by email" -msgstr "Compartint llibres via correu electrònic" - -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 -msgid "Sharing" -msgstr "Compartint" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +msgid "Sharing books by email" +msgstr "Comparteix llibres per correu electrònic" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 +msgid "Sharing" +msgstr "Compartició" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -411,53 +410,53 @@ msgstr "" "Configura la compartició de llibres per correu electrònic. Es pot utilitzar " "per enviar notícies descarregades als vostres dispositius" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 -msgid "Sharing over the net" -msgstr "Compartint en xarxa" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +msgid "Sharing over the net" +msgstr "Comparteix en xarxa" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" msgstr "" -"Configura el Servidor de Continguts donarà accés a la biblioteca des de " -"qualsevol lloc i dispositiu, a través d'internet" +"Configura el Servidor de Continguts que dona accés a la biblioteca a través " +"d'internet des de qualsevol lloc i dispositiu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" -msgstr "Plugins" +msgstr "Connectors" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Avançat" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "" -"Afegeix/suprimeix/personalitza diversos bits de la funcionalitat del calibre" +"Afegeix/suprimeix/personalitza diverses parts de les funcions del calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Ajustos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "" "Configura en detall el comportament del calibre en diversos contextos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Miscel·lània" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Configuració avançada" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" -msgstr "Entrada per a la conversió" +msgstr "Entrada de la conversió" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:134 msgid "" @@ -481,7 +480,7 @@ msgid "" "readable as possible. May not have any effect for some output plugins." msgstr "" "Si ho indiqueu, el connector de sortida intentarà generar una sortida que " -"sigui el més llegible possible. Potser no tingui cap efecte en alguns " +"sigui el més llegible possible. Pot ser que no tingui cap efecte en alguns " "connectors de sortida." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:47 @@ -497,7 +496,7 @@ msgstr "" "sabeu res del document d'entrada." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -508,62 +507,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Aquest perfil és adient per al SONY PRS-300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Aquest perfil és adient per al SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Aquest perfil és adient per al Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Aquest perfil és adient per a llibres Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Aquest perfil és adient per al Hanlin V3 i els seus clons." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Aquest perfil és adient per al Hanlin V5 i els seus clons." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Aquest perfil és adient per al Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Aquest perfil és adient per al Cybook Opus" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Aquest perfil és adient per a l'Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Aquest perfil és adient per a l'Irex Illiad" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Aquest perfil és adient per a l'IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Aquest perfil és adient per a l'IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Aquest perfil és adient per al B&N Nook." @@ -581,30 +580,30 @@ msgstr "" "si voleu generar un document que es pugui llegir en un PC o en un conjunt " "ampli de dispositius diferents." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Destinats als dispositius d'IPAD i similars amb una resolució de 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" "Pensat per a dispositius «tablet PC» genèrics, no redimensiona imatges" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Aquest perfil és adient per al Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Aquest perfil és adient per al SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Aquest perfil és adient per al 5-inch JetBook" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -612,11 +611,15 @@ msgstr "" "Aquest perfil és adient per a la línia PRS de SONY. Models 500/505/700... en " "mode apaïsat. Sobretot és útil per als còmics." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Aquest perfil és adient per a l'Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Aquest perfil és adient per al B&N Nook Color." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Aquest perfil és adient per al Sanda Bambook." @@ -676,12 +679,12 @@ msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "" -"Personalitza el connector. Especifiqueu el nom del connector i el text que " -"desitgeu, separats per una coma." +"Personalitza el connector. Especifiqueu el nom del connector i la cadena de " +"personalització, separats per una coma." #: /home/kovid/work/calibre/src/calibre/customize/ui.py:553 msgid "List all installed plugins" -msgstr "Fes una llista amb tots els connectors instal·lats" +msgstr "Mostra una llista dels connectors instal·lats" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:555 msgid "Enable the named plugin" @@ -695,7 +698,7 @@ msgstr "Inhabilita el connector anomenat" msgid "Communicate with Android phones." msgstr "Comunica't amb telèfons Android" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -703,7 +706,7 @@ msgstr "" "Llista de carpetes del dispositiu separades per comes on s'enviaran els " "llibres. Es farà servir la primera que ja existeixi al dispositiu." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Comunica't amb telèfons S60." @@ -747,11 +750,11 @@ msgstr "%d de %d" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:992 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3002 msgid "finished" -msgstr "finalitzat" +msgstr "s'ha acabat" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:560 msgid "Use Series as Category in iTunes/iBooks" -msgstr "Fes servir Sèries com a categoria a l'iTunes/iBooks" +msgstr "Fes servir la sèrie com a categoria a l'iTunes/iBooks" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:562 msgid "Cache covers from iTunes/iBooks" @@ -782,18 +785,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Notícies" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Catàleg" @@ -819,6 +822,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Comunica't amb un lector Cybook Gen 3 / Opus." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Comunica't amb un lector Cybook Orizon." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Comunica't amb un lector EB600." @@ -831,6 +838,10 @@ msgstr "Comunica't amb un Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Comunica't amb un lector PocketBook 301" +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Comunica't amb el PocketBook 602 reader." + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -891,8 +902,8 @@ msgstr "Comunica't amb un lector SpringDesign Alex." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -966,7 +977,7 @@ msgid "" "Create a tag called \"Im_Reading\" " msgstr "" "El Kobo de moment només dóna suport a una col·lecció: la llista " -"\"Im_Reading\". Creeu una etiqueta amb el nom \"Im_Reading\" " +"«Im_Reading». Creeu una etiqueta amb el nom «Im_Reading» " #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:65 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:68 @@ -981,26 +992,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "S'està aconseguint la llista de llibres del dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "S'està suprimint llibres del llistat de metadades del dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "S'està afegint llibres al llistat de metadades del dispositiu..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "No implementat" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1041,6 +1052,10 @@ msgstr "Comunica't amb un VelocityMicro" msgid "Communicate with the GM2000" msgstr "Comunica't amb un GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Comunica't amb l'Acer Lumiread." + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Comunica't amb una tauleta d'Internet Nokia 770." @@ -1061,6 +1076,14 @@ msgstr "El Nook" msgid "Communicate with the Nook eBook reader." msgstr "Comunica't amb un lector Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Comunica't amb un lector Nook Color." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Comunica't amb un lector Nuut2" @@ -1247,26 +1270,26 @@ msgstr "" msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -"Inhabilita la normalització (millora del contrast) del balanç de colors per " -"a les imatges . Per defecte: Desactivat" +"Inhabilita el normalitzat (millora del contrast) de la gamma de colors per a " +"les imatges. Per defecte: Desactivat" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:265 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "" -"Conserva la proporció d'aspecte de la imatge. El valor predeterminat és " -"emplenar la pantalla." +"Conserva la proporció d'aspecte de la imatge. Per defecte s'omple la " +"pantalla." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:267 msgid "Disable sharpening." -msgstr "Inhabilita l'afinament." +msgstr "Inhabilita l'enfoc." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:269 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -"Inhabilita el retallament de pàgines de còmic. Per alguns còmics, el " -"retallament podria eliminar el contingut a més de les vores." +"Inhabilita el retallat de pàgines de còmic. Per a alguns còmics, el retallat " +"podria eliminar contingut a més de les vores." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:272 msgid "Don't split landscape images into two portrait images" @@ -1277,8 +1300,8 @@ msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -"Conserva la relació d'aspecte i escala la imatge fent servir l'alçada de la " -"pantalla com ample de la imatge, per a veure-la en mode apaïsat" +"Conserva la relació d'aspecte i dimensiona la imatge utilitzant com a " +"amplada l'alçada de la pantalla, per veure-la en mode apaïsat." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:277 msgid "" @@ -1302,8 +1325,8 @@ msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -"No ordenis alfabèticament els fitxers que hi ha còmic. Utilitza l'ordre en " -"què es van afegir al còmic." +"No ordenis alfabèticament els fitxers que hi ha al còmic. Utilitza l'ordre " +"en què es van afegir al còmic." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 msgid "" @@ -1365,7 +1388,7 @@ msgstr "" "EXT es l'extensió del fitxer de sortida. En aquest cas, el nom del fitxer de " "sortida es deriva del nom del fitxer d'entrada. Els noms dels fitxers no " "poden començar amb un guionet. Per acabar, si al fitxer_final no consigna " -"cap extensió, aleshores es tracta com una carpeta i com un \"llibre obert\" " +"cap extensió, aleshores es tracta com una carpeta i com un «llibre obert» " "(OEB), que consisteix en fitxer HTML que es desen a la carpeta. Aquests " "fitxers són els que normalment haurien passat al connector de sortida.\n" "\n" @@ -1472,11 +1495,11 @@ msgid "" "fonts in the output bigger and vice versa. By default, the base font size is " "chosen based on the output profile you chose." msgstr "" -"La mida de la font base en punts (pts). Totes les mides de les fonts al " -"llibre resultant es podran escalar basant-se en aquesta mida. Si trieu una " -"mida més gran, podreu augmentar la mida de les fonts en la sortida i " -"viceversa. La mida de la font base predeterminada es selecciona en funció " -"del perfil de sortida que hagueu triat." +"La mida del tipus de lletra base en punts. Totes les mides de tipus de " +"lletra al llibre resultant es redimensionaran basant-se en aquesta mida. Si " +"trieu una mida més gran, podreu augmentar la mida dels tipus de lletra a la " +"sortida i a l'inrevés. La mida del tipus base per defecte es selecciona en " +"funció del perfil de sortida que es triï." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:147 msgid "" @@ -1486,16 +1509,16 @@ msgid "" "algorithm uses these sizes to intelligently rescale fonts. The default is to " "use a mapping based on the output profile you chose." msgstr "" -"Extreure del CSS del nom i la mida de les fonts en punts (pts). Un exemple " -"de configuració és 12,12,14,16,18,20,22,24. Aquestes són les configuracions " -"per a les mides de xx-petita a xx-gran, amb la qual la mida final resulta en " -"fonts enormes. L'algorisme d'escalat de les fonts empra aquestes mides per a " -"un escalat de les fonts intel·ligent. De forma predeterminada s'empra una " -"configuració basada en el perfil de sortida que hagueu triat." +"Extreu el nom i la mida dels tipus de lletra en punts del CSS. Un exemple de " +"configuració és 12,12,14,16,18,20,22,24. Aquestes són les configuracions per " +"a les mides de xx-petita a xx-gran, amb la mida final per a tipus de lletra " +"enormes. L'algorisme d'escalat dels tipus de lletra utilitza aquestes mides " +"per a un escalat dels tipus de lletra intel·ligent. Per defecte s'utilitza " +"una configuració basada en el perfil de sortida que s'ha triat." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 msgid "Disable all rescaling of font sizes." -msgstr "Inhabilita el reescalat de les mides de lletra." +msgstr "Inhabilita el redimensionat dels tipus de lletra." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:166 msgid "" @@ -1513,11 +1536,10 @@ msgid "" "page and other artifacts. This option will extract the content from the " "tables and present it in a linear fashion." msgstr "" -"Alguns documents mal dissenyats empren taules per a controlar la disposició " -"del text a la pàgina. Quan es converteixen aquests documents sovint es " -"produeixen desplaçaments del text fora de la pàgina i altres artefacte. " -"Aquesta opció extreu el contingut de les taules i el presenta de forma " -"lineal." +"Alguns documents mal dissenyats utilitzen taules per controlar la disposició " +"del text a la pàgina. Quan es converteixen sovint hi ha desplaçaments del " +"text fora de la pàgina i altres artefactes. Aquesta opció extreu el " +"contingut de les taules i el presenta de forma lineal." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:184 msgid "" @@ -1525,9 +1547,9 @@ msgid "" "of Contents at level one. If this is specified, it takes precedence over " "other forms of auto-detection." msgstr "" -"L'expressió XPath que defineix totes les etiquetes que s'haurien d'afegir al " -"nivell 1 de l'Ãndex de Continguts. Si es configura així, s'hi aplica abans " -"que altres formes d'autodetecció." +"Expressió XPath amb totes les etiquetes que s'han d'afegir al nivell 1 de " +"l'índex. Si es configura així, s'aplica abans que altres formes de detecció " +"automàtica." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:193 msgid "" @@ -1535,9 +1557,8 @@ msgid "" "of Contents at level two. Each entry is added under the previous level one " "entry." msgstr "" -"L'expressió XPath que defineix totes les etiquetes que s'haurien d'afegir al " -"nivell 2 de l'Ãndex de Continguts. Cada entrada s'hi afegeix sota l'entrada " -"prèvia de nivell 1." +"Expressió XPath amb totes les etiquetes que s'han d'afegir al nivell 2 de " +"l'índex. Cada entrada s'afegeix a sota de l'entrada de nivell 1 prèvia." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:201 msgid "" @@ -1545,9 +1566,8 @@ msgid "" "of Contents at level three. Each entry is added under the previous level two " "entry." msgstr "" -"L'expressió XPath que defineix totes les etiquetes que s'haurien d'afegir al " -"nivell 3 de l'Ãndex de Continguts. Cada entrada s'hi afegeix sota l'entrada " -"prèvia de nivell 2." +"Expressió XPath amb totes les etiquetes que s'han d'afegir al nivell 3 de " +"l'índex. Cada entrada s'afegeix a sota de l'entrada de nivell 2 prèvia." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:209 msgid "" @@ -1555,14 +1575,13 @@ msgid "" "preference to the auto-generated one. With this option, the auto-generated " "one is always used." msgstr "" -"Normalment, si el fitxer d'origen ja disposa d'un índex, aquest és utilitzat " -"amb preferència a l'autogenerat. Amb aquesta opció sempre s'utilitza l'auto-" -"generat." +"Normalment s'utilitza preferentment l'índex del fitxer d'origen, si " +"existeix, al generat automàticament. Amb aquesta opció sempre s'utilitza el " +"generat automàticament." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 msgid "Don't add auto-detected chapters to the Table of Contents." -msgstr "" -"No afegeixis els capítols detectats automàticament a l'índex de continguts" +msgstr "No afegeixis els capítols detectats automàticament a l'índex." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "" @@ -1587,9 +1606,9 @@ msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." msgstr "" -"Elimina les entrades de l'Ãndex de Continguts quan els seus títols " -"coincideixin amb l'expressió indicada. Les entrades coincidents i els seus " -"subapartats seran eliminades." +"Suprimeix les entrades de l'índex quan els seus títols coincideixin amb " +"l'expressió indicada. Se suprimiran les entrades coincidents i els seus " +"subapartats." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:250 msgid "" @@ -1601,12 +1620,12 @@ msgid "" "User Manual for further help on using this feature." msgstr "" "Una expressió XPath per a detectar els títol dels capítols. Per defecte es " -"consideren les etiquetes <h1> o <h2> que contenen les paraules \"capítol\", " -"\"llibre\", \"secció\" o \"part\" com a títols de capítol a l'igual que les " -"etiquetes que indiquen class=\"capítol\". L'expressió emprada ha d'avaluar " -"un llistat d'elements. Per a inhabilitar aquesta opció, empreu l'opció " -"\"/\". Vegeu el tutorial de XPath al Manual de l'usuari del calibre per a " -"més informació quant a aquesta característica." +"consideren les etiquetes <h1> o <h2> que contenen les paraules «capítol», " +"«llibre», «secció» o «part» com a títols de capítol a l'igual que les " +"etiquetes que indiquen class=«capítol». L'expressió emprada ha d'avaluar un " +"llistat d'elements. Per a inhabilitar aquesta opció, empreu l'opció «/». " +"Vegeu el tutorial de XPath al Manual de l'usuari del calibre per a més " +"informació quant a aquesta característica." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:264 msgid "" @@ -1615,11 +1634,11 @@ msgid "" "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 "" -"Especifica com marcar els capítols detectats. Un valor de \"salt de pàgina\" " -"inserirà salts de pàgina abans dels capítols. Un valor de \"pauta\" inserirà " -" una línia abans dels capítols. Un valor de \"cap\" inhabilitarà les marques " -"dels capítols i un valor de \"ambdós\" inserirà un salt de pàgina i una " -"línia per a marcar els capítols." +"Especifica com s'ha de marcar els capítols detectats. El valor «pagebreak» " +"insereix un salt de pàgina abans dels capítols. El valor «rule» insereix " +"una línia abans dels capítols. El valor «none» inhabilita les marques dels " +"capítols i el valor «both» insereix un salt de pàgina i una línia per marcar " +"els capítols." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:274 msgid "" @@ -1641,29 +1660,29 @@ msgstr "" msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -"Defineix el marge superior en punts (pts). El valor predeterminat és " -"%default. Nota: 72 pts equival a 1 polzada (2,54 cm)" +"Estableix el marge superior en punts (pts). Per defecte és %default. Nota: " +"72 pts són 1 polzada (2,54 cm)" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:294 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -"Defineix el marge inferior en punts (pts). El valor prederminat són " -"%default. Nota: 72 pts equivalen a 1 polzada (2,54 cm)" +"Estableix el marge inferior en punts (pts). Per defecte és %default. Nota: " +"72 pts són 1 polzada (2,54 cm)" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:299 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -"Estableix el marge esquerre en punts (pts). El valor predeterminat són " -"%default. Nota: 72 pt equivalent a 1 polzada (2,54 cm)" +"Estableix el marge esquerre en punts (pts). Per defecte és %default. Nota: " +"72 pt són 1 polzada (2,54 cm)" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:304 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -"Estableix el marge dret en punts (pts). El valor predeterminat són %default. " -"Nota: 72 pt equivalen a 1 polzada (2,54 cm)" +"Estableix el marge dret en punts (pts). Per defecte és %default. Nota: 72 pt " +"són 1 polzada (2,54 cm)" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:310 msgid "" @@ -1766,7 +1785,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:388 msgid "Use a regular expression to try and remove the header." -msgstr "Usa una expressió regular per a tractar i suprimir la capçalera" +msgstr "" +"Utilitza una expressió regular per identificar i suprimir la capçalera" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:395 msgid "The regular expression to use to remove the header." @@ -1774,7 +1794,8 @@ msgstr "L'expressió per a substituir la capçalera." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 msgid "Use a regular expression to try and remove the footer." -msgstr "usa una expressió regular per a tractar i suprimir el peu de pàgina." +msgstr "" +"Utilitza una expressió regular per identificar i suprimir el peu de pàgina." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:408 msgid "The regular expression to use to remove the footer." @@ -1797,13 +1818,12 @@ msgid "" "by Chinese and Japanese for instance) the representation used by the largest " "number of people will be used (Chinese in the previous example)." msgstr "" -"Converteix els caràcters unicode a una representació ASCII. Aneu en compte " -"amb aquesta opció, perquè això substituirà els caràcters unicode amb ASCII. " -"Per exemple, reemplaçarà \"%s\" per \"Mikhail Gorbachiov\". Tingueu també en " -"compte que en el cas que hi hagi moltes representacions per a un caràcter " -"(per exemple, caràcters compartits pel Xinès i el Japonès) la representació " -"emprada per la població més nombrosa serà seleccionada (el Xinès a l'exemple " -"anterior)." +"Converteix els caràcters unicode a una representació ASCII. Compte amb " +"aquesta opció, perquè substituirà els caràcters unicode per ASCII. Per " +"exemple, reemplaçarà «%s» per «Mikhail Gorbachiov». Tingueu també en compte " +"que si hi ha moltes representacions per a un caràcter (per exemple, " +"caràcters compartits pel xinès i el japonès) es selecciona la representació " +"que utilitza la població més nombrosa (el xinès a l'exemple anterior)." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 msgid "" @@ -1816,21 +1836,21 @@ msgid "" msgstr "" "Conserva les lligadures del document d'entrada. Una lligadura es una " "renderització especial de parells de caràcters tipus ff, fi, fl.... Molts " -"lectors, a les seves fonts per defecte, no són compatibles amb les " -"lligadures i és poc probable que les renderitzin correctament. Per defecte, " -"el calibre canvia la lligadura pel seu parell de caràcters normals " +"lectors, amb els seus tipus de lletra per defecte, no són compatibles amb " +"les lligadures i és poc probable que les renderitzin correctament. Per " +"defecte, el calibre canvia la lligadura pel seu parell de caràcters normals " "corresponents. Aquesta opció fa que les lligadures en conservin." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." -msgstr "Establiu el títol" +msgstr "Estableix el títol" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -"Establiu els autors. Si hi ha diversos autors, haurieu de separar-los amb el " -"caràcter \"&\"." +"Estableix els autors. Si hi ha diversos autors, s'han de separar amb una " +"\"&\"." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 msgid "The version of the title to be used for sorting. " @@ -1847,52 +1867,53 @@ msgstr "Estableix la portada des del fitxer o URL indicats" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." -msgstr "Establiu la descripció del llibre electrònic." +msgstr "Estableix la descripció del llibre." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." -msgstr "Establiu l'editorial del llibre electrònic." +msgstr "Estableix l'editorial del llibre." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." -msgstr "Establiu la sèria a la que pertany el llibre electrònic." +msgstr "Estableix la sèrie que pertany el llibre." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." -msgstr "Col·locar l'index del llibre a aquesta serie." +msgstr "Estableix l'index del llibre a la sèrie." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." -msgstr "Establiu la valoració. Ha de ser un nombre entre 1 i 5." +msgstr "Estableix la valoració. Ha de ser un nombre entre 1 i 5." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." -msgstr "Establiu el codi ISBN del llibre." +msgstr "Estableix l'ISBN del llibre." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -"Col·locar les etiquetes al llibre. Ha de ser una llista separada per comes." +"Estableix les etiquetes per al llibre. Ha de ser una llista separada per " +"comes." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." -msgstr "Establiu el productor del llibre." +msgstr "Estableix el productor del llibre." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." -msgstr "Establiu la llengua." +msgstr "Estableix la llengua." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:506 msgid "Set the publication date." -msgstr "Col·locar la data de publicació." +msgstr "Estableix la data de publicació." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:510 msgid "Set the book timestamp (used by the date column in calibre)." @@ -1976,7 +1997,7 @@ msgstr "Heu d'especificar un fitxer epub." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:17 msgid "Fix unmanifested files" -msgstr "Repara fitxers no manifestats" +msgstr "Corregeix fitxers sense declarar" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:21 msgid "" @@ -1984,11 +2005,11 @@ msgid "" "delete them as specified by the delete unmanifested option." msgstr "" "Corregeix fitxers sense declarar. epub-fix pot afegir-los al manifest o " -"esborrar-los tal com s'indiqui a l'opció \"esborra fitxers sense declarar\"" +"suprimir-los tal com s'indiqui a l'opció «suprimeix fitxers sense declarar»" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:32 msgid "Delete unmanifested files instead of adding them to the manifest" -msgstr "Suprimeix fitxers no manifestats en lloc d'afegir-los al manifest" +msgstr "Suprimeix fitxers sense declarar en lloc d'afegir-los al manifest" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:56 msgid "" @@ -2069,11 +2090,11 @@ msgstr "Inici" #: /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 "Ãndex general:" +msgstr "Ãndex:" #: /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 "No insereixis un índex general al començament del llibre." +msgstr "No insereixis un índex al començament del llibre." #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:32 @@ -2081,7 +2102,7 @@ msgstr "No insereixis un índex general al començament del llibre." #: /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 "Afegeix l'índex general al començament del llibre." +msgstr "Afegeix un índex al començament del llibre." #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:24 msgid "" @@ -2107,9 +2128,9 @@ msgid "" "negative. 0 implies that no links in the root HTML file are followed. " "Default is %default." msgstr "" -"Els nivells màxims de recursivitat quan es segueixen els enllaços als " -"fitxers HTML. No han de ser negatius. 0 significa que no hi ha enllaços a " -"l'arrel del fitxer HTML per seguir. El valor predeterminat es %default." +"Els nivells màxims de recursivitat en seguir els enllaços als fitxers HTML. " +"No han de ser negatius. 0 significa que no es segueixen enllaços al fitxer " +"HTML arrel. Per defecte %default." #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:265 msgid "" @@ -2123,15 +2144,6 @@ msgstr "" "es té clar el que s'està fent, ja que pot ocasionar diversos efectes " "desagradables a la resta del procés de conversió." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Longitud de línia mitjana per a la divisió de línies si l'HTML ve d'una " -"conversió parcial prèvia d'un fitxer PDF. El valor per defecte és %default, " -"que ho desactiva." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "" @@ -2204,30 +2216,29 @@ msgstr "Ha fallat l'anàlisi de l'enllaç %s %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" -msgstr "No s'ha pogut afegir l'enllaç %s a la TDC" +msgstr "No s'ha pogut afegir l'enllaç %s a l'índex" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" -msgstr "Incapaç de processar la imatge %s. Error: %s" +msgstr "No s'ha pogut processar la imatge %s. Error: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" -msgstr "Incapaç de processar PNG entrellaçat %s" +msgstr "No s'ha pogut processar el PNG entrellaçat %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" msgstr "" -"No puc processar la imatge: %s\n" +"No s'ha pogut processar la imatge: %s\n" "%s" #: /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 "" -"S'ha produït un error en processar una taula: %s. S'obvia el codi de la " -"taula." +"Hi ha hagut un error en processar una taula: %s. S'ignora el codi de taula." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" @@ -2299,7 +2310,7 @@ msgid "Path to output file" msgstr "Camí al fitxer de sortida" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Processament detallat" @@ -2327,7 +2338,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 msgid "Set the book title" -msgstr "Indiqueu el nom del llibre" +msgstr "Estableix el nom del llibre" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 msgid "Set sort key for the title" @@ -2335,7 +2346,7 @@ msgstr "Indiqueu la clau d'ordenació per tí­tol" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 msgid "Set the author" -msgstr "Indiqueu l'autor" +msgstr "Estableix l'autor" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 msgid "Set sort key for the author" @@ -2360,19 +2371,19 @@ msgstr "Extreu la miniatura del fitxer LRF" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 msgid "Set the publisher" -msgstr "Establiu l'editorial" +msgstr "Estableix l'editorial" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 msgid "Set the book classification" -msgstr "Establiu la classificació del llibre" +msgstr "Estableix la classificació del llibre" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 msgid "Set the book creator" -msgstr "Establiu el creador del llibre" +msgstr "Estableix el creador del llibre" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 msgid "Set the book producer" -msgstr "Establiu el productor del llibre" +msgstr "Estableix el productor del llibre" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 msgid "" @@ -2394,7 +2405,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:94 msgid "Set the space between words in pts. Default is %default" -msgstr "Fixa l'espai entre paraules en punts. Per defecte: %default" +msgstr "Estableix l'espai entre paraules en punts. Per defecte: %default" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:97 msgid "Add a header to all the pages with title and author." @@ -2530,7 +2541,7 @@ msgstr "Comentaris" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Etiquetes" @@ -2599,8 +2610,8 @@ msgid "" "Set the authors. Multiple authors should be separated by the & character. " "Author names should be in the order Firstname Lastname." msgstr "" -"Establir els autors. Si hi ha diversos autors s'han de separar per «&». Els " -"noms dels autors han d'estar en el format Nom Cognom." +"Estableix els autors. Si hi ha diversos autors, s'han de separar amb una " +"\"&\". Els noms dels autors han d'estar en el format Nom Cognom." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:44 msgid "" @@ -2624,11 +2635,11 @@ msgstr "Estableix el fitxer indicat com a portada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:58 msgid "Set the book category." -msgstr "Establiu la categoria del llibre." +msgstr "Estableix la categoria del llibre." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 msgid "Set the published date." -msgstr "Establir la data de publicació." +msgstr "Estableix la data de publicació." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 msgid "Get the cover from the ebook and save it at as the specified file." @@ -2681,6 +2692,7 @@ msgid "No cover found" msgstr "No s'ha trobat cap portada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Descàrrega de portades" @@ -2700,7 +2712,8 @@ msgstr "Descarrega portades des de librarything.com" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:129 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:69 msgid "LibraryThing.com timed out. Try again later." -msgstr "LibraryThing.com ha esgotat el temps. Provi-ho de nou més tard." +msgstr "" +"El temps d'espera per a LibraryThing.com s'ha esgotat. Intenteu-ho més tard." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 @@ -2723,7 +2736,7 @@ msgstr "Descarrega portades de Douban.com" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:235 msgid "Douban.com API timed out. Try again later." msgstr "" -"El temps d'espera d l'API Douban.com s'ha esgotat. Intenteu-ho més tard." +"El temps d'espera de l'API Douban.com s'ha esgotat. Intenteu-ho més tard." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" @@ -2749,19 +2762,19 @@ msgstr "Descripció/sinopsis" msgid "Download %s from %s" msgstr "Descarrega %s des de %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Converteix a text pla els comentaris descarregats de %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Descarrega metadades des de Google Books." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Descarrega les metadades des d'isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2769,17 +2782,17 @@ msgstr "" "Registreu un %scompte gratuït%s i introduïu la vostra clau d'accés a " "continuació per fer servir isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Descarrega metadades socials des d'amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" "Descarrega informació de sèries, etiquetes i valoracions des de " "librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2803,23 +2816,24 @@ msgstr "" "gratuit a isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "L'ISBN del llibre que voleu les metadades." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "L'autor del llibre el qual vostè ha cercat." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "El títol del llibre el qual vostè ha cercat." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "L'editor del llibre el qual vostè ha cercat." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " no trobat." @@ -2837,8 +2851,25 @@ msgstr "" "Aconsegueix una imatge de portada o bé metadades socials per al llibre " "identificat amb ISBN des de LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Descarrega metadades del Nicebooks francès" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Descarrega portades del Nicebooks francès" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" +"El temps d'espera per a Nicebooks s'ha esgotat. Intenteu-ho més tard." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "Hi ha hagut un error a la descàrrega de portades des de Nicebooks" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Portada" @@ -2857,13 +2888,12 @@ msgid "" "Don't add Table of Contents to end of book. Useful if the book has its own " "table of contents." msgstr "" -"No afegeixis índex al final del llibre. Útil si el llibre té el seu propi " -"índex." +"No afegeixis un índex al final del llibre. Útil si el llibre ja té un índex." #: /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 "Títol per qualsevol índex generat en línia." +msgstr "Títol per a tots els índexs generats automàticament." #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 msgid "Disable compression of the file contents." @@ -2882,70 +2912,70 @@ msgstr "Tots els articles" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Aquest és un llibre Amazon Topaz. No es pot processar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Pàgina del títol" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Ãndex" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Ãndex" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glossari" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Reconeixements" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Colofó" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Drets d'autor" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dedicatòria" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epígraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Prefaci" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Ãndex d'il·lustracions" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Ãndex de taules" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Anotacions" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Pròleg" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Text principal" @@ -2953,7 +2983,7 @@ msgstr "Text principal" msgid "%s format books are not supported" msgstr "El format de llibre %s no està suportat" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Llibre %s de %s" @@ -2964,7 +2994,7 @@ msgstr "Opcions de generació del HTML TOC." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Valoració" @@ -2986,8 +3016,8 @@ msgstr "Versió OPF per generar. Per defecte és %default." msgid "" "Generate an Adobe \"page-map\" file if pagination information is available." msgstr "" -"Genera un fitxer Adobe \"page-map\" si la informació de paginació és " -"disponible." +"Genera un fitxer Adobe «page-map» si es disposa de la informació de " +"paginació." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 msgid "Footnotes" @@ -2997,7 +3027,7 @@ msgstr "Notes al peu" msgid "Sidebar" msgstr "Barra lateral" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -3008,7 +3038,7 @@ msgstr "" "paràgraf. En canvi, aquesta opció assumeix que cada línia representa un " "paràgraf." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3331,7 +3361,7 @@ msgstr "" "Especifica la condificació de caracters del document de sortida. Per defecte " "és cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3419,12 +3449,12 @@ msgid "" "Run the text input through the markdown pre-processor. To learn more about " "markdown see" msgstr "" -"Executar la funció de text a través del pre-processador markdown. Per a més " -"informació quant al markdown vegeu" +"Executa la funció de text a través del pre-processador Markdown. Per a més " +"informació quant al Markdown vegeu" #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:40 msgid "Do not insert a Table of Contents into the output text." -msgstr "No insereixis una taula de contingut al text de sortida." +msgstr "No insereixis un índex al text de sortida." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 msgid "" @@ -3432,10 +3462,10 @@ 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 "" -"Tipus de salt de línia a utilitzar. Les opcions són %s. Per defecte és " -"'system'. Utilitza 'old_mac' per compatibilitat amb Mac OS 9 i anteriors. " -"Per Mac OS X utilitza 'unix'. 'system' és el tipus per defecte utilitza per " -"aquest SO." +"Tipus de salt de línia que es farà servir. Les opcions són %s. Per defecte " +"és «system». Utilitzeu «old_mac» si voleu compatibilitat amb el Mac OS 9 i " +"anteriors. Per al Mac OS X utilitzeu «unix». «system» prendrà el salt de " +"línia per defecte del vostre sistema operatiu." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 msgid "" @@ -3572,7 +3602,7 @@ msgid "Disable UI animations" msgstr "Desactiva les animacions" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Copiat" @@ -3584,7 +3614,7 @@ msgstr "Copia" msgid "Copy to Clipboard" msgstr "Copia al porta-retalls" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Tria fitxers" @@ -3638,89 +3668,89 @@ msgstr "Quants llibres buits?" msgid "How many empty books should be added?" msgstr "Quants llibres buits haurien d'afegir-se?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "S'està carregant llibres al dispositiu." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "Llibres EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "Llibres LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "Llibres HTML" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "Llibres LIT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "Llibres Mobi" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Llibres Topaz" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Llibres de text" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "Llibres PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "Llibres SNB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Còmics" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Arxius" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Llibres admesos" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "S'han unit els llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "S'han trobat duplicats i s'han unit als següents llibres que ja existien:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "No s'ha pogut llegir les metadades" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "No s'ha pogut llegir les metadades del següent" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Afegeix a la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3728,12 +3758,12 @@ msgstr "Afegeix a la biblioteca" msgid "No book selected" msgstr "Cap llibre seleccionat" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "Aquests llibres són virtuals i no es poden afegir a la biblioteca:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "No s'han trobat llibres" @@ -3746,7 +3776,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Afegeix llibres a la biblioteca des del dispositiu connectat" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Recull les anotacions (experimental)" @@ -3804,7 +3834,7 @@ msgstr "<b>Localització %d • %s</b><br />" #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:20 #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:34 msgid "Create catalog of books in your calibre library" -msgstr "Crea un catàleg de llibres de la vostra biblioteca" +msgstr "Crea un catàleg dels llibres de la biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:31 msgid "No books selected to generate catalog for" @@ -3844,7 +3874,7 @@ msgid "Checking database integrity" msgstr "S'està comprovant la integritat de la base de dades" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3860,19 +3890,19 @@ msgstr "S'ha trobat algunes inconsistències" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"Els llibres següents tenien formats que s'indiquen a la base de dades que en " -"realitat no estan disponibles. Les entrades d'aquests formats s'han " -"eliminat. Hauríeu de comprovar-los manualment. Això pot passar si manipuleu " -"els fitxers de la carpeta de la biblioteca directament." +"Aquests llibres tenien formats o portades a la llista de la base de dades " +"que no estan disponibles. S'ha suprimit les entrades per als " +"formats/portades. Caldria comprovar-ho manualment. Pot passar en manipular " +"directament els fitxers a la carpeta de la biblioteca." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d llibres" @@ -4001,11 +4031,10 @@ msgid "" "GUI. You can recover your database using the 'calibredb restore_database' " "command line function." msgstr "" -"Aquesta ordre reconstrueix la vostra base de dades del calibre amb la " -"informació que ha desat el calibre als fitxers OPF.<p>Aquesta funció no està " -"disponible actualment a la interfície gràfica. Podeu recuperar la vostra " -"base de dades amb la funció de la línia de comandaments 'calibredb " -"restore_database'" +"Aquesta ordre reconstrueix la base de dades del calibre amb la informació " +"que ha desat el calibre als fitxers OPF.<p>Aquesta funció no està disponible " +"actualment a la interfície gràfica. Podeu recuperar la base de dades amb la " +"funció de la línia de comandaments «calibredb restore_database»" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:358 msgid "No library found" @@ -4016,12 +4045,12 @@ msgid "" "No existing calibre library was found at %s. It will be removed from the " "list of known libraries." msgstr "" -"No hi ha cap biblioteques del calibre a %s. S'esborrarà de la llista de " +"No hi ha cap biblioteca del calibre a %s. Se suprimirà de la llista de " "biblioteques conegudes." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "No està permès" @@ -4039,11 +4068,11 @@ msgstr "Converteix llibres" #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:28 msgid "Convert individually" -msgstr "Converteix individualment" +msgstr "Converteix-los individualment" #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:30 msgid "Bulk convert" -msgstr "Converteix tots" +msgstr "Converteix-los en grup" #: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:86 msgid "Cannot convert" @@ -4053,6 +4082,11 @@ msgstr "No puc convertir-lo" msgid "Starting conversion of %d book(s)" msgstr "S'està començant la conversió de %d llibre(s)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" +"Fitxer de sortida buit, probablement el procés de conversió ha fallat" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Copia a la biblioteca" @@ -4087,9 +4121,9 @@ msgid "Could not copy books: " msgstr "No s'ha pogut copiar els llibres: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Ha fallat" @@ -4151,14 +4185,14 @@ msgid "Main memory" msgstr "Memòria principal" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Tarja de memòria A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Tarja de memòria B" @@ -4180,16 +4214,16 @@ msgid "" "The selected books will be <b>permanently deleted</b> and the files removed " "from your calibre library. Are you sure?" msgstr "" -"Els llibres que seleccionats s'eliminaran <b>permanentment</b> i els fitxers " -"es suprimiran de la vostra llibreria del calibre. N'esteu segur?" +"Els llibres seleccionats se suprimiran <b>permanentment</b> i els fitxers es " +"trauran de la biblioteca del calibre. N'esteu segur?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:185 msgid "" "The selected books will be <b>permanently deleted</b> from your device. Are " "you sure?" msgstr "" -"Els llibres que seleccionats se suprimiran <b>permanentment</b> del " -"dispositiu. N'esteu segur?" +"Els llibres seleccionats se suprimiran <b>permanentment</b> del dispositiu. " +"N'esteu segur?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/device.py:26 msgid "Connect to folder" @@ -4236,7 +4270,7 @@ msgstr "Connecta/comparteix" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_collections.py:13 msgid "Manage collections" -msgstr "Gestiona les coo·leccions" +msgstr "Gestiona les col·leccions" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_collections.py:14 msgid "Manage the collections on this device" @@ -4303,7 +4337,7 @@ msgid "covers" msgstr "portades" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadades" @@ -4404,6 +4438,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Executa l'asitent de benvinguda" @@ -4471,8 +4506,8 @@ msgid "" "calibre library elsewhere." msgstr "" "Esteu intentant desar fitxers a la biblioteca del calibre. Això pot causar " -"corrupció a la vostra llibreria. Desar al disc està fet per exportar fitxers " -"des de la vostra llibreria del calibre a un altre lloc." +"corrupció a la biblioteca. Desar al disc està fet per exportar fitxers des " +"de la biblioteca del calibre a un altre lloc." #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:136 msgid "Error while saving" @@ -4492,7 +4527,7 @@ msgid "Click the show details button to see which ones." msgstr "Feu clic a «Veure detalls» per saber quins són." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Mostra detalls del llibre" @@ -4619,7 +4654,7 @@ msgstr "S'està cercant a" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 msgid "Adding..." -msgstr "Afegint..." +msgstr "S'està afegint..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:211 msgid "Searching in all sub-directories..." @@ -4634,13 +4669,13 @@ msgid "The specified directory could not be processed." msgstr "La carpeta que s'ha indicat no es pot processar." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Cap llibre" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:294 msgid "Added" -msgstr "Afegit" +msgstr "S'ha afegit" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:307 msgid "Adding failed" @@ -4750,8 +4785,8 @@ msgstr "" "importació de la vostra col·lecció de llibres.</p>\n" "<p>Trieu una carpeta arrel. Només es cercaran llibres dins d'aquesta carpeta " "i de les seves subcarpetes.</p>\n" -"<p>Assegureu-vos que la carpeta escollida per a la vostra biblioteca del " -"calibre <b>no està</b> dins de la carpeta arrel que heu triat.</p>" +"<p>Assegureu-vos que la carpeta escollida per a la biblioteca del calibre " +"<b>no està</b> dins de la carpeta arrel que heu triat.</p>" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 msgid "&Root folder:" @@ -4933,7 +4968,7 @@ msgstr "sortida" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4976,7 +5011,7 @@ msgstr "sortida" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Forma" @@ -5048,9 +5083,9 @@ msgid "" " -For time field, only the date will be used. " msgstr "" "Algunes explicacions sobre aquesta plantilla:\n" -" -Els camps disponibles són 'author_sort', 'authors', 'id',\n" -" 'isbn', 'pubdate', 'publisher', 'series_index', 'series',\n" -" 'tags', 'timestamp', 'title', 'uuid'\n" +" -Els camps disponibles són «author_sort», «authors», «id»,\n" +" «isbn», «pubdate», «publisher», «series_index», «series»,\n" +" «tags», «timestamp», «title», «uuid»\n" " -Per a tipus de llista, com autors i etiquetes, només es\n" " seleccionarà el primer element.\n" " -Per als camps de temps només es farà servir la data. " @@ -5063,25 +5098,25 @@ msgstr "Opcions de CSV/XML" msgid "E-book options" msgstr "Opcions dels llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" -msgstr "Etiqueta 'no incloguis aquest llibre':" +msgstr "Etiqueta «no incloguis aquest llibre»:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" -msgstr "Etiqueta 'marca aquest llibre com a llegit':" +msgstr "Etiqueta «marca aquest llibre com a llegit»:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Prefix d'etiqueta de nota addicional:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" "Expressió regular per a descriure les etiquetes que s'exclouran com a " "gèneres:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5095,21 +5130,25 @@ msgstr "" "-Un patró d'expressió amb només un punt exclou totes les etiquetes de gènere " "i es crea la secció 'sense gènere'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" -msgstr "Inclou la secció 'Títols'" +msgstr "Inclou la secció «Títols»" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" -msgstr "Inclou la secció 'Afegits recentment'" +msgstr "Inclou la secció «Afegits recentment»" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Ordena els números com a text" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" -msgstr "Inclou la secció 'Sèries'" +msgstr "Inclou la secció «Sèrie»" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Etiqueta de llista de desitjos:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" @@ -5138,11 +5177,11 @@ msgstr "" "valors desats d'una conversió prèvia (si existeix) en comptes de fer servir " "els valors per defecte que s'indiquen a les Preferències" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" -msgstr "Convertir en massa" +msgstr "Conversió en grup" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opcions específiques per al format de sortida" @@ -5167,7 +5206,7 @@ msgstr "&Nombre de colors" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "Disable &normalize" -msgstr "Inhabilita i &normalitza" +msgstr "Inhabilita el norma&litzat" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 @@ -5216,7 +5255,7 @@ msgstr "&Inhabilita el processament de còmics" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:105 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:120 msgid "&Output format:" -msgstr "F&ormat de sortida:" +msgstr "&Format de sortida:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:106 msgid "Disable conversion of images to &black and white" @@ -5300,7 +5339,7 @@ msgstr "Entrada FB2" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:34 msgid "Do not insert a &Table of Contents at the beginning of the book." -msgstr "No &insereixis un Ãndex al començament del llibre" +msgstr "No &insereixis un índex al començament del llibre" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" @@ -5347,8 +5386,8 @@ msgstr "" "perfil de sortida actual.</p>\n" "<p>Vegeu el <a href=\"http://calibre-" "ebook.com/user_manual/conversion.html#font-size-rescaling\">Manual de " -"l'usuari</a> per a més explicacions de com funciona el redimensionat de " -"fonts.</p>" +"l'usuari</a> per a més explicacions de com funciona el redimensionat tipus " +"de lletra.</p>" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 msgid "&Output document" @@ -5421,15 +5460,15 @@ msgstr "Justifica el text" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "&Disable font size rescaling" -msgstr "In&habilita el redimensionat de fonts" +msgstr "In&habilita el redimensionat de tipus de lletra" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Base &font size:" -msgstr "Grandària de lletra base:" +msgstr "Mida de la &lletra base:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid "Wizard to help you choose an appropriate font size key" -msgstr "Assistent que us ajudarà a triar una mida de font adequada" +msgstr "Assistent per triar una mida de tipus de lletra adequada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "Line &height:" @@ -5467,7 +5506,7 @@ msgstr "Justificat del text:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:142 msgid "&Linearize tables" -msgstr "&Linealitza taules" +msgstr "Linealitza les &taules" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:143 msgid "Extra &CSS" @@ -5483,7 +5522,7 @@ msgstr "Insereix una línia en &blanc" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:146 msgid "Keep &ligatures" -msgstr "Conserva els &lligams" +msgstr "Conserva les &lligadures" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:147 msgid "Smarten &punctuation" @@ -5598,7 +5637,7 @@ msgstr "Fes servir la portada del fitxer &original" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:415 msgid "Change &cover image:" -msgstr "¬Canvia la imatge de la &portada:" +msgstr "Canvia la imatge de la &portada:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 msgid "Browse for an image to use as the cover of this book." @@ -5615,7 +5654,7 @@ msgid "Change the title of this book" msgstr "Canvia el tí­tol del llibre" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Autor(s): " @@ -5632,7 +5671,7 @@ msgstr "" "Canvia l'autor(s). Per a especificar més d'un, separeu-los amb comes." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Editorial: " @@ -5643,7 +5682,7 @@ msgid "Ta&gs: " msgstr "Etique&tes: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5653,7 +5692,7 @@ msgstr "" "<br><br>Pot emprar-se qualsevol paraula o frase, separada per comes." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5661,8 +5700,8 @@ msgstr "&Sèries:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5715,7 +5754,9 @@ msgstr "Etiqueta de documents personals:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" -msgstr "Configuració de la pàgina" +msgstr "" +"Configuració\r\n" +"de la pàgina" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 msgid "&Output profile:" @@ -5927,11 +5968,11 @@ msgstr "L'expressió XPath %s no és vàlida." #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:81 msgid "Chapter &mark:" -msgstr "&Marca de capítol:" +msgstr "Marca de &capítol:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:82 msgid "Remove first &image" -msgstr "Suprimeix la primera &imatges" +msgstr "Suprimeix la primera &imatge" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:83 msgid "Insert &metadata as page at start of book" @@ -5952,7 +5993,7 @@ msgstr "Factor per a reunificar una línia en el preprocessament:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:87 msgid "&Preprocess input file to possibly improve structure detection" msgstr "" -"&Preprocessa el fitxer d'entrada per intentar millorar la detecció de " +"Preprocessa el &fitxer d'entrada per intentar millorar la detecció de " "l'estructura" #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 @@ -5995,7 +6036,7 @@ msgstr "&Força l'ús de l'índex que es generi automàticament" #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:72 msgid "TOC &Filter:" -msgstr "&Filtre de l'índex:" +msgstr "Filtre de l'índe&x:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 msgid "TXT Input" @@ -6003,7 +6044,7 @@ msgstr "Entrada TXT" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:54 msgid "Process using markdown" -msgstr "Processar com a markdown" +msgstr "Processa com a Markdown" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:55 msgid "" @@ -6012,18 +6053,16 @@ msgid "" "href=\"http://daringfireball.net/projects/markdown\">markdown</a>." msgstr "" "<p>Markdown és un llenguatge de marcació senzill per a fitxers de text que " -"permet un format avançat. Per saber-ne més visiti <a " -"href=\"http://daringfireball.net/projects/markdown\">markdown</a>." +"permet un format avançat. Per saber-ne més vegeu <a " +"href=\"http://daringfireball.net/projects/markdown\">Markdown</a>." #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:56 msgid "Do not insert Table of Contents into output text when using markdown" -msgstr "" -"No insertar la Taula de Continguts en text de sortida quan s'utilitzi " -"Markdown" +msgstr "No insereixis l'índex al text de sortida si es fa servir Markdown" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:57 msgid "Preserve &spaces" -msgstr "Preservar &espais" +msgstr "Preserva &espais" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" @@ -6130,8 +6169,8 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial</a>." msgstr "" "<p>Per exemple, per fer coincidir totes les etiquetes h2 que tinguin " -"class=\"chapter\", poseu <i>h2</i> a l'etiqueta, <i>class</i> a l'atribut i " -"<i>chapter</i> a valor.</p> <p>Un atribut en blanc correspon a qualsevol " +"class=«capítol», poseu <i>h2</i> a l'etiqueta, <i>class</i> a l'atribut i " +"<i>capítol</i> a valor.</p> <p>Un atribut en blanc correspon a qualsevol " "atribut i un valor en blanc a qualsevol valor. L'etiqueta * correspon a " "qualsevol etiqueta.</p> <p>Si voleu saber més usos avançats d'XPath vegeu <a " "href=\"http://calibre-ebook.com/user_manual xpath.html\">XPath " @@ -6170,7 +6209,7 @@ msgstr "Sense qualificació" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:156 msgid "Set '%s' to today" -msgstr "Establir data d'avui per '%s'" +msgstr "Estableix la data d'avui per a «%s»" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:266 msgid " index:" @@ -6185,7 +6224,7 @@ msgid "Automatically number books" msgstr "Numera els llibres automàticament" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Força començar la numeració amb " @@ -6201,97 +6240,103 @@ msgstr "etiquetes per afegir" msgid "tags to remove" msgstr "etiquetes per eliminar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "No hi ha detalls disponibles" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "El dispositiu ja no està connectat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Aconsegueix informació del dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Aconsegueix la llista de llibres del dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Aconsegueix anotacions del dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Envia les metadades al dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Envia les col·leccions al dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Carrega %d llibres al dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Suprimeix llibres del dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Descarrega llibres del dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Visualitza un llibre del dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Configura l'acció d'enviar al dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Envia a la memòria principal" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Envia a la targeta de memòria A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Envia a la targeta de memòria B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Memòria principal" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Envia un format concret a" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Envia i suprimeix de la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Expulsa el dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Error en la comunicació amb el dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "No hi ha formats adequats" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Selecciona la carpeta que s'obrirà com a dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Hi ha hagut un error en comunicar-se amb el dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6299,128 +6344,61 @@ msgstr "" "Hi ha hagut un error de comunicació amb el dispositiu. Traieu-lo i torneu-lo " "a connectar i/o torneu a iniciar." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Dispositiu: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " detectat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "seleccionat per enviar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Tria el format que s'enviarà al dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "No hi ha cap dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "No s'ha pogut enviar: no hi ha cap dispositiu connectat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Sense targeta" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "No s'ha pogut enviar: el dispositiu no té targeta de memòria" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "Llibre:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "Hi trobareu el llibre adjunt" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "per" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "en el format %s" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "S'està enviant correu electrònic a" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "No hi ha formats adequats" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"S'ha de convertir automàticament els llibres següents abans d'enviar-los per " -"correu electrònic?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"No s'han pogut enviar els llibres següents perquè no s'han trobat formats " -"adequats:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Error en enviar llibres per email" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Error en enviar els següents llibres per email:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "S'ha enviat per correu electrònic:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Notícies:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "S'adjunta el" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "S'ha enviat notícies a" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "" "S'ha de convertir automàticament aquests llibres abans de carregar-los al " "dispositiu?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "S'estan enviant els catàlegs al dispositiu." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "S'estan enviant les notícies al dispositiu." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "S'estan enviant els llibres al dispositiu." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6429,11 +6407,11 @@ msgstr "" "un format adequat. Convertiu primer el(s) llibre(s) a un format compatible " "amb el vostre dispositiu." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "No hi ha espai al dispositiu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "<p>No es pot desar llibres al dispositiu perquè no hi ha prou espai " @@ -6478,15 +6456,21 @@ msgstr "Afegeix llibres per ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Introduïu una llista d'ISBN al quadre de l'esquerra, un per línia. El " -"calibre crearà automàticament entrades per als llibres fent servir l'ISBN i " -"en descarregarà les metadades i les portades.</p> <p>Els ISBN no vàlids " -"s'ignoraràn.</p>" +"<p>Introduïu una llista d'ISBNs al quadre de l'esquerra, un per línia. El " +"calibre crearà entrades per als llibres automàticament basant-se en l'ISBN i " +"en descarregarà les metadades i portades.</p>\n" +"<p>S'ignora qualsevol ISBN de la llista no vàlid.</p>\n" +"<p>També podeu indicar un fitxer per afegir amb cada ISBN. Introduïu el camí " +"complert del fitxer després de <code>>></code> per fer-ho. Exemple:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Enganxa des del porta-retalls" @@ -6574,7 +6558,7 @@ msgstr "Camí de la biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Nom" @@ -6592,7 +6576,7 @@ msgstr "Trieu format" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:38 msgid "Choose location for calibre library" -msgstr "Tria la localització de la biblioteca del calibre" +msgstr "Localització de la biblioteca del calibre" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:45 msgid "Same as current" @@ -6600,7 +6584,7 @@ msgstr "Igual que l'actual" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:46 msgid "The location %s contains the current calibre library" -msgstr "La localització %s conté la biblioteca del calibre actual" +msgstr "La biblioteca actual del calibre és a %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:51 msgid "No existing library found" @@ -6627,7 +6611,7 @@ msgid "No location selected" msgstr "No s'ha seleccionat cap ubicació" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "La ubicació és incorrecta" @@ -6637,11 +6621,11 @@ msgstr "La carpeta %s no existeix" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:71 msgid "Choose your calibre library" -msgstr "Trieu la vostra biblioteca del calibre" +msgstr "Trieu la biblioteca del calibre" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 msgid "Your calibre library is currently located at {0}" -msgstr "La vostra biblioteca del calibre està actualment situada a {0}" +msgstr "La biblioteca del calibre està actualment situada a {0}" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:73 msgid "New &Location:" @@ -6729,12 +6713,12 @@ msgid "Author sort" msgstr "Ordre per autor" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "El nom de l'autor no és vàlid" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Els noms d'autor no poden contenir caràcters &." @@ -6774,7 +6758,7 @@ msgstr "ISBN" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 msgid "Finding metadata..." -msgstr "S'esta cercant les metadades..." +msgstr "S'està cercant les metadades..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:176 msgid "Could not find metadata" @@ -6890,50 +6874,50 @@ msgstr "Cerca/Reemplaça" msgid "Working" msgstr "Està treballant..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Minúscules" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Majúscules" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Inicials en majúscula" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Coincidència de caràcter" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Expressió regular" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Reemplaça el camp" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Posa-ho abans del camp" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Afegeix-ho al camp" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" -msgstr "S'està editant la metainformació de <b>%d llibres</b>" +msgstr "S'està editant les metadades de <b>%d llibres</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Llibre %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -6945,7 +6929,7 @@ msgstr "" "abans de continuar. <p>Cerca i reemplaça als camps de text fent coincidir " "caràcters o expressions regulars. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6962,7 +6946,7 @@ msgstr "" "s'ha seleccionat, el text de cerca coincidirà tant amb majúscules com en " "minúscules" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6986,34 +6970,34 @@ msgstr "" "ho al començament o al final del text que es trobi. Vegeu <a " "href=\"http://docs.python.org/library/re.html\"> aquesta referència</a> si " "voleu més informació quant a les expressions regulars en python, " -"especialment quant a la funció 'sub'." +"especialment quant a la funció «sub»." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "Heu d'especificar una destinació quant la font és un camp compost" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Cerca/reemplaça no vàlid" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" "Autors no pot deixar-se en blanc. No s'ha processat el llibre amb el títol %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" "Títol no pot deixar-se en blanc. No s'ha processat el llibre amb el títol %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "El patró de cerca no és vàlid: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -7021,84 +7005,84 @@ msgstr "" "S'està aplicant els canvis a %d llibres.\n" "Fase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" -msgstr "Editar Meta-informació" +msgstr "Edita les metadades" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "Estableix a&utomàticament l'ordre per autor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "&Ordena per autor " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -"Especifiqueu com s'ha d'ordenar l'autor(s) d'aquest llibre. Per " -"exemple,ordena Vicent A. Estellés com a Estellés, Vicent A." +"Especifiqueu com s'ha d'ordenar l'autor(s) d'aquest llibre. Per exemple, " +"ordena «Vicent A. Estellés» com a «Estellés, Vicent A»." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Valoració:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Valoració d'aquest llibre: 0-5 estrelles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Sense canvis" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" -msgstr " estreles" +msgstr " estrelles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Afegeix les eti&quetes " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Obre l'editor d'etiquetes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "Sup&rimeix les etiquetes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Llista d'etiquetes separada per comes que s'eliminaran dels llibres. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Marqueu aquest quadre per eliminar totes les etiquetes dels llibres." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Elimina-ho tot" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Si està activat l'eliminaran les sèries" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Elimina les sèries" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7111,11 +7095,11 @@ msgstr "" "després\n" "el llibre B, el llibre A tindrà el nombre 1 de la sèrie i el B el nombre 2." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Numera automàticament els llibres d'aquesta sèrie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7127,15 +7111,15 @@ msgstr "" "que\n" "comenci la numeració a partir del valor de ca casella" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Suprimeix el &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Intercanvia títol i autor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7145,11 +7129,11 @@ msgstr "" "l'intercanvi\n" "d'autor i títol, primer es fa l'intercanvi i després es canvia el títol" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Posa el títol amb les inicials en majúscula" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7160,34 +7144,34 @@ msgstr "" "La conversió d'aquests llibres es farà en endavant amb els paràmetres per " "defecte." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" "Suprimeix els paràmetres de conversió de&sats per als llibres seleccionats" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "Metadades &bàsiques" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "&Personalitza les metadades" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Cerca al &camp:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "Nom del camp on voleu fer la cerca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Mode de cerca:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7195,11 +7179,11 @@ msgstr "" "Trieu si s'ha de fer servir la coincidència bàsica de text o expressions " "regulars avançades" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Cerca per:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" @@ -7207,7 +7191,7 @@ msgstr "" "Introduïu el que esteu cercant, tant si és text simple o una expressió " "regular, depenent el mode escollit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -7215,15 +7199,15 @@ msgstr "" "Marqueu aquesta casella si la cadena de cerca ha de coincidir exactament en " "majúscules i minúscules. Desmarqueu-la per ignorar-les." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Sensible a caixa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "&Substitueix amb:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -7231,11 +7215,11 @@ msgstr "" "El text de substitució. Els textos que coincideixin es substituiran amb " "aquesta cadena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Aplica la funció després de la substitució:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7247,11 +7231,11 @@ msgstr "" "tot el camp. Al mode d'expressions regulars només es processa el text que " "coincideixi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "Camp de &destí:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7259,15 +7243,15 @@ msgstr "" "El camp on es posarà el text després de totes les substitucions. Se està en " "blanc es fa servir el camp original." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Mode:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Especifica com s'ha de copiar el text al destí." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7277,23 +7261,23 @@ msgstr "" "casella indica si s'ha de\n" "posar una coma o no res entre el text original i el que s'insereixi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "fes servir una coma" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "&Text de prova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Res&sultat de la prova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "La vostra prova:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" msgstr "&Cerca i reemplaça" @@ -7460,11 +7444,11 @@ msgstr "No s'ha pogut obrir %s. L'està fent servir un altre programa?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Edit Meta Information" -msgstr "Edita la meta-informació" +msgstr "Edita les metadades" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "Meta information" -msgstr "Meta-informació" +msgstr "Metadades" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "Swap the author and title" @@ -7481,8 +7465,8 @@ msgid "" "If the box is colored green, then text matches the individual author's sort " "strings. If it is colored red, then the authors and this text do not match." msgstr "" -"Especifiqueu com s'ha d'ordenar l'autor(s) d'aquest llibre. Per exemple, si " -"'Charles Dickens' s'ha d'ordenar com a 'Dickens, Charles'.\n" +"Especifiqueu com s'ha d'ordenar l'autor(s) d'aquest llibre. Per exemple, " +"ordena «Vicent A. Estellés» com a «Estellés, Vicent A».\n" "Si el quadre està en verd, el text coincideix amb l'ordre per autors " "individuals. Si està en vermell, els autors i el text no coincideixen." @@ -7581,20 +7565,21 @@ msgstr "Es necessita una contrasenya." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "Nom d'&usuari:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Contrasenya:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "Mo&stra la contrasenya" @@ -7838,49 +7823,50 @@ msgid "Advanced Search" msgstr "Cerca avançada" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "Troba les entrades que tenen..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "Totes &aquestes paraules:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "Aquesta &frase exacta:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "Una &o més d'aquestes paraules:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "Però no mostris les entrades que tenen..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "Qualsevol d'aquestes para&ules no desitjades:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "Tipus de coincidència que s'ha de fer servir:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" +msgstr "" +"Conté: la paraula o frase coincideix amb qualsevol lloc del camp de les " +"metadades" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" +"Equival: la paraula o frase ha de coincidir amb tot el camp de les metadades" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" +"Expressió regular: l'expressió ha de coincidir amb qualsevol lloc del camp " +"de les metadades" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Troba les entrades que tenen..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "Totes &aquestes paraules:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Aquesta &frase exacta:" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "Conté: la paraula o frase està a qualsevol lloc de les metadades" +msgid "&One or more of these words:" +msgstr "Una &o més d'aquestes paraules:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "" -"Coincideix: la paraula o frase ha de coincidir amb el camp de metadades " -"sencer" +msgid "But dont show entries that have..." +msgstr "Però no mostris les entrades que tenen..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "" -"Expressió regular: l'expressió ha de coincidir en qualsevol posició de les " -"metadades" +msgid "Any of these &unwanted words:" +msgstr "Qualsevol d'aquestes para&ules no desitjades:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -8068,12 +8054,12 @@ msgid "%s (was %s)" msgstr "%s (era %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "L'element està en blanc" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "No es pot deixar un element en blanc. En tot cas l'heu d'esborrar." @@ -8112,7 +8098,7 @@ msgid "" "then remove it from the database." msgstr "" "Suprimeix l'element de la base de dades. Això traurà l'element de tots els " -"llibre i després el suprimirà de la base de dades." +"llibres i després el suprimirà de la base de dades." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:81 msgid "Rename the item in every book where it is used." @@ -8157,7 +8143,7 @@ msgid "Discard changes" msgstr "Descarta els canvis" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Cancel·la" @@ -8171,10 +8157,10 @@ msgid "" msgstr "" "<p>Descomprimeix l'ePub per tal de visualitzar-los en una finestra del " "gestor de fitxers. Per ajustar els fitxers individuals, feu clic dret i " -"aleshores 'Obre amb...' i trieu l'editor. Quan acabeu amb els ajustos, " +"aleshores «Obre amb...» i trieu l'editor. Quan acabeu amb els ajustos, " "tanqueu la finestra del gestor de fitxers <b>i les finestres de l'editor que " "hagueu fet servir per modificar-ne les dades</b>.</p><p>Reconstrueix l'ePub " -"i actualitza la vostra biblioteca del calibre.</p>" +"i actualitza la biblioteca del calibre.</p>" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 msgid "No recipe selected" @@ -8305,8 +8291,8 @@ msgstr "" "<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-" "right:0px; -qt-block-indent:0; text-indent:0px;\">Crea una recepta de " "notícies bàsica, afegint canals RSS. <br />Per a la majoria dels canals, " -"necessitareu fer servir el \"Mode avançat\" per personalitzar millor el " -"procés de descàrrega de dades.</p></body></html>" +"necessitareu el «Mode avançat» per personalitzar millor el procés de " +"descàrrega de dades.</p></body></html>" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 msgid "Recipe &title:" @@ -8365,6 +8351,64 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Codi font de la recepta (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "Envia per correu electrònic %s a %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Notícies:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "S'adjunta el diari %s descarregat pel calibre." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "Llibre:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "Hi trobareu el llibre adjunt" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "per" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "en el format %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "S'està enviant correu electrònic a" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"S'ha de convertir automàticament els llibres següents abans d'enviar-los per " +"correu electrònic?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"No s'han pogut enviar els llibres següents perquè no s'han trobat formats " +"adequats:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "No s'ha pogut enviar el llibre" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "s'ha enviat" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "S'ha enviat notícies a" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8562,23 +8606,23 @@ msgstr "No es poden aturar les tasques que comuniquen amb el dispositiu" msgid "Job has already run" msgstr "La tasca ja s'ha executat" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "No disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Treballs:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Maj+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Feu clic per veure la llista de tasques" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Tasques" @@ -8593,7 +8637,7 @@ msgstr "Biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:64 msgid "Show books in calibre library" -msgstr "Mostra els llibres a la biblioteca del calibre" +msgstr "Mostra els llibres de la biblioteca del calibre" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:65 msgid "Device" @@ -8604,7 +8648,7 @@ msgid "Show books in the main memory of the device" msgstr "Mostra els llibres de la memòria principal del dispositiu" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Targeta A" @@ -8613,7 +8657,7 @@ msgid "Show books in storage card A" msgstr "Mostra els llibres de la targeta de memòria A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Targeta B" @@ -8697,14 +8741,14 @@ msgstr "Llibre %s de %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" -msgstr "El nom de la cerca és \"{0}\"" +msgstr "El nom de la cerca és «{0}»" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:699 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1238 msgid "This book's UUID is \"{0}\"" -msgstr "La UUID del llibre és \"{0}\"" +msgstr "L'UUID del llibre és «{0}»" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 msgid "In Library" @@ -8726,47 +8770,47 @@ msgstr "S'ha marcat per suprimir" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Feu doble clic per a <b>edittar>/b><br>-me<b>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Amaga la columna %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Ordena per %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Ascendent" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Descendent" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Canvia l'alineació del text de %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Esquerra" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Dreta" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centrat" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Mostra la columna" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Restaura la disposició per defecte" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8796,10 +8840,10 @@ msgstr " - Visor de LRF" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." -msgstr "<b>No</b> s'han trobat coincidències per al text \"<i>%s</i>\"." +msgstr "<b>No</b> s'ha trobat coincidències per al text «<i>%s</i>»." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "No s'han trobat coincidències" @@ -8816,12 +8860,12 @@ msgid "LRF Viewer toolbar" msgstr "Barra d'eines del visor de LRF" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Pàgina següent" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Pàgina anterior" @@ -8865,7 +8909,7 @@ msgid "Do not check for updates" msgstr "No comprovis si hi ha actualitzacions" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Biblioteca del calibre" @@ -8923,9 +8967,9 @@ msgid "" "and repair it automatically? If you say No, a new empty calibre library will " "be created." msgstr "" -"Sembla que la vostra base de dades del calibre està malmesa. Voleu que el " -"calibre intenti reparar-la automàticament? Si dieu 'No', es crearà una nova " -"biblioteca del calibre buida." +"Sembla que la base de dades del calibre està malmesa. Voleu que el calibre " +"intenti reparar-la automàticament? Si dieu «No», es crearà una nova " +"biblioteca buida." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:214 msgid "" @@ -8943,7 +8987,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:237 msgid "Starting %s: Loading books..." -msgstr "S'està iniciant %s: Carregant llibres..." +msgstr "S'està iniciant el %s: s'està carregant els llibres..." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:282 msgid "If you are sure it is not running" @@ -9008,37 +9052,37 @@ msgstr "El llibre no té títol ni ISBN" msgid "No matches found for this book" msgstr "No s'ha trobat cap coincidència d'aquest llibre" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "No s'ha pogut descarregar les metadades" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "portada" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Descarregat" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "No s'ha pogut aconseguir" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s per a: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Acabat" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "S'ha descarregat amb èxit les metadades de %d de %d llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Detalls" @@ -9136,7 +9180,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:138 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -"Per defecte, descarrega les metadades &socials (etiquetes, valoracions...)" +"Per defecte, &descarrega les metadades socials (etiquetes, valoracions...)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:139 msgid "Show notification when &new version is available" @@ -9145,12 +9189,12 @@ msgstr "Mostra un avís quan hi hagi una &nova versió disponible" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:140 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -"Envia automàticament les ¬Ã­cies que es descarreguin al lector de llibres" +"Envia &automàticament les notícies que es descarreguin al lector de llibres" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:141 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -"&Suprimeix les notícies de la llibreria quan s'enviïn automàticament al " +"&Suprimeix les notícies de la biblioteca quan s'enviïn automàticament al " "lector" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:142 @@ -9162,7 +9206,7 @@ msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -"Configura el temps d'espera per defecte per a les sol·licituds de xarxa (per " +"Estableix el temps d'espera per defecte per a les sol·licituds de xarxa (per " "exemple cada cop que s'hagi d'anar a internet per aconseguir informació)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:144 @@ -9237,7 +9281,7 @@ msgid "" msgstr "" "Aquí podeu redistribuir la disposició de les columnes a llista de llibres de " "la biblioteca del calibre. Podeu ocultar columnes si les desmarqueu. També " -"podeu crear columnes personalitzades vostres." +"podeu crear les vostres columnes personalitzades." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:84 @@ -9400,8 +9444,8 @@ msgid "" "<li>dd MMMM yy gives 05 January 10</li>\n" "</ul> " msgstr "" -"<p>Format de data. Fes servir 1-4 lletres 'd' per al dia, 1-4 lletres 'M' " -"per al mes, i 2 or 4 lletres 'y' per a l'any.</p>\n" +"<p>Format de data. Feu servir 1-4 lletres «d» per al dia, 1-4 lletres «M» " +"per al mes, i 2 o 4 lletres «y» per a l'any.</p>\n" "<p>Per exemple:\n" "<ul>\n" "<li> ddd, d MMM yyyy dóna Dil, 5 Gen 2010<li>\n" @@ -9503,19 +9547,19 @@ msgstr "nova adreça de correu electrònic" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:24 msgid "Narrow" -msgstr "Estret" +msgstr "Estreta" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:24 msgid "Wide" -msgstr "Ample" +msgstr "Ampla" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:51 msgid "Medium" -msgstr "Mitjà" +msgstr "Mitjana" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:51 msgid "Small" -msgstr "Petit" +msgstr "Petita" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:52 msgid "Large" @@ -9600,27 +9644,27 @@ msgstr "Mostra el &text sota les icones:" msgid "&Split the toolbar into two toolbars" msgstr "Divideix la barra d'eine&s en dues" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Aplica" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Restaura els pre&determinats" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Desa els canvis" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Cancel·la i torna a la vista general" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "No es pot tornar als predeterminats per a" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9628,7 +9672,7 @@ msgstr "" "Heu fet alguns canvis que fan que calgui reiniciar. Reinicieu el calibre " "quan pugueu." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9636,7 +9680,7 @@ msgstr "" "Heu fet canvis que fan que calgui reiniciar el calibre immediatament. No " "podreu establir més preferències fins que s'hagi reiniciat." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Cal reiniciar" @@ -9992,7 +10036,7 @@ msgstr "" "Preferències->Avançat->Connectors" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "No s'ha pogut iniciar el servidor de continguts" @@ -10211,7 +10255,7 @@ msgstr "&Ajustos actuals" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Cerca" @@ -10310,26 +10354,22 @@ msgstr "Neteja" msgid "&Alternate shortcut:" msgstr "Drecera &alternativa" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" -msgstr "Reanomena '%s'" +msgstr "Reanomena «%s»" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Edita l'ordre de «%s»." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Amaga la categoria %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Mostra la categoria" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Mostra totes les categories" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10344,69 +10384,73 @@ msgstr "Gestiona les cerques desades" msgid "Manage User Categories" msgstr "Gestiona les categories d'usuari" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Mostra totes les categories" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" "El canvi dels autors de diversos llibres pot trigar una estona. N'esteu " "segur?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "El canvi de les metadadades de tots aquests llibres pot trigar una estona. " "N'esteu segur?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Cerques" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "El nom de la cerca està duplicat" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "El nom de cerca %s ja existeix." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Ordena segons el nom" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Ordena segons la popularitat" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Ordena segons la valoració mitjana" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" -msgstr "Establiu d'ordre de les entrades a l'explorador d'etiquetes" +msgstr "Estableix l'ordre de les entrades a l'explorador d'etiquetes" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Fes-ho coincidir tot" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Qualsevol coincidència" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "Quan es seleccionin múltiples entrades a l'explorador d'etiquetes fes que " "coincideixi una qualsevol o totes" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Administra les categories d'&usuari" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Afegiu les vostres categories a l'explorador d'etiquetes" @@ -10453,28 +10497,28 @@ msgstr "" "Els llibres següents ja s'han convertit al format %s. Els voleu tornar a " "convertir?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Restaura" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "Feu una &donació per donar suport al calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Expulseu el dispositiu connectat" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Guia d'inici ràpid del calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Error de conversió" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10482,15 +10526,15 @@ msgstr "" "<p>No s'ha pogut convertir: %s<p>És un llibre amb <a href=\"%s\">DRM</a>. " "Suprimiu primer el DRM amb eines de tercers." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Recepta inhabilitada" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Ha fallat</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10500,11 +10544,11 @@ msgstr "" "útil, considereu fer una donació per donar suport al seu desenvolupament. La " "vostra donació ajudarà que el desenvolupament del calibre continuï." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Hi ha tasques actives. Segur que voleu sortir?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10514,11 +10558,11 @@ msgstr "" " Si sortiu podeu malmetre el dispositiu.<br>\n" " Segur que voleu sortir?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "AVÃS: Hi ha tasques actives" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10631,7 +10675,7 @@ msgstr " Pí­xels" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace &font size:" -msgstr "Mida de la &font Monoespai:" +msgstr "Mida del &tipus de lletra Monoespai:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid "S&tandard font:" @@ -10699,17 +10743,17 @@ msgstr "Dreceres de &teclat" msgid "No results found for:" msgstr "No hi ha resultats per a:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Opcions per personalitzar el visor de llibres electrònics" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Recorda la darrera mida de finestra que s'ha fet servir" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10717,82 +10761,82 @@ msgstr "" "Estableix el full d'estils CSS de l'usuari. Es fa servir per personalitzar " "l'aspecte de tots els llibres." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Mida màxima de la finestra del visor en píxels." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" "Redimensiona les imatges més grans que la finestra del visor perquè hi " "càpiguen." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Posa guions al text" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Idioma per defecte per a les regles dels guions" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Opcions del tipus de lletra" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" -msgstr "Família de fonts Serif" +msgstr "Grup de tipus de lletra Serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" -msgstr "Família de fonts Sans-serif" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 -msgid "The monospaced font family" -msgstr "Família de fonts Monoespai" +msgstr "Grup de tipus de lletra Sans-serif" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +msgid "The monospaced font family" +msgstr "Grup de tipus de lletra Monoespai" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "Mida del tipus de lletra en px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 -msgid "The monospaced font size in px" -msgstr "Mida de la font Monoespai en px" - #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +msgid "The monospaced font size in px" +msgstr "Mida del tipus de lletra Monoespai en px" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Tipus de lletra estàndard" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&Cerca al diccionari" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Vés a..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Propera secció" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Secció prèvia" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Inici del document" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Final del document" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Inici de la secció" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Final de la secció" @@ -10862,90 +10906,90 @@ msgstr "" msgid "Search for text in book" msgstr "Cerca un text al llibre" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Vista prèvia d'impressió" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "S'està connectant amb dict-org per cercar: <b>%s</b>..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Tria un llibre" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "No s'ha trobat coincidències per a: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "S'està carregant el flux..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "S'està aplicant la disposició %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Marcador #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Afegeix un nou marcador" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Introduïu el títol del marcador:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Gestiona els marcadors" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "S'està carregant el llibre..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "Error de DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Aquest llibre està protegit per <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "No s'ha pogut obrir l'ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Opcions de control del visor de llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Si s'indica, la finestra del visor intentarà anar al primer pla quan " "s'iniciï." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Si s'indica, s'intentarà que la finestra del visor s'obri en pantalla " "completa." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "" "Dirigeix les alertes de javascript i els missatges de consola a la consola" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10977,11 +11021,11 @@ msgstr "Pàgina anterior" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 msgid "Font size larger" -msgstr "Grandària de lletra base més gran:" +msgstr "Mida de la lletra base més gran" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:198 msgid "Font size smaller" -msgstr "Grandària de lletra base més petita" +msgstr "Mida de la lletra base més petita" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:202 msgid "Find next" @@ -11063,7 +11107,7 @@ msgstr "Amaga" msgid "Toggle" msgstr "Commuta" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -11073,7 +11117,7 @@ msgstr "" "mòbil, podeu accedir la vostra col·lecció de llibres directament. Per fer-ho " "heu d'engegar el servidor de continguts." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -11081,7 +11125,7 @@ msgstr "" "No oblideu deixar el calibre executant-se, ja que el servidor només funciona " "si el calibre està actiu." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -11091,20 +11135,20 @@ msgstr "" "WordPlayer. «elmeuservidor» és el nom complert del servidor o l'adreça IP de " "l'ordinador on s'executa el calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "S'està movent la biblioteca..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "No s'ha pogut moure la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Base de dades no vàlida" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -11112,22 +11156,22 @@ msgstr "" "<p>Ja hi ha una biblioteca no vàlida a %s, suprimiu-la abans d'intentar " "moure la biblioteca actual.<br>Error: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "No s'ha pogut moure la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Seleccioneu una ubicació per als llibres" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "Heu de triar una carpeta buida per a la biblioteca del calibre. %s no està " "buida." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "Assistent de benvinguda" @@ -11170,7 +11214,7 @@ msgid "" "<h2>Congratulations!</h2> You have successfully setup calibre. Press the %s " "button to apply your settings." msgstr "" -"<h2>Felicitats!</h2> Heu configurat el calibre amb èxit. Premeu el botó %s " +"<h2>Felicitats!</h2> Heu configurat el calibre amb èxit. Premeu el botó «%s» " "per aplicar els vostres paràmetres." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 @@ -11215,11 +11259,12 @@ msgstr "Trieu el vostre &idioma:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Trieu una ubicació per als vostres llibres. Quan afegiu llibres al calibre " -"es copiaran aquí:" +"<p>Trieu una localització per als llibres. Quan s'afegeixin llibres al " +"calibre es copiaran aquí. Utilitzeu una <b>carpeta buida</b> per a una nova " +"biblioteca del calibre:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11233,51 +11278,81 @@ msgid "" msgstr "" "Si ja teniu una biblioteca del calibre, es copiarà a la nova ubicació. Si ja " "hi ha una biblioteca del calibre a la nova ubicació el calibre passarà a fer-" -"la." +"la servir." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "S'està fent servir: %s:%s@%s:%s i xifratge %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "S'està enviant..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "S'ha enviat el correu amb èxit" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Acaba la configuració del gmail" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"No us oblideu d'introduir el vostre nom d'usuari i contrasenya del gmail. " -"Podeu configurar un compte gratuït de gmail a http://gmail.com" +"Si esteu configurant un nou compte de hotmail heu d'iniciar la sessió un cop " +"per poder enviar correus." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"Podeu sol·licitar un compte de correu electrònic {name} gratuït a <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "%s adreça de correu &electrònic:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "%s nom d'&usuari:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "%s &contrasenya" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"Si penseu enviar llibres per correu electrònic al Kindle, recordeu que heu " +"d'afegir la vostra adreça %s a les adreces permeses a la vostra pàgina de " +"gestió del Kindle d'Amazon.com." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "Configura" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Mala configuració" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" -msgstr "Heu d'establir d'adreça de correu electrònic remitent" +msgstr "Heu d'establir l'adreça de correu electrònic remitent" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "" "Heu d'especificar el nom d'usuari i la contrasenya per al servidor de correu." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "&Envia el correu electrònic des de:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11285,7 +11360,7 @@ msgstr "" "<p>És el que hi haurà al camp «De:» dels correus electrònics que enviï el " "calibre. <br>Poseu-hi la vostra adreça de correu electrònic." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11293,52 +11368,52 @@ msgstr "" "<p>Un servidor de correu és útil si el servei que envieu el correu només " "accepta correus electrònics de serveis de correu coneguts." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "&Servidor de correu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "el calibre pot fer servir un servidor per enviar correu <b>de forma " "opcional</p>" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "Nom de l'&amfitrió:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "El non del vostre servidor de correu. Per exemple smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "Port que el vostre servidor de correu fa servir per rebre connexions. Per " "defecte és el 25." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "El vostre usuari al servidor de correu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "La vostra contrasenya al servidor de correu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Mostra" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Xifratge:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11346,23 +11421,35 @@ msgstr "" "Fes servir xifratge TLS en connectar al servidor de correu. És el més " "habitual." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Fes servir xifratge SSL en connectar al servidor de correu." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "Avís: No fer servir encriptació és molt insegur" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "&Cap" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Fes servir el Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Fes servir el Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "Prova el correu elec&trònic" @@ -11392,12 +11479,12 @@ msgstr "ahir" #: /home/kovid/work/calibre/src/calibre/library/caches.py:371 msgid "thismonth" -msgstr "aquestmes" +msgstr "aquest mes" #: /home/kovid/work/calibre/src/calibre/library/caches.py:374 #: /home/kovid/work/calibre/src/calibre/library/caches.py:375 msgid "daysago" -msgstr "dies" +msgstr "fa dies" #: /home/kovid/work/calibre/src/calibre/library/caches.py:539 #: /home/kovid/work/calibre/src/calibre/library/caches.py:549 @@ -11429,7 +11516,7 @@ msgstr "en blanc" msgid "empty" msgstr "buit" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11443,7 +11530,7 @@ msgstr "" "Per defecte: «%%default»\n" "S'aplica als formats de sortida CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11455,7 +11542,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11469,7 +11556,7 @@ msgstr "" "Per defecte: «%%default»\n" "S'aplica al format de sortida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11481,7 +11568,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica al format de sortida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11493,7 +11580,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica al format de sortida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11507,7 +11594,7 @@ msgstr "" "Per defecte: «%%default»\n" "S'aplica al format de sortida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11519,7 +11606,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica al format de sortida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11531,7 +11618,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica al format de sortida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11543,7 +11630,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica al format de sortida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11553,7 +11640,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11567,7 +11654,7 @@ msgstr "" "Per defecte: «%default» No res\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11578,7 +11665,7 @@ msgstr "" "[etiqueta]\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11593,7 +11680,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11603,7 +11690,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11613,7 +11700,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11623,18 +11710,18 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -"Prefix de les etiquetes de notes de l'usuari, per exemple «pot ser que al " -"Josep li agradi llegir això».\n" +"Prefix de les etiquetes de notes de l'usuari, per exemple «* Al Josep li " +"agradarà».\n" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11648,7 +11735,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11663,7 +11750,7 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11673,6 +11760,17 @@ msgstr "" "Per defecte: «%default»\n" "S'aplica als formats de sortida ePub i MOBI" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etiqueta que fa que el llibre es mostri com a element de la llista de " +"desitjos.\n" +"Per defecte: «%default»\n" +"S'aplica a formats de sortida ePub, MOBI" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Títols no vàlids" @@ -12226,7 +12324,7 @@ msgstr "s'ha suprimit" #: /home/kovid/work/calibre/src/calibre/library/cli.py:871 msgid "Error: Action %s not recognized, must be one of: (add|remove|list)" -msgstr "Error: No es reconeix l'acció %s, ha de ser una de (add/remove/list)" +msgstr "Error: No es reconeix l'acció %s, ha de ser una de «add/remove/list»" #: /home/kovid/work/calibre/src/calibre/library/cli.py:879 msgid "" @@ -12395,36 +12493,36 @@ msgstr "" "L'etiqueta només pot contenir lletres minúscules, nombres i guions baixos, i " "ha de començar amb una lletra" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sLa valoració mitjana és %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Inici" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" "<p>S'està migrant la base de dades antiga a la biblioteca de %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "S'està copiant <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "S'està compactant la base de dades" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "S'està comprovant la integritat SQL" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "S'està comprovant si hi fitxers perduts." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "S'ha comprovat l'ID" @@ -12466,7 +12564,7 @@ msgstr "Les etiquetes" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:37 msgid "The series" -msgstr "Les sèries" +msgstr "La sèrie" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:38 msgid "" @@ -12652,129 +12750,129 @@ msgstr "" "Prefix per posar abans de totes les URL. Útil per fer servir un servidor " "intermediari de retorn a aquest servidor des d'Apache, nginx..." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "" -"Contrasenya per accedir la llibreria del calibre. El nom d'usuari és " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "S'està carregant" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "Vés a" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Primer" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Darrer" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Anterior" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Següent" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "S'està explorant %d llibres" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Valoració mitjana" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f estrelles" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d estrelles" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Popularitat" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Ordena per" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "biblioteca" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "inici" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Més recent" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Tots els llibres" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Explora llibres per" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Trieu una categoria per la qual cercar:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "S'està cercant per" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Cap amunt" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "a" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "llibres a" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Altres formats" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Llegeix %s en el format %s" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Aconsegueix" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Enllaç permanent" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "Un enllaç permanent a aquest llibre" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "S'ha suprimit el llibre" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "en una cerca" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Llibres coincidents" @@ -12793,10 +12891,10 @@ msgstr "" "[opcions]\n" "\n" "Inicia el servidor de continguts del calibre. El servidor de continguts\n" -"del calibre mostra la vostra biblioteca per internet. La interfície per\n" -"defecte permet navegar per la biblioteca per categories. També podeu\n" -"accedir una interfície optimitzada per a navegadors mòbils a /mobile i \n" -"una interfície basada en OPDS en aplicacions de lectura a /opds.\n" +"del calibre mostra la biblioteca per internet. La interfície per defecte\n" +"permet navegar per la biblioteca per categories. També podeu accedir\n" +"a una interfície optimitzada per a navegadors mòbils a /mobile i una\n" +"interfície basada en OPDS en aplicacions de lectura a /opds.\n" "\n" "La interfície OPDS es publicita automàticament fent servir el BonJour.\n" @@ -12847,7 +12945,7 @@ msgstr "SÈRIE: %s [%s]<br />" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:248 msgid "Books in your library" -msgstr "LLibres a la teva biblioteca" +msgstr "Llibres a la biblioteca" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:254 msgid "By " @@ -12906,7 +13004,7 @@ msgstr "Llista per ordre de preferència dels formats d'entrada" #: /home/kovid/work/calibre/src/calibre/utils/config.py:715 msgid "Read metadata from files" -msgstr "Llegeix metadades dels fitxers" +msgstr "Llegeix les metadades dels fitxers" #: /home/kovid/work/calibre/src/calibre/utils/config.py:717 msgid "The priority of worker processes" @@ -12947,7 +13045,7 @@ msgstr "«switch» necessita un número senar d'arguments" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." -msgstr "Esperant..." +msgstr "S'està esperant..." #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:52 msgid "Stopped" @@ -12959,11 +13057,11 @@ msgstr "Finalitzat" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:76 msgid "Working..." -msgstr "Treballant..." +msgstr "S'està treballant..." #: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 msgid "Brazilian Portuguese" -msgstr "Portuguès de Canadà" +msgstr "Portuguès del Brasil" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "English (UK)" @@ -13109,7 +13207,7 @@ msgstr "No s'ha pogut establir la sessió SSH: " msgid "Failed to authenticate with server: %s" msgstr "Ha fallat l'autentificació amb el servidor: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Control l'enviament del correu electrònic" @@ -13839,9 +13937,32 @@ msgstr "No descarreguis els fulls d'estil CSS" #~ msgid "Failed to download metadata:" #~ msgstr "No s'ha pogut descarregar les metadades:" +#~ msgid "Failed to email the following books:" +#~ msgstr "Error en enviar els següents llibres per email:" + +#~ msgid "Failed to email books" +#~ msgstr "Error en enviar llibres per email" + #~ msgid "Library backup status..." #~ msgstr "Estat de la còpia de seguretat de la biblioteca..." +#~ msgid "Sent by email:" +#~ msgstr "S'ha enviat per correu electrònic:" + +#~ msgid "Attached is the" +#~ msgstr "S'adjunta el" + +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Introduïu una llista d'ISBN al quadre de l'esquerra, un per línia. El " +#~ "calibre crearà automàticament entrades per als llibres fent servir l'ISBN i " +#~ "en descarregarà les metadades i les portades.</p> <p>Els ISBN no vàlids " +#~ "s'ignoraràn.</p>" + #~ msgid "Additional Information" #~ msgstr "Informació addicional" @@ -13853,6 +13974,17 @@ msgstr "No descarreguis els fulls d'estil CSS" #~ msgstr "" #~ "No s'ha trobat metadades, intenteu ajustar el títol i l'autor o l'ISBN." +#~ 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 "" +#~ "Els llibres següents tenien formats que s'indiquen a la base de dades que en " +#~ "realitat no estan disponibles. Les entrades d'aquests formats s'han " +#~ "eliminat. Hauríeu de comprovar-los manualment. Això pot passar si manipuleu " +#~ "els fitxers de la carpeta de la biblioteca directament." + #~ msgid "" #~ "<b>You can destroy your library using this feature.</b> Changes are " #~ "permanent. There is no undo function. This feature is experimental, and " @@ -13876,6 +14008,37 @@ msgstr "No descarreguis els fulls d'estil CSS" #~ msgstr "" #~ "No es pot fer servir l'editor d'etiquetes si heu modificat les etiquetes" +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "Conté: la paraula o frase està a qualsevol lloc de les metadades" + +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Expressió regular: l'expressió ha de coincidir en qualsevol posició de les " +#~ "metadades" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Coincideix: la paraula o frase ha de coincidir amb el camp de metadades " +#~ "sencer" + +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Trieu una ubicació per als vostres llibres. Quan afegiu llibres al calibre " +#~ "es copiaran aquí:" + +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "No us oblideu d'introduir el vostre nom d'usuari i contrasenya del gmail. " +#~ "Podeu configurar un compte gratuït de gmail a http://gmail.com" + +#~ msgid "Finish gmail setup" +#~ msgstr "Acaba la configuració del gmail" + #~ msgid "" #~ "Book formats and metadata from the selected books will be merged into the " #~ "<b>first selected book</b>. ISBN will <i>not</i> be merged.<br><br>After " @@ -13902,6 +14065,10 @@ msgstr "No descarreguis els fulls d'estil CSS" #~ "segon llibre i els seleccionats a continuació no s'esborraran ni canviaran " #~ "<br><br>Confirmeu que voleu continuar." +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "" +#~ "Contrasenya per accedir la llibreria del calibre. El nom d'usuari és " + #~ msgid "" #~ "[options]\n" #~ "\n" @@ -13914,5 +14081,13 @@ msgstr "No descarreguis els fulls d'estil CSS" #~ msgid "Send specific format" #~ msgstr "Envia un format específic" +#~ 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 "" +#~ "Longitud de línia mitjana per a la divisió de línies si l'HTML ve d'una " +#~ "conversió parcial prèvia d'un fitxer PDF. El valor per defecte és %default, " +#~ "que ho desactiva." + #~ msgid "Click to open Book Details window" #~ msgstr "Feu clic per obrir el quadre de «Detalls del llibre»" diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 9d98bec684..0eeae72c07 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.7.28\n" -"POT-Creation-Date: 2010-11-12 13:07+MST\n" -"PO-Revision-Date: 2010-11-12 13:07+MST\n" +"Project-Id-Version: calibre 0.7.32\n" +"POT-Creation-Date: 2010-12-03 10:53+MST\n" +"PO-Revision-Date: 2010-12-03 10:53+MST\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -25,11 +25,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:465 #: /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/sony_cache.py:650 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -38,8 +38,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -49,11 +49,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:71 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:373 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:378 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:608 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -72,9 +72,9 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:620 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:826 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:828 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:631 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:837 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:839 #: /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:913 @@ -83,11 +83,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:111 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -107,42 +107,42 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:305 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:305 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1249 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1252 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1116 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:190 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:373 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:385 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1260 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1361 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2158 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2160 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2291 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -180,12 +180,12 @@ msgstr "" msgid "User Interface Action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "" @@ -249,163 +249,163 @@ msgstr "" msgid "Set metadata from %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:726 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:730 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:211 msgid "Add your own columns" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:741 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "Customize the toolbars and context menus, changing which actions are available in each" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:760 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:771 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:764 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:775 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:786 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:793 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:805 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:803 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "Control how calibre exports files from its database to disk when using Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:815 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:821 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:827 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:833 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:840 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "Setup sharing of books via email. Can be used for automatic sending of downloaded news to your devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:850 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:856 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "Setup the calibre Content Server which will give you access to your calibre library from anywhere, on any device, over the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:863 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:877 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:888 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:869 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:881 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:892 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "" @@ -425,120 +425,124 @@ msgstr "" 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:47 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:49 msgid "Input profile" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:51 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:53 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:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:61 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:446 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:71 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:73 msgid "This profile is intended for the SONY PRS 300." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:82 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:486 msgid "This profile is intended for the SONY PRS-900." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:90 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 msgid "This profile is intended for the Microsoft Reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:101 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:526 msgid "This profile is intended for the Mobipocket books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:114 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:539 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:126 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:551 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:136 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:559 msgid "This profile is intended for the Cybook G3." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:149 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:572 msgid "This profile is intended for the Cybook Opus." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:161 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:585 msgid "This profile is intended for the Amazon Kindle." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:173 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:633 msgid "This profile is intended for the Irex Illiad." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:185 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:646 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:198 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:660 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:210 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:674 msgid "This profile is intended for the B&N Nook." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:230 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:232 msgid "Output profile" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:234 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:236 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:276 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:278 msgid "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:437 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:464 msgid "This profile is intended for the Kobo Reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:477 msgid "This profile is intended for the SONY PRS-300." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:495 msgid "This profile is intended for the 5-inch JetBook." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:504 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:609 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 msgid "This profile is intended for the Amazon Kindle DX." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:686 +msgid "This profile is intended for the B&N Nook Color." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:697 msgid "This profile is intended for the Sanda Bambook." msgstr "" @@ -610,7 +614,7 @@ msgstr "" 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/android/driver.py:98 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:99 msgid "Communicate with S60 phones." msgstr "" @@ -677,19 +681,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:882 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:264 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2022 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:150 msgid "News" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:21 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1985 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003 msgid "Catalog" msgstr "" @@ -715,6 +719,10 @@ msgstr "" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "" @@ -727,6 +735,10 @@ msgstr "" msgid "Communicate with the PocketBook 301 reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "" @@ -783,8 +795,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:279 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -852,14 +864,14 @@ msgstr "" msgid "Communicate with the Kobo Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:49 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:51 msgid "The Kobo supports only one collection currently: the \"Im_Reading\" list. Create a tag called \"Im_Reading\" " msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:65 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:68 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:71 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:204 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:67 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:73 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:214 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 @@ -869,26 +881,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:315 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:322 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:327 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:362 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:445 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:268 msgid "Not Implemented" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:446 msgid "\".kobo\" files do not exist on the device as books instead, they are rows in the sqlite database. Currently they cannot be exported or viewed." msgstr "" @@ -925,6 +937,10 @@ msgstr "" msgid "Communicate with the GM2000" msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "" @@ -1562,9 +1578,9 @@ msgstr "" msgid "Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:147 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:151 #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:78 msgid "Table of Contents:" msgstr "" @@ -1576,7 +1592,7 @@ msgstr "" #: /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 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:36 msgid "Add Table of Contents to beginning of the book." msgstr "" @@ -1584,6 +1600,22 @@ msgstr "" msgid "Try to turn chapters into individual sections. WARNING: This option is experimental. It can cause conversion to fail. It can also produce unexpected output." msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:30 +msgid "Try to turn chapters into individual sections using the internal structure of the ebook. This works well for EPUB books that have been internally split by chapter." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:35 +msgid "Wrap all h1 tags with fb2 title elements." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:38 +msgid "Wrap all h2 tags with fb2 title elements." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:41 +msgid "Wrap all h3 tags with fb2 title elements." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:249 msgid "Traverse links in HTML files breadth first. Normally, they are traversed depth first." msgstr "" @@ -1596,10 +1628,6 @@ msgstr "" 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:273 -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/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "" @@ -1742,7 +1770,7 @@ 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:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "" @@ -1877,102 +1905,102 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:533 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:492 msgid "No" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:533 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:492 msgid "Yes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:607 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:373 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:923 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:303 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:927 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:304 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:570 msgid "Title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:608 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:928 msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:607 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:609 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 msgid "Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:608 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:610 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 msgid "Producer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:611 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1135 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:188 msgid "Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:160 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:613 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:166 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:161 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:613 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:158 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:615 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:330 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1140 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:109 msgid "Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:614 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616 msgid "Language" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1123 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:157 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:620 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:163 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:258 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:259 msgid "Published" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:620 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:622 msgid "Rights" msgstr "" @@ -2059,6 +2087,7 @@ msgid "No cover found" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "" @@ -2122,31 +2151,31 @@ msgstr "" msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 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:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2159,23 +2188,24 @@ msgid "" "\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr "" @@ -2187,6 +2217,22 @@ msgid "" "Fetch a cover image/social metadata for the book identified by ISBN from LibraryThing.com\n" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" @@ -2296,8 +2342,8 @@ msgstr "" msgid "%s format books are not supported" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:214 msgid "Book %s of %s" msgstr "" @@ -2305,9 +2351,13 @@ msgstr "" msgid "HTML TOC generation options." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:130 +msgid "Unknown publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:165 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "" @@ -2335,13 +2385,13 @@ msgstr "" msgid "Sidebar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 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/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 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." @@ -2567,7 +2617,11 @@ msgstr "" msgid "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:40 +msgid "Do not reduce the size or bit depth of images. Images have their size and depth reduced by default to accommodate applications that can not convert images on their own such as Dropbook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML first and then try it.\n" "%s" @@ -2579,7 +2633,7 @@ msgid "Specify the character encoding of the output document. The default is utf msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:39 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 "" @@ -2625,18 +2679,30 @@ msgstr "" msgid "Do not insert a Table of Contents into the output text." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:25 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 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:31 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:45 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:46 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:50 +msgid "Produce Markdown formatted text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:53 +msgid "Do not remove links within the document. This is only useful when paired with the markdown-format option becauselinks are always removed with plain text output." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:58 +msgid "Do not remove image references within the document. This is only useful when paired with the markdown-format option becauseimage references are always removed with plain text output." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Send file to storage card instead of main memory by default" msgstr "" @@ -2746,7 +2812,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "" @@ -2758,143 +2824,143 @@ msgstr "" msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:26 msgid "Add books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:27 msgid "Add books to the calibre library/device from files on your computer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:28 msgid "A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:34 msgid "Add books from a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:36 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/actions/add.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:40 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/actions/add.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:44 msgid "Add Empty book. (Book entry with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:46 msgid "Add from ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:85 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:86 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:299 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:176 msgid "Topaz books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:177 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:178 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "SNB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:180 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:181 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:185 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 msgid "Merged some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 msgid "Some duplicates were found and merged into the following existing books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:231 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:232 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:256 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:275 msgid "Add to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:256 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:135 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "The following books are virtual and cannot be added to the calibre library:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:275 msgid "No book files found" msgstr "" @@ -2907,7 +2973,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "" @@ -2927,8 +2993,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:212 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:92 msgid "No books selected" msgstr "" @@ -2970,30 +3036,30 @@ msgstr "" msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:54 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:230 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:60 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:70 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:73 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:74 msgid "Select destination for %s.%s" msgstr "" @@ -3002,7 +3068,7 @@ msgid "Checking database integrity" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3017,12 +3083,12 @@ msgid "Some inconsistencies found" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 -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." +msgid "The following books had formats or covers listed in the database that are not actually available. The entries for the formats/covers 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/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "" @@ -3148,7 +3214,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:748 msgid "Not allowed" msgstr "" @@ -3180,6 +3246,10 @@ msgstr "" msgid "Starting conversion of %d book(s)" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "" @@ -3214,9 +3284,9 @@ msgid "Could not copy books: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "" @@ -3277,14 +3347,14 @@ msgid "Main memory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "" @@ -3421,7 +3491,7 @@ msgid "covers" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "" @@ -3430,28 +3500,28 @@ msgid "Downloading %s for %d book(s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:174 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:214 msgid "Cannot merge books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:215 msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:220 msgid "Book formats and metadata from the selected books will be added to the <b>first selected book</b> (%s). ISBN will <i>not</i> be merged.<br><br> The second and subsequently selected books will not be deleted or changed.<br><br>Please confirm you want to proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:232 msgid "Book formats and metadata from the selected books will be merged into the <b>first selected book</b> (%s). ISBN will <i>not</i> be merged.<br><br>After merger the second and subsequently selected books will be <b>deleted</b>. <br><br>All book formats of the first selected book will be kept and any duplicate formats in the second and subsequently selected books will be permanently <b>deleted</b> from your computer.<br><br> Are you <b>sure</b> you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:245 msgid "You are about to merge more than 5 books. Are you <b>sure</b> you want to proceed?" msgstr "" @@ -3496,6 +3566,7 @@ msgid "Ctrl+P" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "" @@ -3578,7 +3649,7 @@ msgid "Click the show details button to see which ones." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "" @@ -3666,28 +3737,36 @@ msgid "View specific format" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:174 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:105 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:116 +msgid "Format unavailable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:117 +msgid "Not all the selected books were available in the %s format. You should convert them first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:124 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:125 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/actions/view.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:134 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:175 msgid "%s has no available formats." msgstr "" @@ -3712,7 +3791,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "" @@ -3886,32 +3965,32 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:417 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:135 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1121 msgid "Path" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:118 msgid "Formats" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:931 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1124 msgid "Collections" msgstr "" @@ -3924,8 +4003,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1130 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1134 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 @@ -3933,7 +4012,7 @@ msgstr "" msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:416 msgid "Double-click to open Book Details window" msgstr "" @@ -3943,7 +4022,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 #: /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/catalog/catalog_epub_mobi.py:19 #: /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 @@ -3954,6 +4033,7 @@ msgstr "" #: /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/pml_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 @@ -3963,13 +4043,14 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 #: /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/catalog/catalog_epub_mobi.py:19 #: /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:21 #: /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/pml_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 @@ -3978,13 +4059,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:33 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 @@ -3994,12 +4075,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:40 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:43 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pmlz_output_ui.py:36 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:33 #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:55 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 @@ -4021,7 +4103,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "" @@ -4097,32 +4179,27 @@ msgstr "" msgid "CSV/XML Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 msgid "E-book options" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:96 msgid "'Don't include this book' tag:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 -msgid "'Mark this book as read' tag:" -msgstr "" - -#: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:97 msgid "Additional note tag prefix:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:98 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:99 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie]\n" @@ -4130,25 +4207,45 @@ msgid "" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:102 msgid "Include 'Titles' Section" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:103 msgid "Include 'Recently Added' Section" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:104 msgid "Sort numbers as text" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:105 msgid "Include 'Series' Section" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:106 +msgid "Wishlist tag:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:107 +msgid "Source column for read book" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:108 +msgid "Pattern for read book" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:109 +msgid "Books marked as read:" +msgstr "" + #: #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" @@ -4324,17 +4421,34 @@ msgstr "" msgid "FB2 Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pmlz_output_ui.py:37 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:34 -#: /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:61 msgid "&Inline TOC" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:50 msgid "Sectionize Chapters (Use with care!)" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:51 +msgid "Sectionize Chapters using file structure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:52 +msgid "Wrap h1 tags with <title> elements" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:53 +msgid "Wrap h2 tags with <title> elements" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:54 +msgid "Wrap h3 tags with <title> elements" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 msgid "Font rescaling wizard" msgstr "" @@ -4542,33 +4656,33 @@ msgid "Set the metadata. The output file will contain as much of this metadata a msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "Choose cover for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:173 msgid "Cannot read" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:174 msgid "You do not have permission to read the file: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:191 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:182 msgid "Error reading file" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:183 msgid "<p>There was an error reading from file: <br /><b>" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:192 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:191 msgid " is not a valid picture" msgstr "" @@ -4601,7 +4715,7 @@ msgid "Change the title of this book" 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:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "" @@ -4615,7 +4729,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:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "" @@ -4626,13 +4740,13 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "Tags categorize the book. This is particularly useful while searching. <br><br>They can be any words or phrases, separated by commas." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -4640,8 +4754,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -4778,6 +4892,14 @@ msgstr "" msgid "Preserve &aspect ratio of cover" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pml_output.py:14 +msgid "PMLZ Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pmlz_output_ui.py:38 +msgid "Do not reduce image size and depth" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 msgid "RB Output" msgstr "" @@ -4997,18 +5119,30 @@ msgstr "" msgid "TXT Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:60 msgid "&Line ending style:" msgstr "" -#: /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:62 msgid "&Maximum line length:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:63 msgid "Force maximum line length" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:64 +msgid "Apply Markdown formatting to text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:65 +msgid "Do not remove links (<a> tags) before processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:66 +msgid "Do not remove image references before processing" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 @@ -5106,7 +5240,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:145 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:270 -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:492 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:111 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:131 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:206 @@ -5131,260 +5265,216 @@ msgstr "" msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:332 +msgid "The enumeration \"{0}\" contains an invalid value that will be set to the default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:492 +msgid "Do not change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:541 msgid "Remove series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:496 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:544 msgid "Automatically number books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:609 +msgid "The enumeration \"{0}\" contains invalid values that will not appear in the list" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:665 msgid "Remove all tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:686 msgid "tags to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:691 msgid "tags to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 -msgid "Select folder to open as device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 -msgid "Error talking to device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 -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/device.py:770 -msgid "Device: " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 -msgid " detected." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 -msgid "selected to send" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 -msgid "Choose format to send to device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 -msgid "No device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 -msgid "Cannot send: No device is connected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 -msgid "No card" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 -msgid "Cannot send: Device has no storage card" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1174 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1293 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1301 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 +msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "Could not email the following books as no suitable formats were found:" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 +msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 +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/device.py:1010 -msgid "Failed to email the following books:" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 +msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 +msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1048 -msgid "News:" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 +msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1049 -msgid "Attached is the" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 +msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1060 -msgid "Sent news to" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 +msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1175 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1294 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 +msgid "Cannot send: No device is connected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 +msgid "No card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 +msgid "Cannot send: Device has no storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1120 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1260 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1302 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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:1366 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1367 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "<p>Cannot upload books to device there is no more free space available " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:356 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:234 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:57 msgid "Invalid template" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:235 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:58 msgid "The template %s is invalid:" @@ -5415,10 +5505,14 @@ msgid "Add books by ISBN" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:49 -msgid "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will automatically create entries for books based on the ISBN and download metadata and covers for them.<p>Any invalid ISBNs in the list will be ignored." +msgid "" +"<p>Enter a list of ISBNs in the box to the left, one per line. calibre will automatically create entries for books based on the ISBN and download metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "" @@ -5475,33 +5569,45 @@ msgstr "" msgid "Copy &to clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:45 +msgid "Delete marked files (checked subitems)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:51 +msgid "Fix marked sections (checked fixable items)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:61 msgid "Names to ignore:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:66 msgid "Enter comma-separated standard file name wildcards, such as synctoy*.dat" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:69 msgid "Extensions to ignore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:74 msgid "Enter comma-separated extensions without a leading dot. Used only in book folders" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:111 +msgid "(fixable)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:134 msgid "Path from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:158 msgid "The marked files and folders will be <b>permanently deleted</b>. Are you sure?" msgstr "" @@ -5546,7 +5652,7 @@ msgid "No location selected" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "" @@ -5624,16 +5730,16 @@ msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:929 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:33 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:295 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Date" msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1116 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120 msgid "Format" msgstr "" @@ -5648,13 +5754,13 @@ msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:684 msgid "Invalid author name" msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:685 msgid "Author names cannot contain & characters." msgstr "" @@ -5792,162 +5898,166 @@ msgstr "" msgid "Working" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:237 +msgid "Immediately make all changes without closing the dialog. This operation cannot be canceled or undone" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:273 msgid "Book %d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:288 msgid "<b>You can destroy your library using this feature.</b> Changes are permanent. There is no undo function. You are strongly encouraged to back up your library before proceeding.<p>Search and replace in text fields using character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:296 msgid "In character mode, the field is searched for the entered search text. The text is replaced by the specified replacement text everywhere it is found in the specified field. After replacement is finished, the text can be changed to upper-case, lower-case, or title-case. If the case-sensitive check box is checked, the search text must match exactly. If it is unchecked, the search text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:307 msgid "In regular expression mode, the search text is an arbitrary python-compatible regular expression. The replacement text can contain backreferences to parenthesized expressions in the pattern. The search is not anchored, and can match and replace multiple times on the same string. The modification functions (lower-case etc) are applied to the matched text, not to the field as a whole. The destination box specifies the field where the result after matching and replacement is to be assigned. You can replace the text in the field, or prepend or append the matched text. See <a href=\"http://docs.python.org/library/re.html\"> this reference</a> for more information on python's regular expressions, and in particular the 'sub' function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:452 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:647 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:545 msgid "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:553 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:648 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 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:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -5955,289 +6065,304 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "Choose whether to use basic text matching or advanced regular expression matching" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "Enter the what you are looking for, either plain text or a regular expression, depending on the mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "Check this box if the search string must match exactly upper and lower case. Uncheck it if case is to be ignored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "The replacement text. The matched search text will be replaced with this string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In character mode, the entire\n" "field is processed. In regular expression mode, only the matched text is processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "The field that the text will be put into after all replacements. If blank, the source field is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:93 msgid "Last modified: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 -msgid "Not a valid picture" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 -msgid "Specify title and author" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 -msgid "You must specify a title and author before generating a cover" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:169 -msgid "Choose formats for " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:200 -msgid "No permission" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 -msgid "You do not have permission to read the following files:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:228 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:229 -msgid "No format selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:240 -msgid "Could not read metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:241 -msgid "Could not read metadata from %s format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:295 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:118 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:296 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:351 -msgid " The green color indicates that the current author sort matches the current author" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:153 +msgid "Cover size: %dx%d pixels" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:354 -msgid " The red color indicates that the current author sort does not match the current author" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 +msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359 -msgid "Abort the editing of all remaining books" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:208 +msgid "Specify title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 -msgid "This ISBN number is valid" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:209 +msgid "You must specify a title and author before generating a cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 -msgid "This ISBN number is invalid" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 -msgid "Tags changed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 -msgid "You have changed the tags. In order to use the tags editor, you must either discard or apply these changes" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:639 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:242 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:651 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:656 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:662 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:667 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:270 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:652 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:663 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:668 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:266 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:271 msgid "<b>Could not fetch cover.</b><br/>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:653 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:256 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:260 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:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:272 msgid "For the error message from each cover source, click Show details below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:279 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:280 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:710 -msgid "There were errors" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:298 +msgid "Choose formats for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:329 +msgid "No permission" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:330 +msgid "You do not have permission to read the following files:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:358 +msgid "No format selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:369 +msgid "Could not read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:370 +msgid "Could not read metadata from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:441 +msgid " The green color indicates that the current author sort matches the current author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:444 +msgid " The red color indicates that the current author sort does not match the current author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:449 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 +msgid "Previous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:460 +msgid "Save changes and edit the metadata of %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:457 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 +msgid "Next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:636 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:639 +msgid "This ISBN number is invalid" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:711 +msgid "Tags changed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:712 +msgid "You have changed the tags. In order to use the tags editor, you must either discard or apply these changes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:750 +msgid "There were errors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:751 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:782 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:743 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:783 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:833 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:878 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:834 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:879 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -6352,20 +6477,21 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "" @@ -6412,60 +6538,64 @@ msgstr "" msgid "Change the contents of the saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:35 +msgid "&Search:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:133 msgid "Need username and password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:134 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:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 msgid "Account" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:174 msgid "(optional)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:175 msgid "(required)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:192 msgid "Created by: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:199 msgid "Last downloaded: never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:214 msgid "%d days, %d hours and %d minutes ago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216 msgid "Last downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:240 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 msgid "Schedule news download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:243 msgid "Add a custom news source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:248 msgid "Download all scheduled new sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:348 msgid "No internet connection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:349 msgid "Cannot download news as no internet connection is active" msgstr "" @@ -6686,12 +6816,12 @@ msgid "Choose formats" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:97 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:98 msgid "Authors" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:128 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:129 msgid "Publishers" msgstr "" @@ -6801,12 +6931,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:674 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:675 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -6885,7 +7015,7 @@ msgid "Discard changes" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "" @@ -7061,6 +7191,59 @@ msgstr "" msgid "Recipe source code (python)" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "Could not email the following books as no suitable formats were found:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" @@ -7133,50 +7316,50 @@ msgstr "" msgid "Regular expression (?P<isbn>)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:104 msgid "Cover Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:109 msgid "Shift+Alt+B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:123 msgid "Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:125 msgid "Shift+Alt+T" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:145 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:29 msgid "version" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:30 msgid "created by Kovid Goyal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:164 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:176 msgid "Update found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:207 -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:221 msgid "Book Details" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:213 msgid "Alt+D" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:223 msgid "Shift+Alt+D" msgstr "" @@ -7223,23 +7406,23 @@ msgstr "" msgid "Job has already run" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr "" @@ -7265,7 +7448,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:826 msgid "Card A" msgstr "" @@ -7274,7 +7457,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:828 msgid "Card B" msgstr "" @@ -7326,21 +7509,21 @@ msgstr "" msgid "Delete current saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:317 msgid "N" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:317 msgid "Y" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:240 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:241 msgid "On Device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:68 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:286 msgid "Size (MB)" msgstr "" @@ -7349,77 +7532,77 @@ msgid "Book %s of %s." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1240 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:450 msgid "The lookup/search name is \"{0}\"" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:699 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1238 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1242 msgid "This book's UUID is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 msgid "In Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:930 msgid "Size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1140 msgid "Book <font face=\"serif\">%s</font> of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1220 msgid "Marked for deletion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1223 msgid "Double click to <b>edit</b> me<br><br>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 msgid "Hide column %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:154 msgid "Sort on %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 msgid "Ascending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:158 msgid "Descending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Change text alignment for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:172 msgid "Left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:172 msgid "Right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:173 msgid "Center" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:192 msgid "Show column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:204 msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:749 msgid "Dropping onto a device is not supported. First add the book to the calibre library." msgstr "" @@ -7448,7 +7631,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> 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:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:448 msgid "No matches found" msgstr "" @@ -7465,12 +7648,12 @@ msgid "LRF Viewer toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "" @@ -7514,7 +7697,7 @@ msgid "Do not check for updates" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "" @@ -7634,37 +7817,37 @@ msgstr "" msgid "No matches found for this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "" @@ -7853,118 +8036,138 @@ msgid "Text column for keeping series-like information" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:33 -msgid "Floating point numbers" +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31 +msgid "Text, but with a fixed set of permitted values" msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:35 -msgid "Integers" +msgid "Floating point numbers" msgstr "" #: #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:37 +msgid "Integers" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:39 msgid "Ratings, shown with stars" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:42 msgid "Yes/No" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:44 msgid "Column built from other columns" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:74 msgid "No column selected" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:75 msgid "No column has been selected" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:79 msgid "Selected column is not a user-defined column" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:117 msgid "No lookup name was provided" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:119 msgid "The lookup name must contain only lower case letters, digits and underscores, and start with a letter" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:122 msgid "Lookup names cannot end with _index, because these names are reserved for the index of a series column." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:132 msgid "No column heading was provided" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:139 msgid "The lookup name %s is already used" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:151 msgid "The heading %s is already used" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:162 msgid "You must enter a template for composite columns" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:167 +msgid "You must enter at least one value for enumeration columns" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:172 +msgid "You cannot provide the empty value, as it is included by default" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:176 +msgid "The value \"{0}\" is in the list more than once" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:172 msgid "Create or edit custom columns" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:146 msgid "&Lookup name" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:147 msgid "Column &heading" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:148 msgid "Used for searching the column. Must contain only digits and lower case letters." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:149 msgid "Column heading in the library view and category name in the tag browser" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:150 msgid "Column &type" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:151 msgid "What kind of information will be kept in the column." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:152 msgid "" "<p>Date format. Use 1-4 'd's for day, 1-4 'M's for month, and 2 or 4 'y's for year.</p>\n" "<p>For example:\n" @@ -7975,40 +8178,60 @@ msgid "" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:158 msgid "Use MMM yyyy for month + year, yyyy for year only" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:159 msgid "Default: dd MMM yyyy." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:160 msgid "Format for &dates" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:143 -msgid "<p>Field template. Uses the same syntax as save templates." +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:161 +msgid "Field template. Uses the same syntax as save templates." msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:162 msgid "Similar to save templates. For example, {title} {isbn}" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:170 msgid "Default: (nothing)" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:164 msgid "&Template" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:165 +msgid "Values" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:166 +msgid "" +"A comma-separated list of permitted values. You can specify\n" +"empty values by entering only the comma. For example, the list\n" +"',one,two,three' has 4 valid values, one of them empty. The first\n" +"value in the list is the default." +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:171 +msgid "The first value entered will be the default value for this enumeration" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:21 msgid "Getting debug information" msgstr "" @@ -8157,35 +8380,35 @@ msgstr "" msgid "&Split the toolbar into two toolbars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "Some of the changes you made require a restart. Please restart calibre as soon as possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "The changes you have made require calibre be restarted immediately. You will not be allowed set any more preferences, until you restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "" @@ -8466,7 +8689,7 @@ msgid "Here you can control how calibre will save your books when you click the msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:329 msgid "Failed to start content server" msgstr "" @@ -8641,43 +8864,43 @@ msgstr "" msgid "&Current tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:262 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:322 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:306 msgid "The selected search will be <b>permanently deleted</b>. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:349 msgid "Search (For Advanced Search click the button to the left)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:411 msgid "Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:413 msgid "Choose saved search or enter name for new saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:10 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:12 msgid "Restrict to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:68 msgid "(all books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:62 msgid "({0} of {1})" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/search_restriction_mixin.py:70 msgid "({0} of all)" msgstr "" @@ -8741,94 +8964,94 @@ msgstr "" msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:215 msgid "Rename '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:219 msgid "Edit sort for '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:224 msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:240 msgid "Manage %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:230 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:243 msgid "Manage Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:237 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:254 msgid "Manage User Categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:261 +msgid "Show all categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:545 msgid "Changing the authors for several books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:550 msgid "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:606 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:294 msgid "Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:689 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:690 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:971 msgid "Sort by name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:971 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:972 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:975 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:981 msgid "Match all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:981 msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:986 msgid "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:990 msgid "Manage &user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:993 msgid "Add your own categories to the Tag Browser" msgstr "" @@ -8867,15 +9090,15 @@ msgstr "" 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:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:169 msgid "&Restore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Donate to support calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:175 msgid "&Eject connected device" msgstr "" @@ -8884,42 +9107,42 @@ msgid "Calibre Quick Start Guide" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:448 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:449 msgid "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:463 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:479 msgid "<b>Failed</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:515 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. Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:541 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:544 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:548 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:626 msgid "will keep running in the system tray. To close it, choose <b>Quit</b> in the context menu of the system tray." msgstr "" @@ -9085,94 +9308,94 @@ msgstr "" msgid "No results found for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:720 msgid "Remember last used window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 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:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "" @@ -9228,95 +9451,95 @@ msgstr "" msgid "Book format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:196 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:204 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:277 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:314 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:415 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:416 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:449 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:492 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:530 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:561 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:565 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:566 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:576 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:621 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:622 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:626 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:707 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:714 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:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:717 msgid "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:722 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:728 msgid "" "%prog [options] file\n" "\n" @@ -9431,48 +9654,48 @@ msgstr "" msgid "Toggle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 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:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "<p>An invalid library already exists at %s, delete it before trying to move the existing library.<br>Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "" @@ -9530,7 +9753,7 @@ msgid "Choose your &language:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 -msgid "Choose a location for your books. When you add books to calibre, they will be copied here:" +msgid "<p>Choose a location for your books. When you add books to calibre, they will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 @@ -9541,112 +9764,144 @@ msgstr "" 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 +msgid "If you are setting up a new hotmail account, you must log in to it once before you will be able to send mails." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 -msgid "Dont forget to enter your gmail username and password. You can sign up for a free gmail account at http://gmail.com" +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "You can sign up for a free {name} email account at <a href=\"http://{url}\">http://{url}</a>. {extra}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "If you plan to use email to send books to your Kindle, remember to add the your %s email address to the allowed email addresses in your Amazon.com Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 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:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "<p>This is what will be present in the From: field of emails sent by calibre.<br> Set it to your email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "<p>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:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 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:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 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:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 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:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "" @@ -9675,37 +9930,37 @@ msgstr "" msgid "daysago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:539 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:549 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:554 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:564 msgid "unchecked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:539 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:549 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:554 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:564 #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:184 msgid "no" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:542 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:552 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:557 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:567 msgid "checked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:542 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:552 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:557 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:567 #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:184 msgid "yes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:546 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:561 msgid "blank" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:546 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:561 msgid "empty" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a comma-separated list of fields.\n" "Available fields: %s.\n" @@ -9713,7 +9968,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -9721,7 +9976,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a comma-separated list of fields.\n" "Available fields: %s.\n" @@ -9729,7 +9984,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -9737,7 +9992,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -9745,7 +10000,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -9754,7 +10009,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -9762,7 +10017,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -9770,7 +10025,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -9778,28 +10033,28 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 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:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 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" @@ -9807,35 +10062,35 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 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:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -9844,49 +10099,64 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 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:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" -"Tag indicating book has been read.\n" +"field:pattern 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:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:26 msgid "Invalid titles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/check_library.py:18 +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:27 msgid "Extra titles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/check_library.py:19 +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:28 msgid "Invalid authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/check_library.py:20 +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:29 msgid "Extra authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/check_library.py:21 +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:30 msgid "Missing book formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/check_library.py:22 +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:31 msgid "Extra book formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/check_library.py:23 +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:32 msgid "Unknown files in books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/check_library.py:24 +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:33 +msgid "Missing covers in books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:34 +msgid "Extra covers in books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:35 msgid "Folders raising exception" msgstr "" @@ -9924,7 +10194,7 @@ msgid "Filter the results by the search query. For the format of the search quer msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:143 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1044 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1045 msgid "The maximum width of a single line in the output. Defaults to detecting screen size." msgstr "" @@ -10101,46 +10371,46 @@ msgid "This column stores tag like data (i.e. multiple comma separated values). msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:567 -msgid "A dictionary of options to customize how the data in this column will be interpreted." +msgid "A dictionary of options to customize how the data in this column will be interpreted. This is a JSON string. For enumeration columns, use --display='{\"enum_values\":[\"val1\", \"val2\"]}'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:580 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:581 msgid "You must specify label, name and datatype" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:641 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:642 msgid "" "\n" -" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\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:655 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:656 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:659 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:660 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:665 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:666 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:499 msgid "Show detailed output information. Useful for debugging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:678 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:679 msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:727 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:728 msgid "" "\n" " %prog set_custom [options] column id value\n" @@ -10152,15 +10422,15 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:738 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:739 msgid "If the column stores multiple values, append the specified values to the existing ones, instead of replacing them." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:749 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:750 msgid "Error: You must specify a field name, id and value" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:768 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:769 msgid "" "\n" " %prog custom_columns [options]\n" @@ -10169,19 +10439,19 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:775 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:776 msgid "Show details for each column." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:787 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:788 msgid "You will lose all data in the column: %r. Are you sure (y/n)? " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:789 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:790 msgid "y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:795 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:796 msgid "" "\n" " %prog remove_custom_column [options] label\n" @@ -10191,15 +10461,15 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:803 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:804 msgid "Do not ask for confirmation" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:813 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:814 msgid "Error: You must specify a column label" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:823 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:824 msgid "" "\n" " %prog saved_searches [options] list\n" @@ -10212,73 +10482,73 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:841 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:842 msgid "Error: You must specify an action (add|remove|list)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:849 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:850 msgid "Name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:850 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:851 msgid "Search string:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:856 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:857 msgid "Error: You must specify a name and a search string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:859 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:860 msgid "added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:864 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:865 msgid "Error: You must specify a name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:867 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:868 msgid "removed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:871 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:872 msgid "Error: Action %s not recognized, must be one of: (add|remove|list)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:879 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:880 msgid "" "%prog check_library [options]\n" "\n" "Perform some checks on the filesystem representing a library. Reports are {0}\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:886 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1036 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:887 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1037 msgid "Output in CSV" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:889 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:890 msgid "" "Comma-separated list of reports.\n" "Default: all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:893 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:894 msgid "" "Comma-separated list of extensions to ignore.\n" "Default: all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:897 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:898 msgid "" "Comma-separated list of names to ignore.\n" "Default: all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:927 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:928 msgid "Unknown report check" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:960 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:961 msgid "" "%prog restore_database [options]\n" "\n" @@ -10293,15 +10563,15 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:975 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:976 msgid "Really do the recovery. The command will not run unless this option is specified." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:988 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:989 msgid "You must provide the --really-do-it option to do a recovery" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1025 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1026 msgid "" "%prog list_categories [options]\n" "\n" @@ -10309,29 +10579,29 @@ msgid "" "information is the equivalent of what is shown in the tags pane.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1033 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1034 msgid "Output only the number of items in a category instead of the counts per item within the category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1038 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1039 msgid "The character to put around the category value in CSV mode. Default is quotes (\")." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1041 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1042 msgid "" "Comma-separated list of category lookup names.\n" "Default: all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1047 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1048 msgid "The string used to separate fields in CSV mode. Default is a comma." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1085 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1086 msgid "CATEGORY ITEMS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:1154 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1155 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -10343,51 +10613,51 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:544 +#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:554 msgid "No label was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:546 +#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:556 msgid "The label must contain only lower case letters, digits and underscores, and start with a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:824 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2317 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2346 msgid "Copying <b>%s</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2363 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2456 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2495 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2523 msgid "Checked id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:139 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:140 msgid "Ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:276 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:277 msgid "Title Sort" msgstr "" @@ -10536,128 +10806,121 @@ msgstr "" msgid "Prefix to prepend to all URLs. Useful for reverseproxying to this server from Apache/nginx/etc." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 -msgid "Previous" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 -msgid "Next" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "" @@ -10967,7 +11230,7 @@ msgstr "" msgid "Failed to authenticate with server: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "" @@ -11102,12 +11365,12 @@ 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:193 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:194 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:194 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:195 msgid "Custom" msgstr "" diff --git a/src/calibre/translations/cs.po b/src/calibre/translations/cs.po index 8fe3135949..b2b1fe0cdd 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 <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 21:04+0000\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-12-01 22:11+0000\n" "Last-Translator: Marek SuÅ¡ický <Unknown>\n" "Language-Team: Czech <cs@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-11 04:40+0000\n" +"X-Launchpad-Export-Date: 2010-12-02 04:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,11 +27,11 @@ msgstr "NedÄ›lá vůbec nic" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -40,8 +40,8 @@ msgstr "NedÄ›lá vůbec nic" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -55,7 +55,7 @@ msgstr "NedÄ›lá vůbec nic" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -74,14 +74,14 @@ msgstr "NedÄ›lá vůbec nic" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -89,7 +89,7 @@ msgstr "NedÄ›lá vůbec nic" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -109,10 +109,10 @@ msgstr "NedÄ›lá vůbec nic" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -121,15 +121,15 @@ msgstr "NedÄ›lá vůbec nic" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -137,14 +137,14 @@ msgstr "NedÄ›lá vůbec nic" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -185,14 +185,14 @@ msgstr "Akce Uživatelského rozhraní" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Možnosti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -202,7 +202,7 @@ msgstr "" "vÅ¡echny soubory na které odkazy smÄ›rují. Tento modul je spuÅ¡ten pokaždé, " "když je do knihovny pÅ™idán HTML soubor." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -210,7 +210,7 @@ msgstr "" "Kódování vstupních HTML souborů. BežnÄ› používané kódování jsou napÅ™. cp1252, " "latin1 iso-8859-1 nebo UTF-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -220,7 +220,7 @@ msgstr "" "pmlname_img nebo images. Tento plugin je spuÅ¡tÄ›n pokaždé když pÅ™idáte PML " "soubor do knihovny." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Vyjmout obálky ze souborů s komixy" @@ -267,98 +267,98 @@ msgstr "Nastavuje metadata do souborů %s" msgid "Set metadata from %s files" msgstr "Nastavuje metadata ze souborů %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Vzhled" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Rozhraní" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "PÅ™izpůsobení vzhledu uživatelského rozhraní calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Chování" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "MÄ›ní způsob chování calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "PÅ™idejte své vlastní sloupce" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "PÅ™idejte/odeberte své vlastní sloupce z calibre seznamu knih" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Upravit liÅ¡tu nástrojů" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" msgstr "PÅ™izpůsobení panelu nástrojů a kontextových menu." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Volby vstupu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "PÅ™evod" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "Nastavení pÅ™evodu specifické pro jednotlivé formáty" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Obecné nastavení" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" -msgstr "" +msgstr "Nastavení pÅ™evodu spoleÄné pro vÅ¡echny formáty" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Nastavení výstupu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Nastavení pÅ™evodu specifické pro jednotlivé formáty" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "PÅ™idávání knih" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Import/Export" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "Nastavuje jak calibre Äte metadata ze souborů pÅ™i pÅ™idávání knih" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Ukládání knih na disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -366,32 +366,32 @@ msgstr "" "Nastavuje jak calibre exportuje soubory z jeho databáze na disk pÅ™i použití " "Ulož na disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Posílání knih do zařízení" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Nastavuje jak calibre pÅ™esouvá soubory do vaší ÄteÄky" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 -msgid "Metadata plugboards" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +msgid "Metadata plugboards" +msgstr "Plugboardy s metadaty" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Změň metadata pÅ™ed uložením/odesláním" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Sdílení knih pomocí emailu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Sdílení" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -399,11 +399,11 @@ msgstr "" "Natavení sdílení knih pomocí emailu. Může být použito pro automatické " "odesílání stažených zpráv do vaÅ¡eho zařízení." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Sdílení po síti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -411,33 +411,33 @@ msgstr "" "Natavení calibre Obsahového Serveru, který vám umožní pÅ™istupovat k vaší " "knihovnÄ› calibre odkudkoliv, na jakémkoli zařízení, pÅ™es internet." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Moduly" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Rozšířené" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 -msgid "Add/remove/customize various bits of calibre functionality" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +msgid "Add/remove/customize various bits of calibre functionality" +msgstr "PÅ™idat/odebrat/nastavit různé funkce calibre." + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "VylepÅ¡ení" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" -msgstr "" +msgstr "Doladit chování calibre v různých situacích" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Různé" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "PokroÄilá konfigurace" @@ -482,7 +482,7 @@ msgstr "" "nevíte nic o vstupním dokumentu" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "Tento profil je urÄen pro Å™adu SONY PSR. modely 500/505/600/700 atd." @@ -492,62 +492,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Tento profil je urÄen pro SONY PSR 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Tento profil je urÄen pro SONY PSR 900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Tento profil je urÄený pro Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Tento profil je urÄený pro knihy Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Tento profil je urÄený pro Hanlin V3 a jeho klony." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Tento profil je urÄen pro Hanlin V5 a jeho klony." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Tento profil je urÄený pro Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Tento profil je urÄen pro Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Tento profil je urÄený pro Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Tento profil je urÄen pro Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Tento profil je urÄen pro Irex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Tento profil je urÄený pro IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Tento profil je urÄen pro B&N Nook." @@ -565,28 +565,28 @@ msgstr "" "chcete vytvoÅ™it dokument urÄený ke Ätení na poÄítaÄi nebo na vetším rozpÄ›tí " "zařízení." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "PÅ™ipraveno pro iPad a podobná zařízení s rozliÅ¡ením 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" -msgstr "" +msgstr "UrÄeno pro tablety, nemÄ›ní velikost obrázků." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Tento profil je pÅ™ipraven pro Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Tento profil je urÄen pro SONY PSR 300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Tento profil je urÄen pro 5\" Jetbook" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -594,11 +594,15 @@ msgstr "" "Tento profil je urÄený pro zařízení SONY PRS. 500/505/700 atd. pro Ätení na " "šířku. Nejvíce užiteÄné pro Ätení komiksu." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Tento profil je urÄený pro Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Tento profil je urÄen pro B&N Nook Color." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Tento profil je urÄený pro Sanda Bambook." @@ -673,7 +677,7 @@ msgstr "Deaktivovat modul podle jména" msgid "Communicate with Android phones." msgstr "Komunikace s telefony Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -681,7 +685,7 @@ msgstr "" "seznam adresářů oddÄ›lený Äárkami k odeslání knih na zařízení. První který " "existuje pude použit." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Komunikovat s telefony serie S60." @@ -702,6 +706,8 @@ msgid "" "Cannot copy books directly from iDevice. Drag from iTunes Library to " "desktop, then add to calibre's Library window." msgstr "" +"Nelze kopírovat knihy přímo z iDevice. PÅ™etáhnÄ›te je z iTunes Library na " +"plochu a poté je pÅ™idejte do Calibre do okna Library." #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:260 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:263 @@ -756,18 +762,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Zprávy" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Katalog" @@ -793,6 +799,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Komunikuje se ÄteÄkou Cybook Gen 3 / Opus." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Spojit se s Cybook Orizon eBook" + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Komunikace s zařízením EB600." @@ -805,6 +815,10 @@ msgstr "Spojit se s Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Spojit se s PocketBook 301" +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Komunikovat se ÄteÄkou PocketBook 602." + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -824,7 +838,7 @@ msgstr "Spojit se s Sigmatek eBook reader" #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:16 #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:32 msgid "Use an arbitrary folder as a device." -msgstr "" +msgstr "Používat libovolné složky jako zařízení." #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:28 #: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 @@ -848,6 +862,8 @@ msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used." msgstr "" +"Čárkami oddÄ›lený seznam adresářů, do kterých se mají odeslat knihy na " +"zařízení. Použit bude první existující." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:22 msgid "Communicate with the Hanvon N520 eBook reader." @@ -863,8 +879,8 @@ msgstr "Spojit se s SpringDesign Alex eBook reader." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -937,6 +953,8 @@ msgid "" "The Kobo supports only one collection currently: the \"Im_Reading\" list. " "Create a tag called \"Im_Reading\" " msgstr "" +"ÄŒteÄka Kobo podporuje momentálnÄ› pouze jednu kolekci: \"Im_Reading\" seznam. " +"VytvoÅ™te tak nazvaný \"Im_Reading\" " #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:65 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:68 @@ -951,30 +969,32 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Získávám seynam knih na zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Odebírám knihy ze seznamu metadat v zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "PÅ™idávám knihy do seznamu metadat v zařízení..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Neimplementováno" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." msgstr "" +"\".kobo\" soubory neexistují na zařízení jako knihy, jsou to řádky v sqlite " +"databázi. V souÄasnosti nemohou být exportovány ani prohlíženy." #: /home/kovid/work/calibre/src/calibre/devices/misc.py:17 msgid "Communicate with the Palm Pre" @@ -990,7 +1010,7 @@ msgstr "Spojit se s Sweex MM300" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:79 msgid "Communicate with the Digma Q600" -msgstr "" +msgstr "Komunikovat se ÄteÄkou Digma Q600" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:88 msgid "Communicate with the Kogan" @@ -1009,6 +1029,10 @@ msgstr "Spojit se s VelocityMicro" msgid "Communicate with the GM2000" msgstr "Spojit se s GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Komunikovat s Acer Lumiread" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Komunikuje s tabletem Nokia 770." @@ -1029,6 +1053,14 @@ msgstr "Nook" msgid "Communicate with the Nook eBook reader." msgstr "Komunikuje se ÄteÄkou Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Komunikovat se ÄteÄkou knih Nook Color" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Komunikuje se ÄteÄkou Nuut2." @@ -1111,6 +1143,8 @@ msgid "" "The main memory of %s is read only. This usually happens because of file " "system errors." msgstr "" +"Hlavní paměť %s je jen pro Ätení. Toto se obvykle stává, pokud dojde k chybÄ› " +"souborového systému." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:815 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 @@ -1153,7 +1187,7 @@ msgstr "Číst metadata ze souborů zařízení" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:45 msgid "Use author sort instead of author" -msgstr "" +msgstr "Použít třídÄ›ní autora místo autora" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:47 msgid "Template to control how books are saved" @@ -1619,6 +1653,10 @@ msgid "" "\"original\" (the default) does not change justification in the source file. " "Note that only some output formats support justification." msgstr "" +"ZmÄ›na zarovnání textu. Hodnota \"left\" zarovná vÅ¡echny texty vlevo (tj. " +"nevycentrovaný). Hodnota \"justify\", pÅ™evede vÅ¡echny texty na stÅ™ed. " +"Hodnota \"original\" (výchozí) nezmÄ›ní zarovnání ve zdrojovém souboru. " +"VÅ¡imnÄ›te si, že jen nÄ›které výstupní formáty podporují zarovnání textu." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:320 msgid "" @@ -1676,6 +1714,8 @@ 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 "" +"Pokusit se detekovat a opravit vynucené zakonÄení řádků a ostatní problémy " +"ve zdrojovém souboru. Toto může výsledek zhorÅ¡it, používat opatrnÄ›." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:371 msgid "" @@ -1685,12 +1725,19 @@ msgid "" "books with hard line breaks, but should be reduced if the line length is " "variable." msgstr "" +"Měřítko použité k urÄení délky, pÅ™i které se rozbalí řádek, pokud je povolen " +"preproces. Platné hodnoty jsou desetinná Äísla mezi 0 a 1. Výchozí je 0.40, " +"hned pod mediánem délky řádků. Toto typicky rozbalí knihy s pevným zalomením " +"řádku, ale poÄet řádků může být omezena, pokud je délka řádku promÄ›nlivá." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 msgid "" "Convert plain quotes, dashes and ellipsis to their typographically correct " "equivalents. For details, see http://daringfireball.net/projects/smartypants" msgstr "" +"PÅ™evést prosté citace, pomlÄky a elipsy do jejich typograficky správných " +"ekvivalentů. Pro podrobnosti pÅ™ejdÄ›te na " +"http://daringfireball.net/projects/smartypants" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:388 msgid "Use a regular expression to try and remove the header." @@ -1725,6 +1772,11 @@ msgid "" "by Chinese and Japanese for instance) the representation used by the largest " "number of people will be used (Chinese in the previous example)." msgstr "" +"PÅ™eložit unicode znaky do ASCII. Používat opatrnÄ›, protože nahradí znaky " +"Unicode za znaky ASCII. Například nahradí \"%s\" s \"Michail Gorbachiov\". " +"Také si vÅ¡imnÄ›te, že v případech, kdy existuje více zastoupení znaku " +"(například znaky sdílené ÄínÅ¡tinou a japonÅ¡tinou) bude použité to " +"nejpoužívanÄ›jší (ÄínÅ¡tina v pÅ™edchozím příkladÄ›)." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 msgid "" @@ -1735,6 +1787,11 @@ msgid "" "corresponding pair of normal characters. This option will preserve them " "instead." msgstr "" +"Zachovat ligatury přítomné ve vstupním dokumentu. Ligatura je speciální " +"vyrenderování znaků jako napÅ™. ff, fi, fl atd. V základních fontech nemá " +"vÄ›tÅ¡ina ÄteÄek podporu ligatur. Ve výchozím nastavení calibre pÅ™evede " +"ligatury do odpovídajícího páru znaků. Tato volba je ponechá v původním " +"tvaru." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 @@ -1844,7 +1901,7 @@ msgstr "ePub Fixer" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:18 msgid "Workaround epubcheck bugs" -msgstr "" +msgstr "Obejít epubcheck chyby" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/epubcheck.py:22 msgid "" @@ -1853,6 +1910,9 @@ msgid "" "detect these and replace them with constructs that epubcheck likes. This may " "cause significant changes to your epub, complain to the epubcheck project." msgstr "" +"Obejití chyb v poslední verzi epubchecku. epubcheck hlásí mnoho chyb, které " +"nejsou ve skuteÄnosti chyby. epub-fix se pokusí je najít a nahradit je " +"konstrukcí, kterou epubcheck rozumí. Toto může způsobit výrazné zmÄ›ny epub." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:21 msgid "" @@ -1864,6 +1924,14 @@ msgid "" "By default, no fixing is done and messages are printed out for each error " "detected. Use the options to control which errors are automatically fixed." msgstr "" +"%prog [options] file.epub\n" +"\n" +"Opravit běžné problémy v souborech EPUB, které mohou způsobit, že budou " +"zamítnuty Å¡patnÄ› navrženými vydavatelskými službami.\n" +"\n" +"Ve výchozím nastavení není provedena oprava a pÅ™i každé zjiÅ¡tÄ›né chybÄ› se " +"zobrazí zpráva. Využijte volby, abyste ovlivnili, které chyby budou " +"automaticky opraveny." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/main.py:52 msgid "You must specify an epub file" @@ -1871,17 +1939,19 @@ msgstr "Musíte specifikovat epub soubor" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:17 msgid "Fix unmanifested files" -msgstr "" +msgstr "Opravit soubory bez manifestu" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:21 msgid "" "Fix unmanifested files. epub-fix can either add them to the manifest or " "delete them as specified by the delete unmanifested option." msgstr "" +"Opravit soubory bez manifestu. epub-fix je může pÅ™idat do manifextu, anebo " +"je smazat, podle stavu volby smazat soubory bez manifestu." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/unmanifested.py:32 msgid "Delete unmanifested files instead of adding them to the manifest" -msgstr "" +msgstr "Smazat soubory bez manifestu, než je pÅ™idat do manifestu." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:56 msgid "" @@ -1911,6 +1981,9 @@ msgid "" "most EPUB readers cannot handle large file sizes. The default of %defaultKB " "is the size required for Adobe Digital Editions." msgstr "" +"RozdÄ›lit vÅ¡echny HTML soubory vÄ›tší než tato velikost (v KB). Je to " +"nezbytné, protože vÄ›tÅ¡ina EPUB ÄteÄek neumí pracovat s vÄ›tšími soubory. " +"Výchozí hodnota %defaultKB je požadovaná velikost pro Adobe Digital Editions." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:80 msgid "" @@ -1918,6 +1991,8 @@ msgid "" "default cover is generated with the title, authors, etc. This option " "disables the generation of this cover." msgstr "" +"Pokud vstupní soubor nemá obálku, je vygenerovaná výchozí s názvem, autorem " +"atd. Tato volba zablokuje generování této obálky." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:86 msgid "" @@ -1939,6 +2014,11 @@ msgid "" "and bottom of the image, but the image will never be distorted. Without this " "option the image may be slightly distorted, but there will be no borders." msgstr "" +"PÅ™i použití obálky ve formátu SVG tato volba způsobí, že obálka pokryje " +"dostupné oblasti obrazovky, ale zachová pomÄ›r stran (pomÄ›r šířky k výšce). " +"To znamená, že mohou být vidÄ›t bílé okraje po stranách nebo v horní a dolní " +"Äásti obrazovky, ale obraz již nikdy nebude zkÅ™ivený. Bez této volby může " +"být obraz mírnÄ› zkÅ™ivený, ale nebudou vidÄ›t žádné okraje." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:170 #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:203 @@ -1969,12 +2049,14 @@ msgid "" "experimental. It can cause conversion to fail. It can also produce " "unexpected output." msgstr "" +"Pokusit se zmÄ›nit kapitoly na individuální sekce. VAROVÃNÃ: Tato volba je " +"experimentální. Může skonÄit chybou. Může také produkovat neoÄekávaný výstup." #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:249 msgid "" "Traverse links in HTML files breadth first. Normally, they are traversed " "depth first." -msgstr "" +msgstr "Procházet HTML linky do šířky. NormálnÄ› jsou procházeny do hloubky." #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:256 msgid "" @@ -1982,6 +2064,8 @@ msgid "" "negative. 0 implies that no links in the root HTML file are followed. " "Default is %default." msgstr "" +"Nejvyšší úroveň rekurze pÅ™i průchodu HTML linků. Musí být nezáporné. 0 " +"způsobí zákaz průchodu linků. Výchozí je %default." #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:265 msgid "" @@ -1990,34 +2074,34 @@ msgid "" "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:273 -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 "" +"BěžnÄ› tento plugin pÅ™eskupí vÅ¡echny výstupní soubory do standardní " +"hierarchie složek. Použijte tuto volbu pouze, pokud víte, co dÄ›láte ;) Může " +"to dopadnout různými boÄními efekty ve zbytku konverzního procesu." #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" -msgstr "" +msgstr "CSS soubor používaný pro výstup namísto výchozího souboru" #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:36 msgid "" "Template used for generation of the html index file instead of the default " "file" -msgstr "" +msgstr "Å ablona použitá ke generování html indexu místo výchozího souboru" #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:39 msgid "" "Template used for the generation of the html contents of the book instead of " "the default file" msgstr "" +"Å ablona použitá ke generování html obsahu knihy místo výchozího souboru" #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:42 msgid "" "Extract the contents of the generated ZIP file to the specified directory. " "WARNING: The contents of the directory will be deleted." msgstr "" +"Extrahovat obsah generovaného ZIP souboru do specifikovaného adresáře. " +"VAROVÃNÃ: Obsah adresáře bude smazán." #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." @@ -2155,7 +2239,7 @@ msgid "Path to output file" msgstr "Cesta k výstupnímu souboru" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Zvýšit množství vypisovaných informací" @@ -2266,7 +2350,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:104 msgid "Add extra spacing below the header. Default is %default pt." -msgstr "" +msgstr "PÅ™idat extra místo pod hlaviÄkou. Výchozí je %default pt." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:107 msgid "" @@ -2313,6 +2397,8 @@ msgid "" "Extract common e-book formats from archives (zip/rar) files. Also try to " "autodetect if they are actually cbz/cbr files." msgstr "" +"Rozbalit běžné e-book formáty z archivů (zip/rar). Také se pokusit " +"rozpoznat, zda se opravdu jedná o cbz/cbr soubory." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:114 msgid "TEMPLATE ERROR" @@ -2383,7 +2469,7 @@ msgstr "Komentáře" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Tagy" @@ -2461,16 +2547,20 @@ 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 "" +"Verze názvu užitá pro třídÄ›ní. Pokud není vybrána a název je urÄen, bude " +"automaticky vygenerována z názvu." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:48 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 "" +"ŘetÄ›zec, který se používá pÅ™i Å™azení podle autora. Pokud není uveden, ale " +"autor uveden je, bude automaticky vygenerován z jména autora." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:52 msgid "Set the cover to the specified file." -msgstr "" +msgstr "Nastavit obálku specifikovaného souboru." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:58 msgid "Set the book category." @@ -2488,7 +2578,7 @@ msgstr "Získat obálku z ebooku a uložit ji jako urÄený soubor." msgid "" "Specify the name of an OPF file. The metadata will be written to the OPF " "file." -msgstr "" +msgstr "Zadat název souboru OPF. Metadata budou zapsány do souboru OPF." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:83 msgid "" @@ -2529,6 +2619,7 @@ msgid "No cover found" msgstr "Obálka nenalezena" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Stažení obalu" @@ -2596,19 +2687,19 @@ msgstr "popis/recenze" msgid "Download %s from %s" msgstr "Stáhnout %s z %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "PÅ™evést komentáře stažené z %s do prostého textu" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Stáhnout metadata z Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Stáhnout metadata z isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2616,15 +2707,15 @@ msgstr "" "K použití isbndb.com se musíte zaregistrovat %súÄet zdarma%s a vložit váš " "přístupový kód níže." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Stáhnout sociální metadata z amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" -msgstr "" +msgstr "Stáhnout sérii/tagy/hodnocení z librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2637,24 +2728,34 @@ msgid "" "isbndb.com.\n" "\n" msgstr "" +"\n" +"%prog [options] key\n" +"\n" +"Získat metadata pro knihy z isndb.com. Můžete zadat buÄ ISBN ID\n" +"knihy nebo její název a autora. Pokud zadáte název knihy a autora,\n" +"potom může být nalezena více než jedna kniha.\n" +"\n" +"klÃ­Ä je klÃ­Ä k úÄtu, který vygenerujete po pÅ™ihlášení k úÄtu na isbndb.com.\n" +"\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "ISBN kód knihy, pro kterou si pÅ™ejete získat metadata." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "Auto hledané knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "Název hledané knihy." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "Vydavatel hledané knihy" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " se nepodaÅ™ilo nalézt." @@ -2666,9 +2767,30 @@ msgid "" "Fetch a cover image/social metadata for the book identified by ISBN from " "LibraryThing.com\n" msgstr "" +"\n" +"%prog [volby] ISBN\n" +"\n" +"Stáhnout obálku/metadata pro knihu identifikovanou podle ISBN z " +"LibraryThing.com\n" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Stažení metadat z francouzského webu Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Stažení obalů z francouzského webu Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "VyprÅ¡el Äasový limit. Zkuste dotaz pozdÄ›ji." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "PÅ™i stahování obalu z Nicebooks doÅ¡lo k chybÄ›" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Obálka" @@ -2678,7 +2800,7 @@ msgstr "Upravit obrázky aby vyhovovali velikostním omezení Palm zařízení." #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 msgid "When present, use author sort field as author." -msgstr "" +msgstr "Když je přítomno, použije pole pro třídÄ›ní dle autora jako autora." #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:30 msgid "" @@ -2694,11 +2816,11 @@ msgstr "Název pro vygenerovaný obsah." #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 msgid "Disable compression of the file contents." -msgstr "" +msgstr "Zakázat kompresi obsahu souboru." #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:40 msgid "Tag marking book to be filed with Personal Docs" -msgstr "" +msgstr "Doplnit do oznaÄených knih Personal Docs" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:107 msgid "All articles" @@ -2706,72 +2828,72 @@ msgstr "VÅ¡echny Älánky" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." -msgstr "" +msgstr "Toto je kniha Amazon Topaz. Ta nemůže být zpracována." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Titulní stránka" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Obsah" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Rejstřík" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Slovník pojmů" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "PdÄ›kování" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Tiráž" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Autorská práva" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "VÄ›nování" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Doslov" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "PÅ™edmluva" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Seznam Ilustrací" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Seznam tabulek" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Poznámky" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Úvod" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Hlavní text" @@ -2779,18 +2901,18 @@ msgstr "Hlavní text" msgid "%s format books are not supported" msgstr "Knihy ve formátu %s nejsou podporovány." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Kniha %s z %s" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 msgid "HTML TOC generation options." -msgstr "" +msgstr "Volby generátoru obsahu HTML" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Hodnocení" @@ -2812,6 +2934,8 @@ msgstr "OPF verze pro generování. Výchozí je %default." msgid "" "Generate an Adobe \"page-map\" file if pagination information is available." msgstr "" +"Generovat Adobe \"page-map\" soubor, pokud jsou informace o stránkování k " +"dispozici." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 msgid "Footnotes" @@ -2821,15 +2945,17 @@ msgstr "Poznámky pod Äarou" msgid "Sidebar" msgstr "Postraní panel" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" "Normally calibre treats blank lines as paragraph markers. With this option " "it will assume that every line represents a paragraph instead." msgstr "" +"Calibre běžnÄ› Å™eší prázdné řádky jako ukonÄení odstavců. S touto volbou se " +"bude pÅ™edpokládat, že každý řádek je odstavec." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -2838,6 +2964,10 @@ msgid "" "spaces) represents a paragraph. Paragraphs end when the next line that " "starts with an indent is reached." msgstr "" +"Calibre běžnÄ› Å™eší prázdné řádky jako ukonÄení odstavců. S touto volbou se " +"bude pÅ™edpokládat, že každý řádek zaÄínající odrážkou (tabulátor, nebo 2+ " +"mezery) je odstavec. Odstavec konÄí, když je nalezen řádek zaÄínající " +"odrážkou." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 msgid "Format to use inside the pdb container. Choices are:" @@ -2848,6 +2978,8 @@ msgid "" "Specify the character encoding of the output document. The default is " "cp1252. Note: This option is not honored by all formats." msgstr "" +"UrÄete kódování znaků výstupního dokumentu. Výchozí hodnota je CP1252. " +"Poznámka: Tato možnost není volitelná u vÅ¡ech formátů." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 msgid "Do not extract images from the document" @@ -2859,6 +2991,9 @@ msgid "" "Valid values are a decimal between 0 and 1. The default is 0.45, just below " "the median line length." msgstr "" +"Měřítko použité k urÄení délky, pÅ™i které se řádek rozbalí. Platné hodnoty " +"jsou desetinná Äísla mezi 0 a 1. Výchozí je 0.45, hned pod mediánem délky " +"řádku." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 msgid "Use the new PDF conversion engine." @@ -2875,6 +3010,14 @@ msgid "" "\n" "Manipulate a PDF.\n" msgstr "" +"příkaz...\n" +"\n" +"příkaz může být jeden z následujících:\n" +"[%%commands]\n" +"\n" +"Použijte %prog příkaz --help pro získání více informací o příkazu\n" +"\n" +"MÄ›nit PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 msgid "" @@ -2882,6 +3025,9 @@ msgid "" "\n" "Crop a PDF file.\n" msgstr "" +"[options] file.pdf\n" +"\n" +"OÅ™iznout PDF soubor.\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 @@ -2898,25 +3044,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 "PoÄet pixelů k oříznutí zleva x (výchozí je %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 "PoÄet pixelů k oříznutí zleva y (výchozí je %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 "PoÄet pixelů k oříznutí zprava x (výchozí je %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 "PoÄet pixelů k oříznutí zprava y (výchozí je %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 "" +"Soubor vytvoÅ™ený pomocí ghostscriptu, který umožňuje každé stránce, aby byla " +"individuálnÄ› oříznuta `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:" @@ -2938,6 +3087,9 @@ msgid "" "\n" "Decrypt a PDF.\n" msgstr "" +"[options] file.pdf heslo\n" +"\n" +"Dekryptovat PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 msgid "Decrypt Options:" @@ -2949,6 +3101,9 @@ msgid "" "\n" "Encrypt a PDF.\n" msgstr "" +"[options] file.pdf heslo\n" +"\n" +"Zakryptovat PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 msgid "Encrypt Options:" @@ -2960,6 +3115,9 @@ msgid "" "\n" "Get info about a PDF.\n" msgstr "" +"file.pdf ...\n" +"\n" +"Získat informace o PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 @@ -2995,6 +3153,11 @@ msgid "" "\n" "Merges individual PDFs.\n" msgstr "" +"[options] file1.pdf file2.pdf ...\n" +"\n" +"Metadata se použijí z prvního PDF souboru.\n" +"\n" +"Spojí individuální PDF soubory.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 msgid "Merge Options:" @@ -3006,10 +3169,13 @@ msgid "" "\n" "Reverse a PDF.\n" msgstr "" +"[options] file.pdf\n" +"\n" +"Reverse a PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 msgid "Reverse Options:" -msgstr "" +msgstr "Reverzní volby:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 msgid "" @@ -3017,6 +3183,9 @@ msgid "" "\n" "Rotate pages of a PDF clockwise.\n" msgstr "" +"file.pdf stupnÄ›\n" +"\n" +"OtoÄit PDF soubor ve smÄ›ru hodinových ruÄiÄek.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 msgid "Rotate Options:" @@ -3036,6 +3205,17 @@ msgid "" "\n" "Split a PDF.\n" msgstr "" +"\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" +"RozdÄ›lit PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Split Options:" @@ -3046,6 +3226,8 @@ msgid "" "The unit of measure. Default is inch. Choices are %s Note: This does not " "override the unit for margins!" msgstr "" +"Jednotka měření. Výchozí je palec. Volby jsou %s. Poznámka: Toto nepÅ™episuje " +"jednotku pro okraje." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 msgid "" @@ -3060,6 +3242,8 @@ 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 "" +"Výchozí velikost pro dokumenty. Použitá forma je výska x šířka. `123x321` k " +"urÄení výšky a šířky. Toto pÅ™epíše vÅ¡echny zvolené velikosti papíru." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 msgid "The orientation of the page. Default is portrait. Choices are %s" @@ -3070,6 +3254,8 @@ msgid "" "Preserve the aspect ratio of the cover, instead of stretching it to fill the " "ull first page of the generated pdf." msgstr "" +"Zachovat pomÄ›r stran obálky, neroztahovat na celou první stránku vytvoÅ™eného " +"pdf." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" @@ -3083,12 +3269,15 @@ msgid "" msgstr "" "UrÄete kódování znaků výstupního dokumentu. Výchozí hodnota je CP1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" "%s" msgstr "" +"Tento RTF soubor používáfunkce, které calibre nepodporuje. Konvertujte jej " +"na HTML a zkuste to znovu.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:25 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -3104,23 +3293,32 @@ msgid "" "the space after and will exceed the specified value. Also, there is a " "minimum of 25 characters. Use 0 to disable line splitting." msgstr "" +"Maximální poÄet znaků na řádek. RozdÄ›lení bude provedeno v první mezeÅ™e pÅ™ed " +"stanovenou hodnotu. Pokud není nalezena mezera, bude rozdÄ›leno až v další " +"mezeÅ™e a pÅ™ekroÄí tak stanovenou hodnotu. Minimum je 25 znaků. Použitím " +"hodnoty 0 lze rozdÄ›lení řádku vypnout." #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:36 msgid "" "Specify whether or not to insert an empty line between two paragraphs." msgstr "" +"RozhodnÄ›te, zda vkládat, nebo nevkládat prázdný řádek mezi dva odstavce." #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:40 msgid "" "Specify whether or not to insert two space characters to indent the first " "line of each paragraph." msgstr "" +"RozhodnÄ›te, zda vkládat, nebo nevkládat dvÄ› mezery na první řádek každého " +"odstavce." #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:44 msgid "" "Specify whether or not to hide the chapter title for each chapter. Useful " "for image-only output (eg. comics)." msgstr "" +"RozhodnÄ›te, zda skrývat, nebo neskrývat název kapitoly pro každou kapitolu. " +"Použitelné pro image-only výstup, tj. komixy." #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:122 msgid "Start Page" @@ -3129,7 +3327,7 @@ msgstr "Startovací stránka" #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:132 #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:134 msgid "Cover Pages" -msgstr "" +msgstr "Stránky s obálkami" #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:147 #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:150 @@ -3150,12 +3348,16 @@ msgid "" "Normally extra spaces are condensed into a single space. With this option " "all spaces will be displayed." msgstr "" +"BěžnÄ› jsou mezery navíc nahrazeny pouze jednou. S touto volbou budou " +"zobrazeny vÅ¡echny." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:37 msgid "" "Run the text input through the markdown pre-processor. To learn more about " "markdown see" msgstr "" +"Spustit textový vstup pÅ™es markdown preprocesor. Pro zjiÅ¡tÄ›ní více informací " +"o markdownu prohlédnÄ›te" #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:40 msgid "Do not insert a Table of Contents into the output text." @@ -3167,6 +3369,9 @@ 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 "" +"Typ nového řádku. Volby jsou %s. Výchozí je 'system'. Použijte 'old_mac' pro " +"kompatibilitu s Mac OS 9 a starší. Pro Mac OS X použijte 'unix'. 'system' " +"použije nastavení pro souÄasný OS." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 msgid "" @@ -3181,6 +3386,8 @@ 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 "" +"VynuÅ¥ rozdÄ›lení podle maximální délky řádku když není místo. Dovoluje, aby " +"maximální délka řádku byla pod minimem" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Send file to storage card instead of main memory by default" @@ -3200,11 +3407,11 @@ msgstr "Upozornit pokud je dostupná nová verze" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:75 msgid "Use Roman numerals for series number" -msgstr "Äíslování knih v sérii římskými Äíslicemi" +msgstr "Používat římské Äíslice pro Äíslování sérií" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:77 msgid "Sort tags list by name, popularity, or rating" -msgstr "" +msgstr "SeÅ™adit tagy podle jména, popularity, nebo hodnocení" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:79 msgid "Number of covers to show in the cover browsing mode" @@ -3280,7 +3487,7 @@ msgstr "Omezit maximální poÄet jobů na poÄet CPU" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129 msgid "tag browser categories not to display" -msgstr "" +msgstr "kategorie, která se nebude zobrazovat" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:131 msgid "The layout of the user interface" @@ -3288,14 +3495,14 @@ msgstr "Rozvržení uživatelského rozhraní" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 msgid "Show the average rating per item indication in the tag browser" -msgstr "" +msgstr "Zobrazit průmÄ›rné hodnocení na položku v prohlížeÄi tagů" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:135 msgid "Disable UI animations" msgstr "Zakázat UI animace" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Kopírováno" @@ -3307,7 +3514,7 @@ msgstr "Kopírovat" msgid "Copy to Clipboard" msgstr "&Kopírovat do schránky" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Zvol soubory" @@ -3361,89 +3568,89 @@ msgstr "Kolik prázdných knih?" msgid "How many empty books should be added?" msgstr "Kolik prázdných knih má být pÅ™idáno?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Odesílám knihy do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" -msgstr "" +msgstr "Topaz knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "TXT knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Komiksy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Archívy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Podporované knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "SlouÄeny nÄ›které knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Byly nalezeny nÄ›které duplicity a byly slouÄeny do tÄ›chto existujících knih:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Chyba pÅ™i Ätení metadat" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" -msgstr "" +msgstr "NepodaÅ™ilo se pÅ™eÄíst metadata z následujících" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "PÅ™idat do knihovny" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3451,13 +3658,13 @@ msgstr "PÅ™idat do knihovny" msgid "No book selected" msgstr "Není oznaÄena žádná kniha" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "Následující knihy jsou virtuální a nemohou být pÅ™idány do calibre knihovny:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Žádné knihy nenalezeny" @@ -3470,9 +3677,9 @@ msgid "Add books to your calibre library from the connected device" msgstr "PÅ™idat knihy do Vaší calibre knihovny z pÅ™ipojeného zařízení" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" -msgstr "" +msgstr "Stáhnout anotace (experimentální)" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:236 @@ -3482,7 +3689,7 @@ msgstr "Používat pouze knihovnu" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:237 msgid "User annotations generated from main library only" -msgstr "" +msgstr "Uživatelské anotace generované jen z hlavní knihovny" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:30 @@ -3498,11 +3705,11 @@ msgstr "Nejsou oznaÄeny žádné knihy" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:65 msgid "No books selected to fetch annotations from" -msgstr "" +msgstr "Nevybrané žádné knihy pro naÄtení anotací" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:90 msgid "Merging user annotations into database" -msgstr "" +msgstr "SlouÄení uživatelských anotací (komentářů) do databáze" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:118 msgid "%s<br />Last Page Read: %d (%d%%)" @@ -3547,6 +3754,8 @@ msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" +"Žádné knihy ke katalogizaci\n" +"Zkontrolujte tagy, které se mají vynechat." #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:69 msgid "Catalog generated." @@ -3565,7 +3774,7 @@ msgid "Checking database integrity" msgstr "Kontrola integrity databáze" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3581,15 +3790,19 @@ msgstr "Byly zjiÅ¡tÄ›ny nÄ›jaké nesrovnalosti" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" +"Následující knihy mají formáty nebo obálky uvedené v databázi, které ve " +"skuteÄnosti nejsou k dispozici. Údaje pro formáty/obálky byly odstranÄ›ny. " +"MÄ›li byste je zkontrolovat ruÄnÄ›. Tato situace může nastat v případÄ›, pokud " +"budete manipulovat přímo se soubory ve složce knihovny." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d knih(y)" @@ -3672,6 +3885,8 @@ msgid "" "Failed to rename the library at %s. The most common cause for this is if one " "of the files in the library is open in another program." msgstr "" +"PÅ™ejmenování knihovny do %s selhalo. NejÄastÄ›jší příÄinou je další program " +"využívající tato data." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:296 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:53 @@ -3693,7 +3908,7 @@ msgstr "Stav zálohování" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:318 msgid "Book metadata files remaining to be written: %s" -msgstr "" +msgstr "Knižní metadata, která zbývá zapsat: %s" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:324 msgid "Backup metadata" @@ -3704,6 +3919,8 @@ msgid "" "Metadata will be backed up while calibre is running, at the rate of " "approximately 1 book per second." msgstr "" +"Metadata budou zazálohována bÄ›hem bÄ›hu calibre rychlostí zhruba 1kniha za " +"sekundu." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:344 msgid "" @@ -3712,6 +3929,10 @@ msgid "" "GUI. You can recover your database using the 'calibredb restore_database' " "command line function." msgstr "" +"Tento příkaz znovu sestaví VaÅ¡i Calibre databázi z informací uložených v " +"souborech OPF. <p>Tato funkce není v souÄasné dobÄ› k dispozici v GUI. " +"Databázi můžete obnovit použitím funkce 'calibredb restore_database' v " +"příkazovém řádku." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:358 msgid "No library found" @@ -3727,7 +3948,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Nedovolené" @@ -3759,6 +3980,10 @@ msgstr "Nemůžu pÅ™evást" msgid "Starting conversion of %d book(s)" msgstr "Zahajuji konverzi %d knih(y)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "Výstupní soubor je prázdný, pravdÄ›podobnÄ› proces pÅ™evodu havaroval" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Kopíruj do knihovny" @@ -3793,9 +4018,9 @@ msgid "Could not copy books: " msgstr "Nelze kopírovat knihy: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Neúspěšný" @@ -3813,7 +4038,7 @@ msgstr "Odstranit knihy" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:24 msgid "Remove selected books" -msgstr "Smazat vybrané knihy" +msgstr "Odstranit vybrané knihy" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:26 msgid "Remove files of a specific format from selected books.." @@ -3857,14 +4082,14 @@ msgid "Main memory" msgstr "Hlavní paměť" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Paměťová karta A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Paměťová karta B" @@ -3958,7 +4183,7 @@ msgstr "Upravit metadata" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:27 msgid "Merge book records" -msgstr "Spoj záznamy o knize" +msgstr "Spojit záznamy o knize" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:28 msgid "M" @@ -3990,11 +4215,11 @@ msgstr "Stáhni pouze sociální metadata" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:50 msgid "Merge into first selected book - delete others" -msgstr "SluÄ do první oznaÄené knihy - smaž ostatní" +msgstr "SlouÄit do první oznaÄené knihy - smazat ostatní" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:53 msgid "Merge into first selected book - keep others" -msgstr "SluÄ do první oznaÄené knihy - ponech ostatní" +msgstr "SlouÄit do první oznaÄené knihy - ponechat ostatní" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:74 msgid "Cannot download metadata" @@ -4009,7 +4234,7 @@ msgid "covers" msgstr "obálky" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadata" @@ -4038,6 +4263,10 @@ msgid "" "second and subsequently selected books will not be deleted or " "changed.<br><br>Please confirm you want to proceed." msgstr "" +"Knižní formáty a metadata z vybraných knih budou pÅ™idány do <b>první vybrané " +"knihy</b> (%s). ISBN <i>nebude</i> slouÄeno.<br><br> Druhá a následnÄ› " +"vybrané knihy nebudou odstranÄ›ny nebo zmÄ›nÄ›ny.<br><br>Prosím potvrÄte, že " +"chcete pokraÄovat." #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 msgid "" @@ -4049,6 +4278,12 @@ msgid "" "books will be permanently <b>deleted</b> from your computer.<br><br> Are " "you <b>sure</b> you want to proceed?" msgstr "" +"Knižní formáty a metadata z vybraných knih budou slouÄeny do <b>první " +"vybrané knihy</b> (%s). ISBN <i>nebude</ i>slouÄeno.<br><br>Po slouÄení " +"druhé a následnÄ› vybraných knih budou <b>odstranÄ›ny</b>. <br><br>VÅ¡echny " +"knižní formáty první vybrané knihy budou uloženy a případné duplicitní " +"formáty ve druhé a následnÄ› vybraných knihách budou trvale <b>odstranÄ›ny</b> " +"z VaÅ¡eho poÄítaÄe.<br><br> Jste si <b>jisti</b>, že chcete pokraÄovat?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 msgid "" @@ -4097,6 +4332,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Spustit uvítacího průvodce" @@ -4124,7 +4360,7 @@ msgstr "Ctrl+R" #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:24 msgid "Save single format to disk..." -msgstr "Uložit jediný formát na disk..." +msgstr "Uložit v jednotném formátu na disk ..." #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:40 msgid "S" @@ -4142,12 +4378,12 @@ msgstr "Uložit na disk v jednom adresáři" #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:69 msgid "Save only %s format to disk" -msgstr "Uložit jen formát %s na disk" +msgstr "Uložit pouze formát %s na disk" #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:72 msgid "Save only %s format to disk in a single directory" -msgstr "" +msgstr "Uložit pouze %s formát na disk do jednotného adresáře." #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:91 msgid "Cannot save to disk" @@ -4185,7 +4421,7 @@ msgid "Click the show details button to see which ones." msgstr "KliknÄ›te na tlaÄítko zobrazit detaily pro zjiÅ¡tÄ›ní které z nich." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Zobrazit podrobnosti o knize" @@ -4240,7 +4476,7 @@ msgstr "Knihy se stejnými tagy" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:54 msgid "Tweak ePub" -msgstr "" +msgstr "Vyladit ePub" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:16 msgid "Make small changes to ePub format books" @@ -4253,7 +4489,7 @@ msgstr "T" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:39 msgid "Cannot tweak ePub" -msgstr "" +msgstr "Nemohu vyladit ePub" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:40 msgid "No ePub available. First convert the book to ePub." @@ -4293,6 +4529,9 @@ msgid "" "started the process cannot be stopped until complete. Do you wish to " "continue?" msgstr "" +"Snažíte se otevřít %d knih. OtevÅ™ení tolika knih může být pomalé a má " +"negativní efekt na následné reakce poÄítaÄe. Jednou nastartované procesy " +"nemohou být zastaveny, dokud nedobÄ›hnou. Chcete pokraÄovat?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:118 msgid "Cannot open folder" @@ -4323,7 +4562,7 @@ msgid "The specified directory could not be processed." msgstr "Zadaný adresář nebylo možné zpracovat." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Žádné knihy" @@ -4340,6 +4579,8 @@ 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 "" +"Proces pÅ™idávající knihy se zÅ™ejmÄ› zasekl. Zkuste restartovat calibre a " +"pÅ™idat knihy v menších dávkách, dokud nenaleznete problémovou knihu." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:323 msgid "Duplicates found!" @@ -4429,6 +4670,14 @@ msgid "" "<p>Make sure that the folder you chose for your calibre library <b>is " "not</b> under the root folder you choose.</p>" msgstr "" +"<p>Calibre může automaticky vyhledávat knihy ve VaÅ¡em poÄítaÄi. Tyto knihy " +"budou poté <b>nakopírovány</b> do Calibre knihovny. Tento průvodce Vám " +"pomůže pÅ™izpůsobit vyhledávání a proces importu pro VaÅ¡i existující sbírku " +"knih.</p>\n" +"<p>Vyberte koÅ™enovou složku. Knihy budou vyhledávány pouze v rámci této " +"složky a vÅ¡ech podsložkách.</p>\n" +"<p>UjistÄ›te se, že složka kterou jste vybrali pro VaÅ¡i Calibre knihovnu " +"<b>není</b> pod koÅ™enovou složkou, kterou vybíráte.</p>" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 msgid "&Root folder:" @@ -4498,18 +4747,20 @@ msgstr "..." #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:72 msgid "Handle multiple files per book" -msgstr "" +msgstr "Pracovat s více soubory ke knize" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:73 msgid "" "&One book per folder, assumes every ebook file in a folder is the same book " "in a different format" msgstr "" +"&Jedna kniha na složku znamená, že každý ebook soubor ve složce je ta samá " +"kniha v jiném formátu" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:74 msgid "" "&Multiple books per folder, assumes every ebook file is a different book" -msgstr "" +msgstr "&Více knih ve složce znamené, že každý ebook soubor je různá kniha" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 @@ -4587,7 +4838,7 @@ msgstr "BibTeX volby" #: /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 "Možnosti specifické pro" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 @@ -4606,7 +4857,7 @@ msgstr "výstup" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4649,13 +4900,13 @@ msgstr "výstup" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Formulář" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 msgid "Bib file encoding:" -msgstr "" +msgstr "Kódování bib souborů." #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:43 @@ -4672,7 +4923,7 @@ msgstr "Konfigurace kódování (změňte pokud máte chyby):" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 msgid "strict" -msgstr "" +msgstr "přísný" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 msgid "replace" @@ -4688,11 +4939,11 @@ msgstr "nahraditbackslash" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 msgid "BibTeX entry type:" -msgstr "" +msgstr "BibTeX typ záznamu:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 msgid "mixed" -msgstr "" +msgstr "smíšený" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:97 msgid "misc" @@ -4708,7 +4959,7 @@ msgstr "VytvoÅ™it tag citace?" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:100 msgid "Expression to form the BibTeX citation tag:" -msgstr "" +msgstr "Výraz pro vytvoÅ™ení BibTeX citaÄní znaÄky:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:101 msgid "" @@ -4720,6 +4971,13 @@ msgid "" " wil be selected.\n" " -For time field, only the date will be used. " msgstr "" +"VysvÄ›tlení této Å¡ablony:\n" +" -Dostupná pole jsou 'author_sort', 'authors', 'id',\n" +" 'isbn','pubdate','publisher','series_index','series',\n" +" 'tags','timestamp','title','uuid'\n" +" -Pro typy seznamů, tj. autory a tagy, je oznaÄen\n" +" jen první prvek.\n" +" -Pro Äasové pole je použité jen datum. " #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" @@ -4729,23 +4987,23 @@ msgstr "CSV/XML volby" msgid "E-book options" msgstr "E-book volby" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "Tag 'Nezahrnovat tuto knihu':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" -msgstr "" +msgstr "'OznaÄit knihu jako pÅ™eÄtenou' tag" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" -msgstr "" +msgstr "Doplňující prefix tag pro poznámku:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" -msgstr "" +msgstr "Regulární výraz použitý k popsání tagů k vynechání žánrů:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -4753,39 +5011,47 @@ msgid "" "- A regex pattern of a single dot excludes all genre tags, generating no " "Genre Section" msgstr "" +"Tipy k regulárním výrazům:\n" +"- Výchozí regex - \\[.+\\] - vyluÄuje žánrové tagy z formy [tag], t.j. " +"[Amazon Freebie]\n" +"- Vzor regexpu . vyluÄuje vÅ¡echny tagy žánrů, negeneruje sekci žánrů" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" -msgstr "" +msgstr "Zahrň sekci Názvy" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" -msgstr "" +msgstr "Zahrň sekci Nedávno pÅ™idané" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Řadit Äísla jako text" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" -msgstr "" +msgstr "Zahrň sekci Série" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Tag pro přání" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" -msgstr "" +msgstr "Tab template pro catalog.ui" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 msgid "Bold" -msgstr "" +msgstr "TlustÄ›" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 msgid "Italic" -msgstr "" +msgstr "Italic" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 msgid "Underline" -msgstr "" +msgstr "Podtrženo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" @@ -4793,12 +5059,15 @@ msgid "" "in a previous conversion (if they exist) instead of using the defaults " "specified in the Preferences" msgstr "" +"Pro nastavení, které nemohou být nastaveny v tomto dialogu, použít hodnoty " +"uložené v pÅ™edchozí konverzi (pokud existují), místo použití výchozích " +"hodnot napsaných v Nastavení" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Hromadné PÅ™evedení" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Možnosti specifické pro výstupní formát." @@ -4867,7 +5136,7 @@ msgstr "ÄŒistíci &filtr" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:104 msgid "&Disable comic processing" -msgstr "" +msgstr "&Vypnout zpracování komixů" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:105 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:120 @@ -4889,7 +5158,7 @@ msgstr "Debuguj konverzní proces" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:56 msgid "Choose debug folder" -msgstr "" +msgstr "Zvolit ladicí složku" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 msgid "Invalid debug directory" @@ -4897,7 +5166,7 @@ msgstr "Neplatný debug adresář" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:59 msgid "Failed to create debug directory" -msgstr "" +msgstr "NepodaÅ™ilo se vytvoÅ™it ladící adresář" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:55 msgid "" @@ -4906,6 +5175,10 @@ msgid "" "understanding the conversion process and figuring out the correct values for " "conversion parameters like Table of Contents and Chapter Detection." msgstr "" +"Zvolte složku, do které budou ukládány ladící informace. Pokud zvolíte " +"složku, calibre do ní uloží mnoho ladících hlášek. Toto může být použito pÅ™i " +"pochopení konverzních procesů a nalezení správných hodnot pro konverzní " +"parametry jako Obsah a detekce kapitol." #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:59 msgid "" @@ -4913,6 +5186,9 @@ msgid "" "of the conversion process. This HTML can sometimes serve as a good starting " "point for hand editing a conversion." msgstr "" +"Proces ladÄ›ní výstupů průběžnÄ› generovaného HTML v různých fázích procesu " +"konverze. Toto HTML může nÄ›kdy sloužit jako dobrý výchozí bod pro ruÄní " +"editaci konverze." #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" @@ -4959,11 +5235,11 @@ msgstr "FB2 Výstup" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:34 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:52 msgid "&Inline TOC" -msgstr "" +msgstr "&Inline TOC" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:38 msgid "Sectionize Chapters (Use with care!)" -msgstr "" +msgstr "RozdÄ›lit sekce do kapitol. (Používat s citem!)" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 msgid "Font rescaling wizard" @@ -4997,7 +5273,7 @@ msgstr "&Základní velikost fontů:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 msgid "Font size &key:" -msgstr "" +msgstr "&KlÃ­Ä velikosti písma:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:115 @@ -5028,7 +5304,7 @@ msgstr "Velikost fontů: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:118 msgid " will map to size: " -msgstr "" +msgstr " se namapuje na velikost: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:119 msgid "0.0 pt" @@ -5040,7 +5316,7 @@ msgstr "Vzhled a chování" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 msgid "Control the look and feel of the output" -msgstr "" +msgstr "Zkontrolovat celkový vzhled výstupu" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:31 msgid "Original" @@ -5064,7 +5340,7 @@ msgstr "Základní &velikost písma:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid "Wizard to help you choose an appropriate font size key" -msgstr "" +msgstr "Průvodce, který vám pomůže vybrat vhodnou velikost písma" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "Line &height:" @@ -5080,7 +5356,7 @@ msgstr "Odstranit &mezery mezi odstavci" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "Indent size:" -msgstr "" +msgstr "Velikost odsazení:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:139 msgid "" @@ -5110,7 +5386,7 @@ msgstr "Extra &CSS" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:144 msgid "&Transliterate unicode characters to ASCII" -msgstr "" +msgstr "&PÅ™epsat unicode znaky do ASCII" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:145 msgid "Insert &blank line" @@ -5122,7 +5398,7 @@ msgstr "Zachovat &ligatury" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:147 msgid "Smarten &punctuation" -msgstr "" +msgstr "VylepÅ¡it &interpunkce" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" @@ -5134,19 +5410,19 @@ msgstr "Povolit automatické otáÄení Å¡irokých obrázků" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 msgid "&Wordspace:" -msgstr "" +msgstr "&Wordspace:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 msgid "Minimum para. &indent:" -msgstr "" +msgstr "Nejmenší para. &odrážka:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 msgid "Render &tables as images" -msgstr "" +msgstr "Vyrenderovat &tabulky jako obrázky" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 msgid "Text size multiplier for text in rendered tables:" -msgstr "" +msgstr "NásobiÄ velikosti textu pro vyrenderované tabulky:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 msgid "Add &header" @@ -5162,19 +5438,19 @@ msgstr "Formát hlaviÄky:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:132 msgid "&Embed fonts" -msgstr "" +msgstr "&Vložené fonty" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:133 msgid "&Serif font family:" -msgstr "" +msgstr "&Serif font family:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:134 msgid "S&ans-serif font family:" -msgstr "" +msgstr "S&ans-serif font family:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:135 msgid "&Monospaced font family:" -msgstr "" +msgstr "&Monospaced font family:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 @@ -5250,7 +5526,7 @@ msgid "Change the title of this book" msgstr "ZmÄ›nit název táto knihy" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Autor(Å™i) " @@ -5266,7 +5542,7 @@ msgid "" msgstr "Autor(Å™i) této knihy. Vícero autorů by mÄ›lo být oddÄ›leno Äárkami" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Vydavatel: " @@ -5277,7 +5553,7 @@ msgid "Ta&gs: " msgstr "Ta&gy: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5287,7 +5563,7 @@ msgstr "" "<br><br>Můžou to být libovolné slova nebo fráze, oddÄ›lené Äárkami." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5295,8 +5571,8 @@ msgstr "&Série:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5325,7 +5601,7 @@ msgstr "ZmÄ›nit velikost obrázků pro zařízení Palm" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 msgid "Use author &sort for author" -msgstr "" +msgstr "Použít třídÄ›ní dle autorů pro autora" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:75 msgid "Disable compression of the file contents" @@ -5333,7 +5609,7 @@ msgstr "Zakázat kompresi souboru" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:76 msgid "Do not add Table of Contents to book" -msgstr "" +msgstr "NepÅ™idávat Obsah do knihy" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:77 msgid "Kindle options" @@ -5341,11 +5617,11 @@ msgstr "Kindle volby" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:78 msgid "Periodical masthead font:" -msgstr "" +msgstr "Font pro tiráž v novinách:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:79 msgid "Personal Doc tag:" -msgstr "" +msgstr "Osobní Doc tag:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" @@ -5411,7 +5687,7 @@ msgstr "PDF Vstup" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:44 msgid "Line &Un-Wrapping Factor:" -msgstr "" +msgstr "Řádkový rozbalovací faktor:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:45 msgid "No &Images" @@ -5443,7 +5719,7 @@ msgstr "Nejsou dostupné žádné formáty" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:84 msgid "Cannot build regex using the GUI builder without a book." -msgstr "" +msgstr "Nemohu vytvoÅ™it regex pomocí GUI buildera bez knihy" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:103 msgid "Open book" @@ -5487,7 +5763,7 @@ msgstr "Vstupn&í formát:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:119 msgid "Use &saved conversion settings for individual books" -msgstr "" +msgstr "Použít uložené konverzní nastavení pro individuální knihy" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:14 msgid "SNB Output" @@ -5516,7 +5792,7 @@ 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 "" +msgstr "Vyladit detekci nadpisů kapitol a další struktury dokumentu." #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 msgid "Detect chapters at (XPath expression):" @@ -5576,33 +5852,36 @@ msgstr "Odstranit &záhlaví" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:86 msgid "Line &un-wrap factor during preprocess:" -msgstr "" +msgstr "Řádkový rozbalovací faktor bÄ›hem preprocesu:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:87 msgid "&Preprocess input file to possibly improve structure detection" msgstr "" +"&PÅ™edběžnÄ› zpracovat vstupní soubor pro případné zlepÅ¡ení struktury detekce" #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" "Contents" msgstr "" +"Tabulka\n" +"Obsahu" #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:18 msgid "Control the creation/conversion of the Table of Contents." -msgstr "" +msgstr "Nastavit vytvoÅ™ení/konverzi obsahu." #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 msgid "Level &1 TOC (XPath expression):" -msgstr "" +msgstr "Obsah úroveň 1 (XPath výraz):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 msgid "Level &2 TOC (XPath expression):" -msgstr "" +msgstr "Obsah úroveň 2 (XPath výraz):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:32 msgid "Level &3 TOC (XPath expression):" -msgstr "" +msgstr "Obsah úroveň 3 (XPath výraz):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:68 msgid "Do not add &detected chapters to the Table of Contents" @@ -5622,7 +5901,7 @@ msgstr "&Vždy použít automaticky generovaný obsah" #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:72 msgid "TOC &Filter:" -msgstr "" +msgstr "Filtr obsahu:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 msgid "TXT Input" @@ -5630,7 +5909,7 @@ msgstr "TXT vstup" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:54 msgid "Process using markdown" -msgstr "" +msgstr "Zpracuj pomocí markdown" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:55 msgid "" @@ -5638,10 +5917,13 @@ msgid "" "advanced formatting. To learn more visit <a " "href=\"http://daringfireball.net/projects/markdown\">markdown</a>." msgstr "" +"<p>Markdown je jednoduchý jazyk pro textové soubory, který umožňuje " +"pokroÄilé formátování. Pokud se chcete dozvÄ›dÄ›t více, navÅ¡tivte <a " +"href=\"http://daringfireball.net/projects/markdown\">markdown</a>." #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:56 msgid "Do not insert Table of Contents into output text when using markdown" -msgstr "" +msgstr "Nevkládat obsah do výstupního textu, pokud se používá markdown" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:57 msgid "Preserve &spaces" @@ -5653,7 +5935,7 @@ msgstr "TXT Výstup" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51 msgid "&Line ending style:" -msgstr "" +msgstr "Styl konce řádku" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:53 msgid "&Maximum line length:" @@ -5680,7 +5962,7 @@ msgstr "Použít průvodce pro tvorbu XPath výrazů" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 msgid "Match HTML &tags with tag name:" -msgstr "" +msgstr "Spojit HTML &tagz se jménem tagu:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 msgid "*" @@ -5785,7 +6067,7 @@ msgstr "Nehodnoceno" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:156 msgid "Set '%s' to today" -msgstr "" +msgstr "Nastavit '%s' na dnes" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:266 msgid " index:" @@ -5800,7 +6082,7 @@ msgid "Automatically number books" msgstr "Automaticky Äíslovat knihy" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Číslování zaÄíná " @@ -5816,97 +6098,103 @@ msgstr "tagy k pÅ™idání" msgid "tags to remove" msgstr "tagy k odstranÄ›ní" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Nejsou dostupné žádné detaily." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "Zařízení už není pÅ™ipojené" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Získat informace o zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Získat seznam knih v zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Získat anotace ze zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Odeslat metadata do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Odestat kolekci do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Odeslat %d knih do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Smazat knihy ze zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "PÅ™evzít knihy ze zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Zobrazit knihu v zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Nastavit výchozí nastavení pro odeslání do ÄteÄky" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Odeslat do hlavní pamÄ›ti" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Odeslat na pamÄ›tovou kartu A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Odeslat na pamÄ›tovou kartu B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Hlavní paměť" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" -msgstr "" +msgstr "Poslat specifický formát" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Odeslat a smazat z knihovny" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Odpojit zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Cyba komunikace se zařízením" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 -msgid "Select folder to open as device" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Žádné vhodné formáty" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 +msgid "Select folder to open as device" +msgstr "OznaÄit složku a otevřít jako zařízení" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Chyba komunikace se zařízením" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -5914,133 +6202,73 @@ msgstr "" "DoÄasná chyba komunikace se zařízením. Prosím odpojte a znovu pÅ™ipojte " "zařízení anebo restarujte poÄítaÄ." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Zařízení: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " nalezeno." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "vybrané k odeslání" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Vyberte formát k odeslání do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Žádné zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Nemohu odeslat: Není pÅ™ipojeno žádné zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Žádná karta" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Nemohu odeslat: Zařízení nemá pamÄ›tovou kartu." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "E-book:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "od" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Odeslat email" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Žádné vhodné formáty" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "Automaticky konvertovat knihy pÅ™ed emailovým odesláním?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Selhalo odeslání knih emailem" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Poslání následujících knih selhalo:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Odesláno emailem:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Zprávy:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "PÅ™iloženo je" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Odeslat zprávy do" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Automaticky zkonvertovat následující knihy, než se nahrají do zařízení?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Odeslat katalog do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Odesílám zprávy do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Odesílám knihy do zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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 "" +"NepodaÅ™ilo se nahrát následující knihy do zařízení, protože nebyly nalezeny " +"žádné vhodné formáty. PÅ™evést knihu(y) do formátu, které přístroj primárnÄ› " +"podporuje." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Na zařízení není volné místo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6071,7 +6299,7 @@ msgstr "Použít podadresáře" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:88 msgid "Use author sort for author" -msgstr "" +msgstr "Použít třídÄ›ní dle autora pro autora" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:90 msgid "Save &template:" @@ -6085,17 +6313,27 @@ msgstr "PÅ™idat knihy pomocí ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" +"<p>Zadat seznam ISBN do pole vlevo, každé na jeden řádek. Calibre " +"automaticky vytvoří položky pro knihy na základÄ› ISBN a stáhne pro nÄ› " +"metadata a obálky.</p>\n" +"<p>Jakékoliv neplatné ISBN v tomto seznamu bude ignorováno.</p>\n" +"<p>Můžete také zadat soubor, který bude pÅ™idán ke každému ISBN. Pokud toto " +"chcete, zadejte plnou cestu k souboru po <code>>></code>. Například:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Vložit ze schránky" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" -msgstr "" +msgstr "PÅ™izpůsobit obálku bez náhledu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" @@ -6120,7 +6358,7 @@ msgstr "VytvoÅ™it katalog pro {0} knih" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:76 msgid "Catalog &format:" -msgstr "" +msgstr "&Formát katalogu:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:77 msgid "" @@ -6150,12 +6388,13 @@ msgstr "Kopírovat do schránky" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:54 msgid "Names to ignore:" -msgstr "" +msgstr "Jména k ignorování:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:59 msgid "" "Enter comma-separated standard file name wildcards, such as synctoy*.dat" msgstr "" +"Vlož Äárkou oddÄ›lená jména souborů se zástupnými znaky, napÅ™. synctoy*.dat" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 msgid "Extensions to ignore" @@ -6166,6 +6405,7 @@ msgid "" "Enter comma-separated extensions without a leading dot. Used only in book " "folders" msgstr "" +"Vložte Äárkou oddÄ›lené přípony bez teÄky. Použité pouze ve složkách knih" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 msgid "Path from library" @@ -6173,7 +6413,7 @@ msgstr "Cesta z knihovny" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Jméno" @@ -6226,7 +6466,7 @@ msgid "No location selected" msgstr "Nevybráno žádné umístÄ›ní" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Å patné umístÄ›ní" @@ -6323,15 +6563,15 @@ msgstr "Smazat ze zařízení" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:34 msgid "Author sort" -msgstr "" +msgstr "TřídÄ›ní podle autora" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Neplatné jméno autora" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Jméno autora nemůže obsahovat znaky &." @@ -6345,7 +6585,7 @@ msgstr "SeÅ™adit dle autora" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:73 msgid "Sort by author sort" -msgstr "" +msgstr "Třídit podle autora" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:74 msgid "" @@ -6353,10 +6593,13 @@ msgid "" "author. Exactly how this value is automatically generated can be controlled " "via Preferences->Advanced->Tweaks" msgstr "" +"Vyresetovat vÅ¡echny hodnoty Å™azení autorů do hodnot automaticky generovaných " +"autorem. Jak pÅ™esnÄ› je tato hodnota automaticky generována lze ovládat zde: " +"Nastavení-> UpÅ™esnit-> VylepÅ¡ení" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:75 msgid "Recalculate all author sort values" -msgstr "" +msgstr "PÅ™epoÄítat hodnoty pro třídÄ›ní autorů" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 msgid "Author Sort" @@ -6409,6 +6652,10 @@ msgid "" "<a href=\"http://www.isbndb.com\">free account</a> and enter your access key " "below." msgstr "" +"<p>Calibre může najít metadata na dvou místech: <b>Google Books</b> a " +"<b>isbndb.com</b>. <p>Chcete-li používat isbndb.com, musíte se zdarma " +"zaregistrovat na webu <a href=\"http://www.isbndb.com\">isbndb.com</a> a " +"níže zadat svůj přístupový klíÄ." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 msgid "&Access Key:" @@ -6426,6 +6673,7 @@ msgstr "Shody" msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" +"Zvolit knihu, která nejvíce odpovídá VaÅ¡im kopiím z níže uvedeného seznamu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:96 msgid "Download &social metadata (tags/rating/etc.) for the selected book" @@ -6449,11 +6697,11 @@ msgstr "&Zastavit oznaÄenou úlohu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:51 msgid "Show job &details" -msgstr "Ukázat &detaily úlohy" +msgstr "Zobrazit &detaily úlohy" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:52 msgid "Stop &all non device jobs" -msgstr "" +msgstr "Zastavit &vÅ¡echny úlohy nesouvisející se zařízením" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:26 msgid "Title/Author" @@ -6476,58 +6724,62 @@ msgstr "Hledat?Nahradit" msgid "Working" msgstr "Pracuje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Malá písmena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Velká písmena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" -msgstr "" +msgstr "Velikost písma v nadpise" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" -msgstr "" +msgstr "Znaková shoda" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Regulární výraz" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Nahradit pole" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" -msgstr "" +msgstr "PÅ™edÅ™adit k poli" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" -msgstr "" +msgstr "PÅ™idat k poli" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Edituj metadata pro <b>%d knih</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Kniha %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " "your library before proceeding.<p>Search and replace in text fields using " "character matching or regular expressions. " msgstr "" +"<b>Použitím této funkce můžete zniÄit VaÅ¡i knihovnu.</b> ZmÄ›ny jsou trvalé. " +"Není žádné cesty zpÄ›t. DůraznÄ› se doporuÄuje zálohovat knihovnu pÅ™ed dalším " +"pokraÄováním.<p> Vyhledejte a nahraÄte v textových polích odpovídající znaky " +"nebo regulární výrazy. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6536,8 +6788,13 @@ msgid "" "checked, the search text must match exactly. If it is unchecked, the search " "text will match both upper- and lower-case letters" msgstr "" +"Ve znakovém módu je pole prohledáno na zadaný text. Text je nahrazen textem " +"pro náhradu, kdekoliv je v poli nalezeno. Když je náhrada dokonÄena, text " +"může být zmÄ›nÄ›n na velká, malá nebo \"title\" písmena. Pokud je zaÅ¡krtnuto " +"políÄko case sensitive, hledaný text se musí shodovat pÅ™esnÄ›. Pokud " +"zaÅ¡krtnuto není, text se vyhledá nezávisle na velikosti písma." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6552,272 +6809,305 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" -msgstr "" +msgstr "Musíte urÄit cíl, když je zdroj kompozitní pole" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Neplatné vyhledání/nahrazení" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "Jméno autora nemůže být prázdné. Kniha %s nezpracována" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "Název nemůže být prázdný. Kniha %s nezpracována" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Vzor pro hledání není platný: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" +"Aplikuji zmÄ›ny na %d knih.\n" +"Fáze {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Edituj metainformace" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 -msgid "A&utomatically set author sort" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 -msgid "Author s&ort: " -msgstr "" +msgid "A&utomatically set author sort" +msgstr "Automaticky nastavit Å™azení dle autora" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +msgid "Author s&ort: " +msgstr "TřídÄ›ní dle autora: " + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" +"UrÄuje, jak je autor této knihy zatřídÄ›n. Například Charles Dickens může být " +"třídÄ›n jako Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Hodnocení:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Hodnocení této knihy. 0-5 hvÄ›zdiÄek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Žádná zmÄ›na" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " hvÄ›zdy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "PÅ™idat tagy: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Otevřít Editor znaÄek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "Odst&ranit tagy:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 -msgid "Comma separated list of tags to remove from the books. " -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +msgid "Comma separated list of tags to remove from the books. " +msgstr "Čárkou oddÄ›lený seznam tagů, které se mají odebrat z knih. " + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "ZaÅ¡krtnÄ›te, pokud chcete odstranit vÅ¡echny tagy z knih." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Odstranit vÅ¡e" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 -msgid "If checked, the series will be cleared" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 -msgid "Clear series" -msgstr "" +msgid "If checked, the series will be cleared" +msgstr "Pokud je zaÅ¡krtnuto, série se vyÄistí" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +msgid "Clear series" +msgstr "VyÄistit série" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" "you selected them. So if you selected Book A and then Book B,\n" "Book A will have series number 1 and Book B series number 2." msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 -msgid "Automatically number books in this series" -msgstr "" +"Pokud není zaÅ¡krtnuto, bude poÅ™adové Äíslo knihy nastaveno na 1.\n" +"Pokud je zaÅ¡krtnuto, budou vybrané knihy automaticky Äíslovány v poÅ™adí,\n" +"ve kterém jste je vybrali. Takže pokud jste vybrali knihu A a potom knihu " +"B,\n" +"kniha A bude mít poÅ™adové Äíslo 1 a kniha B poÅ™adové Äíslo 2." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +msgid "Automatically number books in this series" +msgstr "Automaticky Äíslovat knihy v této sérii" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" +"Série budou pÅ™eÄíslovány od nejvyššího Äísla v databázi\n" +"pro tuto sérii. ZaÅ¡krtnutí tohoto pole říká calibre, aby\n" +"zaÄalo Äíslovat od hodnoty v tomto poli" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Odstranit &formát:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 -msgid "&Swap title and author" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +msgid "&Swap title and author" +msgstr "&Prohodit titul a autora" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 -msgid "Change title to title case" -msgstr "" +"Vynutit název knihy velkými písmeny. Pokud je zaÅ¡krtnuta tato volba a prohoÄ " +"autora, \n" +"název a autor budou prohozeni pÅ™ed tím, než se nastaví velikost písma." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +msgid "Change title to title case" +msgstr "ZmÄ›nit název - velká písmena" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 -msgid "Remove &stored conversion settings for the selected books" -msgstr "" +"Smazat uložené nastavení konverze pro vybrané knihy.\n" +"\n" +"Pro budoucí konverzi tÄ›chto knih bude použito výchozí nastavení." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +msgid "Remove &stored conversion settings for the selected books" +msgstr "Odstranit uložené nastavení konverze pro oznaÄené knihy" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "Základní metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "Uživatelská metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Vyhledávací &pole:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "Název pole, které chcete vyhledat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Vyhledávací mód:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" +"Zvolit, jestli použít základní porovnávání textu, nebo pokroÄilé porovnávání " +"s regulárními výrazy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Hledat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" +"Zadejte co hledáte, buÄ prostý text nebo regulární výraz v závislosti na " +"režimu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" +"ZaÅ¡krtnÄ›te toto pole, pokud hledaný Å™etÄ›zec musí pÅ™esnÄ› definovat velká a " +"malá písmena. ZruÅ¡te zaÅ¡krtnutí pole, pokud má být ignorováno" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "RozliÅ¡ovat velikost písmen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 -msgid "&Replace with:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +msgid "&Replace with:" +msgstr "&Nahradit Äím:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 -msgid "Apply function after replace:" -msgstr "" +msgstr "Nahrazený text. Souhlasící text bude nahrazen tímto Å™etÄ›zcem" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +msgid "Apply function after replace:" +msgstr "Použij funkci po nahrazení:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" "field is processed. In regular expression mode, only the matched text is " "processed" msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 -msgid "&Destination field:" -msgstr "" +"Zvolte, jak bude zpracován text po nalezení a nahrazení. Ve znakovém módu " +"je\n" +"zprocesované celé pole. V módu regulárních výrazů je zprocesován jen " +"nalezený text." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +msgid "&Destination field:" +msgstr "&Cílové pole:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." msgstr "" +"Pole, do kterého bude vložen text po vÅ¡ech nahrazeních. Pokud je prázdné, " +"použije se zdrojové pole." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Mód:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 -msgid "Specify how the text should be copied into the destination." -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +msgid "Specify how the text should be copied into the destination." +msgstr "Zvolte, jak bude text nakopírován do cíle." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 -msgid "use comma" -msgstr "" +"Pokud je mód nahrazení pÅ™edÅ™adit, nebo pÅ™idat, pak toto pole urÄuje, jestli " +"bude Äárka\n" +"nebo prázdný znak vložen mezi vkládaný a originální text." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 -msgid "Test &text" -msgstr "" +msgid "use comma" +msgstr "použít Äárku" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +msgid "Test &text" +msgstr "Testovací &text" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Výsledky testu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Váš test:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" -msgstr "" +msgstr "Najít a nahradit" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 msgid "Last modified: %s" @@ -6829,11 +7119,11 @@ msgstr "Není platný obrázek" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 msgid "Specify title and author" -msgstr "" +msgstr "Vybrat název a autora" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 msgid "You must specify a title and author before generating a cover" -msgstr "" +msgstr "PÅ™ed generováním obálky musíte urÄit název a autora" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:169 msgid "Choose formats for " @@ -6841,7 +7131,7 @@ msgstr "Zvolte formát pro " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:200 msgid "No permission" -msgstr "" +msgstr "NedostateÄná práva" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "You do not have permission to read the following files:" @@ -6878,12 +7168,16 @@ msgid "" " The green color indicates that the current author sort matches the current " "author" msgstr "" +" Zelená barva indikuje, že souÄasné třídÄ›ní podle autora se shoduje se " +"souÄasným autorem" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:354 msgid "" " The red color indicates that the current author sort does not match the " "current author" msgstr "" +" ÄŒervená barva znamená, že souÄasné třídÄ›ní podle autora se neshoduje se " +"souÄasným autorem" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359 msgid "Abort the editing of all remaining books" @@ -6919,13 +7213,13 @@ msgstr "Stáhnout obálku..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:662 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:667 msgid "Cannot fetch cover" -msgstr "" +msgstr "Nemohu stáhnout obálku" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:652 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:663 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:668 msgid "<b>Could not fetch cover.</b><br/>" -msgstr "" +msgstr "<b>Nemohu stáhnout obálku.</b><br/>" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:653 msgid "The download timed out." @@ -6939,6 +7233,7 @@ msgstr "Nemohu najít obal pro tuto knihu. Zkuste nejdříve zadat ISBN." msgid "" "For the error message from each cover source, click Show details below." msgstr "" +"Pro chybu z každého obálkového zdroje kliknÄ›te na Zobrazit detaily. (dole)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Bad cover" @@ -6954,7 +7249,7 @@ msgstr "Nastaly chyby" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:711 msgid "There were errors downloading social metadata" -msgstr "" +msgstr "BÄ›hem stahování sociálních metadat doÅ¡lo k chybám" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:742 msgid "Cannot fetch metadata" @@ -6980,7 +7275,7 @@ msgstr "Edituj metainformace" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "Meta information" -msgstr "" +msgstr "Meta informace" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "Swap the author and title" @@ -6988,7 +7283,7 @@ msgstr "Prohodit autora a název" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 msgid "Author S&ort: " -msgstr "" +msgstr "Řazení dle autora: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "" @@ -7005,10 +7300,14 @@ msgid "" "Using this button to create author sort will change author sort from red to " "green." msgstr "" +"Automaticky vytvoří třídÄ›ní dle autora založené na aktuálnÄ› zadaných " +"autorech.\n" +"Použitím tohoto tlaÄítka k vytvoÅ™ení třídÄ›ní dle autora zmÄ›ní třídÄ›ní z " +"Äervené na zelenou." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 msgid "Remove unused series (Series that have no books)" -msgstr "" +msgstr "Odebrat nepoužité série (Série, které nemají knihy)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 msgid "IS&BN:" @@ -7044,7 +7343,7 @@ msgstr "PÅ™idat nový formát této knihy do databáze" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 msgid "Remove the selected formats for this book from the database." -msgstr "" +msgstr "Odebrat vybrané formáty pro tuto knihu z databáze." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "Set the cover for the book from the selected format" @@ -7052,7 +7351,7 @@ msgstr "Nastavit obálku knihy pro zvolený formát" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413 msgid "Update metadata from the metadata in the selected format" -msgstr "" +msgstr "Aktualizovat metadata z metadat ve zvoleném formátu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:416 msgid "&Browse" @@ -7060,11 +7359,11 @@ msgstr "&Listovat" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:417 msgid "Remove border (if any) from cover" -msgstr "" +msgstr "Odstranit pozadí z obálky" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:418 msgid "T&rim" -msgstr "" +msgstr "Oříznout" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:419 msgid "Reset cover to default" @@ -7089,20 +7388,21 @@ msgstr "Vyžadováno heslo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&Uživatelské jméno:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Heslo:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "Zobrazit he&slo" @@ -7113,11 +7413,11 @@ msgstr "Ruším..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:54 msgid "" "The current saved search will be <b>permanently deleted</b>. Are you sure?" -msgstr "" +msgstr "SouÄasné uložené hledání bude <b>trvale smazané</b>. Jste si jisti?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 msgid "Saved Search Editor" -msgstr "" +msgstr "Editor uložených hledání" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 msgid "Saved Search: " @@ -7125,11 +7425,11 @@ msgstr "Uložit hledání: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 msgid "Select a saved search to edit" -msgstr "" +msgstr "OznaÄte uložené hledání pro editaci" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 msgid "Delete this selected saved search" -msgstr "" +msgstr "Smazat toto uložené hledání" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:93 msgid "Enter a new saved search name." @@ -7137,7 +7437,7 @@ msgstr "Zadejte nový název pro uložené hledání" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:94 msgid "Add the new saved search" -msgstr "" +msgstr "PÅ™idat nové uložené hledání" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:96 msgid "Change the contents of the saved search" @@ -7149,7 +7449,7 @@ msgstr "PotÅ™ebuji jméno a heslo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:127 msgid "You must provide a username and/or password to use this news source." -msgstr "" +msgstr "Musíte poskytnout jméno a heslo pro použití tohoto zdroje zpráv." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:166 msgid "Account" @@ -7173,7 +7473,7 @@ msgstr "Naposledy staženo: nikdy" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:207 msgid "%d days, %d hours and %d minutes ago" -msgstr "" +msgstr "%d dnů, %d hodin a %d minut staré" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209 msgid "Last downloaded" @@ -7215,7 +7515,7 @@ msgstr "Stáhnout &vÅ¡echny naplánované" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 msgid "blurb" -msgstr "" +msgstr "záložka" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 msgid "&Schedule for download:" @@ -7267,6 +7567,8 @@ msgid "" "Interval at which to download this recipe. A value of zero means that the " "recipe will be downloaded every hour." msgstr "" +"Interval, ve kterém se má stahovat tato úloha. Nulová hodnota znamená, že " +"úloha bude stahována každou hodinu." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:227 @@ -7280,7 +7582,7 @@ msgstr "ÚÄet" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 msgid "For the scheduling to work, you must leave calibre running." -msgstr "" +msgstr "Pro funkÄní plánování musíte nechat calibre spuÅ¡tÄ›né." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 msgid "&Schedule" @@ -7288,11 +7590,11 @@ msgstr "&Naplánovat" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 msgid "Add &title as tag" -msgstr "" +msgstr "PÅ™idat název jako tag" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223 msgid "&Extra tags:" -msgstr "" +msgstr "Extra tagy:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:224 msgid "&Advanced" @@ -7319,72 +7621,76 @@ msgstr "obsahuje" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:42 msgid "The text to search for. It is interpreted as a regular expression." -msgstr "" +msgstr "Text pro vyhledávání. Je interpretován jako regulární výraz." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:43 msgid "" "<p>Negate this match. That is, only return results that <b>do not</b> match " "this query." msgstr "" +"<p>Negovat tuto shodu. Tzn. vrátí výsledky, které <b>nesplňují</b> tento " +"dotaz." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:44 msgid "Negate" -msgstr "" +msgstr "Negovat" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "Rozšířené vyhledávání" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 +msgid "What kind of match to use:" +msgstr "Jaký typ porovnávání použít:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" +msgstr "Obsahuje: slovo nebo fráze je obsažena kdekoliv v poli metadat" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "Rovná se: slovo nebo fráze se shoduje kompletnÄ› s polem metadat" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "Regulární výraz: výraz se musí shodovat kdekoli v poli metadat" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 msgid "Find entries that have..." msgstr "Najít položky, které obsahují ....." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 msgid "&All these words:" msgstr "VÅ¡echn&a tato slova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "This exact &phrase:" msgstr "Tuto frázi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 msgid "&One or more of these words:" msgstr "Kterékoliv z tÄ›chto slov" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 msgid "But dont show entries that have..." msgstr "Ale nezobrazovat položky, které mají...." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 msgid "Any of these &unwanted words:" msgstr "NÄ›které z tÄ›chto slov:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 -msgid "What kind of match to use:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" msgstr "" +"Podívejte se do <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-" +"search-interface\">Uživatelské příruÄky</a> pro získání více informací" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 msgid "A&dvanced Search" -msgstr "" +msgstr "PokroÄilé hledání" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 msgid "Enter the title." @@ -7396,7 +7702,7 @@ msgstr "&Autor:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 msgid "Ta&gs:" -msgstr "" +msgstr "Tagy:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 msgid "Enter an author's name. Only one author can be used." @@ -7405,11 +7711,11 @@ msgstr "Zadejte autorovo jméno. Může být zadán jen jeden autor." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 msgid "" "Enter a series name, without an index. Only one series name can be used." -msgstr "" +msgstr "Zadejte název série, bez indexu. Lze použít pouze název jedné série." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 msgid "Enter tags separated by spaces" -msgstr "" +msgstr "Vložte tagy oddÄ›lené mezerami" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 msgid "&Clear" @@ -7417,15 +7723,15 @@ msgstr "&VyÄistit" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 msgid "Search only in specific fields:" -msgstr "" +msgstr "Hledat pouze v konkrétních oblastech:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 msgid "Titl&e/Author/Series ..." -msgstr "" +msgstr "Titul/Autor/Série ..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" -msgstr "" +msgstr "Zvolit formáty" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:97 @@ -7439,16 +7745,17 @@ msgstr "Vydavatelé" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:114 msgid " (not on any book)" -msgstr "" +msgstr " (na žádnou knihu)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:166 msgid "" "The current tag category will be <b>permanently deleted</b>. Are you sure?" msgstr "" +"Aktuální kategorie tagů bude <b>trvale odstranÄ›na</b>. Jste si jistí?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 msgid "User Categories Editor" -msgstr "" +msgstr "Uživatel editor kategorie" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 msgid "A&vailable items" @@ -7456,31 +7763,31 @@ msgstr "Dostupné položky" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 msgid "Apply tags to current tag category" -msgstr "" +msgstr "Aplikovat tagy do aktuální kategorie tagů" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 msgid "A&pplied items" -msgstr "" +msgstr "Aplikované položky" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:163 msgid "Unapply (remove) tag from current tag category" -msgstr "" +msgstr "Nepoužívat (odebrat) tag z aktuální kategorie tagů" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 msgid "Category name: " -msgstr "" +msgstr "Název kategorie: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:166 msgid "Select a category to edit" -msgstr "" +msgstr "Vybrat kategorii pro editaci" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 msgid "Delete this selected tag category" -msgstr "" +msgstr "Smazat vybranou kategorii tagu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:169 msgid "Enter a new category name. Select the kind before adding it." -msgstr "" +msgstr "Zadejte název nové kategorie. Vyberte druh pÅ™ed pÅ™idáním." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:170 msgid "Add the new category" @@ -7488,22 +7795,24 @@ msgstr "PÅ™idat novou kategorii" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:172 msgid "Category filter: " -msgstr "" +msgstr "Filtr kategorie: " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:173 msgid "Select the content kind of the new category" -msgstr "" +msgstr "Vyberte druh obsahu nové kategorie" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:68 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:105 msgid "Are your sure?" -msgstr "" +msgstr "Jste si jisti?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:69 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" msgstr "" +"Následující tagy jsou používány jednou nebo více knihami. Jste si jistí, že " +"je chcete smazat?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 msgid "Tag Editor" @@ -7511,13 +7820,15 @@ msgstr "Tag Editor" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 msgid "A&vailable tags" -msgstr "" +msgstr "Dostupné tagy" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 msgid "" "Delete tag from database. This will unapply the tag from all books and then " "remove it from the database." msgstr "" +"Odstranit tag z databáze. Tag bude odebrán ze vÅ¡ech knih a odstranÄ›n z " +"databáze." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 msgid "Apply tag to current book" @@ -7549,60 +7860,62 @@ msgstr "PÅ™idat tag do seznamu dostupných tagů a aplikovat na aktuální knihu #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:20 msgid "%s (was %s)" -msgstr "" +msgstr "%s (bylo %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "Položka je prázdná" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." -msgstr "" +msgstr "Položka nemůže být nastavena na nic. Smažte ji." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:91 msgid "No item selected" -msgstr "" +msgstr "Není vybrána žádná položka" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:92 msgid "You must select one item from the list of Available items." -msgstr "" +msgstr "Musíte vybrat jednu položku ze seznamu dostupných položek." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:101 msgid "No items selected" -msgstr "" +msgstr "Není vybrána žádná položka" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:102 msgid "You must select at least one items from the list." -msgstr "" +msgstr "Musíte vybrat alespoň jednu položku ze seznamu." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:106 msgid "Are you certain you want to delete the following items?" -msgstr "" +msgstr "Jste si jistí, že chcete odstranit tyto položky?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 msgid "Category Editor" -msgstr "" +msgstr "Editor kategorií" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 msgid "Items in use" -msgstr "" +msgstr "Používané položky" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:79 msgid "" "Delete item from database. This will unapply the item from all books and " "then remove it from the database." msgstr "" +"Odstranit položku z databáze. Položka bude odebrána ze vÅ¡ech knih a " +"odstranÄ›na z databáze." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:81 msgid "Rename the item in every book where it is used." -msgstr "" +msgstr "PÅ™ejmenovat položku v každé knize, ve které je použita." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:106 msgid "Ctrl+S" -msgstr "" +msgstr "Ctrl+S" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:56 msgid "Test email settings" @@ -7619,26 +7932,26 @@ msgstr "&Test" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:55 msgid "Display contents of exploded ePub" -msgstr "" +msgstr "Zobrazit obsah rozebraného ePub" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:56 msgid "&Explode ePub" -msgstr "" +msgstr "Rozebrat ePub" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:57 msgid "Rebuild ePub from exploded contents" -msgstr "" +msgstr "ZnovuvytvoÅ™it ePub z rozebraného obsahu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:58 msgid "&Rebuild ePub" -msgstr "" +msgstr "&ZnovyvytvoÅ™it ePub" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:59 msgid "Discard changes" -msgstr "" +msgstr "ZruÅ¡it zmÄ›ny" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&ZruÅ¡it" @@ -7817,26 +8130,84 @@ msgstr "PÅ™idat RSS adresu zdroji" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 msgid "&Feed title:" -msgstr "" +msgstr "Název zdroje:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:278 msgid "Feed &URL:" -msgstr "" +msgstr "URL zdroje:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:280 msgid "&Add feed" -msgstr "" +msgstr "PÅ™idat zdroj" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:281 msgid "" "For help with writing advanced news recipes, please visit <a " "href=\"http://calibre-ebook.com/user_manual/news.html\">User Recipes</a>" msgstr "" +"Pro nápovÄ›du k psaní složitÄ›jších pÅ™evodních skriptů navÅ¡tivte <a " +"href=\"http://calibre-ebook.com/user_manual/news.html\">Uživatelské pÅ™evodní " +"skripty - Recipes</a>" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:282 msgid "Recipe source code (python)" msgstr "Kód zdroje (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "E-mail %s pro %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Zprávy:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "PÅ™iložen je %s Äasopis stažený calibre." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "E-book:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "PÅ™iloženo, najdete e-book" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "od" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "v %s formátu" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Odeslat email" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "Automaticky konvertovat knihy pÅ™ed emailovým odesláním?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Nemohu emailovat následující knihy, nebyl nalezen žádný vhodný formát:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "Chyba pÅ™i odeslání knihy" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "odesláno" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Odeslat zprávy do" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -7860,10 +8231,31 @@ msgid "" "expression on a few sample filenames. The group names for the various " "metadata entries are documented in tooltips.</p></body></html>" msgstr "" +"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " +"\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" +"<html><head><meta name=\"qrichtext\" content=\"1\" /><style " +"type=\"text/css\">\n" +"p, li { white-space: pre-wrap; }\n" +"</style></head><body style=\" font-family:'Candara'; font-size:10pt; font-" +"weight:400; font-style:normal;\">\n" +"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-" +"right:0px; -qt-block-indent:0; text-indent:0px;\">Nastavit vzor regulárního " +"výrazu k použití, pokud se snaží odhadnout ebook metadata z názvů souborů. " +"</p>\n" +"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-" +"right:0px; -qt-block-indent:0; text-indent:0px;\"><a " +"href=\"http://docs.python.org/lib/re-syntax.html\"><span style=\" text-" +"decoration: underline; color:#0000ff;\">Reference</span></a> o syntaxi " +"regulárních výrazů jsou k dispozici.</p>\n" +"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-" +"right:0px; -qt-block-indent:0; text-indent:0px;\">Použijte funkci <span " +"style=\" font-weight:600;\">TEST</span> uvedenou níže, která prověří Váš " +"regulární výraz na nÄ›kolika vzorových souborech. Názvy skupin pro různé " +"položky metadat jsou zdokumentovány ve vysvÄ›tlivkách.</p></body></html>" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular &expression" -msgstr "" +msgstr "Regulární &výraz" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 msgid "File &name:" @@ -7896,7 +8288,7 @@ msgstr "AutoÅ™i:" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 msgid "Regular expression (?P<author>)" -msgstr "" +msgstr "Regulární výraz (?P<author>)" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 msgid "Series:" @@ -7924,7 +8316,7 @@ msgstr "Regulární výraz (?P<isbn>)" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:100 msgid "Cover Browser" -msgstr "" +msgstr "ProhlížeÄ obálek" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:105 msgid "Shift+Alt+B" @@ -7932,7 +8324,7 @@ msgstr "Shift+Alt+B" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:119 msgid "Tag Browser" -msgstr "" +msgstr "ProhlížeÄ tagů" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:121 msgid "Shift+Alt+T" @@ -7946,7 +8338,7 @@ msgstr "verze" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:142 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:30 msgid "created by Kovid Goyal" -msgstr "" +msgstr "vytvoÅ™il Kovid Goyal" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:160 msgid "Connected " @@ -7959,15 +8351,15 @@ msgstr "Nalezena nová verze" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:207 #: /home/kovid/work/calibre/src/calibre/gui2/init.py:217 msgid "Book Details" -msgstr "" +msgstr "Podrobnosti o knize" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:209 msgid "Alt+D" -msgstr "" +msgstr "Alt+D" #: /home/kovid/work/calibre/src/calibre/gui2/init.py:219 msgid "Shift+Alt+D" -msgstr "" +msgstr "Shift+Alt+D" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:61 msgid "Job" @@ -7987,7 +8379,7 @@ msgstr "Uplynulý Äas" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:76 msgid "There are %d running jobs:" -msgstr "" +msgstr "Existuje %d běžících úloh:" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:87 @@ -7997,7 +8389,7 @@ msgstr "Neznáma úloha" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:83 msgid "There are %d waiting jobs:" -msgstr "" +msgstr "Existuje %d Äekajících úloh:" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:222 @@ -8012,29 +8404,29 @@ msgstr "Není možné ukonÄit úlohy, které komunikují se zařízením" msgid "Job has already run" msgstr "Úloha je již dokonÄená" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Není k dispozici" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Úlohy:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" -msgstr "" +msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" -msgstr "" +msgstr "KliknÄ›te pro zobrazení seznamu úloh" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Úlohy" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:53 msgid "Eject this device" -msgstr "" +msgstr "Odpojit toto zařízení" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:63 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:209 @@ -8043,7 +8435,7 @@ msgstr "Knihovna" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:64 msgid "Show books in calibre library" -msgstr "Ukaž knihy z Calibre knihovny" +msgstr "Zobrazit knihy z Calibre knihovny" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:65 msgid "Device" @@ -8051,25 +8443,25 @@ msgstr "Zařízení" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:66 msgid "Show books in the main memory of the device" -msgstr "" +msgstr "Zobrazit knihy z hlavní pamÄ›ti zařízení" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Karta A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:68 msgid "Show books in storage card A" -msgstr "" +msgstr "Zobrazit knihy na paměťové kartÄ› A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" -msgstr "" +msgstr "Karta B" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:70 msgid "Show books in storage card B" -msgstr "" +msgstr "Zobrazit knihy na paměťové kartÄ› B" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:128 msgid "available" @@ -8079,10 +8471,11 @@ msgstr "dostupné" msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" +"Zobrazení knih bude omezeno na ty, které odpovídají zvolenému uložené hledání" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 msgid "Shift+Ctrl+F" -msgstr "" +msgstr "Shift+Ctrl+F" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" @@ -8093,14 +8486,16 @@ msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" msgstr "" +"<p>Hledání v seznamu knih podle názvu, autora, vydavatele, tagů, komentářů, " +"atd.<br><br>Slova rozdÄ›lená mezerou budou doplnÄ›na o AND" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" -msgstr "" +msgstr "&ZaÄít!" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" -msgstr "" +msgstr "Provést rychlé hledání (můžete také stisknout klávesu Enter)" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" @@ -8112,11 +8507,11 @@ msgstr "Zkopírovat právÄ› hledaný text (namísto hledání názvu)" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" -msgstr "" +msgstr "Uložit aktuální hledání podle názvu uvedeného v poli" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" -msgstr "" +msgstr "Smazat aktuální uložené hledání" #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:285 msgid "N" @@ -8129,7 +8524,7 @@ msgstr "Y" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:240 msgid "On Device" -msgstr "" +msgstr "Na zařízení" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:68 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:285 @@ -8138,22 +8533,22 @@ msgstr "Velikost (MB)" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 msgid "Book %s of %s." -msgstr "" +msgstr "Kniha %s z %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" -msgstr "" +msgstr "Hledaný název je \"{0}\"" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:699 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1238 msgid "This book's UUID is \"{0}\"" -msgstr "" +msgstr "UUID knihy je \"{0}\"" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 msgid "In Library" -msgstr "" +msgstr "V knihovnÄ›" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 msgid "Size" @@ -8165,53 +8560,53 @@ msgstr "Kniha <font face=\"serif\">%s</font> z %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 msgid "Marked for deletion" -msgstr "" +msgstr "OznaÄeno ke smazání" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1219 msgid "Double click to <b>edit</b> me<br><br>" -msgstr "" +msgstr "Dvakrát kliknÄ›te na <b>upravit</b> mÄ›<br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Skryj sloupce %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 -msgid "Sort on %s" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +msgid "Sort on %s" +msgstr "Řadit dle %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "VzestupnÄ›" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "SestupnÄ›" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 -msgid "Left" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 -msgid "Right" -msgstr "" +msgstr "ZmÄ›na zarovnání textu %s" #: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +msgid "Left" +msgstr "Vlevo" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +msgid "Right" +msgstr "Vpravo" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" -msgstr "" +msgstr "VystÅ™edit" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" -msgstr "" +msgstr "Zobrazit sloupec" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" -msgstr "" +msgstr "Obnovit výchozí rozložení" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8244,7 +8639,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "Pro hledaný výraz <i>%s</i> nebyly nalezeny <b>žádné výsledky</b>." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Nebyly nalezeny žádné výsledky" @@ -8261,12 +8656,12 @@ msgid "LRF Viewer toolbar" msgstr "Nástrojová iÅ¡ta prohlížeÄe LRF" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Následující strana" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "PÅ™edcházející strana" @@ -8303,20 +8698,20 @@ msgstr "Spustit program minimalizovaný v systémové liÅ¡tÄ›" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:34 msgid "Log debugging information to console" -msgstr "" +msgstr "Logovat ladící informace do konzole" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:36 msgid "Do not check for updates" msgstr "Nezjišťuj nové verze" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Calibre knihovna" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "Choose a location for your calibre e-book library" -msgstr "" +msgstr "Vyberte umístÄ›ní pro VaÅ¡i Calibre e-book knihovnu" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 msgid "Failed to create library" @@ -8324,12 +8719,12 @@ msgstr "NepodaÅ™ilo se vytvoÅ™it knihovnu" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "Failed to create calibre library at: %r." -msgstr "" +msgstr "NepodaÅ™ilo se vytvoÅ™it Calibre knihovnu v: %r." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/main.py:184 msgid "Choose a location for your new calibre e-book library" -msgstr "" +msgstr "Vyberte umístÄ›ní pro VaÅ¡i novou Calibre e-book knihovnu" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:153 msgid "Initializing user interface..." @@ -8350,11 +8745,11 @@ msgstr "Neplatné umístÄ›ní databáze" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:194 msgid "Bad database location %r. calibre will now quit." -msgstr "" +msgstr "Å patné umístÄ›ní databáze %r. Calibre bude nyní ukonÄeno." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:207 msgid "Corrupted database" -msgstr "" +msgstr "PoÅ¡kozená databáze" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:208 msgid "" @@ -8362,24 +8757,30 @@ msgid "" "and repair it automatically? If you say No, a new empty calibre library will " "be created." msgstr "" +"VaÅ¡e Calibre databáze se zdá být poÅ¡kozená. Chcete aby se Calibre pokusilo " +"databázi opravit automaticky? Pokud zvolíte Ne, bude vytvoÅ™ena nová prázdná " +"Calibre knihovna." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:214 msgid "" "Repairing database. This can take a very long time for a large collection" msgstr "" +"Oprava databáze. Tato operace může trvat dlouhou dobu pokud je sbírka " +"rozsáhlá" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:227 msgid "" "Bad database location %r. Will start with a new, empty calibre library" msgstr "" +"Å patné umístÄ›ní databáze %r. ZaÄne se s novou, prázdnou Calibre knihovnou" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:237 msgid "Starting %s: Loading books..." -msgstr "" +msgstr "SpouÅ¡tÄ›ní %s: NaÄítání knih..." #: /home/kovid/work/calibre/src/calibre/gui2/main.py:282 msgid "If you are sure it is not running" -msgstr "" +msgstr "Jste si jisti, že není spuÅ¡tÄ›n" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:284 msgid "Cannot Start " @@ -8391,7 +8792,7 @@ msgstr "%s je již spuÅ¡tÄ›no" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:288 msgid "may be running in the system tray, in the" -msgstr "" +msgstr "může být spuÅ¡tÄ›n v systémové liÅ¡tÄ›, v" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 msgid "upper right region of the screen." @@ -8437,47 +8838,49 @@ msgstr "Kniha nemá ani název ani ISBN" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:138 msgid "No matches found for this book" -msgstr "" +msgstr "Nebyly nalezeny žádné shody pro tuto knihu" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" -msgstr "" +msgstr "NepodaÅ™ilo se stáhnout metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 -msgid "Downloaded" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 -msgid "Failed to get" -msgstr "" +msgstr "obálka" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 -msgid "%s %s for: %s" -msgstr "" +msgid "Downloaded" +msgstr "Staženo" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +msgid "Failed to get" +msgstr "NepodaÅ™ilo se získat" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 +msgid "%s %s for: %s" +msgstr "%s %s pro: %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" -msgstr "" +msgstr "DokonÄeno" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" -msgstr "" +msgstr "ÚspěšnÄ› stažena metadata pro %d z %d knih" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" -msgstr "" +msgstr "Podrobnosti" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/__init__.py:36 msgid "" "Restore settings to default values. You have to click Apply to actually save " "the default settings." msgstr "" +"Obnovit nastavení na výchozí hodnoty. Musíte kliknout na tlaÄítko Použít pro " +"uložení výchozího nastavení." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:49 msgid "" @@ -8485,10 +8888,13 @@ msgid "" "to it. calibre can either read metadata from the contents of the file, or " "from the filename." msgstr "" +"Zde můžete urÄit, jakým způsobem bude Calibre naÄítat metadata ze souborů, " +"které pÅ™idáte. Calibre může buÄ naÄíst metadata z obsahu souboru, nebo z " +"názvu souboru." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:50 msgid "Read metadata from &file contents rather than file name" -msgstr "" +msgstr "NaÄíst metadata z obsahu souboru, nikoliv z názvu souboru" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:51 msgid "" @@ -8506,20 +8912,24 @@ msgid "" "If books with similar titles and authors found, &merge the new files " "automatically" msgstr "" +"Pokud jsou nalezeny knihy s podobnými názvy a autory, slouÄit nové soubory " +"automaticky" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:56 msgid "&Configure metadata from file name" -msgstr "" +msgstr "Nastavit metadata z názvu souboru" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:57 msgid "" "Swap the firstname and lastname of the author. This affects only metadata " "read from file names." msgstr "" +"ZamÄ›nit jméno a příjmení autora. Toto ovlivňuje pouze metadata naÄtená z " +"názvu souboru." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:58 msgid "&Swap author firstname and lastname" -msgstr "" +msgstr "ZamÄ›nit jméno a příjmení autora." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:145 @@ -8538,15 +8948,16 @@ msgstr "Nízká" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:163 msgid "Confirmation dialogs have all been reset" -msgstr "" +msgstr "VÅ¡echny potvrzovací dialogy byly vyresetovány" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:137 msgid "&Overwrite author and title by default when fetching metadata" -msgstr "" +msgstr "PÅ™epsat autora a titul ve výchozím nastavení pÅ™i naÄítání metadat" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:138 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" +"Stahovat sociální metadata (tagy/hodnocení/atd.) ve výchozím nastavení" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:139 msgid "Show notification when &new version is available" @@ -8586,7 +8997,7 @@ msgstr "UpÅ™ednostňovaný výstupní formát:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:150 msgid "Restriction to apply when the current library is opened:" -msgstr "" +msgstr "Omezení platí pokud je souÄasná knihovna otevÅ™ená:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:151 msgid "" @@ -8594,20 +9005,25 @@ msgid "" "used. Also applied when switching to this library. Note that this setting is " "per library. " msgstr "" +"Použít toto omezení pÅ™i startu Calibre, pokud je používána stávající " +"knihovna. Také bude použito pÅ™i pÅ™epnutí na tuto knihovnu. VÅ¡imnÄ›te si, že " +"toto nastavení je na knihovnu. " #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:152 msgid "" "A comma-separated list of tags that will be applied to books added to the " "library" msgstr "" +"Čárkou oddÄ›lený seznam tagů, které budou pÅ™iÅ™azeny knihám pÅ™idávaným do " +"knihovny" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:153 msgid "Tags to apply when adding a book:" -msgstr "" +msgstr "Použitelné tagy pÅ™i pÅ™idávání knihy:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:154 msgid "Reset all disabled &confirmation dialogs" -msgstr "" +msgstr "Vyresetovat vÅ¡echny zakázané potvrzovací dialogy" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:155 msgid "Preferred &input format order:" @@ -8615,19 +9031,19 @@ msgstr "PoÅ™adí preference &vstupních formátů:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:158 msgid "Use internal &viewer for:" -msgstr "Použít interní &prohlížec pro:" +msgstr "Použít interní &prohlížeÄ pro:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:96 msgid "You must select a column to delete it" -msgstr "" +msgstr "Musíte vybrat sloupec pro odstranÄ›ní" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:101 msgid "The selected column is not a custom column" -msgstr "" +msgstr "Vybraný sloupec není uživatelský sloupec" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:103 msgid "Do you really want to delete column %s and all its data?" -msgstr "" +msgstr "Opravdu chcete odstranit sloupec %s a vÅ¡echna jeho data?" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:82 @@ -8636,136 +9052,146 @@ msgid "" "book list. You can hide columns by unchecking them. You can also create your " "own, custom columns." msgstr "" +"Zde můžete pÅ™eskupit rozložení sloupců v seznamu calibre knihovny. Můžete " +"schovávat sloupce odÅ¡krtnutím. Můžete si také vytvoÅ™it své vlastní." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:84 msgid "Remove a user-defined column" -msgstr "" +msgstr "Odebrat uživatelem definovaný sloupec" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:86 msgid "Add a user-defined column" -msgstr "" +msgstr "PÅ™idat uživatelem definovaný sloupec" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:88 msgid "Edit settings of a user-defined column" -msgstr "" +msgstr "Upravit nastavení uživatelem definovaného sloupce" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:91 msgid "Add &custom column" -msgstr "" +msgstr "PÅ™idat vlastní sloupec" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/conversion.py:37 msgid "" "Restore settings to default values. Only settings for the currently selected " "section are restored." msgstr "" +"Obnovit nastavení na výchozí hodnoty. Jsou obnoveny pouze nastavení pro " +"právÄ› vybranou sekci." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:19 msgid "Text, column shown in the tag browser" -msgstr "" +msgstr "Text, sloupec zobrazen v prohlížeÄi tagů" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:22 msgid "Comma separated text, like tags, shown in the tag browser" -msgstr "" +msgstr "ÄŒarkami oddÄ›lený text, jako tagy, zobrazen v prohlížeÄi tagů" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:25 msgid "Long text, like comments, not shown in the tag browser" -msgstr "" +msgstr "Dlouhý text, jako jsou komentáře, není zobrazen v prohlížeÄi tagů" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:28 msgid "Text column for keeping series-like information" -msgstr "" +msgstr "Textový sloupec pro uchování informací o sériích" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:33 msgid "Floating point numbers" -msgstr "" +msgstr "Plovoucí desetinnou Äárkou" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:35 msgid "Integers" -msgstr "" +msgstr "Celá Äísla" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:37 msgid "Ratings, shown with stars" -msgstr "" +msgstr "Hodnocení, zobrazeny s hvÄ›zdami" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:40 msgid "Yes/No" -msgstr "" +msgstr "Ano/Ne" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:42 msgid "Column built from other columns" -msgstr "" +msgstr "Sloupec vytvoÅ™ený z jiných sloupců" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 msgid "No column selected" -msgstr "" +msgstr "Není oznaÄen žádný sloupec" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:72 msgid "No column has been selected" -msgstr "" +msgstr "Žádný sloupec nebyl oznaÄen" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:76 msgid "Selected column is not a user-defined column" -msgstr "" +msgstr "OznaÄený sloupec není uživatelsky definovaný" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:111 msgid "No lookup name was provided" -msgstr "" +msgstr "Nebyl zadán žádný název pro hledání" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:113 msgid "" "The lookup name must contain only lower case letters, digits and " "underscores, and start with a letter" msgstr "" +"Název pro vyhledání musí obsahovat pouze malá písmena, Äíslice a podtržítka, " +"a musí zaÄínat písmenem" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:116 msgid "" "Lookup names cannot end with _index, because these names are reserved for " "the index of a series column." msgstr "" +"Lookup names nemohou konÄit _index, protože tato jména jsou rezervována pro " +"index sloupec sérií." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:126 msgid "No column heading was provided" -msgstr "" +msgstr "Nebyl poskytnutý popis sloupců" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:133 msgid "The lookup name %s is already used" -msgstr "" +msgstr "Lookup name %s je již použito" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:145 msgid "The heading %s is already used" -msgstr "" +msgstr "Záhlaví %s je již používáno." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:156 msgid "You must enter a template for composite columns" -msgstr "" +msgstr "Musíte vložit Å¡ablonu pro kompozitní sloupce" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:127 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:147 msgid "Create or edit custom columns" -msgstr "" +msgstr "VytvoÅ™it nebo editovat uživatelsky definované sloupce" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:128 msgid "&Lookup name" -msgstr "" +msgstr "&Lookup name" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:129 msgid "Column &heading" -msgstr "" +msgstr "HlaviÄka sloupce" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:130 msgid "" "Used for searching the column. Must contain only digits and lower case " "letters." msgstr "" +"Používá se pro prohledávání sloupců. Musí obsahovat pouze Äíslice a malá " +"písmena." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:131 msgid "" "Column heading in the library view and category name in the tag browser" -msgstr "" +msgstr "Nadpis sloupce v knihovním pohledu a kategorii v prohlížeÄi tagů" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:132 msgid "Column &type" @@ -8785,10 +9211,17 @@ msgid "" "<li>dd MMMM yy gives 05 January 10</li>\n" "</ul> " msgstr "" +"<p>Formát datumu. Použijte 1-4 'd's pro den, 1-4 'M's pro mÄ›síc, a 2 nebo 4 " +"'y's pro rok.</p>\n" +"<p>Například:\n" +"<ul>\n" +"<li> ddd, d MMM yyyy se zobrazí Mon, 5 Jan 2010<li>\n" +"<li>dd MMMM yy se zobrazí 05 January 10</li>\n" +"</ul> " #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:140 msgid "Use MMM yyyy for month + year, yyyy for year only" -msgstr "" +msgstr "Použijte MMM yyy pro mÄ›síc + rok, yyyy pouze pro rok" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:141 msgid "Default: dd MMM yyyy." @@ -8800,15 +9233,15 @@ msgstr "Formát &data" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:143 msgid "<p>Field template. Uses the same syntax as save templates." -msgstr "" +msgstr "<p>Pole Å¡ablony. Používá stejnou syntaxi jako ukládání Å¡ablon." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:144 msgid "Similar to save templates. For example, {title} {isbn}" -msgstr "" +msgstr "Podobné k uložení Å¡ablon. Například, {title} {isbn}" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:145 msgid "Default: (nothing)" -msgstr "" +msgstr "Výchozí: (nic)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:146 msgid "&Template" @@ -8832,6 +9265,9 @@ msgid "" "automatically sent for downloaded news to all email addresses that have Auto-" "send checked." msgstr "" +"Calibre Vám (nebo do Vaší ÄteÄky) může zaslat knihy e-mailem. Emaily budou " +"automaticky odeslány na vÅ¡echny emailové adresy, které mají zaÅ¡krtnuté " +"automatické odeslání." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:67 msgid "Add an email address to which to send books" @@ -8859,7 +9295,7 @@ msgstr "Email" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:29 msgid "Formats to email. The first matching format will be sent." -msgstr "" +msgstr "Formáty pro e-mail. První odpovídající formát bude zaslán." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:30 msgid "" @@ -8907,11 +9343,11 @@ msgstr "Nikdy" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:106 msgid "User Interface &layout (needs restart):" -msgstr "" +msgstr "&Rozvržení uživatelského rozhraní (vyžaduje restart):" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:107 msgid "&Number of covers to show in browse mode (needs restart):" -msgstr "PoÄet obálek zobraze&ných v pÅ™ohlížecím módu (vyžaduje restart)" +msgstr "PoÄet obálek zobraze&ných v režimu prohlížení (vyžaduje restart):" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:108 msgid "Choose &language (requires restart):" @@ -8919,7 +9355,7 @@ msgstr "Vyberte &jazyk (vyžaduje restart):" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:109 msgid "Show &average ratings in the tags browser" -msgstr "" +msgstr "Zobrazit &průmÄ›rné hodnocení v prohlížeÄi tagů" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:110 msgid "Disable all animations. Useful if you have a slow/old computer." @@ -8936,19 +9372,19 @@ msgstr "Zobrazit &ikonu v sýstémové liÅ¡tÄ› (vyžaduje restart)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:113 msgid "Show &splash screen at startup" -msgstr "Ukaž úvodní obrazovku pÅ™i startu" +msgstr "Zobrazit úvodní obrazovku pÅ™i startu" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:114 msgid "Disable ¬ifications in system tray" -msgstr "Zablokuj oznámení v systémové liÅ¡tÄ›" +msgstr "Zablokovat oznámení v systémové liÅ¡tÄ›" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:115 msgid "Use &Roman numerals for series" -msgstr "" +msgstr "Použít římské Äíslice pro série" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:116 msgid "Show cover &browser in a separate window (needs restart)" -msgstr "Zobrazit prohlížec &obálek v samostatném oknÄ› (vyžaduje restart)" +msgstr "Zobrazit prohlížeÄ &obálek v samostatném oknÄ› (vyžaduje restart)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:117 msgid "Search as you type" @@ -8964,45 +9400,49 @@ msgstr "Velikost ikon:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:120 msgid "Show &text under icons:" -msgstr "Ukaž text pod ikonou:" +msgstr "Zobrazit text pod ikonami:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:121 msgid "&Split the toolbar into two toolbars" -msgstr "RozdÄ›l nástrojovou liÅ¡tu do dvou liÅ¡t." +msgstr "RozdÄ›lit nástrojovou liÅ¡tu do dvou liÅ¡t." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "Použít" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" -msgstr "Obnov výchozí hodnoty" +msgstr "Obnovit výchozí hodnoty" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Ulož zmÄ›ny" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "ZruÅ¡it a vrátit se na pÅ™ehled" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" -msgstr "Obnova do výchozích hodnot není podporováno pro" +msgstr "Obnova do výchozích hodnot není podporována pro" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." msgstr "" +"NÄ›které provedené zmÄ›ny vyžadují restart. Prosím, restartujte Calibre co " +"nejdříve." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." msgstr "" +"ZmÄ›ny, které jste vykonali, vyžadují restartování calibre. Nebudete moci " +"zmÄ›nit žádné další nastavení, dokud calibre nerestartujete." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Vyžadován restart" @@ -9059,6 +9499,8 @@ msgid "" "That format and device already has a plugboard or conflicts with another " "plugboard." msgstr "" +"Tento formát a zařízení již má plugboard, nebo je v konfliktu s jiným " +"plugboardem" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:240 msgid "Invalid destination" @@ -9098,15 +9540,15 @@ msgstr "Zařízení (zvolte jako druhé)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:123 msgid "Add new plugboard" -msgstr "" +msgstr "PÅ™idat nový plugboard" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:124 msgid "Edit existing plugboard" -msgstr "" +msgstr "Editovat existující plugboard" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:125 msgid "Existing plugboards" -msgstr "" +msgstr "Existující plugboardy" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:126 msgid "Source template" @@ -9118,15 +9560,15 @@ msgstr "Cílové pole" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:128 msgid "Save plugboard" -msgstr "" +msgstr "Ulož plugboard" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:129 msgid "Delete plugboard" -msgstr "" +msgstr "Smaž plugboard" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:100 msgid "%(plugin_type)s %(plugins)s" -msgstr "" +msgstr "%(plugin_type)s %(plugins)s" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:101 msgid "plugins" @@ -9137,6 +9579,8 @@ msgid "" "\n" "Customization: " msgstr "" +"\n" +"PÅ™izpůsobení: " #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:155 msgid "No valid plugin path" @@ -9168,7 +9612,7 @@ msgstr "Modul %s nevyžaduje žádné úpravy" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:193 msgid "Customize" -msgstr "" +msgstr "PÅ™izpůsobit" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:236 msgid "Cannot remove builtin plugin" @@ -9213,11 +9657,11 @@ msgstr "PÅ™id&at" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:33 msgid "Any custom field" -msgstr "" +msgstr "Libovolné pole" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:34 msgid "The lookup name of any custom field. These names begin with \"#\")" -msgstr "" +msgstr "Lookup name libovolného pole. Tato jména zaÄínají s \"#\")" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:47 msgid "Save &template" @@ -9313,9 +9757,13 @@ msgid "" "Send to Device button. This setting can be overriden for individual devices " "by customizing the device interface plugins in Preferences->Advanced->Plugins" msgstr "" +"Zde můžete nastavit, jakým způsobem Calibre uloží VaÅ¡e knihy, když kliknete " +"na tlaÄítko Odeslat do zařízení. Toto nastavení může být potlaÄeno pro " +"jednotlivá zařízení pÅ™izpůsobením pluginů rozhraní zařízení v Nastavení-> " +"UpÅ™esnit-> Pluginy" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "NepodaÅ™ilo se spustit obdahový server" @@ -9357,15 +9805,15 @@ msgstr "Max. velikost &obálek:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:131 msgid "Max. &OPDS items per query:" -msgstr "" +msgstr "Maximum OPDS položek v dotaze:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:132 msgid "Max. OPDS &ungrouped items:" -msgstr "" +msgstr "Max. OPDS &neseskupených položek:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:133 msgid "Restriction (saved search) to apply:" -msgstr "" +msgstr "Omezení (uložených vyhledávání) k použítí:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:134 msgid "" @@ -9414,6 +9862,12 @@ msgid "" "on your iPhone. Here myhostname should be the fully qualified hostname or " "the IP address of the computer calibre is running on." msgstr "" +"<p>Nezapomeňte, že Calibre běží jako server tak dlouho, jak dlouho je " +"spuÅ¡tÄ›ný program Calibre.\n" +"<p>Stanza by mÄ›la vidÄ›t VaÅ¡i Calibre sbírku automaticky. Pokud ne, zkuste " +"pÅ™idat ve Stanza ÄteÄce v iPhonu nový katalog s URL http://myhostname:8080. " +"Myhostname oznaÄuje název hostitele nebo IP adresu poÄítaÄe, kde Calibre " +"běží." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/social.py:34 msgid "Downloading social metadata, please wait..." @@ -9465,7 +9919,7 @@ msgstr "Nemohu odebrat akce %s z umístÄ›ní" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:99 msgid "Customize the actions in:" -msgstr "" +msgstr "Upravit akce:" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:100 msgid "A&vailable actions" @@ -9493,32 +9947,36 @@ msgstr "Odebrat oznaÄené akce z liÅ¡ty" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:43 msgid "Invalid tweaks" -msgstr "" +msgstr "Neplatné vychytávky" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:44 msgid "" "The tweaks you entered are invalid, try resetting the tweaks to default and " "changing them one by one until you find the invalid setting." msgstr "" +"VylepÅ¡ení, která jste zadali, jsou neplatná, zkuste vylepÅ¡ení vrátit do " +"výchozího nastavení a mÄ›nit je postupnÄ›, dokud nenajdete neplatné nastavení." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:50 msgid "" "Values for the tweaks are shown below. Edit them to change the behavior of " "calibre. Your changes will only take effect after a restart of calibre." msgstr "" +"Hodnoty pro vylepÅ¡ení jsou uvedeny níže. Úpravou zmÄ›níte chování Calibre. " +"VaÅ¡e zmÄ›ny se projeví až po restartu Calibre." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:51 msgid "All available tweaks" -msgstr "" +msgstr "VÅ¡echny dostupné vychytávky" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:52 msgid "&Current tweaks" -msgstr "" +msgstr "Aktuální vychytávky" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Hledat" @@ -9579,7 +10037,7 @@ msgstr "&Výchozí" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" -msgstr "" +msgstr "Vlastní klávesové zkratky pro" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid "Keys" @@ -9595,7 +10053,7 @@ msgstr "Rám" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 msgid "&Custom" -msgstr "" +msgstr "&Vlastní" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 msgid "&Shortcut:" @@ -9615,26 +10073,22 @@ msgstr "VyÄistit" msgid "&Alternate shortcut:" msgstr "&Alternativní zkratka:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "PÅ™ejmenovat '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "ZmÄ›nit Å™azení pro '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Skrýt kategorii %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Zobrazit kategorii" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Zobrazit vÅ¡echny kategorie" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -9649,63 +10103,69 @@ msgstr "Spravovat uložená hledání" msgid "Manage User Categories" msgstr "Spravovat uživatelské kategorie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Zobrazit vÅ¡echny kategorie" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "ZmÄ›na autorů pro mnoho knih může trvat delší dobu. Jste si jisti?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "ZmÄ›na metadat pro tak mnoho knih bude trvat dlouho. Jste si jisti?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Hledání" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Zduplikovat hledané jméno" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." -msgstr "" +msgstr "Uložené vyhledávací jméno %s je již používáno." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "SeÅ™adit dle jména" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "SeÅ™adit dle popularity" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "SeÅ™adit podle průmÄ›rného hodnocení" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" -msgstr "" +msgstr "Nastavit poÅ™adí položek v Tag prohlížeÄi" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Porovnat vÅ¡e" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Najít kterékoliv" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" +"Když se oznaÄí více záznamů v ProhlížeÄi tagů, najdi libovolný, nebo vÅ¡echny " +"z nich" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Spravovat uživatelské kategorie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "PÅ™idat vaÅ¡e vlastní kategorie do Tag Browseru" @@ -9751,28 +10211,28 @@ msgstr "" "Následující knihy již byly pÅ™evedeny do %s formátu. PÅ™ejete si je " "pÅ™ekonvertovat?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Obnovit" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&PÅ™ispÄ›jte na vývoj calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Vysunout pÅ™ipojené zařízení" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" -msgstr "" +msgstr "Calibre příruÄka pro zaÄínající uživatele" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Chyba pÅ™evodu" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -9780,37 +10240,43 @@ msgstr "" "<p>Nelze pÅ™evést: %s<p> Kniha je chránÄ›na pomocí <a href=\"%s\">DRM</a>. " "PÅ™ed pÅ™evodem nejprve musíte odstranit DRM pomocí nástroje tÅ™etí strany." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Zdroj zakázán" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Selhalo</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " "Your donation helps keep calibre development going." msgstr "" +"je výsledek pÅ™ispÄ›ní mnoha dobrovolníků z celého svÄ›ta. Pokud se Vám produkt " +"líbí, podpoÅ™te jejich práci nÄ›jakým příspÄ›vkem. Váš dar pomůže udržet vývoj " +"calibre v chodu." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Prpbíha zpracování úloh. Opravdu chcete program ukonÄit?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" " Are you sure you want to quit?" msgstr "" +" komunikuje se zařízením!<br>\n" +" UkonÄení může způsobit poÅ¡kození v zařízení.<br>\n" +" Jste si jisti?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "UPOZORNÄšNÃ: Probíhá zpracování úloh." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -9823,6 +10289,9 @@ msgid "" "%s has been updated to version <b>%s</b>. See the <a href=\"http://calibre-" "ebook.com/whats-new\">new features</a>. Visit the download page?" msgstr "" +"%s byl aktualizován na verzi <b>%s</b>. Podívejte se na <a " +"href=\"http://calibre-ebook.com/whats-new\">nové funkce</a>. NavÅ¡tívit " +"stránku pro stažení?" #: /home/kovid/work/calibre/src/calibre/gui2/update.py:59 msgid "Update available!" @@ -9830,7 +10299,7 @@ msgstr "Dostupný update!" #: /home/kovid/work/calibre/src/calibre/gui2/update.py:64 msgid "Show this notification for future updates" -msgstr "Ukázat toto upozornÄ›ní pro budoucí updaty" +msgstr "Zobrazit toto upozornÄ›ní pro budoucí aktualizace" #: /home/kovid/work/calibre/src/calibre/gui2/update.py:69 msgid "&Get update" @@ -9944,25 +10413,28 @@ msgstr "Zapamatuj si poslednÄ› použitou velikost &okna" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "Maximum &view width:" -msgstr "" +msgstr "Maximální šířka &zobrazení:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "H&yphenate (break line in the middle of large words)" -msgstr "" +msgstr "RozdÄ›lení slov (dÄ›lící Äára uprostÅ™ed dlouhých slov)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." msgstr "" +"Výchozí jazyk pro použítí pravidel dÄ›lení slov. Pokud nemá kniha pÅ™esnÄ› " +"urÄený jazyk, bude použit výchozí." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 msgid "Default &language for hyphenation:" -msgstr "" +msgstr "Výchozí &jazyk pro dÄ›lení slov:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:178 msgid "&Resize images larger than the viewer window (needs restart)" msgstr "" +"&ZmÄ›nit velikost obrázků vÄ›tších než okno prohlížeÄe (vyžadován restart)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:179 msgid "&User stylesheet" @@ -9974,7 +10446,7 @@ msgstr "&Hlavní" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:181 msgid "Double click to change a keyboard shortcut" -msgstr "" +msgstr "Dvakrát kliknÄ›te pro zmÄ›nu klávesové zkratky" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:182 msgid "&Keyboard shortcuts" @@ -9984,17 +10456,17 @@ msgstr "&Klávesové zkratky" msgid "No results found for:" msgstr "Žádné výsledky nenalezeny pro:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Možnosti úpravy prohlížeÄe elektronických knih" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Zapamatuj si poslednÄ› použitou velikost okna" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10002,80 +10474,82 @@ msgstr "" "Nastaví uživatelské kaskádové styly, kterými je možné upravit vzhled vÅ¡ech " "knih." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 -msgid "Resize images larger than the viewer window to fit inside it" -msgstr "" +msgstr "Maximální šířka okna prohlížeÄe, v pixelech." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" +"ZmÄ›nit velikost obrázků vÄ›tších než okno prohlížeÄe (dle velikosti tohoto " +"okna)" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" -msgstr "" +msgstr "DÄ›lení slov v textu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" -msgstr "" +msgstr "Výchozí jazyk pro pravidla dÄ›lení slov" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Nastavení písma" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "Patkové písmo" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 -msgid "The monospaced font family" -msgstr "" +msgstr "Rodina fontů sans-serif" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +msgid "The monospaced font family" +msgstr "Rodina fontů monospaced" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "Velikost standartního fontu v px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 -msgid "The monospaced font size in px" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 -msgid "The standard font type" -msgstr "" +msgid "The monospaced font size in px" +msgstr "Velikost fontu monospaced v px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 +msgid "The standard font type" +msgstr "Standardní typ fontu" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "Podívat do slovníku" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "PÅ™ejít na..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Další sekce" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "PÅ™edchozí sekce" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "ZaÄátek dokumentu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Konec dokumentu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "ZaÄátek sekce" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Konec sekce" @@ -10137,96 +10611,101 @@ msgstr "Pozice v knize" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 msgid "Go to a reference. To get reference numbers, use the reference mode." -msgstr "" +msgstr "Jít na odkaz. K získání odkazujících Äísel použijte reference mód." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:203 msgid "Search for text in book" msgstr "Hledat text v knize" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Náhled tisku" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" -msgstr "" +msgstr "PÅ™ipojení k dict.org pro vyhledávání: <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Vyberte elektronickou knihu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Elektronické knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Nenalezena shoda pro: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "NaÄítam tok..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" -msgstr "" +msgstr "Rozvržení %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Záložka #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "PÅ™idat záložku" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Zadejte název záložky:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Spravovat záložky" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "NaÄítám knihu..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM Error" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Tato kniha je chránÄ›na <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Nemohu otevřít eknihu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Volby ke kontrole prohlížeÄe ebooků" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." -msgstr "" +msgstr "Pokud specifikováno, okno prohlížeÄe se zobrazí po startu v popÅ™edí." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" +"Pokud je zadáno, pokusí se pÅ™i spuÅ¡tÄ›ní otevřít okno prohlížeÄe na celou " +"obrazovku." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Tisknout upozornÄ›ní javascriptu a konzolové zprávy do konzole" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" "View an ebook.\n" msgstr "" +"%prog [options] soubor\n" +"\n" +"Prohlédnout ebook.\n" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "E-book Viewer" @@ -10282,7 +10761,7 @@ msgstr "Záložka" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:209 msgid "Toggle full screen" -msgstr "" +msgstr "PÅ™epnout na celou obrazovku" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:210 msgid "Print" @@ -10314,11 +10793,11 @@ msgstr "Vložit obrázek" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:384 msgid "Change Case" -msgstr "" +msgstr "ZmÄ›nit velikost písmen" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:387 msgid "Swap Case" -msgstr "" +msgstr "ZamÄ›nit malá/velká písmena" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:858 msgid "Drag to resize" @@ -10326,7 +10805,7 @@ msgstr "TáhnÄ›te pro zmÄ›nu velikosti" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:893 msgid "Show" -msgstr "Ukázat" +msgstr "Zobrazit" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:900 msgid "Hide" @@ -10334,62 +10813,70 @@ msgstr "Skrýt" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:937 msgid "Toggle" -msgstr "" +msgstr "PÅ™epínaÄ" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 "" +"Pokud používáte WordPlayer e-book aplikaci na VaÅ¡em Android telefonu, můžete " +"pÅ™istupovat k Vaší calibre kolekci přímo ze zařízení. Musíte ale nastartovat " +"content server." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "" "Nezapomeňte nechat calibre běžet. Server běží pouze pokud běží calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 "" +"Musíte v aplikaci WordPlayer pÅ™idat Calibre knihovnu s URL " +"http://myhostname:8080. Myhostname oznaÄuje název hostitele nebo IP adresu " +"poÄítaÄe, na kterém Calibre běží." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "PÅ™esouvám knihovnu..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "PÅ™esun knihovny selhal" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Neplatná databáze" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" msgstr "" +"<p> Neplatná knihovna již existuje na %s, smažte ji pÅ™ed pokusem pÅ™esunout " +"existující knihovnu.<br> Chyba: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Nemohu pÅ™esunout knihovnu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "OznaÄ lokace pro knihy" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "Musíte zvolit prázdnou složku pro calibre knihovnu. %s není prázdná." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "uvítací průvodce" @@ -10439,12 +10926,16 @@ msgid "" "<h2>Demo videos</h2>Videos demonstrating the various features of calibre are " "available <a href=\"http://calibre-ebook.com/demo\">online</a>." msgstr "" +"<h2>Demo videa</h2>Videa demonstrující různé funkce Calibre jsou dostupná <a " +"href=\"http://calibre-ebook.com/demo\">online</a>." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:51 msgid "" "<h2>User Manual</h2>A User Manual is also available <a href=\"http://calibre-" "ebook.com/user_manual\">online</a>." msgstr "" +"<h2>Uživatelská příruÄka</h2>Uživatelská příruÄka je také dostupná <a " +"href=\"http://calibre-ebook.com/user_manual\">online</a>." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:49 msgid "" @@ -10454,6 +10945,11 @@ msgid "" "button below. You will also have to register your gmail address in your " "Amazon account." msgstr "" +"<p>Calibre umožňuje automaticky zasílat knihy emailem na Váš Kindle. Níže je " +"možné nastavit emailové doruÄování. Nejjednodušším způsobem je nastavení <a " +"href=\"http://gmail.com\">gmail úÄtu</a> a poté kliknÄ›te na tlaÄítko Použít " +"Gmail. Také budete muset zaregistrovat emailovou adresu služby Gmail ve " +"VaÅ¡em Amazon úÄtu." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:50 msgid "&Kindle email:" @@ -10465,11 +10961,11 @@ msgstr "Zvolte &jazyk:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Zvolte lokaci pro VaÅ¡e knihy. Když pÅ™idáte knihy do calibre, budou " -"zkopírovány sem:" +"<p>Zvolte umístÄ›ní pro knihy. Když pÅ™idáváte knihy do calibre, musí být " +"nakopírovány zde. Použijte <b>prázdnou složku</b> pro novou calibre knihovnu:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -10481,125 +10977,174 @@ msgid "" "location. If a calibre library already exists at the new location, calibre " "will switch to using it." msgstr "" +"Pokud máte existující Calibre knihovnu, bude zkopírována do nového umístÄ›ní. " +"Pokud již Calibre knihovna existuje v novém umístÄ›ní, Calibre ji pÅ™epne k " +"používání." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Používá: %s:%s@%s:%s a %s Å¡ifrování" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Odesílám..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "E-mail úspěšnÄ› odeslán" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "DokonÄit nastavení gmailu" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Nezapomeňte vložit VaÅ¡e Gmail jméno a heslo. Můžete si zdarma zřídit úÄet na " -"http://gmail.com" +"Pokud nastavujete nový úÄet služby Hotmail, musíte se nejdříve pÅ™ihlásit než " +"budete moci odeslat e-maily." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"Můžete se pÅ™ihlásit k bezplatnému {name} emailovému úÄtu zde <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "VaÅ¡e %s &emailová adresa:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "VaÅ¡e %s &uživatelské jméno:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "VaÅ¡e %s &heslo:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"Pokud plánujete používat e-mail k posílání knih na Váš Kindle, nezapomeňte " +"pÅ™idat svoji %s emailovou adresu do povolených emailových adres na stránce " +"Amazon.com - správa Kindle." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "Nastavení" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Å patná konfigurace" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" -msgstr "" +msgstr "Musíte zadat emailovou adresu odesílatele" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "Musíte nastavit jméno a heslo pro emailový server." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Odeslat email z:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" msgstr "" +"<p>Toto bude uvedeno v poli Odesílatel u emailů odeslaných z Calibre.<br> " +"Zde nastavte VaÅ¡i emailovou adresu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." msgstr "" +"<p>Mail server je použitelný, pokud služba, pÅ™es kterou posíláte emaily, " +"akceptuje zprávy jen pÅ™es známé mailové služby." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "E-Mailový &Server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "calibre může <b>volitelnÄ›</b> použít server k odeslání emailu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Hostname:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "Hostname VaÅ¡eho mailového serveru. NapÅ™. smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "Port VaÅ¡eho mailového serveru pro pÅ™ipojení. Běžný je 25." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "VaÅ¡e jméno na e-mailovém serveru" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "VaÅ¡e heslo na e-mailovém serveru" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" -msgstr "&Ukázat" +msgstr "&Zobrazit" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "Å i&frování" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." msgstr "" "Použít TLS Å¡ifrování k pÅ™ipojení k emailovému serveru. Toto je běžná volba." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Použít SSL Å¡ifrování pro pÅ™ipojení k mailovému serveru." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "VAROVÃNÃ: Nepoužívání žádného Å¡ifrování je velice nebezpeÄné" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "Žádný" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Použij Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Použít Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Otestovat email" @@ -10610,6 +11155,10 @@ msgid "" "directly on the device. To do this you have to turn on the calibre content " "server." msgstr "" +"<p> Pokud používáte <a href=\"http://www.lexcycle.com/download\">Stanza</a> " +"e-book aplikaci na VaÅ¡em iPhone/iTouch, můžete si zpřístupnit VaÅ¡i calibre " +"sbírku přímo na přístroji. Pro přístup budete muset zapnout calibre content " +"server." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:50 msgid "Turn on the &content server" @@ -10630,12 +11179,12 @@ msgstr "tentomÄ›síc" #: /home/kovid/work/calibre/src/calibre/library/caches.py:374 #: /home/kovid/work/calibre/src/calibre/library/caches.py:375 msgid "daysago" -msgstr "" +msgstr "dní zpÄ›t" #: /home/kovid/work/calibre/src/calibre/library/caches.py:539 #: /home/kovid/work/calibre/src/calibre/library/caches.py:549 msgid "unchecked" -msgstr "" +msgstr "nezaÅ¡krtnuto" #: /home/kovid/work/calibre/src/calibre/library/caches.py:539 #: /home/kovid/work/calibre/src/calibre/library/caches.py:549 @@ -10646,7 +11195,7 @@ msgstr "ne" #: /home/kovid/work/calibre/src/calibre/library/caches.py:542 #: /home/kovid/work/calibre/src/calibre/library/caches.py:552 msgid "checked" -msgstr "" +msgstr "zaÅ¡krtnuto" #: /home/kovid/work/calibre/src/calibre/library/caches.py:542 #: /home/kovid/work/calibre/src/calibre/library/caches.py:552 @@ -10662,7 +11211,7 @@ msgstr "prázdný" msgid "empty" msgstr "prázdný" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10671,7 +11220,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10679,7 +11228,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10688,7 +11237,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10696,15 +11245,19 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"VytvoÅ™it citaci pro BibTeX záznamy.\n" +"Boolská hodnota: True, False\n" +"Výchozí: '%default'\n" +"Používá se na: BIBTEX výstupní formát" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -10713,38 +11266,53 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"BibTeX kódování výstupního souboru.\n" +"Dostupné typy: utf8, cp1252, ascii.\n" +"Výchozí: '%default'\n" +"Platí pro: výstupní formát BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"BibTeX flag kódování.\n" +"Dostupné typy: strict, replace, ignore, backslashreplace.\n" +"Výchozí: '%default'\n" +"Použije se na: BIBTEX výstupní formát" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" "Default: '%default'\n" "Applies to: BIBTEX output format" msgstr "" +"Typ záznamu pro katalog BibTeX.\n" +"Dostupné typy: kniha, různé, smíšené.\n" +"Výchozí: '%default'\n" +"Platí pro: výstupní formát BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Název vygenerovaného katalogu použit jako název v metadatech.\n" +"Výchozí: '%default'\n" +"Platí pro: výstupní formáty ePub a MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -10753,14 +11321,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -10769,35 +11337,48 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Zahrnout 'Titles' sekci v katalogu.\n" +"Výchozí: '%default'\n" +"Aplikuje se na: ePub, MOBI výstupní formáty" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Zahrnout 'Série' sekci do katalogu.\n" +"Výchozí: '%default'\n" +"Použije se na: ePub, MOBI výstupní formáty" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Zahrnout sekci 'Nedávno pÅ™idané' do katalogu.\n" +"Výchozí: '%default'\n" +"Použité na: ePub, MOBI výstupní formáty" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Tag pÅ™edpona pro uživatelské poznámky, napÅ™. '*Jeff might enjoy reading " +"this'.\n" +"Výchozí: '%default'\n" +"Použije se na: ePub, MOBI výstupní formáty" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -10805,8 +11386,13 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"TÅ™iÄ názvy s prvním Äíslem jako textem, napÅ™.,\n" +"'2001: Vesmírná Odyssea' setřídit jako \n" +"'Dva Tisíce Jedna: Vesmírná Odyssea'.\n" +"Výchozí: '%default'\n" +"Aplikuje se na: ePub, MOBI výstupní formáty" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -10816,28 +11402,41 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Tag indikující pÅ™eÄtenou knihu.\n" +"Výchozí: '%default'\n" +"Aplikuje se na: ePub, MOBI výstupní formáty" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Tag indikující knihu jako položku seznamu přání.\n" +"Výchozí: '%default'\n" +"Aplikuje se na: ePub, MOBI výstupní formáty" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" -msgstr "" +msgstr "Neplatné tituly" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:18 msgid "Extra titles" -msgstr "" +msgstr "Extra tituly" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:19 msgid "Invalid authors" -msgstr "" +msgstr "Neplatní autoÅ™i" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:20 msgid "Extra authors" -msgstr "" +msgstr "Extra autoÅ™i" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:21 msgid "Missing book formats" @@ -10845,7 +11444,7 @@ msgstr "ChybÄ›jící knižní formáty" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:22 msgid "Extra book formats" -msgstr "" +msgstr "Další knižní formáty" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:23 msgid "Unknown files in books" @@ -10853,7 +11452,7 @@ msgstr "Neznámé soubory v knihách" #: /home/kovid/work/calibre/src/calibre/library/check_library.py:24 msgid "Folders raising exception" -msgstr "" +msgstr "Složky vyvolávající výjimku" #: /home/kovid/work/calibre/src/calibre/library/cli.py:43 msgid "" @@ -10868,6 +11467,9 @@ msgid "" "\n" "List the books available in the calibre database.\n" msgstr "" +"%prog list [options]\n" +"\n" +"Seznam knih dostupných v calibre databáze.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:130 msgid "" @@ -10884,6 +11486,9 @@ msgid "" "Available fields: %s\n" "Default: %%default" msgstr "" +"Pole podle kterého třídit výsledky\n" +"Dostupná pole: %s\n" +"Výchozí: %%default" #: /home/kovid/work/calibre/src/calibre/library/cli.py:139 msgid "Sort results in ascending order" @@ -10895,6 +11500,9 @@ msgid "" "please see the search related documentation in the User Manual. Default is " "to do no filtering." msgstr "" +"Filtrovat výsledky dotazu pÅ™i vyhledávání. Pro zadání formátu dotazu " +"vyhledávání se podívejte do související dokumentace v uživatelské příruÄce. " +"Výchozí je neprovádÄ›t žádné filtrování." #: /home/kovid/work/calibre/src/calibre/library/cli.py:143 #: /home/kovid/work/calibre/src/calibre/library/cli.py:1044 @@ -10902,6 +11510,7 @@ msgid "" "The maximum width of a single line in the output. Defaults to detecting " "screen size." msgstr "" +"Maximální šířka řádku ve výstupu. Výchozí pro urÄení velikosti obrazovky." #: /home/kovid/work/calibre/src/calibre/library/cli.py:144 msgid "The string used to separate fields. Default is a space." @@ -10912,6 +11521,8 @@ msgid "" "The prefix for all file paths. Default is the absolute path to the library " "folder." msgstr "" +"Prefix pro vÅ¡echny cesty k souborům. Výchozí je absolutní cesta do knihovní " +"složky." #: /home/kovid/work/calibre/src/calibre/library/cli.py:167 msgid "Invalid fields. Available fields:" @@ -10943,16 +11554,20 @@ 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 "" +"PÅ™edpokládá se, že každý adresář obsahuje pouze jednu logickou knihu, a že " +"vÅ¡echny soubory v nÄ›m jsou různé formáty této knihy" #: /home/kovid/work/calibre/src/calibre/library/cli.py:281 msgid "Process directories recursively" -msgstr "" +msgstr "Zpracuj adresáře rekurzivnÄ›" #: /home/kovid/work/calibre/src/calibre/library/cli.py:283 msgid "" "Add books to database even if they already exist. Comparison is done based " "on book titles." msgstr "" +"PÅ™idat knihy do databáze, i když již existují. Srovnání je provádÄ›no na " +"základÄ› názvů knih." #: /home/kovid/work/calibre/src/calibre/library/cli.py:285 msgid "Add an empty book (a book with no formats)" @@ -10982,6 +11597,11 @@ msgid "" "separated list of id numbers (you can get id numbers by using the list " "command). For example, 23,34,57-85\n" msgstr "" +"%prog remove ids\n" +"\n" +"Odstraní knihy oznaÄené podle ids z databáze. Ids by mÄ›l být seznam id Äísel " +"oddÄ›lený Äárkami (id Äísla můžete získat pomocí seznamu příkazů). Například, " +"23,34,57-85\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:349 msgid "You must specify at least one book to remove" @@ -10998,7 +11618,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:383 msgid "You must specify an id and an ebook file" -msgstr "" +msgstr "Musíte zadat id a ebook soubor" #: /home/kovid/work/calibre/src/calibre/library/cli.py:388 msgid "ebook file must have an extension" @@ -11027,6 +11647,11 @@ msgid "" "id.\n" "id is an id number from the list command.\n" msgstr "" +"\n" +"%prog show_metadata [options] id\n" +"\n" +"Ukázat metadata uložená v calibre databázi pro knihu identifikovanou id.\n" +"id je Äíslo ze seznamu příkazů.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:439 msgid "Print metadata in OPF form (XML)" @@ -11078,11 +11703,11 @@ msgstr "Exportovat vÅ¡echny knihy do jednoho adresáře" #: /home/kovid/work/calibre/src/calibre/library/cli.py:518 msgid "Specifying this switch will turn this behavior off." -msgstr "" +msgstr "Nastavení tohoto pÅ™epínaÄe vypne toto chování." #: /home/kovid/work/calibre/src/calibre/library/cli.py:541 msgid "You must specify some ids or the %s option" -msgstr "" +msgstr "Musíte specifikovat nÄ›jaká IDÄka, nebo %s volby" #: /home/kovid/work/calibre/src/calibre/library/cli.py:554 msgid "" @@ -11100,16 +11725,19 @@ msgid "" "This column stores tag like data (i.e. multiple comma separated values). " "Only applies if datatype is text." msgstr "" +"Tento sloupec ukládá tagy jako data (mnoho Äárkou oddÄ›lených hodnot). " +"Použitelné pouze pokud je datový typ text." #: /home/kovid/work/calibre/src/calibre/library/cli.py:567 msgid "" "A dictionary of options to customize how the data in this column will be " "interpreted." msgstr "" +"Slovník voleb pro nastavení, jak budou data ve sloupcích interpretována." #: /home/kovid/work/calibre/src/calibre/library/cli.py:580 msgid "You must specify label, name and datatype" -msgstr "" +msgstr "Musíte zadat oznaÄení, název a datový typ" #: /home/kovid/work/calibre/src/calibre/library/cli.py:641 msgid "" @@ -11128,6 +11756,9 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Čárkami oddÄ›lený seznam databázových ID pro katalog.\n" +"Pokud je deklarováno, volba --search je ignorována.\n" +"Výchozí: all" #: /home/kovid/work/calibre/src/calibre/library/cli.py:659 msgid "" @@ -11135,6 +11766,10 @@ msgid "" "please see the search-related documentation in the User Manual.\n" "Default: no filtering" msgstr "" +"Filtrování výsledků dotazu pÅ™i vyhledávání. Pro zadání formátu dotazu pÅ™i " +"vyhledávání se prosím podívejte do související dokumentace v uživatelské " +"příruÄce.\n" +"Výchozí: bez filtrování" #: /home/kovid/work/calibre/src/calibre/library/cli.py:665 #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:499 @@ -11144,7 +11779,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:678 msgid "Error: You must specify a catalog output file" -msgstr "" +msgstr "Chyba: Musíte zadat výstupní soubor katalogu" #: /home/kovid/work/calibre/src/calibre/library/cli.py:727 msgid "" @@ -11163,10 +11798,12 @@ msgid "" "If the column stores multiple values, append the specified values to the " "existing ones, instead of replacing them." msgstr "" +"Pokud sloupec ukládá více hodnot, pÅ™idá zvolené hodnoty do jedné existující, " +"místo toho, aby se nahradila." #: /home/kovid/work/calibre/src/calibre/library/cli.py:749 msgid "Error: You must specify a field name, id and value" -msgstr "" +msgstr "Chyba: Musíte zadat název pole, id a hodnotu" #: /home/kovid/work/calibre/src/calibre/library/cli.py:768 msgid "" @@ -11176,18 +11813,23 @@ msgid "" " List available custom columns. Shows column labels and ids.\n" " " msgstr "" +"\n" +" %prog custom_columns [options]\n" +"\n" +" Seznam dostupných vlastních sloupců. Zobrazí popisky sloupců a ids.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:775 msgid "Show details for each column." -msgstr "" +msgstr "Zobrazit podrobnosti pro každý sloupec." #: /home/kovid/work/calibre/src/calibre/library/cli.py:787 msgid "You will lose all data in the column: %r. Are you sure (y/n)? " -msgstr "" +msgstr "Ztratíte vÅ¡echna data ve sloupci: %r. Jste si jisti (a/n)? " #: /home/kovid/work/calibre/src/calibre/library/cli.py:789 msgid "y" -msgstr "" +msgstr "a" #: /home/kovid/work/calibre/src/calibre/library/cli.py:795 msgid "" @@ -11201,7 +11843,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:803 msgid "Do not ask for confirmation" -msgstr "" +msgstr "Bez dotazu na potvrzení" #: /home/kovid/work/calibre/src/calibre/library/cli.py:813 msgid "Error: You must specify a column label" @@ -11260,6 +11902,8 @@ msgid "" "Perform some checks on the filesystem representing a library. Reports are " "{0}\n" msgstr "" +"%prog check_library [options]\n" +"Provede nÄ›jaké kontroly na filesystému, kde je knihovna. Reporty jsou {0}\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:886 #: /home/kovid/work/calibre/src/calibre/library/cli.py:1036 @@ -11271,22 +11915,28 @@ msgid "" "Comma-separated list of reports.\n" "Default: all" msgstr "" +"Čárkou oddÄ›lený seznam reportů.\n" +"Výchozí: all" #: /home/kovid/work/calibre/src/calibre/library/cli.py:893 msgid "" "Comma-separated list of extensions to ignore.\n" "Default: all" msgstr "" +"Čárkami oddÄ›lený seznam ignorovaných přípon.\n" +"Výchozí: all" #: /home/kovid/work/calibre/src/calibre/library/cli.py:897 msgid "" "Comma-separated list of names to ignore.\n" "Default: all" msgstr "" +"Čárkami oddÄ›lený seznam ignorovaných jmen.\n" +"Výchozí: all" #: /home/kovid/work/calibre/src/calibre/library/cli.py:927 msgid "Unknown report check" -msgstr "" +msgstr "Neznámé hlášení o kontrole" #: /home/kovid/work/calibre/src/calibre/library/cli.py:960 msgid "" @@ -11308,10 +11958,11 @@ msgid "" "Really do the recovery. The command will not run unless this option is " "specified." msgstr "" +"Opravdu proveÄ obnovu. Příkaz nebude spuÅ¡tÄ›n, dokud je volba zvolena." #: /home/kovid/work/calibre/src/calibre/library/cli.py:988 msgid "You must provide the --really-do-it option to do a recovery" -msgstr "" +msgstr "Musíte použít volbu --really-do-it, aby se obnova provedla" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1025 msgid "" @@ -11320,24 +11971,34 @@ msgid "" "Produce a report of the category information in the database. The\n" "information is the equivalent of what is shown in the tags pane.\n" msgstr "" +"%prog list_categories [options]\n" +"\n" +"Vytvoří report kategorií informací v databázi.\n" +"Informace je ekvivalentem toho, co se zobrazuje v panelu tagů.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1033 msgid "" "Output only the number of items in a category instead of the counts per item " "within the category" msgstr "" +"Výstupem je jen poÄet položek v kategorii namísto poÄtu položek v rámci " +"kategorie." #: /home/kovid/work/calibre/src/calibre/library/cli.py:1038 msgid "" "The character to put around the category value in CSV mode. Default is " "quotes (\")." msgstr "" +"Znak, který se umístí kolem hodnoty kategorie v CSV módu. Výchozí jsou " +"uvozovky (\")." #: /home/kovid/work/calibre/src/calibre/library/cli.py:1041 msgid "" "Comma-separated list of category lookup names.\n" "Default: all" msgstr "" +"Čárkami oddÄ›lený seznam kategorií hledaných jmen.\n" +"Výchozí: all" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1047 msgid "The string used to separate fields in CSV mode. Default is a comma." @@ -11345,7 +12006,7 @@ msgstr "ŘetÄ›zec použitý k oddÄ›lení polí v režimu CSV. Výchozí je Äár #: /home/kovid/work/calibre/src/calibre/library/cli.py:1085 msgid "CATEGORY ITEMS" -msgstr "" +msgstr "POLOŽKY KATEGORIE" #: /home/kovid/work/calibre/src/calibre/library/cli.py:1154 msgid "" @@ -11361,45 +12022,47 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:544 msgid "No label was provided" -msgstr "" +msgstr "Nebyl vložen žádný popisek" #: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:546 msgid "" "The label must contain only lower case letters, digits and underscores, and " "start with a letter" msgstr "" +"Å títek musí obsahovat pouze malá písmena, Äíslice a podtržítka, a musí " +"zaÄínat písmenem" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" -msgstr "" +msgstr "%sPrůmÄ›rné hodnocení je %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Hlavní" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" -msgstr "" +msgstr "<p>Migruji starou databázi do knihovy ebooků v %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" -msgstr "" +msgstr "Kopírování <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" -msgstr "" +msgstr "Zhutňování databáze" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Kontrola integrity SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Kontrola chybÄ›jících souborů." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" -msgstr "" +msgstr "Zkontrolované id" #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:139 msgid "Ratings" @@ -11407,7 +12070,7 @@ msgstr "Hodnocení" #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:276 msgid "Title Sort" -msgstr "" +msgstr "TřídÄ›ní titulů" #: /home/kovid/work/calibre/src/calibre/library/restore.py:125 msgid "Processed" @@ -11446,6 +12109,8 @@ msgid "" "The series number. To get leading zeros use {series_index:0>3s} or " "{series_index:>3s} for leading spaces" msgstr "" +"Číslo série. Pro získání úvodních nul použijte {series_index:0>3s} nebo " +"{series_index:>3s} pro úvodní mezery" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:41 msgid "The rating" @@ -11473,31 +12138,37 @@ msgstr "Calibre interní ID" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:56 msgid "Options to control saving to disk" -msgstr "" +msgstr "Možnosti ovládání ukládání na disk" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:62 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." msgstr "" +"Calibre upraví metadata v uložených souborech. Zpomalí ukládání na disk." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:65 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." msgstr "" +"Calibre zapíše metadata do oddÄ›leného OPF souboru k aktuálním e-book " +"souborům." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:68 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" +"Calibre uloží obálku knihy do oddÄ›leného souboru k aktuálním e-book souborům." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:71 msgid "" "Comma separated list of formats to save for each book. By default all " "available formats are saved." msgstr "" +"Čárkou oddÄ›lený seznam formátů pro uložení pro každou knihu. Ve výchozím " +"nastavení se uloží vÅ¡echny dostupné formáty." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:74 msgid "" @@ -11529,6 +12200,8 @@ msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" +"Formát, ve kterém se zobrazí datumy. %d - den,%b - mÄ›síc,%Y - rok. Výchozí " +"hodnota je:%b,%Y" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:98 msgid "Convert paths to lowercase." @@ -11544,11 +12217,11 @@ msgstr "Požadované formáty nejsou k dispozici" #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:21 msgid "Settings to control the calibre content server" -msgstr "" +msgstr "Nastavení pro calibre content server" #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:25 msgid "The port on which to listen. Default is %default" -msgstr "" +msgstr "Port k naslouchání. Výchozí hodnota je %default" #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:27 msgid "The server timeout in seconds. Default is %default" @@ -11578,6 +12251,8 @@ msgid "" "The maximum number of matches to return per OPDS query. This affects Stanza, " "WordPlayer, etc. integration." msgstr "" +"Nejvyšší poÄet výsledů vrácený pÅ™es OPDS dotaz. Toto ovlivní Stanza, " +"WordPlayer a další integrace." #: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:43 msgid "" @@ -11591,129 +12266,132 @@ msgid "" "Prefix to prepend to all URLs. Useful for reverseproxying to this server " "from Apache/nginx/etc." msgstr "" +"Prefix pro pÅ™idání ke vÅ¡em URL. Použitelné pro reverzní proxy na tento " +"server z Apache/nginx/atd." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "Heslo pro přístup do calibre knihovny. Uživatelské jméno je " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "NaÄítání, prosím Äekejte" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "PÅ™ejít na" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "První" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Poslední" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "PÅ™edchozí" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Další" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" -msgstr "" +msgstr "Procházení %d knih" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "PrůmÄ›rné hodnocení" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" -msgstr "" +msgstr "%s: %.1f hvÄ›zd" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" -msgstr "" +msgstr "%d hvÄ›zd" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" -msgstr "" +msgstr "Oblíbenost" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Řadit podle" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "knihovna" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "domů" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "NejnovÄ›jší" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "VÅ¡echny knihy" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Procházet knihy podle" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" -msgstr "" +msgstr "Zvolte kategorii k procházení:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Procházení podle" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Nahoru" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "v" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Knihy v" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Ostatní formáty" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 -msgid "Read %s in the %s format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 -msgid "Get" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 -msgid "Permalink" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 -msgid "A permanent link to this book" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +msgid "Read %s in the %s format" +msgstr "Číst %s v %s formátu" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 +msgid "Get" +msgstr "Získat" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 +msgid "Permalink" +msgstr "Stálý odkaz" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 +msgid "A permanent link to this book" +msgstr "Trvalý odkaz k této knize" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Tato kniha byla smazána" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" -msgstr "" +msgstr "v hledání" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Odpovídající knihy" @@ -11732,11 +12410,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/server/main.py:52 msgid "Path to the library folder to serve with the content server" -msgstr "" +msgstr "Cesta ke knihovnÄ› pro content server" #: /home/kovid/work/calibre/src/calibre/library/server/main.py:54 msgid "Write process PID to the specified file" -msgstr "" +msgstr "Zapsat proces PID do zadaného souboru" #: /home/kovid/work/calibre/src/calibre/library/server/main.py:58 msgid "" @@ -11749,26 +12427,28 @@ msgid "" "Auto reload server when source code changes. May not work in all " "environments." msgstr "" +"Automaticky znovu naÄíst server pÅ™i zmÄ›nÄ› zdrojového kódu. Nemusí fungovat " +"ve vÅ¡ech prostÅ™edích." #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d book" -msgstr "" +msgstr "%d kniha" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:131 msgid "%d items" -msgstr "" +msgstr "%d položek" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:149 msgid "RATING: %s<br />" -msgstr "" +msgstr "HODNOCENÃ: %s<br />" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:152 msgid "TAGS: %s<br />" -msgstr "" +msgstr "TAGY: %s<br />" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:157 msgid "SERIES: %s [%s]<br />" -msgstr "" +msgstr "Série: %s [%s]<br />" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:248 msgid "Books in your library" @@ -11776,7 +12456,7 @@ msgstr "Knihy ve vaší knihovnÄ›" #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:254 msgid "By " -msgstr "" +msgstr "Od " #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:255 msgid "Books sorted by " @@ -11784,7 +12464,7 @@ msgstr "Řazení knih podle " #: /home/kovid/work/calibre/src/calibre/utils/config.py:32 msgid "%sUsage%s: %s\n" -msgstr "" +msgstr "%sPoužití%s: %s\n" #: /home/kovid/work/calibre/src/calibre/utils/config.py:76 msgid "Created by " @@ -11795,6 +12475,7 @@ msgid "" "Whenever you pass arguments to %prog that have spaces in them, enclose the " "arguments in quotation marks." msgstr "" +"Kdykoliv pÅ™edáváte argument %prog , který obsahuje mezery, použijte uvozovky." #: /home/kovid/work/calibre/src/calibre/utils/config.py:697 msgid "Path to the database in which books are stored" @@ -11802,7 +12483,7 @@ msgstr "Cesta k databázi, ve které jsou uloženy knihy" #: /home/kovid/work/calibre/src/calibre/utils/config.py:699 msgid "Pattern to guess metadata from filenames" -msgstr "" +msgstr "Vzor k získání metadat z názvů souborů" #: /home/kovid/work/calibre/src/calibre/utils/config.py:701 msgid "Access key for isbndb.com" @@ -11810,7 +12491,7 @@ msgstr "Přístupový klÃ­Ä pro isbndb.com" #: /home/kovid/work/calibre/src/calibre/utils/config.py:703 msgid "Default timeout for network operations (seconds)" -msgstr "" +msgstr "Výchozí hodnota Äasového limitu pro síťové operace (v sekundách)" #: /home/kovid/work/calibre/src/calibre/utils/config.py:705 msgid "Path to directory in which your library of books is stored" @@ -11846,19 +12527,19 @@ msgstr "PÅ™idat nové formáty do existující knihy záznamů" #: /home/kovid/work/calibre/src/calibre/utils/config.py:723 msgid "Tags to apply to books added to the library" -msgstr "" +msgstr "Tagy pro aplikování do knih pÅ™idaných do knihovny" #: /home/kovid/work/calibre/src/calibre/utils/config.py:727 msgid "List of named saved searches" -msgstr "" +msgstr "Seznam uložených hledání" #: /home/kovid/work/calibre/src/calibre/utils/config.py:728 msgid "User-created tag browser categories" -msgstr "" +msgstr "ProhlížeÄ uživatelsky vytvoÅ™ených kategorií tagů" #: /home/kovid/work/calibre/src/calibre/utils/config.py:730 msgid "How and when calibre updates metadata on the device." -msgstr "" +msgstr "Jak a kdy calibre aktualizuje metadata v zařízení." #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:33 msgid "lookup requires either 2 or an odd number of arguments" @@ -11866,7 +12547,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/formatter.py:56 msgid "switch requires an odd number of arguments" -msgstr "" +msgstr "pÅ™epnutí potÅ™ebuje lichý poÄet parametrů" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." @@ -11982,21 +12663,23 @@ msgstr "Vyber téma (vyžaduje restart)" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:188 msgid "No interpreter" -msgstr "" +msgstr "Žádný interpretr" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:189 msgid "No active interpreter found. Try restarting the console" -msgstr "" +msgstr "Žádný aktivní interpretr nenalezen. Zkuste restartovat konzoli" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:203 msgid "Interpreter died" -msgstr "" +msgstr "Interpretr vytuhl" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:204 msgid "" "Interpreter dies while excuting a command. To see the command, click Show " "details" msgstr "" +"Interpretr vytuhl bÄ›hem provádÄ›ní příkazu. KliknÄ›te na Zobrazit detaily pro " +"zobrazení problémového příkazu" #: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:20 msgid "Welcome to" @@ -12030,9 +12713,9 @@ msgstr "NepodaÅ™ilo se navázat SSH spojení: " msgid "Failed to authenticate with server: %s" msgstr "NepodaÅ™ilo se ověřit se serverem: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" -msgstr "" +msgstr "Ovládání doruÄování e-mailů" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:118 msgid "Unknown section" @@ -12060,15 +12743,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:40 msgid "Username for sites that require a login to access content." msgstr "" +"Uživatelské jméno pro stránky, které vyžadují pÅ™ihlášení pro přístup k " +"obsahu." #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:43 msgid "Password for sites that require a login to access content." -msgstr "" +msgstr "Heslo pro stránky, které vyžadují pÅ™ihlášení pro přístup k obsahu." #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:47 msgid "" "Do not download latest version of builtin recipes from the calibre server" msgstr "" +"Nestahovat poslední verzi zabudovaných skriptů pro stahování zpráv z calibre " +"serveru" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:47 msgid "Unknown News Source" @@ -12088,7 +12775,7 @@ msgstr "NepodaÅ™ilo se stáhnout následující Älánky:" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:735 msgid "Failed to download parts of the following articles:" -msgstr "" +msgstr "NepodaÅ™ilo se stáhnout Äásti následujících Älánků:" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:737 msgid " from " @@ -12100,15 +12787,15 @@ msgstr "\tChybné odkazy:" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:834 msgid "Could not fetch article. Run with -vv to see the reason" -msgstr "" +msgstr "Nelze získat Älánek. Spustit s parametrem -w pro zobrazení důvodů." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:855 msgid "Fetching feeds..." -msgstr "" +msgstr "Stahuji zdroje..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:860 msgid "Got feeds from index page" -msgstr "" +msgstr "Získány zdroje z úvodní strany" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:869 msgid "Trying to download cover..." @@ -12116,11 +12803,11 @@ msgstr "Pokouším se stáhnout obálku..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:871 msgid "Generating masthead..." -msgstr "" +msgstr "Generování tiráže..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:952 msgid "Starting download [%d thread(s)]..." -msgstr "" +msgstr "Startuji download [%d vláken]" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:968 msgid "Feeds downloaded to %s" @@ -12136,7 +12823,7 @@ msgstr "Stahování obálky z %s" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1032 msgid "Masthead image downloaded" -msgstr "" +msgstr "Obrázek z tiráže stažen" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1200 msgid "Untitled Article" @@ -12152,7 +12839,7 @@ msgstr "Stažení Älánku selhalo: %s" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1299 msgid "Fetching feed" -msgstr "" +msgstr "Stahuji feed" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1446 msgid "" @@ -13639,3 +14326,48 @@ msgstr "Nestahovat kaskádové styly." #~ msgid "Click to open Book Details window" #~ msgstr "KliknÄ›te pro otevÅ™ení detailů knihy" + +#~ msgid "Failed to email books" +#~ msgstr "Selhalo odeslání knih emailem" + +#~ msgid "Sent by email:" +#~ msgstr "Odesláno emailem:" + +#~ msgid "Failed to email the following books:" +#~ msgstr "Poslání následujících knih selhalo:" + +#~ msgid "Attached is the" +#~ msgstr "PÅ™iloženo je" + +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "Heslo pro přístup do calibre knihovny. Uživatelské jméno je " + +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Zvolte lokaci pro VaÅ¡e knihy. Když pÅ™idáte knihy do calibre, budou " +#~ "zkopírovány sem:" + +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Nezapomeňte vložit VaÅ¡e Gmail jméno a heslo. Můžete si zdarma zřídit úÄet na " +#~ "http://gmail.com" + +#~ msgid "Finish gmail setup" +#~ msgstr "DokonÄit nastavení gmailu" + +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Zadejte seznam ISBN do pole na levé stranÄ›, na každý řádek jedno. Calibre " +#~ "vytvoří automaticky položky pro knihy na základÄ› ISBN a stáhne pro nÄ› " +#~ "metadata a obálky.<p>Neplatné ISBN v seznamu budou ignorovány." + +#~ msgid "No details available" +#~ msgstr "Žádné detaily nejsou k dispozici" diff --git a/src/calibre/translations/da.po b/src/calibre/translations/da.po index e6488b0664..3efb08fbb9 100644 --- a/src/calibre/translations/da.po +++ b/src/calibre/translations/da.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 17:03+0000\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-28 07:28+0000\n" "Last-Translator: Glenn <Unknown>\n" "Language-Team: Danish <da@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-11 04:41+0000\n" +"X-Launchpad-Export-Date: 2010-11-29 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,11 +27,11 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -40,8 +40,8 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -55,7 +55,7 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -74,14 +74,14 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -89,7 +89,7 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -109,10 +109,10 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -121,15 +121,15 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -137,14 +137,14 @@ msgstr "Gør absolut ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -185,14 +185,14 @@ msgstr "Brugergrænseflade aktion" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Indstillinger" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -202,7 +202,7 @@ msgstr "" "fil. Dette udvidelsesmodul bliver kørt hver gang du tilføjer en HTML-fil til " "biblioteket." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -210,7 +210,7 @@ msgstr "" "Tegnsæt for kilde HTML-filerne. Typiske valg inkluderer: cp1252, latin1, iso-" "8859-1 og utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -220,7 +220,7 @@ msgstr "" "pmlname_img eller billeder. Dette udvidelsesmodul kører hver gang du " "tilføjer en PML-fil til biblioteket." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Udtræk omslag fra tegneserie-filer" @@ -267,43 +267,43 @@ msgstr "Gemmer metadata i %s filerne" msgid "Set metadata from %s files" msgstr "Sæt metadata fra %s filer" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Fremtoning" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Brugergrænseflade" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "Tilpas calibres grænseflades fremtoning til din smag" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Opførsel" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Ændr mÃ¥den calibre opfører sig pÃ¥" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Tilføj dine egne søjler" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Tilføj/fjern dine egne søjler til calibre boglisten" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Tilpas værktøjslinjen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -311,56 +311,56 @@ msgstr "" "Tilpas værktøjslinjen og kontekstmenuen, ændre hvilke aktioner som er " "tilgængelige i hver" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Input tilvalg" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Konvertering" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "Vælg konverteringsvalgmuligheder specifikke for hvert input-format" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Fælles tilvalg" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Vælg konverteringsvalgmuligheder fælles for alle formater" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Output valgmuligheder" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Vælg konverteringsvalgmuligheder specifikke for hvert output-format" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Tilføjer boger" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Import/eksport" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "Styre hvordan calibre læser metadata fra filer, nÃ¥r bøger tilføjes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Gemmer bøger til disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -368,32 +368,32 @@ msgstr "" "Styre hvordan calibre eksporterer filer fra dens database til disk, nÃ¥r gem-" "til-disk anvendes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Sender bøger til enheder" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Styre hvordan calibre overfører filer til din e-bogslæser" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Metadata plugboards" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Ændre metadata felter før gem/send" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Deler bøger via email" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Deler" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -401,11 +401,11 @@ msgstr "" "Opsætning som deler bøger via email. Kan anvendes til automatisk sending af " "downloadede nyheder til dine enheder" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Deler over internettet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -413,33 +413,33 @@ msgstr "" "Opsætning af calibre indholdsserveren, hvilket vil give dig adgang til dit " "calibre-bibliotek fra overalt, pÃ¥ enhver enhed, over internettet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Udvidelsesmoduler" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Avanceret" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Tilføj/fjern/tilpas forskellige dele af calibres funktionalitet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Tweaks" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "Finjustér hvordan calibre opfører sig i forskellige sammenhænge" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Diverse" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Diverse avanceret opsætning" @@ -484,7 +484,7 @@ msgstr "" "du intet aner om kildedokumentet." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -496,62 +496,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Denne profil er forbeholdt SONY's PRS-300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Denne profil er forbeholdt SONY's PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Denne profil er beregnet for Microsoft Reader" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Denne profil er beregnet til Mobipocket-bøgerne" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Denne profil er beregnet til Hanlin V3 og kloner." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Denne profil er forbeholdt Harlin V5 og kloner." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Denne profil er beregnet til Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Denne profil er beregnet til Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Denne profil er beregnet til Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Denne profil er beregnet til Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Denne profil er beregnet til IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Denne profil er beregnet til IRex Digital Reader 800" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Denne profil er forbeholdt B&N's Nook." @@ -569,29 +569,29 @@ msgstr "" "hvis du vil generere et dokument beregnet til at blive læst pÃ¥ computere " "eller flere enhedstyper." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "Beregnet til iPad og lignende enheder med en opløsning pÃ¥ 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" "Forbeholdt til generiske tavle-pc enheder, ændrer ikke billedstørrelser" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Denne profil er beregnet til Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Denne profil er beregnet til SONY's PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Denne profil er beregnet til 5\" JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -599,11 +599,15 @@ msgstr "" "Denne profil er beregnet til SONYs PRS serie. PRS 500/505/700 etc. i " "liggende tilstand. Hovedsageligt egnet til tegneserier." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Denne profil er beregnet til Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Denne profil er forbeholdt B&N Nook Color." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Denne profil er beregnet til Sanda Bambook." @@ -684,7 +688,7 @@ msgstr "Deaktivér det angivne udvidelsesmodul" msgid "Communicate with Android phones." msgstr "Kommunikér med Android telefoner" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -692,7 +696,7 @@ msgstr "" "Komma separeret liste af mapper til at sende e-bøger til, pÃ¥ enheden. Den " "første som findes, vil blive brugt." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Kommunikér med S60 telefoner." @@ -769,18 +773,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Nyheder" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Katalog" @@ -806,6 +810,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Kommunikér med Cybook Gen 3 / Opus eBook reader" +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Kommunikér med Cybook Orizon eBook reader." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Kommunikér med EB600 e-bogslæseren." @@ -818,6 +826,10 @@ msgstr "Kommunikér med Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Kommunikér med PocketBook 301 læseren." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Kommunikér med PocketBook 602 reader." + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -878,8 +890,8 @@ msgstr "Kommunikér med SpringDesign Alex eBook læser." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -968,26 +980,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Henter liste over bøger pÃ¥ enheden..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Fjerner bøger fra enhedens metadataliste..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Tilføjer bøger til enhedens metadataliste..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Ikke implementeret" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1028,6 +1040,10 @@ msgstr "Kommunikér med VelocityMicro" msgid "Communicate with the GM2000" msgstr "Kommunikér med GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Kommunikér med Acer Lumiread" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Kommunikér med Nokia 770 internet tablet." @@ -1048,6 +1064,14 @@ msgstr "Nook e-bogen" msgid "Communicate with the Nook eBook reader." msgstr "Kommunikér med Nook e-bogslæser." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Kommunikér med Nook Color eBook reader." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Kommunikér med Nuut2 e-bogslæser." @@ -2079,15 +2103,6 @@ msgstr "" "gør, da valget kan have flere fæle sideeffekter i resten af " "konverteringstrinene." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Ønsket middel linjelængde for HTML-linjeombrydning hvis HTML er fra en " -"tidligere delkonvertering af en PDF-fil. Standardværdien er %default hvilket " -"deaktiverer dette." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "CSS-fil anvendtes til output istedet for standardfilen" @@ -2252,7 +2267,7 @@ msgid "Path to output file" msgstr "Sti til output-fil" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Uddybende behandling" @@ -2485,7 +2500,7 @@ msgstr "Kommentarer" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Mærker" @@ -2636,6 +2651,7 @@ msgid "No cover found" msgstr "Intet omslag fundet" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Download omslag" @@ -2703,19 +2719,19 @@ msgstr "beskrivelser/anmeldelser" msgid "Download %s from %s" msgstr "Download %s fra %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Konvertér kommentarer hentet fra %s til ASCII-tekst" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Downloads metadata fra Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Downloads metadata fra isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2723,15 +2739,15 @@ msgstr "" "For at anvende isbndb.com mÃ¥ du oprette en konto %sfree account%s og angive " "din access key herunder (se isbndb.com/account/dev/keys/)." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Downloader sociale metadata fra amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Henter serie-/mærke-/vurdering-information fra librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2755,23 +2771,24 @@ msgstr "" "konto hos isbndb.com/account/dev/keys/.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "Bogens ISBN ID som du ønsker metadata om." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "Forfatteren hvis bøger der søges efter." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "Bogens titel der søges efter" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "Bogens udgiver der søges efter." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " ikke fundet." @@ -2789,8 +2806,24 @@ msgstr "" "Hent et omslagsbillede/sociale metadata til denne bog identificeret ved ISBN " "fra LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Hent metadata fra franske Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Hent omslag fra franske Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "Nicebooks timede ud. Prøv igen senere." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "Der skete en fejl under Nicebooks omslagshentning" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Omslag" @@ -2835,70 +2868,70 @@ msgstr "" "E-bogen er i det proprietære Amazon Topaz format. Den kan derfor ikke " "behandles." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Titelside" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Indholdsfortegnelse" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Indeks" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Ordliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Anerkendelser" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Litteraturliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Ophavsret" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dedikation" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Forord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Illustrationsliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Tabelliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Bemærkninger" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Forord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Hovedtekst" @@ -2906,7 +2939,7 @@ msgstr "Hovedtekst" msgid "%s format books are not supported" msgstr "Bøger af %s formatet er ikke understøttet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Bog %s af %s" @@ -2917,7 +2950,7 @@ msgstr "HTML indholdsfortegnelse genereringsmuligheder." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Vurdering" @@ -2950,7 +2983,7 @@ msgstr "Fodnoter" msgid "Sidebar" msgstr "Sidepanel" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2961,7 +2994,7 @@ msgstr "" "afsnitsmarkering. Med denne valgmulighed vil calibre fortolke ét linjeskift " "som afsnitsmarkering." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3273,7 +3306,7 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "Angiv output-dokumentets tegnsæt. Standard er cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3506,7 +3539,7 @@ msgid "Disable UI animations" msgstr "Deaktivér brugergrænseflade animationer" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Kopieret" @@ -3518,7 +3551,7 @@ msgstr "Kopiér" msgid "Copy to Clipboard" msgstr "Kopiér til udklipsholder" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Vælg filer" @@ -3571,89 +3604,89 @@ msgstr "Hvor mange tomme bøger?" msgid "How many empty books should be added?" msgstr "Hvor mange tomme bøger skal tilføjes?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Sender bøger til enheden." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Topaz-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Tekst-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Tegneserier" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Arkiver" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Understøttede bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Flettede nogle bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Nogle dubletter blev fundet og flettet ind i følgende eksisterende bøger:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Kunne ikke læse metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Kunne ikke læse metadata fra følgende" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Tilføj til bibliotek" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3661,13 +3694,13 @@ msgstr "Tilføj til bibliotek" msgid "No book selected" msgstr "Ingen bog valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "Følgende bøger er virtuelle og kan ikke tilføjes til calibre-biblioteket:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Ingen bogfiler fundet" @@ -3680,7 +3713,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Tilføj bøger til calibre-biblioteket fra den forbundne enhed" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Hent noter (eksperimentiel)" @@ -3777,7 +3810,7 @@ msgid "Checking database integrity" msgstr "Checker database integritet" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3793,18 +3826,20 @@ msgstr "Nogle inkonsistenser blev fundet" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"De følgende bøger havde formater listet i databasen som faktisk ikke er " -"tilgængelige. Indgangene for formaterne er blevet fjernet. Du skal checke " -"dem manuelt. Dette kan ske hvis du ændrer biblioteksmappens filer direkte." +"Følgende bøger havde referencer/indgange til formater eller omslag i " +"databasen som ikke er tilgængelig. Indgangene til formaterne/omslagene er " +"blevet fjernet. Du opfordres at checke dem manuelt. De fejlende indgange kan " +"opstÃ¥, hvis du udenom calibre har ændret og/eller fjernet filer i " +"biblioteksmappen." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d bøger" @@ -3951,7 +3986,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Ikke tilladt" @@ -3983,6 +4018,10 @@ msgstr "Kan ikke konvertere" msgid "Starting conversion of %d book(s)" msgstr "Starter konvertering af %d bog/bøger" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "Tom output-fil, sandsynligvis gik konverteringsprocessen ned" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Kopiér til bibliotek" @@ -4017,9 +4056,9 @@ msgid "Could not copy books: " msgstr "Kunne ikke kopiere bøger: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Fejlede" @@ -4080,14 +4119,14 @@ msgid "Main memory" msgstr "Arbejdshukommelse" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Hukommelsekort A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Hukommelsekort B" @@ -4232,7 +4271,7 @@ msgid "covers" msgstr "omslag" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadata" @@ -4333,6 +4372,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Kør velkommen guide" @@ -4421,7 +4461,7 @@ msgid "Click the show details button to see which ones." msgstr "Klik vis-detalje knappen for at se hvilke." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Vis bogdetaljer" @@ -4562,7 +4602,7 @@ msgid "The specified directory could not be processed." msgstr "Den angivne mappe kunne ikke behandles." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Ingen bøger" @@ -4859,7 +4899,7 @@ msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4902,7 +4942,7 @@ msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Formular" @@ -4989,24 +5029,24 @@ msgstr "CSV/XML valgmuligheder" msgid "E-book options" msgstr "E-bogsmuligheder" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "'Inkludér ikke denne bog' mærke:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "'Mærk denne bog som læst' mærke:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Yderligere note mærke præfiks:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" "Regulært udtryks mønster som beskriver mærker som eksluderes som genrer:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5020,22 +5060,26 @@ msgstr "" "- Et regex mønster udgjort af et enkelt punktum, ekskluderer alle genre " "tags, genererer ingen Genre sektion" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Inkludér 'titler' sektion" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Inkludér 'tilføjet for nylig' sektion" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Sortér numre som tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "Inkludér 'serie' sektion" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Ønskeliste mærke:" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Tab skabelon til katalog.ui" @@ -5063,11 +5107,11 @@ msgstr "" "tidligere konverteringer (hvis de eksisterer) istedet for at anvende de " "standard givne indstillinger" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Klynge konvertering" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Muligheder specifikt for output-formatet." @@ -5539,7 +5583,7 @@ msgid "Change the title of this book" msgstr "Udskift bogens titel" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Forfatter(e): " @@ -5556,7 +5600,7 @@ msgstr "" "Udskift bogens forfatter(e). Flere forfattere skal adskilles med et komma" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "F&orlag: " @@ -5567,7 +5611,7 @@ msgid "Ta&gs: " msgstr "&Mærker: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5578,7 +5622,7 @@ msgstr "" "kommaer." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5586,8 +5630,8 @@ msgstr "&Serier:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -6106,7 +6150,7 @@ msgid "Automatically number books" msgstr "Numrér automatisk bøger" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Start nummerering fra " @@ -6122,97 +6166,103 @@ msgstr "Mærker at tilføje" msgid "tags to remove" msgstr "Mærker at fjerne" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Ingen detaljer tilgængelig." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "Enhed er ikke længere forbundet." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Hent enhedsinformation" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Hent liste af bøger fra enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Hent noter fra enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Send metadata til enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Send collections til enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Upload %d bøger til enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Slet bøger fra enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Download bøger fra enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Se bøger pÃ¥ enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Angiv standard send til enhedsaktion" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Send til arbejdshukommelse" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Send til hukommelseskort A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Send til hukommelseskort B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Arbejdshukommelse" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Send angivet format til" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Send og slet fra bibliotek" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Skub enhed ud" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Kommunikationsfejl med enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Ingen egnede formater" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Vælg mappe til at Ã¥bne som enhed" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Fejl ved kommunikation med enhed" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6220,123 +6270,59 @@ msgstr "" "Der var en midlertidig fejl ved kommunikation med enheden. Afbryd og " "genforbind enheden eller genstart." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Enhed: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " detekteret." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "valgt til at sende" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Vælg format til at sende til enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Ingen enhed" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Kan ikke sende: Ingen enhed er forbundet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Intet hukommelseskort" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Kan ikke sende: Enheden har intet hukommelseskort" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "E-bog:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "Tilknyttet, vil du finde e-bogen" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "af" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "i %s formatet." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Sender e-mail til" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Ingen egnede formater" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "Auto konvertér følgende bøger før sending via e-mail?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"Kunne ikke e-maile følgende bøger da ingen egnede formater blev fundet:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Fejlede med at e-maile bøger" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Fejlede med at e-maile følgende bøger:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Sendt via e-mail:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Nyheder:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Forbundet er" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Send nyheder til" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "Auto konvertér følgende bøger før upload til enheden?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Sender kataloger til enheden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Sender nyheder til enheden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Sender bøger til enheden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6344,11 +6330,11 @@ msgstr "" "Kunne ikke uploade følgende bøger til enheden, da ingen egnede formater blev " "fundet. Konvertér bog/bøgerne til et format understøttet af din enhed først." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Ingen plads pÃ¥ enheden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6393,14 +6379,22 @@ msgstr "Tilføj bøger efter ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Indtast en liste af ISBN-numre i tekstboksen til venstre, én per linje. " -"calibre vil automatisk oprette bogindgange baseret pÃ¥ ISBN-nummeret og " -"downloade metadata og omslag til dem.<p>Ugyldige ISBN i listen ignoreres." +"<p>Indtast en liste af ISBN i tekstboksen til venstre, én per linje. Calibre " +"vil automatisk oprette indgange til bøgerne baseret pÃ¥ ISBN og hente " +"metadata og omslag til dem.</p>\n" +"<p>Enhver ugyldig ISBN i listen vil blive ignoreret.</p>\n" +"<p>Du kan ogsÃ¥ angive en fil, som vil blive tilføjet til hver ISBN. For at " +"gøre dette indtastes den fulde sti til filnavnet efter <code>>></code>. For " +"eksempel:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Indsæt fra udklipsholderen" @@ -6487,7 +6481,7 @@ msgstr "Sti fra bibliotek" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Navn" @@ -6540,7 +6534,7 @@ msgid "No location selected" msgstr "Ingen placering valgt" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Ikke brugbar placering" @@ -6640,12 +6634,12 @@ msgid "Author sort" msgstr "Forfattersortering" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Ugyldigt forfatternavn" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Forfatternavne kan ikke indeholde & tegnet." @@ -6800,50 +6794,50 @@ msgstr "Søg/Erstat" msgid "Working" msgstr "Arbejder" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "SmÃ¥ bogstaver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Store bogstaver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Titel STORE/smÃ¥ bogstaver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Tegn match" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Regulært udtryk" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Erstat felt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Tilføj til feltindholdets start" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Tilføj til felt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Redigér metaoplysninger for <b>%d bøger</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Bog %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -6855,7 +6849,7 @@ msgstr "" "kraftigt at tage en sikkerhedskopi af dit bibliotek før fortsættelse.<p>Søg " "og erstat i tekstfelter ved at anvende tegn-matching eller regulære udtryk. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6871,7 +6865,7 @@ msgstr "" "boksen hakkes af, skal søgeteksten matche. Hvis boksen ikke hakkes af, vil " "der ikke blive skelnet mellem store og smÃ¥ bogstaver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6897,31 +6891,31 @@ msgstr "" "denne reference</a> for mere information om python's regulære udtryk, og " "især 'sub'-funktionen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "Du skal angive en destination, nÃ¥r kilden er et sammensat felt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Søg/erstat ugyldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" "Forfattere kan ikke være den tomme streng. Bogtitel %s behandles ikke" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "Titler kan ikke være den tomme streng. Bogtitel %s behandles ikke" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Søge mønsteret er ugyldigt: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6929,19 +6923,19 @@ msgstr "" "Udfører ændringer pÃ¥ %d bøger.\n" "Fase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Rediger metaoplysninger" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "A&utomatisk forfattersortering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "Forfatters&ortering: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -6949,63 +6943,63 @@ msgstr "" "Angiv hvordan bogens forfatter(e) skal sorteres. Som eksempel burde Charles " "Dickens sorteres som Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Vurdering:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Vurdering af bogen. 0-5 stjerner" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Ingen ændring" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " stjerner" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Tilføj &mærker: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Ã…ben mærke-editor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Fjern mærker:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "Kommasepareret liste over mærker, der skal fjernes fra bøgerne. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Afkryds denne boks for at fjerne alle mærker fra bøgerne." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Fjern alt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Hvis hakket af, vil serier blive fjernet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Fjern serier" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7018,11 +7012,11 @@ msgstr "" "du valgte dem i. SÃ¥ hvis du valgte Bog A og derefter Bog B,\n" "vil Bog A have serie-nummer 1 og Bog B serie-nummer 2." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Automatisk nummerér bøger i denne serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7033,15 +7027,15 @@ msgstr "" "nummerering\n" "fra værdien i boksen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Fjern &format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Ombyt titel og forfatter" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7051,11 +7045,11 @@ msgstr "" "hakket af,\n" "vil titel og forfatter blive byttet før titel-case anvendes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Skift titel til titel-case" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7065,33 +7059,33 @@ msgstr "" "\n" "Fremtidige konverteringer af disse bøger vil anvende standardindstillinger." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "Fjern &gemte konverteringsindstillinger for de valgte bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "&Grund metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "&Tilpas metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Søg &felt:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "Feltnavnet du ønsker at søge efter" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Søgetilstand:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7099,11 +7093,11 @@ msgstr "" "Vælg om der ønskes anvendt almindelig matching - eller avanceret regulært " "udtryk matching" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Søg efter:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" @@ -7111,7 +7105,7 @@ msgstr "" "Indtast hvad du søger efter, enten almindelig tekst - eller et regulært " "udtryk, afhængig af valgt søgetilstand" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -7120,15 +7114,15 @@ msgstr "" "smÃ¥ bogstaver. Fjern hak, hvis der ikke skal skelnes mellem store og smÃ¥ " "bogstaver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Skeln mellem store og smÃ¥ bogstaver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "E&rstat med:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -7136,11 +7130,11 @@ msgstr "" "Erstatningsteksten. Den matchede søgefund vil bliver erstattet med denne " "tekststreng" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Anvend funktion efter erstat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7151,11 +7145,11 @@ msgstr "" "tegntilstand, behandles\n" "hele feltet. I regulært udtryk tilstand, behandles kun den matchede tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "&Destinationsfelt:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7163,15 +7157,15 @@ msgstr "" "Feltet som teksten skal isættes efter alle erstatninger. Hvis tom, vil " "kildefeltet blive anvendt." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Tilstand:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Angiv hvordan teksten skal kopieres til destinationen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7181,23 +7175,23 @@ msgstr "" "denne boks indikere om et komma eller\n" "ej skal indsættes mellem den oprindelige tekst - og det tilføjede tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "anvend komma" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "Test &tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Test re&sultat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Dit resultat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" msgstr "&Søg og erstat" @@ -7484,20 +7478,21 @@ msgstr "Adgangskode pÃ¥krævet" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "Br&ugernavn:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Adgangskode:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "Vi&s adgangskode" @@ -7739,46 +7734,45 @@ msgid "Advanced Search" msgstr "Avanceret søgning" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "Find indgange der har..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "&alle disse ord:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "Den eksakte &frase:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "&En eller flere af disse ord:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "men vis ikke indgange der har..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "nogen af disse &uønskede ord:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "Hvilken slags match skal anvendes:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" +msgstr "Indeholder: Ordet eller frasen matcher overalt i metadatafeltet" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "Lig med: Ordet eller frasen skal matchr med hele metadatafeltet" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "Regulært udtryk: Udtrykket skal matche overalt i metadatafeltet" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Find indgange der har..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&alle disse ord:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Den eksakte &frase:" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "" -"Indeholder: Ordet eller frasen vil forsøges matchet overalt i metadataene" +msgid "&One or more of these words:" +msgstr "&En eller flere af disse ord:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "Lig: Ordet eller frasen skal matche et helt metadata felt" +msgid "But dont show entries that have..." +msgstr "men vis ikke indgange der har..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "Regulært udtryk: Udtrykket forsøges matchet overalt i metadataene" +msgid "Any of these &unwanted words:" +msgstr "nogen af disse &uønskede ord:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -7964,12 +7958,12 @@ msgid "%s (was %s)" msgstr "%s (var %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "Emne er blankt" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "Et emne kan ikke sættes til ingenting. Slet det istedet." @@ -8052,7 +8046,7 @@ msgid "Discard changes" msgstr "Forkast ændringer" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Annullér" @@ -8261,6 +8255,61 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Opskriftskildekode (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "Email %s til %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Nyheder:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "Som bilag er %s tidsskriftet hentet af calibre." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "E-bog:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "Tilknyttet, vil du finde e-bogen" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "af" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "i %s formatet." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Sender e-mail til" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "Auto konvertér følgende bøger før sending via e-mail?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Kunne ikke e-maile følgende bøger da ingen egnede formater blev fundet:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "Emailsending af bog fejlede" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "sendt" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Send nyheder til" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8456,23 +8505,23 @@ msgstr "Kan ikke stoppe opgaver, der kommunikerer med enheden" msgid "Job has already run" msgstr "Opgaven er allerede udført" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Utilgængelig" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Opgaver:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Tryk for at se en opgaveliste" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Opgaver" @@ -8498,7 +8547,7 @@ msgid "Show books in the main memory of the device" msgstr "Vis bøger i enhedens arbejdshukommelse" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Kort A" @@ -8507,7 +8556,7 @@ msgid "Show books in storage card A" msgstr "Vis bøger i hukommelseskort A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Kort B" @@ -8589,7 +8638,7 @@ msgstr "Bog %s af %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "Opslaget/søgenavn er \"{0}\"" @@ -8618,47 +8667,47 @@ msgstr "Markeret til sletning" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Dobbeltklik for at <b>redigere</b> mig<br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Gem kolonne %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Sortér efter %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Stigende" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Faldende" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Ændre tekstjustering for %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Venstre" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Højre" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centrér" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Vis kolonne" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Gendan standard layout" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8691,7 +8740,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>Ingen match</b> for denne søgefrase <i>%s</i> blev fundet." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Ingen søgeresultater fundet" @@ -8708,12 +8757,12 @@ msgid "LRF Viewer toolbar" msgstr "LRF-viser værktøjslinje" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Næste side" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Forrige side" @@ -8757,7 +8806,7 @@ msgid "Do not check for updates" msgstr "Check ikke efter opdateringer" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Calibre bibliotek" @@ -8891,37 +8940,37 @@ msgstr "Bog har hverken titel eller ISBN" msgid "No matches found for this book" msgstr "Ingen match fundet for denne book" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "Hentning af metadata fejlede" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Hentet" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "Hentning fejlede" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s til: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Fuldført" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "Metadata hentning lykkedes for %d ud af %d bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Detaljer" @@ -9465,27 +9514,27 @@ msgstr "Vis &tekst under ikoner:" msgid "&Split the toolbar into two toolbars" msgstr "&Del værktøjslinjen i to værktøjslinjer" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Anvend" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Gendan &standardindstillinger" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Gem ændringer" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Annullér og returnér til oversigt" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "Restoring to defaults not supported for" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9493,7 +9542,7 @@ msgstr "" "Nogle af ændringerne du lavede, kræver en programgenstart for at træde i " "kraft. Venligst genstart calibre sÃ¥ snart som muligt." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9501,7 +9550,7 @@ msgstr "" "Ændringerne du har udført, kræver ar calibre skal genstartes nu. Du vil ikke " "kunne lave flere ændringer, før du genstarter." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Programgenstart nødvendig" @@ -9855,7 +9904,7 @@ msgstr "" ">Avanceret->Moduludvidelser" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Fejlede med at starte indholdsserveren" @@ -10070,7 +10119,7 @@ msgstr "&Aktuelle tweaks" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Søg" @@ -10167,26 +10216,22 @@ msgstr "Ryd" msgid "&Alternate shortcut:" msgstr "&Alternativ genvej:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Omdøb '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Redigér sortering for '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Gem kategori %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Vis kategori" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Vis alle kategorier" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10201,68 +10246,72 @@ msgstr "Administrér gemte søgninger" msgid "Manage User Categories" msgstr "Administrér brugerkategorier" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Vis alle kategorier" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" "Ændring af forfatterne for adskillige bøger kan tage et stykke tid. Er du " "sikker?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "Ændring af metadataene for adskillige bøger kan tage et stykke tid. Er du " "sikker?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Søgninger" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Duplikér søgenavn" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "Det gemte søgenavn %s er allerede brugt." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Sortér efter navn" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Sortér efter popularitet" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Sortér efter middelvurdering" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Angiv sorteringsrækkefølgen for indgange mærke-browser" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Match alle" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Match enhver" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "NÃ¥r flere indgange vælges i mærke-browser, match enhver eller dem alle" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Administrér &brugerkategorier" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Tilføj dine egne kategorier til mærke-browseren" @@ -10309,28 +10358,28 @@ msgstr "" "Følgende bøger er allerede konverteret til %s formatet. Ønsker du at " "genkonvertere dem?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Gendan" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Donér for at støtte calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Skub forbunden enhed ud" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Calibre kvik start guide" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Konverteringsfejl" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10338,15 +10387,15 @@ msgstr "" "<p>Kunne ikke konvertere: %s<p>Det er en e-bog med <a href=\"%s\">DRM</a>. " "Du skal først fjerne DRM med et tredjepartsværktøj." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Opskrift deaktiveret" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Fejlede</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10356,11 +10405,11 @@ msgstr "" "calibre brugbart, venligst overvej at give en donation for at støtte dets " "udvikling. Din donation hjælper med calibres fortsatte udvikling." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Der er aktive opgaver. Er du sikker pÃ¥ du vil afslutte?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10371,11 +10420,11 @@ msgstr "" "enheden.<br>\n" " Er du sikker pÃ¥ at du vil afslutte?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "ADVARSEL: Aktive opgaver" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10553,17 +10602,17 @@ msgstr "&Tastaturgenvej" msgid "No results found for:" msgstr "Ingen resultater fundet for:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Indstillinger til tilpasning af e-bogsviseren" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Husk størrelsen pÃ¥ vinduet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10571,81 +10620,81 @@ msgstr "" "Sætter det brugerdefinerede CSS stilark. Dette kan bruges til at tilpasse " "udseendet af alle bøger." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Maksimal bredde pÃ¥ viserens vindue, i pixels" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" "Skalér billeder større end visningsvinduet for at det kan rummes heri" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Orddel tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Standard sprog for orddelingsregler" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Skrifttypeindstillinger" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "Serif-skrifttypefamilien" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "Sans-serif-skrifttypefamilien" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "Monospaced-skrifttypefamilien" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "Standard skriftstørrelse i px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "Monospaced skriftstørrelse i px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Standard skrifttype" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&Opslag i ordbog" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "GÃ¥ til..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Næste sektion" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Forrige sektion" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Dokument start" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Dokument slut" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Sektion start" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Sektion slut" @@ -10714,87 +10763,87 @@ msgstr "" msgid "Search for text in book" msgstr "Søg efter tekst bog" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "ForhÃ¥ndsvisning af udskrift" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Forbinder til dict.org for opslag: <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Vælg e-bog" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "E-bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Ingen match fundet for: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Henter flow..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Udlægning %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Bogmærke #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Tilføj bogmærke" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Indtast bogmærketitel:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Administrér bogmærker" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Henter e-bog..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM-fejl" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Denne bog er beskyttet af <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Kunne ikke Ã¥bne e-bog" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Valg til at styre e-bogsviser" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Hvis specificeret, vil visningsvindue prøve at komme i front ved start." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Hvis angivet, vil oversigtsvindue prøve at Ã¥bne i fuld skærm under start." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Udskriv javascript alert og konsol beskeder til konsolen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10912,7 +10961,7 @@ msgstr "Skjul" msgid "Toggle" msgstr "Skift" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -10922,14 +10971,14 @@ msgstr "" "din calibre bogsamling direkte pÃ¥ enheden. For at gøre dette skal du starte " "indholdsserveren." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "" "Husk at lade calibre køre, da dens server kun kører, nÃ¥r calibre kører." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -10939,20 +10988,20 @@ msgstr "" "WordPlayer. Her skal mitværtsnavn være det fuldt kvalificerede værtsnavn " "(FQDN) eller IP-adresse, computeren calibre kører pÃ¥." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Flytter bibliotek..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Flytning af bibliotek fejlede" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Ugyldig database" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -10960,20 +11009,20 @@ msgstr "" "<p>Et ugyldigt bibliotek eksisterer allerede ved %s, slet det før der igen " "prøves pÃ¥ at flytte det eksisterende bibliotek hertil.<br>Fejl: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Kunne ikke flytte bibliotek" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Vælg placering til bøger" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "Du skal vælge en tom mappe til calibre-biblioteket. %s er ikke tomt." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "Velkommen guide" @@ -11059,11 +11108,12 @@ msgstr "Vælg dit &sprog:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Vælg en placering til dine bøger. NÃ¥r du tilføjer bøger til calibre, vil de " -"kopieres hertil:" +"<p>Vælg en placering til dine bøger. NÃ¥r du tilføjer bøger til calibre, " +"bliver de kopieret hertil. Anvend en <b>tom mappe</b> til et nyt calibre-" +"bibliotek:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11079,48 +11129,78 @@ msgstr "" "den nye placering. Hvis der allerede er et calibre-bibliotek pÃ¥ den nye " "placering, vil calibre skifte til at anvende dette." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Anvender: %s:%s@%s:%s og %s kryptering" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Sender..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "Mail blev succesfuldt sendt" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Færdiggør gmail opsætning" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Glem ikke at indtaste dit gmail brugernavn og adgangskode. Du kan registrere " -"dig til en gratis gmail-konto pÃ¥ http://gmail.com" +"Hvis du konfigurerer en ny hotmail-konto, skal du logge ind i den en gang " +"for at kan komme til at sende emails." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"Du kan ansøge om en gratis {name} email-konto pÃ¥ <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "Din %s &email-adresse:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "Dit %s &brugernavn:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "Dit %s &kodeord:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"Hvis du planlægger at sende e-bøger til Kindle via email, sÃ¥ husk at tilføje " +"din %s email-adresse til tilladte email-adresser i din Amazon.com Kindle " +"forvaltningsside (management-side)." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "Konfiguration" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Ugyldig konfiguration" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Du skal angive Fra e-mail-adressen" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "Du skal angive brugernavn og adgangskode til mailserveren" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Send e-mail &fra:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11128,7 +11208,7 @@ msgstr "" "<p>Dette er hvad der vil stÃ¥ i Fra: feltet for e-mails sendt fra " "calibre.<br> Sæt det til din e-mail-adresse" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11136,51 +11216,51 @@ msgstr "" "<p>En mailserver er brugbar, hvis den service du sender til kun accepterer e-" "mails fra velkendte e-mailservices." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "Mail&server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "calibre kan <b>alternativt</b> bruge en separat smtp-server til at sende e-" "mails" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Værtsnavn:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "Værtsnavnet for din smtp-server. For eksempel smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "IP-porten din smtp-server lytter efter forbindelser pÃ¥. Standardværdien er 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "Dit brugernavn pÃ¥ smtp-serveren" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "Din adgangskode pÃ¥ smtp-serveren" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Vis" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Kryptering:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11188,23 +11268,35 @@ msgstr "" "Brug TLS-kryptering nÃ¥r der forbindes til smtp-serveren. Dette er det mest " "normale." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Brug SSL-kryptering nÃ¥r der forbindes til smtp-serveren" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "ADVARSEL: Det er meget usikkert at udelade kryptering" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "&Ingen" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Brug Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Anvend Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Test e-mail" @@ -11270,7 +11362,7 @@ msgstr "blank" msgid "empty" msgstr "tom" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11284,7 +11376,7 @@ msgstr "" "Standard: '%%default'\n" "Anvendes til: CSV, XML output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11296,7 +11388,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: CSV, XML output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11310,7 +11402,7 @@ msgstr "" "Standard: '%%default'\n" "Anvendes til: BIBTEX output-format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11322,7 +11414,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: BIBTEX output-format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11334,7 +11426,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: BIBTEX output-format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11348,7 +11440,7 @@ msgstr "" "Standard: '%%default'\n" "Anvendes til: BIBTEX output-format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11360,7 +11452,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: BIBTEX output-format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11372,7 +11464,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: BIBTEX output-format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11384,7 +11476,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: BIBTEX output-format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11394,7 +11486,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11408,7 +11500,7 @@ msgstr "" "Standard: '%default'None\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11418,7 +11510,7 @@ msgstr "" "Standard: '%default' eksluderer parantesomsluttede mærker, f.eks. '[<tag>]'\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11432,7 +11524,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11442,7 +11534,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11452,7 +11544,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes pÃ¥: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11462,7 +11554,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11472,7 +11564,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11486,7 +11578,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11502,7 +11594,7 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: ePub, MOBI output-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11512,6 +11604,16 @@ msgstr "" "Standard: '%default'\n" "Anvendes til: ePub, MOBI output-formater" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Mærk indikeret bog til at blive vist som ønskeliste emne.\n" +"Standard: '%default'\n" +"Anvendes pÃ¥: ePub, MOBI output-formater" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Ugyldige titler" @@ -12224,35 +12326,35 @@ msgstr "" "Mærket mÃ¥ kun indeholde smÃ¥bogstaver, cifre og bundstreger - og skal begynde " "med et bogstav" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sMiddel vurderingen er %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Main/hjem/primær" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "<p>Flytter gammel database til e-bogsbibliotek i %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Kopierer <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Komprimerer database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Checker SQL integritet..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Checker for manglende filer." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "Checket id" @@ -12476,128 +12578,129 @@ msgstr "" "Præfiks til tilføj-til-front af alle URLs. Nyttigt for reverse-proxying til " "denne server fra Apache/nginx/osv." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "Adgangskode til dit calibre bibliotek. Brugernavnet er " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "Henter, vent venligst" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "GÃ¥ til" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Første" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Sidste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Forrige" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Næste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "Gennemse %d bøger" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Middelvurdering" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f stjerner" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d stjerner" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Popularitet" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Sortér efter" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "bibliotek" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "hjem" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Nyeste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Alle bøger" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Gennemse bøger efter" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Vælg en kategori at gennemse efter:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Gennemse efter" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Op" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "i" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Bøger i" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Andre formater" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Læser %s i %s formatet" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Hent" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Permanent-link" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "Et permanent-link til denne bog" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Denne bog er blevet slettet" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "i søgning" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Matchende bøger" @@ -12932,7 +13035,7 @@ msgstr "SSH-sessionsforhandling fejlede: " msgid "Failed to authenticate with server: %s" msgstr "autentificering med server fejlede: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Styre e-mail levering" @@ -14031,6 +14134,9 @@ msgstr "Download ikke CSS-stilark" #~ msgid "Job stopped by user" #~ msgstr "Opgave stoppet af bruger" +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "Adgangskode til dit calibre bibliotek. Brugernavnet er " + #~ msgid "Could not launch worker process." #~ msgstr "Kunne ikke starte arbejdsprocess." @@ -14470,6 +14576,14 @@ msgstr "Download ikke CSS-stilark" #~ msgid "Output directory. Defaults to current directory" #~ msgstr "Output-mappe. Gør nuværende mappe til standard." +#~ 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 "" +#~ "Ønsket middel linjelængde for HTML-linjeombrydning hvis HTML er fra en " +#~ "tidligere delkonvertering af en PDF-fil. Standardværdien er %default hvilket " +#~ "deaktiverer dette." + #~ msgid "EDITORIAL REVIEW" #~ msgstr "LEDER REVISION" @@ -14536,6 +14650,18 @@ msgstr "Download ikke CSS-stilark" #~ msgid "Send specific format" #~ msgstr "Send specifik format" +#~ msgid "Failed to email the following books:" +#~ msgstr "Fejlede med at e-maile følgende bøger:" + +#~ msgid "Failed to email books" +#~ msgstr "Fejlede med at e-maile bøger" + +#~ msgid "Attached is the" +#~ msgstr "Forbundet er" + +#~ msgid "Sent by email:" +#~ msgstr "Sendt via e-mail:" + #~ msgid "Fit &cover to view" #~ msgstr "Tilpas &omslag til visning" @@ -14584,6 +14710,16 @@ msgstr "Download ikke CSS-stilark" #~ msgid "<br>Must be a directory." #~ msgstr "<br>Skal være et mappe." +#~ 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 "" +#~ "De følgende bøger havde formater listet i databasen som faktisk ikke er " +#~ "tilgængelige. Indgangene for formaterne er blevet fjernet. Du skal checke " +#~ "dem manuelt. Dette kan ske hvis du ændrer biblioteksmappens filer direkte." + #~ msgid "&Adding books" #~ msgstr "&Tilføjer bøger" @@ -14673,6 +14809,17 @@ msgstr "Download ikke CSS-stilark" #~ "Automatisk opret forfattersorteringsindgang baseret pÃ¥ den aktuelle " #~ "forfatterindgang" +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "Lig: Ordet eller frasen skal matche et helt metadata felt" + +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "Regulært udtryk: Udtrykket forsøges matchet overalt i metadataene" + +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "" +#~ "Indeholder: Ordet eller frasen vil forsøges matchet overalt i metadataene" + #~ msgid "" #~ "For help with writing advanced news recipes, please visit <a " #~ "href=\"http://calibre.kovidgoyal.net/user_manual/news.html\">User Recipes</a>" @@ -14751,6 +14898,23 @@ msgstr "Download ikke CSS-stilark" #~ msgid "&Search:" #~ msgstr "&Søg:" +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Vælg en placering til dine bøger. NÃ¥r du tilføjer bøger til calibre, vil de " +#~ "kopieres hertil:" + +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Glem ikke at indtaste dit gmail brugernavn og adgangskode. Du kan registrere " +#~ "dig til en gratis gmail-konto pÃ¥ http://gmail.com" + +#~ msgid "Finish gmail setup" +#~ msgstr "Færdiggør gmail opsætning" + #~ msgid "" #~ "Comma separated list of formats to save for each book. By default all " #~ "available books are saved." @@ -14856,6 +15020,16 @@ msgstr "Download ikke CSS-stilark" #~ msgid "&Restore to defaults" #~ msgstr "&Gendan til standard" +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Indtast en liste af ISBN-numre i tekstboksen til venstre, én per linje. " +#~ "calibre vil automatisk oprette bogindgange baseret pÃ¥ ISBN-nummeret og " +#~ "downloade metadata og omslag til dem.<p>Ugyldige ISBN i listen ignoreres." + #~ 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 " diff --git a/src/calibre/translations/de.po b/src/calibre/translations/de.po index 64f0940be3..3643d34f86 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-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 15:34+0000\n" -"Last-Translator: Manichean <Unknown>\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-12-02 13:54+0000\n" +"Last-Translator: miwie <Unknown>\n" "Language-Team: American English <kde-i18n-doc@lists.kde.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-11 04:41+0000\n" +"X-Launchpad-Export-Date: 2010-12-03 05:02+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -28,11 +28,11 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -41,8 +41,8 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -56,7 +56,7 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -75,14 +75,14 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -90,7 +90,7 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -110,10 +110,10 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -122,15 +122,15 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -138,14 +138,14 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -186,14 +186,14 @@ msgstr "Benutzeroberflächenaktion" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Einstellungen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -203,7 +203,7 @@ msgstr "" "allen verlinkten Dateien erstellen. Dieses Plugin läuft immer, wenn sie eine " "HTML-Datei zur Bibliothek hinzufügen." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -211,7 +211,7 @@ msgstr "" "Zeichenkodierung der Eingabe-HTML-Dateien. Üblicherweise ist das: cp1252, " "latin1, iso-8859-1 und utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -221,7 +221,7 @@ msgstr "" "pmlname_img oder images. Dieses Plugin wird immer dann ausgeführt, wenn Sie " "eine PML-Datei zur Bibliothek hinzufügen." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Umschlagbild aus Comic-Dateien extrahieren" @@ -268,101 +268,101 @@ msgstr "Geben Sie die Metadaten in %s-Dateien an" msgid "Set metadata from %s files" msgstr "Geben Sie die Metadaten von %s-Dateien an" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Erscheinungsbild" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Bedienungsoberfläche" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "Passen Sie das Erscheinungsbild von Calibre ihren Bedürfnissen an." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Verhalten" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Ändern Sie das Verhalten von Calibre." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Eigene Spalten hinzufügen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Hinzufügen/Entfernen eigener Spalten in der Calibre Buchliste" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Werkzeugleiste anpassen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" msgstr "Passt individuell Werkzeugleiste und Kontextmenus an." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Eingabeoptionen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Konvertierung" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "Stellt Eingabeoptionen für jedes einzelne Eingabeformat ein." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Allgemeine Einstellungen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Gemeinsame Konvertierungsoptionen für alle Formate einstellen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Ausgabeoptionen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "" "Konvertierungsoptionen für jedes Ausgabeformat individuell einstellen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Bücher hinzufügen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Import/Export" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Stellt ein, wie Calibre mit den Metadaten aus den Dateien beim Einlesen von " "Büchern verfährt." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Bücher auf Datenträger speichern" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -370,32 +370,32 @@ msgstr "" "Stellt ein, wie Calibre Dateien aus der Datenbank exportiert, wenn \"Bücher " "auf Datenträger speichern\" gewählt wird." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Übertragen der Bücher an Geräte" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Stellt ein, wie Calibre die Dateien an den eBook-Reader sendet." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Metadaten- Schalttafel" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Ändere Metadaten-Felder vor dem Speichern/Senden" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Bücherversand per Email" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Versand" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -403,11 +403,11 @@ msgstr "" "Setup für Bücherversand per Email. Kann für den automatischen Versand von " "heruntergeladenen Nachrichten an Ihr Gerät genutzt werden." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Versand über Netzwerk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -415,34 +415,34 @@ msgstr "" "Einrichten des Calibre Servers, der Zugriff auf die Bibliothek von überall, " "mit jedem Gerät, via Internet ermöglicht." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Plugins" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Erweitert" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Hinzufügen/Entfernen/Einstellen von verschiedenen Calibre-Funktionen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Kniffe" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "" "Feineinstellungen für das Verhalten von Calibre in verschiedenen Situationen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Verschiedenes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Konfiguration verschiedener fortgeschrittener Parameter" @@ -487,7 +487,7 @@ msgstr "" "hilfreich, wenn Sie nichts über das Eingabe-Dokument wissen." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -499,62 +499,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Dieses Profil ist geeignet für das SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Dieses Profil ist geeignet für das SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Dieses Profil ist geeignet für den Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Dieses Profil ist geeignet für Mobipocket-Bücher." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Dieses Profil ist geeignet für den Hanlin V3 und dessen Klone." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Dieses Profil ist geeignet für den Hanlin V5 und dessen Klone." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Dieses Profil ist geeignet für das Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Dieses Profil ist geeignet für den Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Dieses Profil ist geeignet für den Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Dieses Profil ist geeignet für den Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Dieses Profil ist geeignet für den IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Dieses Profil ist geeignet für den IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Dieses Profil ist geeignet für den B&N Nook." @@ -572,31 +572,31 @@ msgstr "" "hilfreich, wenn Sie ein Dokument zum Lesen an einem Computer oder auf einer " "Reihe von verschiedenen Geräten erstellen wollen." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Geeignet für das iPad und ähnliche Geräte mit einer Auflösung von 768 x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" "Gedacht für allgemeine Tablet- PCs, führt keine Größenänderung bei Bildern " "durch" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Dieses Profil ist geeignet für den Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Dieses Profil ist geeignet für das SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Dieses Profil ist geeignet für das 5-Zoll JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -604,11 +604,15 @@ msgstr "" "Dieses Profil ist geeignet für die SONY PRS-Reihe. PRS 500/505/700 etc. in " "horizontaler Darstellung. Vor allem für Comics hilfreich." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Dieses Profil ist geeignet für den Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Dieses Profil ist geeignet für den B&N Nook Color" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Dieses Profil ist geeignet für den Sanda Bambook" @@ -688,7 +692,7 @@ msgstr "Gewähltes Plugin ausschalten" msgid "Communicate with Android phones." msgstr "Kommunikation mit Android-Telefonen." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -696,7 +700,7 @@ msgstr "" "Durch Kommata getrennte Liste von Verzeichnissen an die eBooks auf das Gerät " "gesendet werden. Das erste vorhandene wird benutzt" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Kommunikation mit S60-Telefonen." @@ -773,18 +777,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Nachrichten" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Katalog" @@ -810,6 +814,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Kommunikation mit dem Cybook Gen 3 / Opus eBook Reader." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Kommunikation mit dem Cybook Orizon." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Kommunikation mit dem EB600 eBook Reader." @@ -822,6 +830,10 @@ msgstr "Kommunikation mit dem Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Kommunikation mit dem PocketBook 301 Reader." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Kommunikation mit dem PocketBook 602." + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -882,8 +894,8 @@ msgstr "Kommunikation mit dem SpringDesign Alex eBook Reader." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -972,26 +984,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Die Liste der Bücher auf dem Gerät beziehen ..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Bücher von der Metadaten-Liste des Geräts entfernen ..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Bücher zur Metadaten-Liste des Geräts hinzufügen ..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Nicht implementiert" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1033,6 +1045,10 @@ msgstr "Kommuniziere mit dem VelocityMicro" msgid "Communicate with the GM2000" msgstr "Kommunikation mit dem GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Kommunikation mit dem Acer Lumiread" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Kommunikation mit dem Nokia 770 Internet Tablet." @@ -1053,6 +1069,14 @@ msgstr "Der Nook" msgid "Communicate with the Nook eBook reader." msgstr "Kommunikation mit dem Nook eBook Reader." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Kommunikation mit dem Nook Color." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Kommunikation mit dem Nuut2 eBook Reader." @@ -2129,15 +2153,6 @@ msgstr "" "wenn Sie wissen, was Sie tun, denn es kann verschiedene nervige " "Nebenwirkungen beim Rest des Konvertierungsprozesses zur Folge haben." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Durchschnittliche Zeilenlänge für den Zeilenumbruch falls das HTML von einer " -"zuvor nur teilweise konvertierten PDF-Datei stammt. Voreinstellung ist " -"%default was dies ausschaltet." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "Zur Ausgabe statt der Standarddatei verwendete CSS- Datei" @@ -2304,7 +2319,7 @@ msgid "Path to output file" msgstr "Pfad zur Zieldatei" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Ausführlicher fortfahren" @@ -2542,7 +2557,7 @@ msgstr "Bemerkung" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Etiketten (Tags)" @@ -2698,6 +2713,7 @@ msgid "No cover found" msgstr "Kein Umschlagbild gefunden" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Umschlagbild laden" @@ -2765,19 +2781,19 @@ msgstr "Beschreibung/Bewertungen" msgid "Download %s from %s" msgstr "Lade %s von %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Konvertiere von %s heruntergeladene Komentare in Klartext" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Lädt Metadaten von Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Lädt Metadaten von isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2785,15 +2801,15 @@ msgstr "" "Zur Verwendung von isbndb.com müssen Sie einen %skostenlosen Account%s " "erstellen und Ihren Zugangsschlüssel unten eingeben." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Lädt soziale Metadaten von amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Lädt Reihe/Etiketten/Bewertung von librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2818,23 +2834,24 @@ msgstr "" "bei isbndb.com erstellt werden kann.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "Die ISBN des Buches, für das Sie Metadaten abrufen möchten." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "Der Autor des gesuchten Buches." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "Der Titel des gesuchten Buches." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "Der Herausgeber des gesuchten Buches." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " nicht gefunden." @@ -2852,8 +2869,24 @@ msgstr "" "Umschlagbild/soziale Metadaten für das durch ISBN identifizierte Buch von " "LibraryThing.com laden.\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Lädt Metadaten vom französischen Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Lädt Umschlagbilder vom französischen Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "Timeout von Nicebooks. Bitte versuchen Sie es später nochmal." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "Fehler im Nicebooks Umschlagbild- Downloader aufgetreten" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Umschlagbild" @@ -2894,70 +2927,70 @@ msgstr "Alle Artikel" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Dies ist ein Amazon Topaz-Buch. Es kann nicht verarbeitet werden." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Titelseite" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Inhaltsverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glossar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Danksagung" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Literaturverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Schlussschrift" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Widmung" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraph" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Vorwort" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Abbildungsverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Tabellenverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Anmerkungen" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Vorwort" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Haupttext" @@ -2965,7 +2998,7 @@ msgstr "Haupttext" msgid "%s format books are not supported" msgstr "Bücher im %s Format werden nicht unterstützt" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Buch %s von %s" @@ -2976,7 +3009,7 @@ msgstr "Einstellungen zur Erstellung von HTML-Inhaltsverzeichnissen." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Bewertung" @@ -3010,7 +3043,7 @@ msgstr "Fußnoten" msgid "Sidebar" msgstr "Seitenleiste" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -3021,7 +3054,7 @@ msgstr "" "Einstellung wird dagegen davon ausgegangen, dass jede Zeile einen Absatz " "darstellt." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3344,7 +3377,7 @@ msgstr "" "Geben Sie die Zeichenkodierung des Ausgabe-Dokuments an. Voreinstellung ist " "cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3592,7 +3625,7 @@ msgid "Disable UI animations" msgstr "Keine Benutzeroberflächen-Animationen" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Kopiert" @@ -3604,7 +3637,7 @@ msgstr "Kopieren" msgid "Copy to Clipboard" msgstr "In die Zwischenablage kopieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Dateien wählen" @@ -3659,90 +3692,90 @@ msgstr "Wie viele leere Bücher?" msgid "How many empty books should be added?" msgstr "Wie viele leere Bücher sollen hinzugefügt werden?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Lade Bücher auf das Gerät." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Topaz Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Text Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB- Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Comics" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Archive" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Unterstützte Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Einige Bücher zusammenfügen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Es wurden einige Duplikate gefunden und mit den folgenden, schon vorhandenen " "Büchern zusammengefügt:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Lesen der Metadaten schlug fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Lesen der Metadaten schlug fehl bei folgenden" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Zur Bibliothek hinzufügen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3750,14 +3783,14 @@ msgstr "Zur Bibliothek hinzufügen" msgid "No book selected" msgstr "Kein Buch ausgewählt" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "Folgende Bücher sind virtuell und können nicht zur Calibre-Bibliothek " "hinzugefügt werden:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Keine Buch-Dateien gefunden" @@ -3771,7 +3804,7 @@ msgstr "" "Bücher aus dem angeschlossenen Gerät zur Calibre Bibliothek hinzufügen" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Anmerkungen abrufen (experimentell)" @@ -3866,7 +3899,7 @@ msgid "Checking database integrity" msgstr "Überprüfe Vollständigkeit der Datenbank" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3882,19 +3915,15 @@ msgstr "Einige Inkonsistenzen gefunden." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"Die folgenden Bücher hatten Formate in der Datenbank angegeben, die " -"tatsächlich nicht verfügbar waren. Die Einträge der Formate wurden entfernt. " -"Sie sollten diese manuell überprüfen. Dies kann passieren, wenn Sie die " -"Dateien direkt im Bibliotheksverzeichnis verändern." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d Bücher" @@ -4043,7 +4072,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Das ist nicht gestattet" @@ -4077,6 +4106,10 @@ msgstr "Konvertierung nicht möglich" msgid "Starting conversion of %d book(s)" msgstr "Starte Konvertierung von %d Büchern" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "In Bibliothek kopieren" @@ -4111,9 +4144,9 @@ msgid "Could not copy books: " msgstr "Konnte Bücher nicht kopieren: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Fehlgeschlagen" @@ -4174,14 +4207,14 @@ msgid "Main memory" msgstr "Hauptspeicher" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Speicherkarte A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Speicherkarte B" @@ -4326,7 +4359,7 @@ msgid "covers" msgstr "Umschlagbilder" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "Metadaten" @@ -4429,6 +4462,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Willkommens-Assistenten ausführen" @@ -4520,7 +4554,7 @@ msgstr "" "Klicken Sie auf die Schaltfläche Details zeigen, um zu sehen, welche es gibt." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Zeige Buchdetails" @@ -4663,7 +4697,7 @@ 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:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Keine Bücher" @@ -4962,7 +4996,7 @@ msgstr "Ausgabe" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -5005,7 +5039,7 @@ msgstr "Ausgabe" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Art" @@ -5092,23 +5126,23 @@ msgstr "CSV/XML Einstellungen" msgid "E-book options" msgstr "eBook Einstellungen" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 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:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 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:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 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:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 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:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5122,22 +5156,26 @@ msgstr "" "- Ein einfacher Punkt als Regex schließt alle Genre- Etiketten aus und " "erstellt keinen Genre- Abschnitt" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Im Abschnitt 'Titel' einschließen" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Im Abschnitt 'Zuletzt hinzugefügt' einschließen" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Zahlen als Text sortieren" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "'Serien'- Abschnitt hinzufügen" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Tab-Template für catalog.ui" @@ -5166,11 +5204,11 @@ msgstr "" "verwenden, anstelle der in den Einstellungen angegebenen voreingestellten " "Werte" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Auf einmal konvertieren" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Einstellungen für das Ausgabe-Format." @@ -5648,7 +5686,7 @@ msgid "Change the title of this book" msgstr "Titel dieses Buches ändern" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Autor(en): " @@ -5666,7 +5704,7 @@ msgstr "" "werden" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Herausgeber: " @@ -5677,7 +5715,7 @@ msgid "Ta&gs: " msgstr "&Etiketten: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5688,7 +5726,7 @@ msgstr "" "oder Sätze verwenden." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5696,8 +5734,8 @@ msgstr "&Reihen:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -6222,7 +6260,7 @@ msgid "Automatically number books" msgstr "Bücher automatisch nummerieren" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Start der Nummerierung erzwingen bei " @@ -6238,97 +6276,103 @@ msgstr "Etiketten hinzufügen" msgid "tags to remove" msgstr "Etiketten entfernen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Keine weiteren Informationen verfügbar." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "Gerät ist nicht mehr verbunden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Geräteinformationen erstellen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Liste der Bücher auf dem Gerät erstellen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Anmerkungen vom Gerät laden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Metadaten zum Gerät senden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Sammlungen zum Gerät schicken" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "%d Bücher auf das Gerät laden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Bücher vom Gerät löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Bücher vom Gerät herunterladen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Buch auf dem Gerät ansehen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Geben Sie die voreingestellte Übertragungsart an" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "An Hauptspeicher senden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "An Speicherkarte A senden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "An Speicherkarte B senden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Hauptspeicher" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Schicke spezifisches Format an" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Übertragen und aus der Bibliothek löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Gerät auswerfen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Fehler bei der Kommunikation mit dem Gerät" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Keine geeigneten Formate" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Verzeichnis wählen, das als Gerät geöffnet werden soll" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Fehler in der Kommunikation zum Gerät" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6336,125 +6380,60 @@ 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/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Gerät: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " gefunden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "zum Übertragen ausgewählt" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Format wählen, das ans Gerät geschickt wird" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Kein Gerät" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Übertragung schlug fehl: Kein Gerät verbunden" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Keine Speicherkarte" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Übertragung schlug fehl: Keine Speicherkarte im Gerät" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "eBook:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "Im Anhang finden Sie das eBook" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "von" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "im %s Format." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Sende eMail an" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Keine geeigneten Formate" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"Die folgenden Bücher vor dem Versenden per eMail automatisch konvertieren?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"Konnte die folgenden Bücher nicht versenden, da geeignete Formate fehlen:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Senden der Bücher schlug fehl" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Senden der folgenden Bücher schlug fehl:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Per eMail versendet:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Nachrichten:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Im Anhang ist" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Nachrichten senden an" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Die folgenden Bücher vor dem Laden auf das Gerät automatisch konvertieren?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Sende Kataloge ans Gerät." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Sende Nachrichten an das Gerät." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Sende Bücher an das Gerät." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6463,11 +6442,11 @@ msgstr "" "fehlen. Konvertieren Sie die Bücher zuerst in ein von Ihrem Gerät " "unterstütztes Format." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Gerätespeicher voll" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6512,15 +6491,14 @@ msgstr "Bücher nach ISBN hinzufügen" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Geben Sie eine Liste von ISBNs in die linke Box ein (eine ISBN pro " -"Zeile). Calibre wird automatisch Bucheinträge basierend auf den ISBNs " -"anlegen und sowohl Metadaten als auch Buchumschläge für diese Einträge " -"herunterladen.<p>Alle ungültigen ISBNs in der Liste werden ignoriert." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "Aus Zwischenablage einfügen" @@ -6607,7 +6585,7 @@ msgstr "Pfad der Bibliothek" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Name" @@ -6661,7 +6639,7 @@ msgid "No location selected" msgstr "Kein Ort ausgewählt" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Ungültiger Ort" @@ -6762,12 +6740,12 @@ msgid "Author sort" msgstr "Autorensortierung" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Ungültiger Autorenname" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Autorennamen dürfen nicht das Zeichen & enthalten." @@ -6926,50 +6904,50 @@ msgstr "Suchen/Ersetzen" msgid "Working" msgstr "Bei der Arbeit..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Kleinschreibung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Großschreibung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Wortanfänge groß schreiben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Wortsuche" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Regulärer Ausdruck" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Feld ersetzen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Vorne an das Feld anfügen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Hinten an das Feld anhängen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Meta-Informationen für <b>%d Bücher</b> editieren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Buch %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -6981,7 +6959,7 @@ msgstr "" "empfehlenswert, die Bibliothek vorher zu sichern.<p>Suchen und Ersetzen in " "Textfeldern via Textsuche oder reguläre Ausdrücke. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6998,7 +6976,7 @@ msgstr "" "ist sie nicht ausgewählt, werden sowohl groß- als auch kleingeschriebene " "Vorkommen gefunden." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -7025,36 +7003,36 @@ msgstr "" "Sie weitere Informationen über Pythons reguläre Ausdrücke, insbesondere die " "'sub'- Funktion." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "" "Sie müssen ein Zielfeld auswählen, wenn die Quelle ein zusammengesetztes " "Feld ist." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Suchen/ersetzen ungültig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" "Das Autorenfeld darf nicht leer sein. Buch mit dem Titel %s wurde nicht " "verarbeitet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" "Das Titelfeld darf nicht leer sein. Buch mit dem Titel %s wurde nicht " "verarbeitet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Suchmuster ungültig: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -7062,19 +7040,19 @@ msgstr "" "Wende Änderungen bei %d Büchern an.\n" "Phase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Meta-Informationen bearbeiten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "Automatisch Sortierung nach Autor setzen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "S&ortierung nach Autor: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -7082,65 +7060,65 @@ 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:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Bewertung:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "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:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Keine Änderung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " Sterne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Etiketten hinzufü&gen: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Etiketten-Editor öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "Etiketten entfe&rnen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 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:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Auswählen, um alle Etiketten des Buches zu entfernen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Alle entfernen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Wenn ausgewählt, wird der Serien- Eintrag entfernt." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Serie löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7152,11 +7130,11 @@ msgstr "" "sie ausgewählt wurden, nummeriert. Wenn Sie also zuerst Buch A und dann\n" "Buch B ausgewählt haben, wird A die Nummer 1 und B die Nummer 2 haben." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Bücher in dieser Reihe automatisch nummerieren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7166,15 +7144,15 @@ msgstr "" "Datenbank ausgehend nummeriert. Bei Wahl dieser Option wird Calibre die\n" "Nummerierung vom Wert des Eingabefeldes aus starten." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "&Format entfernen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "Titel und Autor vertau&schen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7184,11 +7162,11 @@ msgstr "" "Titel und \n" "Autoren tauschen ausgewählt wird, wird die Vertauschung zuerst durchgeführt." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Titel in Titelschreibweise setzen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7200,34 +7178,34 @@ msgstr "" "Für zukünftige Konvertierungen dieser Bücher werden die Voreinstellungen " "verwendet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" "Ge&speicherte Konvertierungs-Einstellungen für die gewählten Bücher löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "&Basis-Metadaten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "Ben&utzerdefinierte Metadaten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Such&feld:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "Name des zu durchsuchenden Feldes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Suchmodus:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7235,11 +7213,11 @@ msgstr "" "Auswählen, ob Wortsuche oder Suche mittels regulären Ausdrücken angewandt " "werden soll." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Suchen nach:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" @@ -7247,7 +7225,7 @@ msgstr "" "Hier Text, nach dem gesucht werden soll, eingeben, je nach Modus einfacher " "Text oder einen regulären Ausdruck" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -7255,15 +7233,15 @@ msgstr "" "Auswählen, wenn der Suchtext auf Groß/Kleinschreibung achten soll, abwählen, " "wenn dies ignoriert werden soll" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Groß/Kleinschreibung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "E&rsetzen durch:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -7271,11 +7249,11 @@ msgstr "" "Der Ersetzungstext. Die Vorkommen des Suchtextes werden durch diesen Text " "ersetzt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Funktion nach Ersetzung anwenden:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7287,11 +7265,11 @@ msgstr "" "wird das gesamte Feld verarbeitet, im Modus regulärer Ausdruck wird nur der " "gefundene Text verarbeitet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "&Zielfeld:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7299,15 +7277,15 @@ msgstr "" "Das Feld, in das der Text nach allen Ersetzungen geschrieben wird. Wenn " "leer, wird das Ursprungsfeld benutzt." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Modus:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Bestimmen Sie, wie der Text in das Zielfeld geschrieben wird." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7317,23 +7295,23 @@ msgstr "" "Box, ob ein\n" "Komma oder nichts zwischen dem Originaltext und dem eingefügten Text steht." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "Komma benutzen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "Test &text" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Te&stergebnis" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Ihr Test:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" msgstr "&Suchen und Ersetzen" @@ -7624,20 +7602,21 @@ msgstr "Passwort erforderlich" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "Ben&utzername:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Passwort:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "Pa&sswort anzeigen" @@ -7883,50 +7862,45 @@ msgid "Advanced Search" msgstr "Erweiterte Suche" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "Finde Einträge, die das Folgende enthalten..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "&Alle diese Worte:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "&Exakt diesen Ausdruck:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "Ein &oder mehrere dieser Worte:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "Aber zeige nicht Einträge, die das Folgende enthalten..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "Alle diese &unerwünschten Worte:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "Folgende Übereinstimmung verwenden:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -"Enthalten: Word oder Ausdruck stimmt irgendwo in den Metadaten überein" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Finde Einträge, die das Folgende enthalten..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Alle diese Worte:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "&Exakt diesen Ausdruck:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "Ein &oder mehrere dieser Worte:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "" -"Übereinstimmend: Word oder Ausdruck muss mit einem ganzen Metadatenfeld " -"übereinstimmen" +msgid "But dont show entries that have..." +msgstr "Aber zeige nicht Einträge, die das Folgende enthalten..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "" -"Regulärer Ausdruck: der Reguläre Ausdruck muss irgendwo in den Metadaten " -"übereinstimmen" +msgid "Any of these &unwanted words:" +msgstr "Alle diese &unerwünschten Worte:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -8116,12 +8090,12 @@ msgid "%s (was %s)" msgstr "%s (war %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "Eintrag ist leer" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" "Ein Element kann nicht auf nichts eingestellt werden. Löschen Sie es " @@ -8207,7 +8181,7 @@ msgid "Discard changes" msgstr "Änderungen verwerfen" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Abbruch" @@ -8417,6 +8391,62 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Source Code (Python) des Schemas" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Nachrichten:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "eBook:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "Im Anhang finden Sie das eBook" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "von" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "im %s Format." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Sende eMail an" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"Die folgenden Bücher vor dem Versenden per eMail automatisch konvertieren?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Konnte die folgenden Bücher nicht versenden, da geeignete Formate fehlen:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Nachrichten senden an" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8614,23 +8644,23 @@ msgstr "Kann Aufträge, die mit dem Gerät kommunizieren, nicht abbrechen" msgid "Job has already run" msgstr "Auftrag wird schon ausgeführt" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Nicht verfügbar" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Aufträge:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Klicken, um Jobliste anzuzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Aufträge" @@ -8656,7 +8686,7 @@ msgid "Show books in the main memory of the device" msgstr "Zeige Bücher im Hauptspeicher des Geräts" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Karte A" @@ -8665,7 +8695,7 @@ msgid "Show books in storage card A" msgstr "Zeige Bücher auf Speicherkarte A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Karte B" @@ -8749,7 +8779,7 @@ msgstr "Buch %s von %s" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "Der Such-Name ist \"{0}\"" @@ -8778,47 +8808,47 @@ msgstr "Zum Löschen ausgewählt" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Doppelklick ermöglicht <b>Bearbeitung</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Spalte %s ausblenden" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Sortieren nach %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "aufsteigend" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "absteigend" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Textausrichtung ändern für %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Links" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Rechts" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Zentriert" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Spalte anzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Voreingestelltes Layout wiederherstellen" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8851,7 +8881,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>Keine Treffer</b> für die Suchworte <i>%s</i> gefunden." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Keine Treffer gefunden" @@ -8868,12 +8898,12 @@ msgid "LRF Viewer toolbar" msgstr "LRF Viewer Symbolleiste" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Nächste Seite" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Vorherige Seite" @@ -8917,7 +8947,7 @@ msgid "Do not check for updates" msgstr "Nicht nach Updates suchen" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Calibre Bibliothek" @@ -9056,37 +9086,37 @@ msgstr "Buch hat weder Titel noch ISBN" msgid "No matches found for this book" msgstr "Keine Treffer für dieses Buch" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "Download der Metadaten fehlgeschlagen" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "Umschlagbild" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Heruntergeladen" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "Herunterladen fehlgeschlagen" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s für: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Fertig" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "Erfolgreich Metadaten heruntergeladen für %d von %d Büchern" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Einzelheiten" @@ -9644,27 +9674,27 @@ msgstr "&Text unter Symbolen anzeigen:" msgid "&Split the toolbar into two toolbars" msgstr "&Werkzeugleiste in zwei Leisten teilen" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Anwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Voreinstellungen wie&derherstellen" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Änderungen speichern" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Abbrechen und zur Übersicht zurückkehren" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "Voreinstellungen wiederherstellen wird nicht unterstützt für" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9672,7 +9702,7 @@ msgstr "" "Einige Ihrer Änderungen erfordern einen Neustart. Bitte starten Sie Calibre " "so früh wie möglich neu." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9680,7 +9710,7 @@ msgstr "" "Ihre Änderungen erfordern einen sofortigen Neustart von Calibre. Sie können " "keine Einstellungen mehr ändern, bevor Sie neu starten." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Neustart erforderlich" @@ -10040,7 +10070,7 @@ msgstr "" "überschrieben werden." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Content Server konnte nicht gestartet werden" @@ -10261,7 +10291,7 @@ msgstr "Aktuelle &Optimierungen" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Suche" @@ -10359,26 +10389,22 @@ msgstr "Löschen" msgid "&Alternate shortcut:" msgstr "&Alternatives Tastenkürzel:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Benenne '%s' um" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Sortierung nach '%s' bearbeiten" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Kategorie %s ausblenden" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Kategorie anzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Alle Kategorien anzeigen" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10393,58 +10419,62 @@ msgstr "Gespeicherte Suchen verwalten" msgid "Manage User Categories" msgstr "Benutzer-Kategorien verwalten" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Alle Kategorien anzeigen" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" "Das Ändern der Autoren für mehrere Bücher kann einige Zeit dauern. Sind Sie " "sicher?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "Das Ändern der Metadaten für so viele Bücher kann einige Zeit dauern. Sind " "Sie sicher?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Suchergebnisse" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Such-Name duplizieren" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "Der gespeicherte Such-Name %s wird schon verwendet." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Nach Name sortieren" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Nach Beliebtheit sortieren" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Nach Bewertungsdurchschnitt sortieren" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Reihenfolge der Einträge im Etiketten- Browser einstellen" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Übereinstimmung mit allen" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Übereinstimmung mit irgendeinem" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" @@ -10452,11 +10482,11 @@ msgstr "" "entweder Bücher, bei denen mindestens ein Eintrag paßt, oder aber Bücher, " "bei denen alle Einträge passen" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Ben&utzer-Kategorien verwalten" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Eigene Kategorien zum Etiketten- Browser hinzufügen" @@ -10503,28 +10533,28 @@ msgstr "" "Die folgenden Bücher wurden schon in das %s Format konvertiert. Möchten Sie " "sie erneut konvertieren?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Wiederherstellen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "Spen&den Sie, um Calibre zu unterstützen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "Verbundenes Gerät ausw&erfen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Calibre Quick-Start-Guide" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Konvertierungsfehler" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10533,15 +10563,15 @@ msgstr "" "href=\"%s\">DRM</a> geschütztes Buch. Sie müssen zuerst das DRM mit Hilfe " "anderer Programme entfernen." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Downloadschema ausgeschalten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Misslungen</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10552,12 +10582,12 @@ msgstr "" "Unterstützung der weiteren Entwicklung. Ihre Spende hilft, die Entwicklung " "von Calibre am Laufen zu halten." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 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:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10568,11 +10598,11 @@ msgstr "" "verursachen.<br>\n" " Sind Sie sicher, dass sie beenden möchten?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "WARNUNG: Aktive Aufträge" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10753,17 +10783,17 @@ msgstr "Tasten&kürzel" msgid "No results found for:" msgstr "Kein Ergebnis gefunden für:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Einstellungen zum Anpassen des eBook Viewers" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Zuletzt verwendete Fenstergröße merken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10771,80 +10801,80 @@ msgstr "" "Geben Sie das Benutzerlayout als CSS an. Verwenden Sie dies zur Anpassung " "des Aussehens aller Bücher." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Maximale Bildschirmbreite in Punkt." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "Bilder, die größer als das Viewer-Fenster sind, passend verkleinern" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Silbentrennung" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Voreingestellte Sprache für die Regeln der Silbentrennung" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Schrifteinstellungen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "Serife Schriftartfamilie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "Serifenlose Schriftartfamilie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "Nichtproportionale Schriftartfamilie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "Standardschriftgröße in Punkt" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "Nichtproportionale Schriftgröße in Punkt" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Standardschriftart" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "Im Wörterbuch nachsch&lagen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Gehe zu..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Nächster Abschnitt" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Vorheriger Abschnitt" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Beginn des Dokuments" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Ende des Dokuments" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Beginn des Abschnitts" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Ende des Abschnitts" @@ -10914,89 +10944,89 @@ msgstr "" msgid "Search for text in book" msgstr "Suche nach Text im Buch" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Druckvorschau" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Verbinde mit dict.org zum Nachschlagen von: <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "eBook wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "eBooks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Keine Treffer gefunden für: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Lade Ablauf..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Lege %s an" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "#%d zu Lesezeichen hinzufügen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Lesezeichen hinzufügen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Titel für Lesezeichen eingeben:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Lesezeichen verwalten" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Lade eBook..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM Fehler" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Dieses Buch ist geschützt durch <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Konnte eBook nicht öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Einstellungen zur Kontrolle des eBook Viewers" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Falls angegeben, dann wird das Viewer Fenster beim Start im Vordergrund " "angezeigt." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Wenn ausgewählt, wird das Betrachter- Fenster nach Möglichkeit im " "Vollbildmodus geöffnet." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Javascript Alarme und Konsolennachrichten auf der Konsole ausgeben" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -11114,7 +11144,7 @@ msgstr "Ausblenden" msgid "Toggle" msgstr "Umschalten" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -11124,7 +11154,7 @@ msgstr "" "können Sie auf ihre Calibre Büchersammlung direkt vom Gerät aus zugreifen. " "Dazu müssen Sie den Calibre Content Server einschalten." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -11132,7 +11162,7 @@ msgstr "" "Denken Sie daran, Calibre gestartet zu lassen, da der Server nur solange " "läuft, wie auch Calibre läuft." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -11142,20 +11172,20 @@ msgstr "" "WordPlayer hinzufügen. Dabei sollte myhostname der vollständige Servername " "oder die IP-Adresse des Rechners sein, auf dem Calibre läuft." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Verschiebe Bibliothek..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Verschieben der Bibliothek schlug fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Ungültige Datenbank" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -11163,22 +11193,22 @@ msgstr "" "<p>Eine ungültige Bibliothek ist schon in %s vorhanden, löschen Sie sie " "bevor Sie die aktuelle Bibliothek verschieben.<br>Fehler: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Konnte Bibliothek nicht verschieben" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Speicherort für Bücher wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "Sie müssen für die Calibre- Bibliothek einen leeren Ordner wählen. %s ist " "nicht leer." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "Willkommens-Assistent" @@ -11265,11 +11295,9 @@ msgstr "Wäh&len Sie Ihre Sprache:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Wählen Sie einen Speicherort für Ihre Bücher. Wenn Sie Bücher zu Calibre " -"hinzufügen, werden sie hierhin kopiert:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11285,50 +11313,72 @@ msgstr "" "Speicherort kopiert. Falls am neuen Speicherort schon eine Calibre " "Bibliothek besteht, wird Calibre diese verwenden." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Gebrauch von: %s:%s@%s:%s und %s Verschlüsselung" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Übermittlung läuft..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "eMail erfolgreich verschickt" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Googlemail Setup abschließen" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Vergessen Sie nicht, Ihren Googlemail Benutzernamen und Ihr Passwort " -"einzugeben. Sie können ein kostenloses Konto bei http://mail.google.com " -"erstellen." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Schlechte Einstellung" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Sie müssen die eMail-Adresse des Absenders angeben" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "" "Sie müssen den Benutzernamen und das Passwort für den Mailserver angeben." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "eMail senden &von:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11336,7 +11386,7 @@ msgstr "" "<p>Dies steht im \"Von\" Feld (Absender) von mit Calibre versendeten " "eMails.<br> Geben Sie Ihre eMail-Adresse an" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11344,52 +11394,52 @@ msgstr "" "<p>Ein Mailserver ist nützlich, wenn der Diensteanbieter, an den Sie die " "eMail senden, nur eMails von bekannten eMail-Diensteanbietern annimmt." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "Mail&server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "Calibre kann <b>wahlweise</b> einen Server zum Versenden von Nachrichten " "verwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Rechnername:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "Der Servername Ihres Mailservers. Z.B. smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "Der Anschluss (Port) auf dem Ihr Mailserver auf Verbindungen wartet. " "Voreinstellung ist 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "Ihr Benutzername auf dem Mailserver" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "Ihr Passwort auf dem Mailserver" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "An&zeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "V&erschlüsselung:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11397,23 +11447,35 @@ msgstr "" "TLS-Verschlüsselung für die Verbindung zum Mailserver verwenden. Dies trifft " "meistens zu." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "SSL Verschlüsselung für die Verbindung zum Mailserver verwenden." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Googlemail verwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "Email &testen" @@ -11480,7 +11542,7 @@ msgstr "leer" msgid "empty" msgstr "leer" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11494,7 +11556,7 @@ msgstr "" "Standard: '%%default'\n" "Betrifft: CSV und XML Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11506,7 +11568,7 @@ msgstr "" "Voreinstellung: '%default'\n" "Wird angewendet auf: CSV, XML Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11520,7 +11582,7 @@ msgstr "" "Standard: '%%default'\n" "Betrifft: BibTeX Ausgabeformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11532,7 +11594,7 @@ msgstr "" "Standard: '%default'\n" "Angewendet bei: BibTeX- Ausgabeformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11544,7 +11606,7 @@ msgstr "" "Standard: '%default'\n" "Angewendet bei: BibTeX- Ausgabeformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11558,7 +11620,7 @@ msgstr "" "Standard: '%%default'\n" "Angewendet bei: BibTeX- Ausgabeformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11570,7 +11632,7 @@ msgstr "" "Voreingestellt: '%default'\n" "Betrifft: BIBTEX Ausgabe-Format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11582,7 +11644,7 @@ msgstr "" "Standard: '%default'\n" "Angewendet bei: BibTeX- Ausgabeformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11594,7 +11656,7 @@ msgstr "" "Standard: '%default'\n" "Angewendet bei: BibTeX- Ausgabeformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11604,7 +11666,7 @@ msgstr "" "Standard: '%default'\n" "Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11618,7 +11680,7 @@ msgstr "" "Standard: '%default'Nirgends\n" "Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11629,7 +11691,7 @@ msgstr "" "'[<tag>]'\n" "Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11645,7 +11707,7 @@ msgstr "" "Voreinstellung: '%default'\n" "Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11655,7 +11717,7 @@ msgstr "" "Standard: '%default'\n" "Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11665,7 +11727,7 @@ msgstr "" "Standard: '%default'\n" "Angewendet bei: ePub-, MOBI- Ausgabeformaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11675,7 +11737,7 @@ msgstr "" "Standard: '%default'\n" "Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11686,7 +11748,7 @@ msgstr "" "Standard: '%default'\n" "Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11700,7 +11762,7 @@ msgstr "" "Voreinstellung: '%default'\n" "Gilt für: ePub, MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11716,7 +11778,7 @@ msgstr "" "Standard: '%default'\n" "Betrifft: ePub und MOBI Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11726,6 +11788,13 @@ msgstr "" "Voreinstellung: '%default'\n" "Gilt für: ePub, MOBI Ausgabeformate" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Ungültige Titel" @@ -12455,35 +12524,35 @@ msgstr "" "Der Suchname darf ausschließlich Kleinbuchstaben, Zahlen und Unterstriche " "enthalten und muß mit einem Buchstaben anfangen." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sdie durchschnittliche Bewertung ist %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Haupt" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "<p>Migriere alte Datenbank zu eBook Bibliothek in %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Kopiere <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Komprimiere Datenbank" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Überprüfe SQL Vollständigkeit..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Überprüfe fehlende Dateien." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "Überprüfte ID" @@ -12712,129 +12781,129 @@ msgstr "" "Vor alle URLs angehängter Prefix. Nützlich für reverse proxy- Anwendung des " "Servers von Apache/ngingx/etc. aus." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "" -"Kennwort für den Zugriff auf die Calibre Bibliothek. Benutzername ist " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "Lade, bitte warten" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Erste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Letzte" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Vorherige" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Nächste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "Zeige %d Bücher" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Durchschnittliche Bewertung" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f Sterne" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d Sterne" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Beliebtheit" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Sortieren nach" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "Bibliothek" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "Startseite" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Neuestes" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Alle Bücher" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Zeige Bücher nach" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Kategorie zum Anzeigen wählen:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Zeige nach" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Hoch" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "in" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Bücher in" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Andere Formate" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Lese %s im %s Format" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Holen" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Permalink" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "Ein permanenter Link zu diesem Buch" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Dieses Buch wurde gelöscht" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "in Suche" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Passende Bücher" @@ -13174,7 +13243,7 @@ msgstr "Konnte SSH Sitzung nicht abschließen: " msgid "Failed to authenticate with server: %s" msgstr "Authentifizierung schlug fehl am Server: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "eMail Versand kontrollieren" @@ -13264,7 +13333,7 @@ msgstr "Feeds der Index-Seite erhalten" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:869 msgid "Trying to download cover..." -msgstr "Umschlagbild versuchen heruterzuladen ..." +msgstr "Umschlagbild versuchen herunterzuladen ..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:871 msgid "Generating masthead..." @@ -15379,6 +15448,18 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ "Konnte die folgenden Bücher nicht versenden, da keine passenden Formate " #~ "vorhanden:<br><ul>%s</ul>" +#~ msgid "Failed to email books" +#~ msgstr "Senden der Bücher schlug fehl" + +#~ msgid "Failed to email the following books:" +#~ msgstr "Senden der folgenden Bücher schlug fehl:" + +#~ msgid "Sent by email:" +#~ msgstr "Per eMail versendet:" + +#~ msgid "Attached is the" +#~ msgstr "Im Anhang ist" + #~ msgid "" #~ "Email\n" #~ "Delivery" @@ -15386,6 +15467,9 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ "eMail\n" #~ "Versand" +#~ msgid "Finish gmail setup" +#~ msgstr "Googlemail Setup abschließen" + #~ msgid "Dont forget to enter your gmail username and password" #~ msgstr "" #~ "Vergessen Sie nicht, Ihren Googlemail Benutzernamen und Ihr Passwort " @@ -15743,6 +15827,13 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "Click to see the books available on your computer" #~ msgstr "Liste der auf dem Computer vorhandenen Bücher anzeigen" +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Wählen Sie einen Speicherort für Ihre Bücher. Wenn Sie Bücher zu Calibre " +#~ "hinzufügen, werden sie hierhin kopiert:" + #~ msgid "Catalan" #~ msgstr "Katalanisch" @@ -15822,6 +15913,14 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ "href=\"http://calibre.kovidgoyal.net/user_manual/gui.html#the-search-" #~ "interface\">Benutzer Handbuch</a> für weitere Hilfe" +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Vergessen Sie nicht, Ihren Googlemail Benutzernamen und Ihr Passwort " +#~ "einzugeben. Sie können ein kostenloses Konto bei http://mail.google.com " +#~ "erstellen." + #~ msgid "Communicate with the Cybook Opus eBook reader." #~ msgstr "Kommunikation mit dem Cybook Opus eBook Reader." @@ -15831,6 +15930,17 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "Add/Save" #~ msgstr "Hinzufügen/Speichern" +#~ 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 "" +#~ "Die folgenden Bücher hatten Formate in der Datenbank angegeben, die " +#~ "tatsächlich nicht verfügbar waren. Die Einträge der Formate wurden entfernt. " +#~ "Sie sollten diese manuell überprüfen. Dies kann passieren, wenn Sie die " +#~ "Dateien direkt im Bibliotheksverzeichnis verändern." + #~ msgid "TabWidget" #~ msgstr "TabWidget" @@ -15921,6 +16031,10 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "calibre" #~ msgstr "Calibre" +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "" +#~ "Kennwort für den Zugriff auf die Calibre Bibliothek. Benutzername ist " + #~ msgid "" #~ "[options]\n" #~ "\n" @@ -16040,6 +16154,14 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "English (TH)" #~ msgstr "Englisch (TH)" +#~ 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 "" +#~ "Durchschnittliche Zeilenlänge für den Zeilenumbruch falls das HTML von einer " +#~ "zuvor nur teilweise konvertierten PDF-Datei stammt. Voreinstellung ist " +#~ "%default was dies ausschaltet." + #~ msgid "Options to control e-book conversion." #~ msgstr "Einstellungen zur Kontrolle der eBook-Konvertierung." @@ -16139,6 +16261,21 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid " " #~ msgstr " " +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Regulärer Ausdruck: der Reguläre Ausdruck muss irgendwo in den Metadaten " +#~ "übereinstimmen" + +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "" +#~ "Enthalten: Word oder Ausdruck stimmt irgendwo in den Metadaten überein" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Übereinstimmend: Word oder Ausdruck muss mit einem ganzen Metadatenfeld " +#~ "übereinstimmen" + #~ msgid "Masthead font:" #~ msgstr "Impressumsschrift:" @@ -16436,6 +16573,17 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "Run the check" #~ msgstr "Überprüfung starten" +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Geben Sie eine Liste von ISBNs in die linke Box ein (eine ISBN pro " +#~ "Zeile). Calibre wird automatisch Bucheinträge basierend auf den ISBNs " +#~ "anlegen und sowohl Metadaten als auch Buchumschläge für diese Einträge " +#~ "herunterladen.<p>Alle ungültigen ISBNs in der Liste werden ignoriert." + #~ msgid "" #~ "Book formats and metadata from the selected books will be merged into the " #~ "<b>first selected book</b>. ISBN will <i>not</i> be merged.<br><br>After " diff --git a/src/calibre/translations/el.po b/src/calibre/translations/el.po index 65824c5de8..80e9889648 100644 --- a/src/calibre/translations/el.po +++ b/src/calibre/translations/el.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-08-27 18:12+0000\n" -"PO-Revision-Date: 2010-08-27 20:29+0000\n" +"POT-Creation-Date: 2010-11-26 19:04+0000\n" +"PO-Revision-Date: 2010-11-26 21:28+0000\n" "Last-Translator: Kovid Goyal <Unknown>\n" "Language-Team: Greek <el@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-08-28 03:37+0000\n" +"X-Launchpad-Export-Date: 2010-11-27 04:48+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -22,65 +22,74 @@ 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/hanvon/driver.py:87 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:522 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:405 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:407 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:336 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:339 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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:240 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:283 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:286 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:402 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:20 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:231 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:30 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:31 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:71 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:373 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:378 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:333 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:123 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:125 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:945 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1022 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1134 #: /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/snb.py:16 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 -#: /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:108 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -100,53 +109,52 @@ msgstr "Δεν κάνει τίποτα" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:247 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:249 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:323 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:330 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:289 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:292 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:111 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:878 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1163 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1166 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:513 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:362 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:382 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:882 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1060 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:186 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:362 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:374 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1007 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1076 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1760 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1762 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1889 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:201 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1112 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:215 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 -#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:70 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:117 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 +#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:78 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:118 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:50 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:55 msgid "Unknown" msgstr "Άγνωστο" @@ -160,29 +168,31 @@ msgstr "ΤÏπος αÏχείου" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:208 msgid "Metadata reader" -msgstr "Αναγνώστης metadata" +msgstr "Αναγνώστης μεταδεδομένων" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:238 msgid "Metadata writer" -msgstr "ΕγγÏαφέας metadata" +msgstr "ΕγγÏαφέας μεταδεδομένων" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:268 msgid "Catalog generator" msgstr "ΔημιουÏγία καταλόγου" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:366 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:369 msgid "User Interface Action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:376 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:605 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "ΠÏοτιμήσεις" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -192,7 +202,7 @@ msgstr "" "ένα αÏχείο ZIP που πεÏιέχει όλα τα συνδεδεμένα αÏχεία. Το plugin Ï„Ïέχει κάθε " "φοÏά που Ï€Ïοσθέτετε ένα αÏχείο HTML στην βιβλιοθήκη." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -200,7 +210,7 @@ msgstr "" "Κωδικοποίηση χαÏακτήÏων για τα εισαγόμενα αÏχεία HTML. Συνήθεις επιλογές " "συμπεÏιλαμβάνουν : cp1252, latin1, iso-8859-1 και utf-8" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -209,7 +219,7 @@ msgstr "" "ΔημιουÏγία μιας αÏχειοθήκης PMLZ που πεÏιέχει το αÏχείο PML και όλες τις " "εικόνες στον κατάλογο pmlname_img ή images" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Εξαγωγή εξωφÏλλου από αÏχεία κόμικς" @@ -224,51 +234,215 @@ msgstr "Εξαγωγή εξωφÏλλου από αÏχεία κόμικς" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:205 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:215 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:236 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:247 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:259 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:280 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:291 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:301 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:258 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:290 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:300 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:311 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321 msgid "Read metadata from %s files" -msgstr "Ανάγνωση συνδεδομένων από αÏχεία %s" +msgstr "Ανάγνωση μεταδεδομένων από αÏχεία %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:270 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:269 msgid "Read metadata from ebooks in RAR archives" -msgstr "Ανάγνωση συνδεδομένων από ηλεκτÏονικά βιβλία μέσα σε αÏχειοθήκες RAR" +msgstr "" +"Ανάγνωση μεταδεδομένων από ηλεκτÏονικά βιβλία μέσα σε αÏχειοθήκες RAR" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:322 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:332 msgid "Read metadata from ebooks in ZIP archives" -msgstr "Ανάγνωση συνδεδομένων από ηλεκτÏονικά βιβλία μέσα σε αÏχειοθήκες ZIP" +msgstr "" +"Ανάγνωση μεταδεδομένων από ηλεκτÏονικά βιβλία μέσα σε αÏχειοθήκες ZIP" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:335 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:345 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:355 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:377 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:388 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:398 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:408 msgid "Set metadata in %s files" -msgstr "ΚαθοÏισμός συνδεδομένων σε αÏχεία %s" +msgstr "ΚαθοÏισμός μεταδεδομένων σε αÏχεία %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:366 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376 msgid "Set metadata from %s files" -msgstr "ΚαθοÏισμός συνδεδομένων από αÏχεία %s" +msgstr "ΚαθοÏισμός μεταδεδομένων από αÏχεία %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:681 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:682 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:199 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Διεπαφή" +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +msgid "Adjust the look and feel of the calibre interface to suit your tastes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +msgid "Behavior" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 +msgid "Change the way calibre behaves" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 +msgid "Add your own columns" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 +msgid "Add/remove your own columns to the calibre book list" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +msgid "Customize the toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +msgid "" +"Customize the toolbars and context menus, changing which actions are " +"available in each" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +msgid "Input Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 +msgid "Conversion" +msgstr "ΜετατÏοπή" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 +msgid "Set conversion options specific to each input format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +msgid "Common Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 +msgid "Set conversion options common to all formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +msgid "Output Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 +msgid "Set conversion options specific to each output format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +msgid "Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 +msgid "Import/Export" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +msgid "Control how calibre reads metadata from files when adding books" +msgstr "" +"Ελέγχει πως το calibre διαβάζει τα μεταδεδομένα από τα αÏχεία όταν " +"Ï€Ïοστίθενται βιβλία" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +msgid "Saving books to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +msgid "" +"Control how calibre exports files from its database to disk when using Save " +"to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +msgid "Sending books to devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +msgid "Control how calibre transfers files to your ebook reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +msgid "Metadata plugboards" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 +msgid "Change metadata fields before saving/sending" +msgstr "Αλλαγή των πεδίων των μεταδεδομένων Ï€Ïιν από αποθήκευση / αποστολή" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +msgid "Sharing books by email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 +msgid "Sharing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +msgid "" +"Setup sharing of books via email. Can be used for automatic sending of " +"downloaded news to your devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +msgid "Sharing over the net" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 +msgid "" +"Setup the calibre Content Server which will give you access to your calibre " +"library from anywhere, on any device, over the internet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +msgid "Plugins" +msgstr "ΠÏόσθετα" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 +msgid "Advanced" +msgstr "Για Ï€ÏοχωÏημένους" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +msgid "Add/remove/customize various bits of calibre functionality" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +msgid "Tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 +msgid "Fine tune how calibre behaves in various contexts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +msgid "Miscellaneous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 +msgid "Miscellaneous advanced configuration" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "Εισαγωγή (δεδομένων) Ï€Ïος μετατÏοπή" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:129 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:134 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -281,11 +455,11 @@ msgstr "" "για έγγÏαφα που δεν δηλώνουν κωδικοποίηση ή διαθέτουν εσφαλμένη δήλωση " "κωδικοποίησης." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:246 msgid "Conversion Output" msgstr "Εξαγωγή (δεδομένων) από μετατÏοπή" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:260 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." @@ -294,11 +468,11 @@ msgstr "" "εξαγόμενα όσο το δυνατόν ανθÏωπίνως αναγνώσιμα. Για οÏισμένα Ï€Ïόσθετα εξόδου " "μποÏεί να μην έχει κανένα αποτέλεσμα." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:45 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:47 msgid "Input profile" msgstr "ΠεÏίγÏαμμα εισόδου" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:49 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:51 msgid "" "This profile tries to provide sane defaults and is useful if you know " "nothing about the input document." @@ -306,84 +480,84 @@ msgstr "" "Αυτό το πεÏίγÏαμμα Ï€Ïοσπαθεί να παÏέχει λογικά Ï€ÏοτεÏόθετα (αÏχικές τιμές) " "και είναι χÏήσιμο αν δε γνωÏίζετε τίποτα για το εισαγόμενο έγγÏαφο." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:57 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:414 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για τη σειÏά SONY PRS. Τα 500/505/600/700 κλπ." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:71 msgid "This profile is intended for the SONY PRS 300." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το SONY PRS 300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:78 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:449 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το SONY PRS-900." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:86 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Microsoft Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:97 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:490 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για τα βιβλία Mobipocket." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:110 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "" "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Hanlin V3 και τους κλώνους του." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:122 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:515 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "" "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Hanlin V5 και τους κλώνους του." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:132 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:523 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Cybook G3." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:145 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Cybook Opus." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:157 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:547 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Amazon Kindle." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:169 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:584 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Irex Illiad." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 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:194 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:611 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το IRex Digital Reader 800." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:625 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το B&N Nook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:228 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:230 msgid "Output profile" msgstr "ΠεÏίγÏαμμα εξαγομένων" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:232 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:234 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 " @@ -393,24 +567,28 @@ msgstr "" "και είναι χÏήσιμο για την παÏαγωγή εγγÏάφων που Ï€ÏοοÏίζονται να διαβαστοÏν " "σε Η/Î¥ ή σε μια ποικιλία συσκευών." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:259 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "ΠÏοοÏίζεται για το iPad και παÏόμοιες συσκευές με ανάλυση 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 +msgid "Intended for generic tablet devices, does no resizing of images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:458 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το JetBook 5 ιντσών." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -418,10 +596,18 @@ msgstr "" "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για τη σειÏά SONY PRS. Τα 500/505/700 κλπ., " "σε οÏιζόντια διάταξη (landscape). ΧÏήσιμο κυÏίως για κόμικς." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:566 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Αυτό το πεÏίγÏαμμα Ï€ÏοοÏίζεται για το Amazon Kindle DX." +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 +msgid "This profile is intended for the Sanda Bambook." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Installed plugins" msgstr "Εγκατεστημένα Ï€Ïόσθετα" @@ -442,15 +628,15 @@ msgstr "ΑπενεÏγοποιημένα Ï€Ïόσθετα" msgid "Enabled plugins" msgstr "ΕνεÏγοποιημένα Ï€Ïόσθετα" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:86 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:93 msgid "No valid plugin found in " msgstr "Δεν βÏέθηκε έγκυÏο Ï€Ïόσθετο " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:501 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:508 msgid "Initialization of plugin %s failed with traceback:" msgstr "Η αÏχικοποίηση του Ï€Ïόσθετου %s απέτυχε με traceback:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:534 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:541 msgid "" " %prog options\n" "\n" @@ -462,19 +648,19 @@ msgstr "" " Εξατομίκευση του calibre με φόÏτωση εξωτεÏικών Ï€Ïοσθέτων.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:540 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:547 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "" "ΠÏοσθήκη ενός Ï€Ïοσθέτου με Ï€ÏοσδιοÏισμό της διεÏθυνσης (path) του αÏχείου " "zip που το πεÏιέχει." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:549 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" "ΑφαίÏεση εξατομικευμένων Ï€Ïοσθέτων, ονομαστικά. Δεν επηÏεάζει τα " "ενσωματωμένα Ï€Ïόσθετα" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:544 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:551 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -482,15 +668,15 @@ msgstr "" "Εξατομίκευση Ï€Ïοσθέτου. ΠÏοσδιόÏισε όνομα Ï€Ïοσθέτου και στοιχειοσειÏά " "εξατομίκευσης χωÏισμένα με κόμμα." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:546 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:553 msgid "List all installed plugins" msgstr "Εμφάνιση όλων των εγκατεστημένων Ï€Ïόσθετων" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:548 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:555 msgid "Enable the named plugin" msgstr "ΕνεÏγοποίηση του ονομαζόμενου Ï€Ïοσθέτου" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:557 msgid "Disable the named plugin" msgstr "ΑπενεÏγοποίηση του ονομαζόμενου Ï€Ïοσθέτου" @@ -498,7 +684,7 @@ msgstr "ΑπενεÏγοποίηση του ονομαζόμενου Ï€Ïοσθ msgid "Communicate with Android phones." msgstr "Επικοινωνία με τηλέφωνα Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:50 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -506,72 +692,92 @@ msgstr "" "ΣειÏά καταλόγων στη συσκευή, χωÏισμένων με κόμμα, Ï€Ïος αποστολή ηλεκτÏονικών " "βιβλίων. Ο Ï€Ïώτος στη σειÏά θα χÏησιμοποιηθεί." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:92 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Επικοινωνία με τηλέφωνα S60." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:87 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:90 +msgid "Apple device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:92 msgid "Communicate with iTunes/iBooks." msgstr "Επικοινωνία με iTunes/iBook" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:93 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:98 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "Συσκευή της Apple εντοπίστηκε, έναÏξη iTunes, παÏακαλώ πεÏιμένετε..." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:246 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:249 -msgid "Updating device metadata listing..." +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:100 +msgid "" +"Cannot copy books directly from iDevice. Drag from iTunes Library to " +"desktop, then add to calibre's Library window." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:323 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:362 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:921 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:957 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2822 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2861 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:260 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:263 +msgid "Updating device metadata listing..." +msgstr "ΕνημέÏωση καταλόγου μεταδεδομένων της συσκευής" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:339 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:378 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:947 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:987 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2956 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2996 msgid "%d of %d" msgstr "%d από %d" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:369 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:962 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2867 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:385 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:992 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3002 msgid "finished" msgstr "ολοκληÏώθηκε" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:544 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:560 msgid "Use Series as Category in iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:546 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:562 msgid "Cache covers from iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:558 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:574 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:886 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:911 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2491 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:851 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:244 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:190 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:203 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1644 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2553 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:467 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:882 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Îέα" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2729 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 +msgid "Catalog" +msgstr "Κατάλογος" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2860 msgid "Communicate with iTunes." msgstr "Επικοινωνία με το iTunes" @@ -593,6 +799,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Cybook Gen 3 / Opus." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο EB600." @@ -605,6 +815,10 @@ msgstr "Επικοινωνία με το Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Επικοινωνία με το PocketBook 301 reader." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -622,11 +836,11 @@ msgid "Communicate with the Sigmatek eBook reader." msgstr "Επικοινωνία με το Sigmatek eBook reader." #: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:16 -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:30 +#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:32 msgid "Use an arbitrary folder as a device." msgstr "Επιλογή τυχαίου φακέλου ως συσκευή" -#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:26 +#: /home/kovid/work/calibre/src/calibre/devices/folder_device/driver.py:28 #: /home/kovid/work/calibre/src/calibre/devices/interface.py:14 msgid "Device Interface" msgstr "Διεπαφή συσκευής" @@ -649,23 +863,32 @@ msgid "" "first one that exists will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:22 msgid "Communicate with the Hanvon N520 eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Hanvon N520." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:40 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:47 msgid "Communicate with The Book reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:52 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:59 msgid "Communicate with the SpringDesign Alex eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο SpringDesign Alex." -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 +msgid "Removing books from device..." +msgstr "ΑφαίÏεση βιβλίων από τη συσκευή..." + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:119 msgid "Communicate with the Azbooka" msgstr "Επικοινωνία με το Azbooka" -#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:81 +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:138 msgid "Communicate with the Elonex EB 511 eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Elonex EB 511." @@ -679,6 +902,10 @@ msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο IRex Ilia msgid "John Schember" msgstr "John Schember" +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:44 +msgid "Cannot get files from this device" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο IRex Digital Reader 1000." @@ -695,10 +922,14 @@ msgstr "Επικοινωνία με το Iriver Story reader." msgid "Communicate with the JetBook eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο JetBook." -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:86 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:88 msgid "Communicate with the MiBuk Wolder reader." msgstr "Επικοινωνία με το MiBuk Wolder reader." +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:116 +msgid "Communicate with the JetBook Mini reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:43 msgid "Communicate with the Kindle eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Kindle." @@ -711,14 +942,20 @@ msgstr "" msgid "Communicate with the Kindle DX eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Kindle DX." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:22 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:23 msgid "Communicate with the Kobo Reader" msgstr "Επικοινωνία με το Kobo Reader" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:53 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:56 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:59 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:170 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:49 +msgid "" +"The Kobo supports only one collection currently: the \"Im_Reading\" list. " +"Create a tag called \"Im_Reading\" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:65 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:204 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 @@ -728,33 +965,26 @@ msgstr "Επικοινωνία με το Kobo Reader" msgid "Getting list of books on device..." msgstr "Λήψη καταλόγου των βιβλίων στη συσκευή..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:230 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:274 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:253 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:271 -msgid "Removing books from device..." -msgstr "ΑφαίÏεση βιβλίων από τη συσκευή..." - -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:278 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:285 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:278 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:283 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." -msgstr "ΑφαίÏεση βιβλίων από τον κατάλογο συνδεδομένων της συσκευής..." +msgstr "ΑφαίÏεση βιβλίων από τον κατάλογο μεταδεδομένων της συσκευής..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:290 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:324 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:247 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." -msgstr "ΠÏοσθήκη βιβλίων στον κατάλογο συνδεδομένων της συσκευής..." +msgstr "ΠÏοσθήκη βιβλίων στον κατάλογο μεταδεδομένων της συσκευής..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:251 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Δεν έχει υλοποιηθεί" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:376 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -773,20 +1003,37 @@ msgid "Communicate with the Sweex MM300" msgstr "Επικοινωνία με το Sweex MM300" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:79 +msgid "Communicate with the Digma Q600" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:88 msgid "Communicate with the Kogan" msgstr "Επικοινωνία με το Kogan" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:87 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:96 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:123 msgid "Communicate with the Pandigital Novel" msgstr "Επικοινωνία με το Pandigital Novel" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:142 +msgid "Communicate with the VelocityMicro" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:160 +msgid "Communicate with the GM2000" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Επικοινωνία με το Nokia 770 internet tablet." #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 -msgid "Communicate with the Nokia 810 internet tablet." -msgstr "Επικοινωνία με το Nokia 810 internet tablet." +msgid "Communicate with the Nokia 810/900 internet tablet." +msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74 msgid "Communicate with the Nokia E52" @@ -800,6 +1047,14 @@ msgstr "Το Nook" msgid "Communicate with the Nook eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Nuut2." @@ -817,10 +1072,10 @@ 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/sony_cache.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:190 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "ΧωÏίς όνομα" @@ -837,28 +1092,36 @@ msgstr "Επικοινωνία με το Teclast K3/K5 reader." msgid "Communicate with the Newsmy reader." msgstr "Επικοινωνία με το Newsmy reader." -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:47 +msgid "Communicate with the Pico reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:57 msgid "Communicate with the iPapyrus reader." msgstr "Επικοινωνία με το iPapyrus reader." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:68 +msgid "Communicate with the Sovos reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:258 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "ΑδÏνατον να εντοπιστεί ο σκληÏός δίσκος %s. Δοκιμάστε επανεκκίνηση." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:438 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" "ΑδÏνατον να εντοπιστεί το σημείο εφαÏμογής %s. Δοκιμάστε επανεκκίνηση." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:503 msgid "Unable to detect the %s disk drive." msgstr "ΑδÏνατον να εντοπιστεί ο σκληÏός δίσκος %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:596 msgid "Could not find mount helper: %s." msgstr "Δεν βÏέθηκε ο βοηθός εφαÏμογής: %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:608 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -866,25 +1129,31 @@ msgstr "" "ΑδÏνατον να εντοπιστεί ο σκληÏός δίσκος %s. Είναι πιθανό ο πυÏήνας σας " "(kernel) να εξαγάγει μια παÏωχημένη έκδοση του SYSFS." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:616 msgid "Unable to mount main memory (Error code: %d)" msgstr "ΑδÏνατον να εφαÏμοστεί η κÏÏια μνήμη (Κώδικας σφάλματος : %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:667 +msgid "" +"The main memory of %s is read only. This usually happens because of file " +"system errors." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:815 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 msgid "The reader has no storage card in this slot." msgstr "Δεν υπάÏχει κάÏτα αποθήκευσης στην υποδοχή του ηλ.αναγνωστηÏίου." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:819 msgid "Selected slot: %s is not supported." msgstr "Η επιλεγμένη υποδοχή: %s δεν υποστηÏίζεται." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:848 msgid "There is insufficient free space in main memory" msgstr "Δεν υπάÏχει αÏκετός χώÏος στην κÏÏια μνήμη." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:850 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:852 msgid "There is insufficient free space on the storage card" msgstr "Δεν υπάÏχει αÏκετός χώÏος στην κάÏτα αποθήκευσης" @@ -906,9 +1175,9 @@ msgid "Place files in sub directories if the device supports them" msgstr "Βάλε τα αÏχεία σε υποφακέλους, αν υποστηÏίζονται από τη συσκευή" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:43 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:86 msgid "Read metadata from files on device" -msgstr "Ανάγνωση συνδεδομένων από τα αÏχεία της συσκευής" +msgstr "Ανάγνωση μεταδεδομένων από τα αÏχεία της συσκευής" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:45 msgid "Use author sort instead of author" @@ -919,7 +1188,7 @@ msgid "Template to control how books are saved" msgstr "Σχεδιότυπο που ελέγχει πως αποθηκεÏονται τα βιβλία" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:89 msgid "Extra customization" msgstr "ΠÏόσθετη εξατομίκευση" @@ -931,101 +1200,14 @@ msgstr "Επικοινωνία με ένα ηλ.αναγνωστήÏιο." msgid "Get device information..." msgstr "Λήψη των στοιχείων της συσκευής" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:195 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:197 msgid "Transferring books to device..." msgstr "ΜεταφοÏά βιβλίων στη συσκευή..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:316 msgid "Sending metadata to device..." -msgstr "Αποστολή συνδεδομένων στη συσκευή..." - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41 -msgid "%prog [options] mybook.chm" -msgstr "%prog [παÏάμετÏοι] mybook.chm" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:42 -msgid "Output directory. Defaults to current directory" -msgstr "Φάκελλος εξαγωγής. ΑÏχικά έχει καθοÏιστεί ο Ï„Ïέχων φάκελλος" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:45 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 -msgid "Set the book title" -msgstr "ΚαθοÏισμός τίτλου βιβλίου" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:47 -#: /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/chm/reader.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 -msgid "Set the author" -msgstr "ΚαθοÏισμός συγγÏαφέα" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:51 -#: /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/chm/reader.py:53 -#: /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/chm/reader.py:56 -#: /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/chm/reader.py:59 -msgid "Path to a txt file containing a comment." -msgstr "ΔιεÏθυνση ενός αÏχείου txt που πεÏιέχει κάποιο σχόλιο" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 -msgid "Extract thumbnail from LRF file" -msgstr "Εξαγωγή εικονιδίου από αÏχείο LRF" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 -msgid "Set the publisher" -msgstr "ΚαθοÏισμός εκδότη" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 -msgid "Set the book classification" -msgstr "ΚαθοÏισμός κατηγοÏιοποίησης βιβλίου" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 -msgid "Set the book creator" -msgstr "ΚαθοÏισμός δημιουÏÎ³Î¿Ï Ï„Î¿Ï… βιβλίου" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 -msgid "Set the book producer" -msgstr "ΚαθοÏισμός παÏÎ±Î³Ï‰Î³Î¿Ï Ï„Î¿Ï… βιβλίου" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:68 -#: /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 "" -"Εξαγωγή εξωφÏλλου από αÏχείο LRF. Σημειώστε ότι τα αÏχεία LRF δεν έχουν " -"Ï€ÏοκαθοÏισμένο εξώφυλλο, γι'αυτό χÏησιμοποιοÏμε ευÏετικές μεθόδους " -"(heuristics) για να μαντέψουμε το εξώφυλλο." - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 -msgid "Set book ID" -msgstr "ΚαθοÏισμός ταυτότητας (ID) του βιβλίου" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:72 -msgid "Set font delta" -msgstr "ΚαθοÏισμός του δέλτα της γÏαμματοσειÏάς" +msgstr "Αποστολή μεταδεδομένων στη συσκευή..." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:182 msgid "Rendered %s" @@ -1231,7 +1413,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 msgid "Options to set metadata in the output" -msgstr "ΠαÏάμετÏοι για τον καθοÏισμό των συνδεδομένων στα εξαγόμενα" +msgstr "ΠαÏάμετÏοι για τον καθοÏισμό των μεταδεδομένων στα εξαγόμενα" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 msgid "Options to help with debugging the conversion" @@ -1245,12 +1427,12 @@ msgstr "Κατάλογος ενσωματωμένων συνταγών" msgid "Output saved to" msgstr "Τα εξαγόμενα αποθηκεÏτηκαν στον/στην" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:95 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" "Επίπεδο πολυλογίας. ΠÏοσδιοÏίστε πολλές φοÏές για μεγαλÏτεÏη πολυλογία." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:106 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 " @@ -1260,7 +1442,7 @@ msgstr "" "στον φάκελο που έχει Ï€ÏοσδιοÏιστεί. ΧÏήσιμο όταν δε γνωÏίζετε το ακÏιβές " "στάδιο της διαδικασίας μετατÏοπής όπου εμφανίζεται κάποιο σφάλμα." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:115 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -1272,7 +1454,7 @@ msgstr "" "στο εισαγόμενο έγγÏαφο. Π.χ. αποστάσεις που εξαÏτώνται από την ανάλυση " "(αποστάσεις σε pixels). Οι επιλογές είναι:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:126 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -1286,7 +1468,7 @@ msgstr "" "να λειτουÏγοÏν σε μια συσκευή. Π.χ. το EPUB στο ηλ.αναγνωστήÏιο SONY. Οι " "επιλογές είναι:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:133 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:137 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 " @@ -1299,7 +1481,7 @@ msgstr "" "εξαγόμενα κείμενα και αντίστÏοφα. ΑÏχικά, το μέγεθος αναφοÏάς επιλέγεται " "βάσει του πεÏιγÏάμματος εξαγωγής που επιλέξατε." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:143 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:147 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-" @@ -1315,11 +1497,11 @@ msgstr "" "Ï„Ïόπο, τις γÏαμματοσειÏές. Η αÏχική αντιστοίχιση που χÏησιμοποιείται " "εξαÏτάται από το πεÏίγÏαμμα εξαγωγής που επιλέξατε." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 msgid "Disable all rescaling of font sizes." msgstr "ΑπενεÏγοποίηση της επανακλιμάκωσης των μεγεθών των γÏαμματοσειÏών." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:162 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:166 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." @@ -1327,7 +1509,7 @@ msgstr "" "Το Ïψος γÏαμμής, σε σημεία (pts). Ελέγχει το διάστημα Î¼ÎµÏ„Î±Î¾Ï Î´Î¹Î±Î´Î¿Ï‡Î¹ÎºÏŽÎ½ " "γÏαμμών κειμένου. ΑÏχικά, δε γίνεται καμία αλλαγή στο Ïψος γÏαμμής." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:170 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:174 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 " @@ -1340,7 +1522,7 @@ msgstr "" "παÏάμετÏος εξαγάγει το πεÏιεχόμενο απ'αυτοÏÏ‚ τους πίνακες και το παÏουσιάζει " "με γÏαμμικό Ï„Ïόπο." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:180 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:184 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 " @@ -1350,7 +1532,7 @@ msgstr "" "Ï€ÏοστεθοÏν στον Πίνακα ΠεÏιεχομένων στο Ï€Ïώτο επίπεδο. Αν Ï€ÏοσδιοÏιστεί, " "έχει Ï€ÏοτεÏαιότητα έναντι άλλων μοÏφών αυτόματου εντοπισμοÏ." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:189 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:193 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 " @@ -1360,7 +1542,7 @@ msgstr "" "Ï€ÏοστεθοÏν στον Πίνακα ΠεÏιεχομένων στο δεÏτεÏο επίπεδο. Κάθε καταχώÏηση " "Ï€Ïοστίθεται κάτω από την Ï€ÏοηγοÏμενη καταχώÏηση του Ï€Ïώτου επιπέδου." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:197 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:201 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 " @@ -1370,7 +1552,7 @@ msgstr "" "Ï€ÏοστεθοÏν στον Πίνακα ΠεÏιεχομένων στο Ï„Ïίτο επίπεδο. Κάθε καταχώÏηση " "Ï€Ïοστίθεται κάτω από την Ï€ÏοηγοÏμενη καταχώÏηση του δεÏτεÏου επιπέδου." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:209 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 " @@ -1380,13 +1562,13 @@ msgstr "" "χÏησιμοποιείται αντί εκείνου που παÏάγεται αυτόματα. Μ'αυτή εδώ την " "παÏάμετÏο, χÏησιμοποιείται πάντα ο αυτόματα παÏαγόμενος." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "" "Îα μην Ï€ÏοστεθοÏν κεφάλαια, που έχουν εντοπιστεί αυτόματα, στον Πίνακα " "ΠεÏιεχομένων" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" @@ -1394,7 +1576,7 @@ msgstr "" "Αν εντοπιστοÏν κεφάλαια λιγότεÏα απ'αυτόν εδώ τον αÏιθμό, να Ï€ÏοστεθοÏν " "σÏνδεσμοι στον Πίνακα ΠεÏιεχομένων. ΑÏχική τιμή : %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:227 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:231 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 " @@ -1405,7 +1587,7 @@ msgstr "" "λιγότεÏα κεφάλαια από την τιμή-ÏŒÏιο θα Ï€ÏοστεθοÏν σÏνδεσμοι στον Πίνακα " "ΠεÏιεχομένων." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:235 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:239 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." @@ -1414,7 +1596,7 @@ msgstr "" "ταιÏιάζουν σε μια Ï€ÏοσδιοÏισμένη κανονική έκφÏαση. Οι καταχωÏήσεις που " "ταιÏιάζουν και τα παιδιά τους αφαιÏοÏνται." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:246 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:250 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "<h1> or <h2> tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -1424,7 +1606,7 @@ msgid "" "User Manual for further help on using this feature." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:264 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 " @@ -1432,39 +1614,39 @@ msgid "" "\"both\" will use both page breaks and lines to mark chapters." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:270 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:274 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:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:283 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:289 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:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:294 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:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:299 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:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:304 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:306 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:310 msgid "" "Change text justification. A value of \"left\" converts all justified text " "in the source to left aligned (i.e. unjustified) text. A value of " @@ -1473,74 +1655,94 @@ msgid "" "Note that only some output formats support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:320 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 (<p> or <div> tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:327 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:330 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:334 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:336 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:340 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (<p> or <div> tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:347 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:351 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:355 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:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:363 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:367 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:371 +msgid "" +"Scale used to determine the length at which a line should be unwrapped if " +"preprocess is enabled. Valid values are a decimal between 0 and 1. The " +"default is 0.40, just below the median line length. This will unwrap typical " +"books with hard line breaks, but should be reduced if the line length is " +"variable." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +msgid "" +"Convert plain quotes, dashes and ellipsis to their typographically correct " +"equivalents. For details, see http://daringfireball.net/projects/smartypants" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:388 msgid "Use a regular expression to try and remove the header." msgstr "ΧÏήση τυπικής εκφÏάσης για να αφαιÏεθεί η κεφαλίδα." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:374 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:395 msgid "The regular expression to use to remove the header." msgstr "Η τυπική έκφÏαση που θα χÏησιμοποιηθεί για να αφαιÏεθεί η κεφαλίδα." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 msgid "Use a regular expression to try and remove the footer." msgstr "ΧÏήση τυπικής έκφÏασης για να αφαιÏεθεί το υποσέλιδο." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:408 msgid "The regular expression to use to remove the footer." msgstr "" "Η τυπική έκφÏαση που θα χÏησιμοποιηθεί για να αφαιÏεθεί το υποσέλιδο." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:415 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." msgstr "" +"Ανάγνωση μεταδεδομένων από Ï„o Ï€ÏοσδιοÏισθέν αÏχείο OPF. Τα μεταδεδομένα που " +"θα διαβαστοÏν απ' αυτό το αÏχείο θα υπεÏισχÏσουν των μεταδομένων του πηγαίου " +"αÏχείου." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1550,7 +1752,7 @@ msgid "" "number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:416 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 msgid "" "Preserve ligatures present in the input document. A ligature is a special " "rendering of a pair of characters like ff, fi, fl et cetera. Most readers do " @@ -1560,103 +1762,105 @@ msgid "" "instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:428 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." msgstr "Εισαγωγή τίτλου." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:432 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" +"Εισαγωγή συγγÏαφέων. Για εισαγωγή πολλαπλών συγγÏαφέων χÏησιμοποιείται το " +"διαχωÏιστικό σÏμβολο ^ ." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 msgid "String to be used when sorting by author. " msgstr "" "Η συμβολοσειÏά που θα χÏησιμοποιηθεί κατά την ταξινόμηση κατά όνομα " "συγγÏαφέα. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:466 msgid "Set the cover to the specified file or URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." -msgstr "" +msgstr "Εισαγωγή πεÏιγÏαφής του ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Î²Î¹Î²Î»Î¯Î¿Ï…." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." msgstr "Εισαγωγή εκδότη του ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Î²Î¹Î²Î»Î¯Î¿Ï…." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:457 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:461 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:465 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." msgstr "ΚαταχώÏηση βαθμολογίας. Επιλέξτε ένα νοÏμεÏο από 1 έως και 5." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:469 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." msgstr "Εισαγωγή του ÎºÏ‰Î´Î¹ÎºÎ¿Ï ISBN του βιβλίου" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:473 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:477 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:481 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." msgstr "Ρυθμίστε την γλώσσα." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:485 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:506 msgid "Set the publication date." msgstr "Εισαγωγή της ημεÏομηνίας έκδοσης." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:489 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:510 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:589 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:610 msgid "Could not find an ebook inside the archive" msgstr "Δε βÏέθηκε ηλεκτÏονικό βιβλίο στο αÏχείο." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:647 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:668 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:654 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:675 msgid "Failed to parse date/time" msgstr "Αποτυχία ανάγνωσης ημεÏομηνίας/ÏŽÏας" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:809 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:830 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:836 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:858 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:923 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:945 msgid "Creating" msgstr "ΔημιουÏγία" @@ -1755,7 +1959,8 @@ msgid "" "option the image may be slightly distorted, but there will be no borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:170 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:203 msgid "Start" msgstr "ΈναÏξη" @@ -1805,10 +2010,26 @@ msgid "" "pipeline." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 +msgid "CSS file used for the output instead of the default file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:36 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." +"Template used for generation of the html index file instead of the default " +"file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:39 +msgid "" +"Template used for the generation of the html contents of the book instead of " +"the default file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:42 +msgid "" +"Extract the contents of the generated ZIP file to the specified directory. " +"WARNING: The contents of the directory will be deleted." msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 @@ -1938,7 +2159,7 @@ 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:114 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "" @@ -1948,7 +2169,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457 msgid "Invalid LRF file. Could not set metadata." -msgstr "" +msgstr "ΆκυÏο αÏχείο LRF. Τα μεταδεδομένα δεν μπόÏεσαν να καθοÏιστοÏν." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582 msgid "" @@ -1959,11 +2180,69 @@ msgid "" "\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 "Εξαγωγή εικονιδίου από αÏχείο LRF" + +#: /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 "" +"Εξαγωγή εξωφÏλλου από αÏχείο LRF. Σημειώστε ότι τα αÏχεία LRF δεν έχουν " +"Ï€ÏοκαθοÏισμένο εξώφυλλο, γι'αυτό χÏησιμοποιοÏμε ευÏετικές μεθόδους " +"(heuristics) για να μαντέψουμε το εξώφυλλο." + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +msgid "Set book ID" +msgstr "ΚαθοÏισμός ταυτότητας (ID) του βιβλίου" + #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 msgid "Enable autorotation of images that are wider than the screen width." msgstr "" @@ -2020,99 +2299,117 @@ msgstr "" msgid "Comic" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:401 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:359 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:887 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 -msgid "Title" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:364 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:888 -msgid "Author(s)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 -msgid "Publisher" -msgstr "Εκδότης" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:404 -#: /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:405 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:211 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1079 -msgid "Comments" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:413 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1075 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:143 -msgid "Tags" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:415 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:323 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:91 -msgid "Series" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:416 -msgid "Language" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:418 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1067 -msgid "Timestamp" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:420 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 -msgid "Published" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:422 -msgid "Rights" -msgstr "Δικαιώματα" - -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:85 -msgid "EDITORIAL REVIEW" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:41 msgid "" "Extract common e-book formats from archives (zip/rar) files. Also try to " "autodetect if they are actually cbz/cbr files." msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:114 +msgid "TEMPLATE ERROR" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 +msgid "No" +msgstr "Όχι" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 +msgid "Yes" +msgstr "Îαι" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:923 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:303 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:570 +msgid "Title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924 +msgid "Author(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:72 +msgid "Publisher" +msgstr "Εκδότης" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:608 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 +msgid "Producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 +msgid "Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:611 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 +msgid "Tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:613 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:108 +msgid "Series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:614 +msgid "Language" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 +msgid "Timestamp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:258 +msgid "Published" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:620 +msgid "Rights" +msgstr "Δικαιώματα" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 msgid "options" msgstr "επιλογές" @@ -2206,87 +2503,100 @@ msgstr "" msgid "No cover found" msgstr "Δε βÏέθηκε εξώφυλλο" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:79 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:80 msgid "Download covers from openlibrary.org" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:107 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:108 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:137 msgid "ISBN: %s not found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:117 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:118 msgid "Download covers from librarything.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:128 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:68 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:69 msgid "LibraryThing.com timed out. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:135 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:75 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:136 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 msgid "" "Could not fetch cover as server is experiencing high load. Please try again " "later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:139 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:79 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:140 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:80 msgid "LibraryThing.com server error. Try again later." msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:226 +msgid "Download covers from Douban.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:235 +msgid "Douban.com API timed out. Try again later." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/douban.py:42 msgid "Downloads metadata from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:57 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "tags" msgstr "ετικέτες" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:142 msgid "description/reviews" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:130 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:143 msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 +msgid "Convert comments downloaded from %s to plain text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 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:211 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:95 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2300,27 +2610,28 @@ msgid "" "\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:106 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:108 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:110 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:112 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:76 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:86 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:87 msgid "" "\n" "%prog [options] ISBN\n" @@ -2329,8 +2640,24 @@ msgid "" "LibraryThing.com\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1226 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Εξώφυλλο" @@ -2361,78 +2688,78 @@ msgstr "" msgid "Tag marking book to be filed with Personal Docs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:108 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:107 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Σελίδα τίτλου" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:194 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199 msgid "Table of Contents" msgstr "Πίνακας ΠεÏιεχομένων" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "ΕυÏετήÏιο" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "ΓλωσσάÏι" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "ΒιβλιογÏαφία" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Κολοφώνας" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Πνευματικά Δικαιώματα" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "ΑφιέÏωση" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Σημειώσεις" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "ΠÏόλογος" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "" @@ -2440,13 +2767,20 @@ msgstr "" msgid "%s format books are not supported" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 +msgid "Book %s of %s" +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:113 -msgid "Book Jacket" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 +msgid "Rating" +msgstr "Αξιολόγηση" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 msgid "" @@ -2474,7 +2808,7 @@ msgstr "Υποσημειώσεις" msgid "Sidebar" msgstr "ΠλευÏική μπάÏα" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2482,7 +2816,7 @@ msgid "" "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/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -2509,8 +2843,8 @@ 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." +"Valid values are a decimal between 0 and 1. The default is 0.45, just below " +"the median line length." msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 @@ -2614,7 +2948,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:34 msgid "Author" msgstr "ΣυγγÏαφέας" @@ -2729,18 +3063,59 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 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/snb/output.py:25 #: /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/snb/output.py:29 +#: /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/snb/output.py:36 +msgid "" +"Specify whether or not to insert an empty line between two paragraphs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:40 +msgid "" +"Specify whether or not to insert two space characters to indent the first " +"line of each paragraph." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:44 +msgid "" +"Specify whether or not to hide the chapter title for each chapter. Useful " +"for image-only output (eg. comics)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:122 +msgid "Start Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:132 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:134 +msgid "Cover Pages" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:147 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:150 +msgid " (Preface)" +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 " @@ -2777,144 +3152,136 @@ msgid "" "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:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:69 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:71 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:73 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:75 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:77 msgid "Sort tags list by name, popularity, or rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:79 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:81 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:83 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:86 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Show system tray icon" msgstr "Εμφάνιση εικονιδίου πλαισίου συστήματος" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:97 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:97 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:101 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:121 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:123 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:125 msgid "Overwrite author and title with new metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:127 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129 msgid "tag browser categories not to display" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:131 msgid "The layout of the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 msgid "Show the average rating per item indication in the tag browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:135 msgid "Disable UI animations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:217 msgid "Copy" msgstr "ΑντιγÏαφή" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:217 msgid "Copy to Clipboard" msgstr "ΑντιγÏαφή στο ΠÏόχειÏο" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:433 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "" @@ -2930,127 +3297,133 @@ msgstr "" msgid "A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:33 msgid "Add books from a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:35 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/actions/add.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:39 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/actions/add.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:43 msgid "Add Empty book. (Book entry with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:45 msgid "Add from ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:84 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:85 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:142 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Βιβλία" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 +msgid "SNB Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "ΑÏχεία" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:239 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:239 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "" @@ -3063,136 +3436,266 @@ msgid "Add books to your calibre library from the connected device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:235 -msgid "Use library only" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:236 +msgid "Use library only" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:237 msgid "User annotations generated from main library only" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:63 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:140 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:203 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:92 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:65 msgid "No books selected to fetch annotations from" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:90 msgid "Merging user annotations into database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:118 msgid "%s<br />Last Page Read: %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:124 msgid "%s<br />Last Page Read: Location %d (%d%%)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:143 msgid "<b>Location %d • %s</b><br />%s<br />" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:152 msgid "<b>Page %d • %s</b><br />" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:157 msgid "<b>Location %d • %s</b><br />" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:34 msgid "Create catalog of books in your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:31 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:53 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:54 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:230 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:59 msgid "" "No books to catalog\n" "Check exclude tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:69 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:72 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/catalog.py:73 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:50 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:112 +msgid "Checking database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 +msgid "Error" +msgstr "Σφάλμα" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:129 +msgid "Failed to check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:134 +msgid "Some inconsistencies found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 +msgid "" +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers 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/actions/choose_library.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:149 msgid "Choose calibre library to work with" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:83 -msgid "Switch to library..." +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:158 +msgid "Switch/create library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:77 msgid "Quick switch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:78 +msgid "Rename library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:79 +msgid "Delete library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:187 +msgid "Library Maintenance" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:188 +msgid "Library metadata backup status" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:192 +msgid "Start backing up metadata of all books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:196 +msgid "Check library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:200 +msgid "Check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:343 +msgid "Recover database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:269 +msgid "Rename" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:270 +msgid "Choose a new name for the library <b>%s</b>. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:271 +msgid "Note that the actual library folder will be renamed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:190 +msgid "Already exists" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:279 +msgid "The folder %s already exists. Delete it first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:285 +msgid "Rename failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:286 +msgid "" +"Failed to rename the library at %s. The most common cause for this is if one " +"of the files in the library is open in another program." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:296 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:102 +msgid "Are you sure?" +msgstr "Είστε σίγουÏοι;" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:297 +msgid "All files from %s will be <b>permanently deleted</b>. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:316 +msgid "none" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:317 +msgid "Backup status" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:318 +msgid "Book metadata files remaining to be written: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:324 +msgid "Backup metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:325 +msgid "" +"Metadata will be backed up while calibre is running, at the rate of " +"approximately 1 book per second." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:344 +msgid "" +"This command rebuilds your calibre database from the information stored by " +"calibre in the OPF files.<p>This function is not currently available in the " +"GUI. You can recover your database using the 'calibredb restore_database' " +"command line function." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:358 msgid "No library found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:359 msgid "" "No existing calibre library was found at %s. It will be removed from the " "list of known libraries." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:183 -msgid "You cannot change libraries when a device is connected." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:392 msgid "You cannot change libraries while jobs are running." msgstr "" @@ -3204,58 +3707,67 @@ msgstr "" msgid "Convert books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:28 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:30 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:86 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:115 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:84 msgid "Copy selected books to the specified library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:114 +msgid "(delete after copy)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:123 msgid "Cannot copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:128 msgid "No library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:129 msgid "No library found at %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:107 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:136 msgid "Copying" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 msgid "Could not copy books: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Απέτυχε" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:150 msgid "Copied %d books to %s" msgstr "" @@ -3267,82 +3779,82 @@ msgstr "ΔιαγÏαφή" msgid "Remove books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:24 msgid "Remove selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:26 msgid "Remove files of a specific format from selected books.." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:29 msgid "Remove all formats from selected books, except..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:32 msgid "Remove covers from selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:35 msgid "Remove matching books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:53 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:66 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:84 msgid "Choose formats <b>not</b> to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:104 msgid "Cannot delete books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:105 msgid "No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:115 msgid "Main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:436 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:445 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:438 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:447 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:122 msgid "No books to delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:123 msgid "None of the selected books are on the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:200 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:173 msgid "" "The selected books will be <b>permanently deleted</b> and the files removed " -"from your computer. Are you sure?" +"from your calibre library. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:185 msgid "" "The selected books will be <b>permanently deleted</b> from your device. Are " "you sure?" @@ -3399,11 +3911,11 @@ msgstr "" msgid "Manage the collections on this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:23 msgid "E" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:23 msgid "Edit metadata" msgstr "" @@ -3447,97 +3959,79 @@ msgstr "" msgid "Merge into first selected book - keep others" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:74 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:94 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "μεταδεδομένα" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:97 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:124 -msgid "Failed to download some metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:125 -msgid "Failed to download metadata for the following:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:128 -msgid "Failed to download metadata:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:129 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:608 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:1001 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 -msgid "Error" -msgstr "Σφάλμα" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:159 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:202 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:191 msgid "Cannot merge books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:192 msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:197 msgid "" -"All book formats and metadata from the selected books will be added to the " -"<b>first selected book.</b><br><br> The second and subsequently selected " -"books will not be deleted or changed.<br><br>Please confirm you want to " -"proceed." +"Book formats and metadata from the selected books will be added to the " +"<b>first selected book</b> (%s). ISBN will <i>not</i> be merged.<br><br> The " +"second and subsequently selected books will not be deleted or " +"changed.<br><br>Please confirm you want to proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 msgid "" -"All book formats and metadata from the selected books will be merged into " -"the <b>first selected book</b>.<br><br>After merger the second and " -"subsequently selected books will be <b>deleted</b>. <br><br>All book formats " -"of the first selected book will be kept and any duplicate formats in the " -"second and subsequently selected books will be permanently <b>deleted</b> " -"from your computer.<br><br> Are you <b>sure</b> you want to proceed?" +"Book formats and metadata from the selected books will be merged into the " +"<b>first selected book</b> (%s). ISBN will <i>not</i> be " +"merged.<br><br>After merger the second and subsequently selected books will " +"be <b>deleted</b>. <br><br>All book formats of the first selected book will " +"be kept and any duplicate formats in the second and subsequently selected " +"books will be permanently <b>deleted</b> from your computer.<br><br> Are " +"you <b>sure</b> you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 msgid "" "You are about to merge more than 5 books. Are you <b>sure</b> you want to " "proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:17 msgid "F" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:17 msgid "Fetch news" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:52 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:66 msgid " fetched." msgstr "" @@ -3566,6 +4060,7 @@ msgid "Ctrl+P" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "" @@ -3587,6 +4082,7 @@ msgid "&Restart" msgstr "&Επανεκκίνηση" #: /home/kovid/work/calibre/src/calibre/gui2/actions/restart.py:14 +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:59 msgid "Ctrl+R" msgstr "" @@ -3599,57 +4095,58 @@ msgid "S" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:46 msgid "Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:48 msgid "Save to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:69 msgid "Save only %s format to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:72 msgid "Save only %s format to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:91 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:94 msgid "Choose destination directory" msgstr "Επιλογή καταλόγου Ï€ÏοοÏισμοÏ" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:102 msgid "" "You are trying to save files into the calibre library. This can cause " "corruption of your library. Save to disk is meant to export files from your " "calibre library elsewhere." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:136 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:137 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:145 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:146 msgid "Click the show details button to see which ones." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "" @@ -3657,11 +4154,11 @@ msgstr "" msgid "I" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:26 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:27 msgid "No detailed information is available for books on the device." msgstr "" @@ -3669,53 +4166,75 @@ msgstr "" msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 msgid "Alt+A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 msgid "Books by same author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 -msgid "Alt+S" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:25 msgid "Books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:26 +msgid "Alt+Shift+S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:27 msgid "Alt+P" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:27 msgid "Books by this publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:28 msgid "Alt+T" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/similar_books.py:28 msgid "Books with the same tags" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:54 +msgid "Tweak ePub" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:16 +msgid "Make small changes to ePub format books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:17 +msgid "T" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:39 +msgid "Cannot tweak ePub" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:40 +msgid "No ePub available. First convert the book to ePub." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:24 msgid "V" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:32 msgid "View" msgstr "ΠÏοβολή" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:33 msgid "View specific format" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:158 msgid "Cannot view" msgstr "" @@ -3740,7 +4259,7 @@ msgstr "" msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:159 msgid "%s has no available formats." msgstr "" @@ -3748,60 +4267,60 @@ msgstr "" msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:211 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:224 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:225 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:263 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:811 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:294 msgid "Added" msgstr "ΠÏοστέθηκε" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:307 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:308 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:357 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:323 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:324 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:361 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:327 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:390 msgid "Saving..." msgstr "Αποθήκευση..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:443 msgid "Saved" msgstr "ΑποθηκεÏτηκε" @@ -3818,7 +4337,7 @@ msgid "Looking for duplicates based on file hash" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:70 msgid "Choose root folder" msgstr "" @@ -3834,32 +4353,32 @@ msgstr "" msgid "Add books to calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "WizardPage" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:22 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:27 msgid "Scanning root folder for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:28 msgid "This may take a few minutes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 msgid "Choose the location to add books from" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:64 msgid "Select a folder on your hard disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:65 msgid "" "<p>calibre can scan your computer for existing books automatically. These " "books will then be <b>copied</b> into the calibre library. This wizard will " @@ -3871,139 +4390,137 @@ msgid "" "not</b> under the root folder you choose.</p>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 msgid "&Root folder:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:69 msgid "" "This folder and its sub-folders will be scanned for books to import into " "calibre's library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:66 -#: /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:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:620 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:621 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:633 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:635 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:637 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:639 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:640 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:693 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:103 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:106 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:108 -#: /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:369 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:77 +#: /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:383 -#: /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:396 -#: /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:404 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:166 -#: /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/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:420 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:171 #: /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/tag_list_editor_ui.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 -#: /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/preferences/behavior_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:144 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:82 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 msgid "..." msgstr "..." -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:72 msgid "Handle multiple files per book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:73 msgid "" "&One book per folder, assumes every ebook file in a folder is the same book " "in a different format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:74 msgid "" "&Multiple books per folder, assumes every ebook file is a different book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:54 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 msgid "Path" msgstr "ΔιαδÏομή" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 msgid "Formats" msgstr "Λίστα φοÏμάτ" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:891 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1068 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:927 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120 msgid "Collections" msgstr "Συλλογές" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:60 msgid "Click to open" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:305 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:311 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:317 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1074 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1078 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1130 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:293 msgid "None" msgstr "Κανένα" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:310 -msgid "Click to open Book Details window" +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 +msgid "Double-click to open Book Details window" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 @@ -4024,6 +4541,7 @@ msgstr "" #: /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/snb_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" @@ -4039,105 +4557,118 @@ msgstr "" #: /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/snb_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_bibtex_ui.py:81 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 -#: /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:88 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:48 -#: /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:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 -#: /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:42 -#: /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:60 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 -#: /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:50 -#: /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:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:96 -#: /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/preferences/behavior_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/conversion_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "ΦόÏμα" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 msgid "Bib file encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:43 msgid "Fields to include in output:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 msgid "ascii/LaTeX" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 msgid "Encoding configuration (change if you have errors) :" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 msgid "strict" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 msgid "replace" msgstr "αντικατάσταση" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 msgid "ignore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 msgid "backslashreplace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 msgid "BibTeX entry type:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 msgid "mixed" msgstr "Μικτό" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:97 msgid "misc" msgstr "διάφοÏα" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:98 msgid "book" msgstr "βιβλίο" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:99 msgid "Create a citation tag?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:100 msgid "Expression to form the BibTeX citation tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:101 msgid "" "Some explanation about this template:\n" " -The fields availables are 'author_sort', 'authors', 'id',\n" @@ -4156,30 +4687,23 @@ msgstr "" 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:550 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1607 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1625 -msgid "Catalog" -msgstr "Κατάλογος" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -4188,22 +4712,43 @@ msgid "" "Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 +msgid "Include 'Series' Section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 " @@ -4211,11 +4756,11 @@ msgid "" "specified in the Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "" @@ -4232,66 +4777,66 @@ msgstr "" msgid "input" 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:94 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Number of Colors:" 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:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "Disable &normalize" 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:97 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "Keep &aspect ratio" 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:98 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "Disable &Sharpening" 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:104 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:109 msgid "Disable &Trimming" 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:103 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:108 msgid "&Wide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "&Landscape" msgstr "&ΟÏιζόντια" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:106 msgid "&Right to left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:105 msgid "Don't so&rt" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:107 msgid "De&speckle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:104 msgid "&Disable comic processing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:120 msgid "&Output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:106 msgid "Disable conversion of images to &black and white" msgstr "" @@ -4304,7 +4849,7 @@ msgid "Debug the conversion process." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:56 msgid "Choose debug folder" msgstr "" @@ -4316,7 +4861,7 @@ msgstr "" msgid "Failed to create debug directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:55 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 " @@ -4324,7 +4869,7 @@ msgid "" "conversion parameters like Table of Contents and Chapter Detection." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:59 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 " @@ -4335,27 +4880,27 @@ msgstr "" msgid "EPUB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 msgid "Do not &split on page breaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:55 msgid "No default &cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:56 msgid "No &SVG cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:57 msgid "Preserve cover &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:58 msgid "Split files &larger than:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:59 msgid " KB" msgstr " KB" @@ -4363,7 +4908,7 @@ msgstr " KB" msgid "FB2 Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:34 msgid "Do not insert a &Table of Contents at the beginning of the book." msgstr "" @@ -4371,22 +4916,22 @@ msgstr "" msgid "FB2 Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:32 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:52 msgid "&Inline TOC" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:38 msgid "Sectionize Chapters (Use with care!)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 msgid "Font rescaling wizard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 msgid "" "<p>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 " @@ -4402,52 +4947,52 @@ msgid "" "for a discussion of how font size rescaling works.</p>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 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:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 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:122 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 -#: /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/font_key_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 #: /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:121 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:132 msgid " pt" msgstr " σημ" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112 msgid "Use &default values" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 msgid "&Input document" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:116 msgid "&Font size: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:118 msgid " will map to size: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:119 msgid "0.0 pt" msgstr "" @@ -4471,244 +5016,249 @@ msgstr "ΑÏιστεÏή στοίχιση" msgid "Justify text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "&Disable font size rescaling" msgstr "" -#: /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:129 msgid "Base &font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 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:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "Line &height:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "Input character &encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 msgid "Remove &spacing between paragraphs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "Indent size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:139 msgid "" "<p>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:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:140 msgid " em" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:141 msgid "Text justification:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:142 msgid "&Linearize tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:143 msgid "Extra &CSS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:144 msgid "&Transliterate unicode characters to ASCII" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:145 msgid "Insert &blank line" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:146 msgid "Keep &ligatures" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:147 +msgid "Smarten &punctuation" +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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 msgid "Enable &autorotation of wide images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 msgid "&Wordspace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 msgid "Minimum para. &indent:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 msgid "Render &tables as images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 msgid "Text size multiplier for text in rendered tables:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 msgid "Add &header" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 msgid "Header &separation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:131 msgid "Header &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:132 msgid "&Embed fonts" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:133 msgid "&Serif font family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:134 msgid "S&ans-serif font family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:135 msgid "&Monospaced font family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:44 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:200 msgid "Metadata" msgstr "Μεταδεδομένα" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:46 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:165 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:109 msgid "Choose cover for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 msgid "Cannot read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:117 msgid "You do not have permission to read the file: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:188 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:125 msgid "Error reading file" msgstr "Σφάλμα ανάγνωσης αÏχείου" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:126 msgid "<p>There was an error reading from file: <br /><b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 msgid " is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:414 msgid "Book Cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 msgid "Use cover from &source file" 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:401 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:415 msgid "Change &cover image:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 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:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 msgid "&Title: " msgstr "&Τίτλος: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "Change the title of this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 msgid "Author So&rt:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 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:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 msgid "Ta&gs: " 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:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " "<br><br>They can be any words or phrases, separated by commas." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:181 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /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 "List of known series. You can add new series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:400 msgid "Book " msgstr "" @@ -4716,39 +5266,39 @@ msgstr "" msgid "MOBI Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:43 msgid "Default" msgstr "ΠÏοκαθοÏισμένο" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:72 msgid "&Title for Table of Contents:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:73 msgid "Rescale images for &Palm devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 msgid "Use author &sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:75 msgid "Disable compression of the file contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:76 msgid "Do not add Table of Contents to book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:77 msgid "Kindle options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:78 msgid "Periodical masthead font:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:79 msgid "Personal Doc tag:" msgstr "" @@ -4756,35 +5306,35 @@ msgstr "" msgid "Page Setup" msgstr "ΔιαμόÏφωση σελίδας" -#: /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:121 msgid "&Output profile:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 msgid "Profile description" msgstr "" -#: /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:123 msgid "&Input profile:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 msgid "Margins" msgstr "ΠεÏιθώÏια" -#: /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:125 msgid "&Left:" msgstr "&ΑÏιστεÏά:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 msgid "&Top:" msgstr "&Πάνω:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:129 msgid "&Right:" msgstr "&Δεξιά:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:131 msgid "&Bottom:" msgstr "&Κάτω:" @@ -4792,13 +5342,13 @@ msgstr "&Κάτω:" 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:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52 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:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:53 msgid "Assume print formatting" msgstr "" @@ -4806,7 +5356,7 @@ msgstr "" msgid "PDB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:41 msgid "&Format:" msgstr "&ΜοÏφή:" @@ -4814,11 +5364,11 @@ msgstr "&ΜοÏφή:" msgid "PDF Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:44 msgid "Line &Un-Wrapping Factor:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:45 msgid "No &Images" msgstr "" @@ -4826,15 +5376,15 @@ msgstr "" msgid "PDF Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:48 msgid "&Paper Size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:49 msgid "&Orientation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:50 msgid "Preserve &aspect ratio of cover" msgstr "" @@ -4854,20 +5404,20 @@ msgstr "" msgid "Open book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:57 msgid "Regex Builder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:58 msgid "Preview" msgstr "ΠÏοεπισκόπηση" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:59 msgid "Regex:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Test" msgstr "Έλεγχος" @@ -4879,21 +5429,37 @@ msgstr "ΜετατÏοπή" msgid "Options specific to the input format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:112 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" msgstr "Διάλογος" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:118 msgid "&Input format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:119 msgid "Use &saved conversion settings for individual books" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:14 +msgid "SNB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:40 +msgid "Hide chapter name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:41 +msgid "Insert space before the first line for each paragraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 +msgid "Insert empty line between paragraphs" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -4905,66 +5471,70 @@ msgid "" "Fine tune the detection of chapter headings and other document structure." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 msgid "Detect chapters at (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:38 msgid "Insert page breaks before (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 msgid "Header regular expression:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:43 msgid "Footer regular expression:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 msgid "Invalid regular expression" msgstr "ΆκυÏη κανονική έκφÏαση" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:88 msgid "Invalid regular expression: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 msgid "Invalid XPath" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:40 msgid "The XPath expression %s is invalid." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:81 msgid "Chapter &mark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:82 msgid "Remove first &image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:83 msgid "Insert &metadata as page at start of book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 -msgid "&Preprocess input file to possibly improve structure detection" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:84 msgid "Remove F&ooter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:85 msgid "Remove H&eader" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:86 +msgid "Line &un-wrap factor during preprocess:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:87 +msgid "&Preprocess input file to possibly improve structure detection" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 msgid "" "Table of\n" @@ -4987,23 +5557,23 @@ msgstr "" msgid "Level &3 TOC (XPath expression):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:68 msgid "Do not add &detected chapters to the Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:69 msgid "Number of &links to add to Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:70 msgid "Chapter &threshold" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:71 msgid "&Force use of auto-generated Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:72 msgid "TOC &Filter:" msgstr "" @@ -5011,22 +5581,22 @@ msgstr "" msgid "TXT Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:54 msgid "Process using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:55 msgid "" "<p>Markdown is a simple markup language for text files, that allows for " "advanced formatting. To learn more visit <a " "href=\"http://daringfireball.net/projects/markdown\">markdown</a>." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:56 msgid "Do not insert Table of Contents into output text when using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:57 msgid "Preserve &spaces" msgstr "" @@ -5034,98 +5604,98 @@ msgstr "" msgid "TXT Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51 msgid "&Line ending style:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:53 msgid "&Maximum line length:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:54 msgid "Force maximum line length" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:55 msgid "TextLabel" msgstr "Ετικέτα κειμένου" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:57 msgid "Use a wizard to help construct the XPath expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 msgid "Match HTML &tags with tag name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 msgid "*" msgstr "*" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 msgid "a" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 msgid "br" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 msgid "div" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 msgid "h1" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 msgid "h2" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 msgid "h3" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 msgid "h4" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 msgid "h5" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 msgid "h6" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 msgid "hr" msgstr "ΚÏοατία" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:85 msgid "span" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:86 msgid "Having the &attribute:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:87 msgid "With &value:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:88 msgid "(A regular expression)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:89 msgid "" "<p>For example, to match all h2 tags that have class=\"chapter\", set tag to " "<i>h2</i>, attribute to <i>class</i> and value to " @@ -5149,26 +5719,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:145 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:270 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:130 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:205 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:238 -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:239 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:243 msgid "Undefined" msgstr "Μη οÏισμένο" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:133 -msgid "Yes" -msgstr "Îαι" - -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:134 -msgid "No" -msgstr "Όχι" - #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:122 msgid "star(s)" msgstr "" @@ -5185,290 +5744,258 @@ msgstr "" msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:451 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:188 -msgid "Automatically number books in this series" +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:493 +msgid "Remove series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:496 +msgid "Automatically number books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +msgid "Force numbers to start with " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:562 msgid "Remove all tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:583 msgid "tags to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:588 msgid "tags to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:295 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:305 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:419 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:425 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:427 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +msgid "Send specific format to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:455 -msgid "Send specific format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:684 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:685 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 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/device.py:724 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Συσκευή: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:826 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:830 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:834 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:831 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 -msgid "E-book:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:879 -msgid "Attached, you will find the e-book" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 -msgid "by" -msgstr "από" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 -msgid "in the %s format." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:894 -msgid "Sending email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:924 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:932 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1026 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1088 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1215 -msgid "No suitable formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 -msgid "Auto convert the following books before sending via email?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:933 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:951 -msgid "Failed to email books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Failed to email the following books:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:956 -msgid "Sent by email:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:985 -msgid "News:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:986 -msgid "Attached is the" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 -msgid "Sent news to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1027 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1208 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1057 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1121 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1174 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1216 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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:1278 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1279 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>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:78 -msgid "Select available formats and their order for this device" +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:57 +msgid "Invalid template" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 -msgid "Use sub directories" +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:58 +msgid "The template %s is invalid:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:83 +msgid "Select available formats and their order for this device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:87 +msgid "Use sub directories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:88 msgid "Use author sort for author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:90 msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:48 msgid "Add books by ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:49 msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "ΠÏοηγοÏ&μενο" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "Επόμε&νο" @@ -5476,33 +6003,80 @@ msgstr "Επόμε&νο" msgid "My Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:304 msgid "Generate catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:75 msgid "Generate catalog for {0} books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:76 msgid "Catalog &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:77 msgid "" "Catalog &title (existing catalog with the same title will be replaced):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:78 msgid "&Send catalog to device automatically" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:79 msgid "Catalog options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:26 +msgid "Check Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:35 +msgid "&Run the check" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:38 +msgid "Copy &to clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:54 +msgid "Names to ignore:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:59 +msgid "" +"Enter comma-separated standard file name wildcards, such as synctoy*.dat" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 +msgid "Extensions to ignore" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:67 +msgid "" +"Enter comma-separated extensions without a leading dot. Used only in book " +"folders" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 +msgid "Path from library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +msgid "Name" +msgstr "Όνομα" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:136 +msgid "" +"The marked files and folders will be <b>permanently deleted</b>. Are you " +"sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:45 msgid "Choose Format" msgstr "" @@ -5543,6 +6117,7 @@ msgid "No location selected" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "" @@ -5550,27 +6125,27 @@ msgstr "" msgid "%s is not an existing folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:71 msgid "Choose your calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:72 msgid "Your calibre library is currently located at {0}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:73 msgid "New &Location:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:74 msgid "Use &existing library at the new location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:75 msgid "&Create an empty library at the new location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library_ui.py:76 msgid "&Move current library to new location" msgstr "" @@ -5582,1108 +6157,28 @@ msgstr "" msgid "Set options for converting %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&Τίτλος:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "&Author(s):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "&Profile:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:46 msgid "Edit Comments" msgstr "ΕπεξεÏγασία Σχολίων" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:173 -msgid "%(plugin_type)s %(plugins)s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:174 -msgid "plugins" -msgstr "Ï€Ïόσθετα" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:183 -msgid "" -"\n" -"Customization: " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 -msgid "General" -msgstr "Γενικά" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:200 -msgid "Conversion" -msgstr "ΜετατÏοπή" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:201 -msgid "" -"Email\n" -"Delivery" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:202 -msgid "Add/Save" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:203 -msgid "Advanced" -msgstr "Για Ï€ÏοχωÏημένους" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:204 -msgid "" -"Content\n" -"Server" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:205 -msgid "Plugins" -msgstr "ΠÏόσθετα" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:229 -msgid "Auto send" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:229 -msgid "Email" -msgstr "Ηλεκ. αλληλογÏαφία" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:234 -msgid "Formats to email. The first matching format will be sent." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:235 -msgid "" -"If checked, downloaded news will be automatically mailed <br>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:309 -msgid "new email address" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:491 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:24 -msgid "Wide" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:492 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:24 -msgid "Narrow" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:508 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:50 -msgid "Medium" -msgstr "Μεσαίο" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:508 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:50 -msgid "Small" -msgstr "ΜικÏÏŒ" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:509 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:51 -msgid "Large" -msgstr "Μεγάλο" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:515 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:54 -msgid "Always" -msgstr "Πάντα" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:515 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:54 -msgid "Automatic" -msgstr "Αυτόματο" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:516 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:55 -msgid "Never" -msgstr "Ποτέ" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:529 -msgid "Toolbars/Context menus" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:543 -msgid "Done" -msgstr "ΟλοκληÏώθηκε" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:544 -msgid "Confirmation dialogs have all been reset" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:549 -msgid "System port selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 -msgid "" -"The value <b>%d</b> you have chosen for the content server port is a system " -"port. Your operating system <b>may</b> not allow the server to run on this " -"port. To be safe choose a port number larger than 1024." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 -msgid "Failed to install command line tools." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:573 -msgid "Command line tools installed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:574 -msgid "Command line tools installed in" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:575 -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:626 -msgid "No valid plugin path" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:627 -msgid "%s is not a valid plugin path" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:630 -msgid "Choose plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 -msgid "Plugin cannot be disabled" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:643 -msgid "The plugin: %s cannot be disabled" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:652 -msgid "Plugin not customizable" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:653 -msgid "Plugin: %s does not need customization" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:661 -msgid "Customize" -msgstr "ΠÏοσαÏμογή" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:699 -msgid "Cannot remove builtin plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 -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:715 -msgid "Invalid tweaks" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:716 -msgid "" -"The tweaks you entered are invalid, try resetting the tweaks to default and " -"changing them one by one until you find the invalid setting." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:746 -msgid "You must select a column to delete it" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:751 -msgid "The selected column is not a custom column" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:752 -#: /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/config/__init__.py:753 -msgid "Do you really want to delete column %s and all its data?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:820 -msgid "Error log:" -msgstr "ΑÏχείο καταγÏαφής σφαλμάτων:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 -msgid "Access log:" -msgstr "ΑÏχείο καταγÏαφής Ï€Ïοσβάσεων:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:855 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 -msgid "Failed to start content server" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:880 -msgid "Invalid size" -msgstr "Μη έγκυÏο μέγεθος" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:881 -msgid "The size %s is invalid. must be of the form widthxheight" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:947 -msgid "Must restart" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:948 -msgid "" -"The changes you made require that Calibre be restarted. Please restart as " -"soon as practical." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:982 -msgid "Checking database integrity" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:1002 -msgid "Failed to check database integrity" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:1007 -msgid "Some inconsistencies found" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:1008 -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:133 -msgid "TabWidget" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:134 -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:135 -msgid "Read metadata only from &file name" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:136 -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:137 -msgid "&Swap author firstname and lastname" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:138 -msgid "" -"If an existing book with a similar title and author is found that does not " -"have the format being added, the format is added\n" -"to the existing book, instead of creating a new entry. If the existing book " -"already has the format, then it is silently ignored.\n" -"\n" -"Title match ignores leading indefinite articles (\"the\", \"a\", \"an\"), " -"punctuation, case, etc. Author match is exact." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:142 -msgid "" -"If books with similar titles and authors found, &merge the new files " -"automatically" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:143 -msgid "&Configure metadata from file name" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:144 -msgid "&Adding books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:145 -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:146 -msgid "Save &cover separately" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:147 -msgid "Update &metadata in saved copies" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:148 -msgid "Save metadata in &OPF file" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:149 -msgid "Convert non-English characters to &English equivalents" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:150 -msgid "Format &dates as:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:151 -msgid "File &formats to save:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:152 -msgid "Replace space with &underscores" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:153 -msgid "Change paths to &lowercase" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:154 -msgid "&Saving books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:155 -msgid "Metadata &management:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:156 -msgid "Manual management" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:157 -msgid "Only on send" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:158 -msgid "Automatic management" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:159 -msgid "" -"<li><b>Manual Management</b>: Calibre updates the metadata and adds " -"collections only when a book is sent. With this option, calibre will never " -"remove a collection.</li>\n" -"<li><b>Only on send</b>: Calibre updates metadata and adds/removes " -"collections for a book only when it is sent to the device. </li>\n" -"<li><b>Automatic management</b>: Calibre automatically keeps metadata on the " -"device in sync with the calibre library, on every connect</li></ul>" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:162 -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:163 -msgid "Sending to &device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:606 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:128 -msgid "Show notification when &new version is available" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:607 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:127 -msgid "Download &social metadata (tags/ratings/etc.) by default" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:608 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:126 -msgid "&Overwrite author and title by default when fetching metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:609 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:131 -msgid "Default network &timeout:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:610 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:132 -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:611 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:133 -msgid " seconds" -msgstr " δευτεÏόλεπτα" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:612 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:100 -msgid "Choose &language (requires restart):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:613 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:134 -msgid "Normal" -msgstr "Κανονικό" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:614 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:135 -msgid "High" -msgstr "Υψηλή" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:615 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:136 -msgid "Low" -msgstr "Χαμηλή" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:616 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:137 -msgid "Job &priority:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:617 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:138 -msgid "Preferred &output format:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:618 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:141 -msgid "Reset all disabled &confirmation dialogs" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:619 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:142 -msgid "Preferred &input format order:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:622 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:98 -msgid "User Interface &layout (needs restart):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:623 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:99 -msgid "&Number of covers to show in browse mode (needs restart):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:624 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:139 -msgid "Restriction to apply when the current library is opened:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:625 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:140 -msgid "" -"Apply this restriction on calibre startup if the current library is being " -"used. Also applied when switching to this library. Note that this setting is " -"per library. " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:626 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:102 -msgid "Disable all animations. Useful if you have a slow/old computer." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:627 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:103 -msgid "Disable &animations" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:628 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:110 -msgid "&Toolbar" -msgstr "ΓÏαμμή &εÏγαλείων" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:629 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:111 -msgid "&Icon size:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:630 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:112 -msgid "Show &text under icons:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:631 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:130 -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:632 -msgid "Select visible &columns in library view" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:634 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:79 -msgid "Remove a user-defined column" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:636 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:81 -msgid "Add a user-defined column" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:638 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:83 -msgid "Edit settings of a user-defined column" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:641 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:145 -msgid "Use internal &viewer for:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:642 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:109 -msgid "Search as you type" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:643 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:107 -msgid "Use &Roman numerals for series" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:644 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:104 -msgid "Enable system &tray icon (needs restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:645 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:101 -msgid "Show &average ratings in the tags browser" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:646 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:129 -msgid "Automatically send downloaded &news to ebook reader" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:647 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:105 -msgid "Show &splash screen at startup" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:648 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:108 -msgid "Show cover &browser in a separate window (needs restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:649 -msgid "Show ¬ifications in system tray" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:650 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:662 -msgid "&Miscellaneous" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:651 -msgid "Add an email address to which to send books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:652 -msgid "&Add email" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:653 -msgid "Make &default" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:654 -msgid "&Remove email" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:655 -msgid "" -"calibre can send your books to you (or your reader) by email. Emails will be " -"automatically sent for downloaded news to all email addresses that have Auto-" -"send checked." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:656 -msgid "&Maximum number of waiting worker processes (needs restart):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:657 -msgid "Limit the max. simultaneous jobs to the available CPU &cores" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:658 -msgid "Debug &device detection" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:659 -msgid "&Check database integrity" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:660 -msgid "Open calibre &configuration directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:661 -msgid "&Install command line tools" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:663 -msgid "" -"Values for the tweaks are shown below. Edit them to change the behavior of " -"calibre" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:664 -msgid "All available tweaks" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:665 -msgid "&Current tweaks" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:666 -msgid "&Restore to defaults" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:667 -msgid "&Tweaks" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:668 -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:669 -msgid "Server &port:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:670 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 -#: /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:671 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 -#: /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:672 -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:673 -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:674 -msgid "Max. &cover size:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:675 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 -msgid "&Show password" -msgstr "&Εμφάνιση ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:676 -msgid "Max. &OPDS items per query:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:677 -msgid "Max. OPDS &ungrouped items:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:678 -msgid "Restriction (saved search) to apply:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:679 -msgid "" -"This restriction (based on a saved search) will restrict the books the " -"content server makes available to those matching the search. This setting is " -"per library (i.e. you can have a different restriction per library)." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:680 -msgid "&Start Server" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:681 -msgid "St&op Server" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:682 -msgid "&Test Server" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:683 -msgid "Run server &automatically on startup" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:684 -msgid "View &server logs" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 -msgid "" -"<p>Remember to leave calibre running as the server only runs as long as " -"calibre is running.\n" -"<p>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:687 -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:688 -msgid "Enable/&Disable plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:689 -msgid "&Customize plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:690 -msgid "&Remove plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:691 -msgid "Add new plugin" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:692 -msgid "Plugin &file:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:694 -msgid "&Add" -msgstr "&ΠÏοσθήκη" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:125 -msgid "Create Tag-based Column" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:126 -msgid "Lookup name" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:127 -msgid "Column heading" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:128 -msgid "Column type" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:129 -msgid "Use brackets" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:130 -msgid "Values can be edited" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:135 -msgid "Text" -msgstr "Κείμενο" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:136 -msgid "Number" -msgstr "ΑÏιθμός" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:889 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:568 -msgid "Date" -msgstr "ΗμεÏομηνία" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:138 -msgid "Tag on book" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:139 -msgid "Explanation text added in create_ct_column.py" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_ct_column_ui.py:140 -msgid "Create and edit tag-based columns" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:19 -msgid "Text, column shown in the tag browser" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:22 -msgid "Comma separated text, like tags, shown in the tag browser" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:25 -msgid "Long text, like comments, not shown in the tag browser" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:28 -msgid "Text column for keeping series-like information" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:33 -msgid "Floating point numbers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:35 -msgid "Integers" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:37 -msgid "Ratings, shown with stars" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:40 -msgid "Yes/No" -msgstr "Îαι/Όχι" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:69 -msgid "No column selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:70 -msgid "No column has been selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:74 -msgid "Selected column is not a user-defined column" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:105 -msgid "No lookup name was provided" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:107 -msgid "" -"The lookup name must contain only lower case letters, digits and " -"underscores, and start with a letter" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:116 -msgid "No column heading was provided" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:122 -msgid "The lookup name %s is already used" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column.py:132 -msgid "The heading %s is already used" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:117 -msgid "Create or edit custom columns" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:102 -msgid "&Lookup name" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:103 -msgid "Column &heading" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:104 -msgid "" -"Used for searching the column. Must contain only digits and lower case " -"letters." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:105 -msgid "" -"Column heading in the library view and category name in the tag browser" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:106 -msgid "Column &type" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:107 -msgid "What kind of information will be kept in the column." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:108 -msgid "" -"<p>Date format. Use 1-4 'd's for day, 1-4 'M's for month, and 2 or 4 'y's " -"for year.</p>\n" -"<p>For example:\n" -"<ul>\n" -"<li> ddd, d MMM yyyy gives Mon, 5 Jan 2010<li>\n" -"<li>dd MMMM yy gives 05 January 10</li>\n" -"</ul> " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:114 -msgid "Use MMM yyyy for month + year, yyyy for year only" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:115 -msgid "Default: dd MMM yyyy." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/create_custom_column_ui.py:116 -msgid "Format for &dates" -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/config/toolbar.py:35 -msgid "Switch between library and device views" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:38 -msgid "Separator" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:51 -msgid "Choose library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:201 -msgid "The main toolbar" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:202 -msgid "The main toolbar when a device is connected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:203 -msgid "The context menu for the books in the calibre library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:205 -msgid "The context menu for the books on the device" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:243 -msgid "Cannot add" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:244 -msgid "Cannot add the actions %s to this location" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:261 -msgid "Cannot remove" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar.py:262 -msgid "Cannot remove the actions %s from this location" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:97 -msgid "Customize the actions in:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:98 -msgid "A&vailable actions" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:99 -msgid "&Current actions" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:100 -msgid "Move selected action up" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:102 -msgid "Move selected action down" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 -msgid "Ctrl+S" -msgstr "Ctrl+Ε" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:105 -msgid "Add selected actions to toolbar" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:107 -msgid "Remove selected actions from toolbar" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/toolbar_ui.py:109 -msgid "Restore to &default" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:55 msgid "&Show this warning again" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:47 msgid "ERROR" msgstr "ΣΦΑΛΜΑ" @@ -6698,38 +6193,57 @@ msgid "Location" msgstr "Τοποθεσία" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1064 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:294 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 +msgid "Date" +msgstr "ΗμεÏομηνία" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1116 msgid "Format" msgstr "ΜοÏφοποίηση" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:55 msgid "Delete from device" msgstr "ΔιαγÏαφή από τη συσκευή" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:34 msgid "Author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 +msgid "Invalid author name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 +msgid "Author names cannot contain & characters." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:71 msgid "Manage authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:72 msgid "Sort by author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:73 msgid "Sort by author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:74 msgid "" "Reset all the author sort values to a value automatically generated from the " "author. Exactly how this value is automatically generated can be controlled " "via Preferences->Advanced->Tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:75 msgid "Recalculate all author sort values" msgstr "" @@ -6767,14 +6281,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192 msgid "" -"No metadata found, try adjusting the title and author or the ISBN key." +"No metadata found, try adjusting the title and author and/or removing the " +"ISBN." 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:90 msgid "Fetch metadata" 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:91 msgid "" "<p>calibre can find metadata for your books from two locations: <b>Google " "Books</b> and <b>isbndb.com</b>. <p>To use isbndb.com you must sign up for a " @@ -6782,675 +6297,1026 @@ msgid "" "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:92 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:93 msgid "Fetch" msgstr "Ανάκτηση" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:94 msgid "Matches" msgstr "ΤαιÏιάσματα" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:95 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:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:96 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:97 msgid "Overwrite author and title with author and title of selected book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:42 msgid "Details of job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:49 msgid "Active Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:50 msgid "&Stop selected job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:51 msgid "Show job &details" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:52 msgid "Stop &all non device jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:26 +msgid "Title/Author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:27 +msgid "Standard metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:28 +msgid "Custom metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:29 +msgid "Search/Replace" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:76 +msgid "Working" +msgstr "Σε εÏγασία" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 +msgid "Lower Case" +msgstr "Πεζά" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 +msgid "Upper Case" +msgstr "Κεφαλαία" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 +msgid "Title Case" +msgstr "Κεφαλαία/Πεζά Τίτλου" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 +msgid "Character match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 +msgid "Regular Expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +msgid "Replace field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 +msgid "Prepend to field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 +msgid "Append to field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:225 -msgid "Applying changes to %d books. This may take a while." +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 +msgid "Book %d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 +msgid "" +"<b>You can destroy your library using this feature.</b> Changes are " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 +msgid "" +"In character mode, the field is searched for the entered search text. The " +"text is replaced by the specified replacement text everywhere it is found in " +"the specified field. After replacement is finished, the text can be changed " +"to upper-case, lower-case, or title-case. If the case-sensitive check box is " +"checked, the search text must match exactly. If it is unchecked, the search " +"text will match both upper- and lower-case letters" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 +msgid "" +"In regular expression mode, the search text is an arbitrary python-" +"compatible regular expression. The replacement text can contain " +"backreferences to parenthesized expressions in the pattern. The search is " +"not anchored, and can match and replace multiple times on the same string. " +"The modification functions (lower-case etc) are applied to the matched text, " +"not to the field as a whole. The destination box specifies the field where " +"the result after matching and replacement is to be assigned. You can replace " +"the text in the field, or prepend or append the matched text. See <a " +"href=\"http://docs.python.org/library/re.html\"> this reference</a> for more " +"information on python's regular expressions, and in particular the 'sub' " +"function." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 +msgid "You must specify a destination when source is a composite field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 +msgid "Search/replace invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 +msgid "" +"Authors cannot be set to the empty string. Book title %s not processed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 +msgid "Title cannot be set to the empty string. Book title %s not processed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 +msgid "Search pattern is invalid: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 +msgid "" +"Applying changes to %d books.\n" +"Phase {0} {1}%%." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 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:165 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:167 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /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 "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Καμία αλλαγή" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:174 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /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 "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:177 -msgid "Remove all" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:182 -msgid "Remove &format:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +msgid "Remove all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:183 -msgid "&Swap title and author" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +msgid "If checked, the series will be cleared" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +msgid "Clear series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" -"Selected books will be automatically numbered,\n" -"in the order you selected them.\n" -"So if you selected Book A and then Book B,\n" +"If not checked, the series number for the books will be set to 1.\n" +"If checked, selected books will be automatically numbered, in the order\n" +"you selected them. So if you selected Book A and then Book B,\n" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +msgid "Automatically number books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 +msgid "" +"Series will normally be renumbered from the highest number in the database\n" +"for that series. Checking this box will tell calibre to start numbering\n" +"from the value in the box" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +msgid "Remove &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +msgid "&Swap title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 +msgid "" +"Force the title to be in title case. If both this and swap authors are " +"checked,\n" +"title and author are swapped before the title case is set" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +msgid "Change title to title case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:194 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +msgid "Search &field:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +msgid "The name of the field that you want to search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +msgid "Search mode:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +msgid "" +"Choose whether to use basic text matching or advanced regular expression " +"matching" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +msgid "&Search for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +msgid "" +"Enter the what you are looking for, either plain text or a regular " +"expression, depending on the mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +msgid "" +"Check this box if the search string must match exactly upper and lower case. " +"Uncheck it if case is to be ignored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +msgid "Case sensitive" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +msgid "&Replace with:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +msgid "" +"The replacement text. The matched search text will be replaced with this " +"string" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +msgid "Apply function after replace:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 +msgid "" +"Specify how the text is to be processed after matching and replacement. In " +"character mode, the entire\n" +"field is processed. In regular expression mode, only the matched text is " +"processed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +msgid "&Destination field:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +msgid "" +"The field that the text will be put into after all replacements. If blank, " +"the source field is used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +msgid "Mode:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +msgid "Specify how the text should be copied into the destination." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 +msgid "" +"If the replace mode is prepend or append, then this box indicates whether a " +"comma or\n" +"nothing should be put between the original text and the inserted text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +msgid "use comma" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +msgid "Test &text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +msgid "Test re&sult" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +msgid "Your test:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 msgid "Last modified: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:150 msgid "Specify title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:151 msgid "You must specify a title and author before generating a cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:169 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:200 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:223 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:229 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:240 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:241 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:284 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:295 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:290 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:296 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:351 +msgid "" +" The green color indicates that the current author sort matches the current " +"author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:354 +msgid "" +" The red color indicates that the current author sort does not match the " +"current author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:359 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:466 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 -msgid "Cannot use tag editor" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 +msgid "Tags changed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:554 -msgid "The tags editor cannot be used if you have modified the tags" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 +msgid "" +"You have changed the tags. In order to use the tags editor, you must either " +"discard or apply these changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:639 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:586 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:591 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:602 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:651 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:667 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:587 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:603 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:652 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:663 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:668 msgid "<b>Could not fetch cover.</b><br/>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:653 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:657 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:604 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:669 msgid "" "For the error message from each cover source, click Show details below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:677 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:710 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:711 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:675 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:742 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:743 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:759 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:833 msgid "Permission denied" msgstr "ΆÏνηση Ï€Ïόσβασης" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:760 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:834 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:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Edit Meta Information" 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:372 msgid "Meta information" msgstr "" -#: /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:375 msgid "Swap the author and title" msgstr "" -#: /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:378 msgid "Author S&ort: " msgstr "" -#: /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:379 msgid "" -"Automatically create the author sort entry based on the current author entry" +"Specify how the author(s) of this book should be sorted. For example Charles " +"Dickens should be sorted as Dickens, Charles.\n" +"If the box is colored green, then text matches the individual author's sort " +"strings. If it is colored red, then the authors and this text do not match." 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:381 +msgid "" +"Automatically create the author sort entry based on the current author " +"entry.\n" +"Using this button to create author sort will change author sort from red to " +"green." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 msgid "Remove unused series (Series that have no books)" 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:398 msgid "IS&BN:" 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:399 msgid "Publishe&d:" msgstr "" -#: /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:402 msgid "dd MMM yyyy" 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:403 msgid "&Date:" msgstr "Η&μεÏομηνία:" -#: /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:404 msgid "&Comments" 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:405 msgid "&Fetch metadata from server" msgstr "" -#: /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:406 msgid "Available Formats" msgstr "Διαθέσιμες ΜοÏφές" -#: /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:407 msgid "Add a new format for this book to the database" msgstr "" -#: /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:409 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:411 msgid "Set the cover for the book from the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:416 msgid "&Browse" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:417 +msgid "Remove border (if any) from cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:418 +msgid "T&rim" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:419 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:405 -msgid "Download &cover" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:421 +msgid "Download co&ver" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:422 msgid "Generate a default cover based on the title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:423 msgid "&Generate cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:61 msgid "Password needed" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +msgid "&Username:" +msgstr "Όν&ομα χÏήστη:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 +msgid "&Password:" +msgstr "&Κωδικός Ï€Ïόσβασης:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 +msgid "&Show password" +msgstr "&Εμφάνιση ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:59 msgid "Aborting..." msgstr "Εγκατάλειψη..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:76 -msgid "Working" -msgstr "Σε εÏγασία" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor.py:54 msgid "" "The current saved search will be <b>permanently deleted</b>. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 msgid "Saved Search Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 msgid "Saved Search: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:90 msgid "Select a saved search to edit" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 msgid "Delete this selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:93 msgid "Enter a new saved search name." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:94 msgid "Add the new saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/saved_search_editor_ui.py:96 msgid "Change the contents of the saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:126 msgid "Need username and password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:127 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:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:166 +msgid "Account" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:167 +msgid "(optional)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:168 +msgid "(required)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:185 msgid "Created by: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:192 msgid "Last downloaded: never" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:207 msgid "%d days, %d hours and %d minutes ago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209 msgid "Last downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:220 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 msgid "Schedule news download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:236 msgid "Add a custom news source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:241 msgid "Download all scheduled new sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:341 msgid "No internet connection" msgstr "Δεν υπάÏχει ενεÏγή σÏνδεση Internet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:329 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:342 msgid "Cannot download news as no internet connection is active" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:283 msgid "Recipes" msgstr "Συνταγές" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "Download all scheduled recipes at once" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "Download &all scheduled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 msgid "blurb" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 msgid "&Schedule for download:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 msgid "Every " msgstr "Κάθε " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "day" msgstr "ημέÏα" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 msgid "Monday" msgstr "ΔευτέÏα" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 msgid "Tuesday" msgstr "ΤÏίτη" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 msgid "Wednesday" msgstr "ΤετάÏτη" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 msgid "Thursday" msgstr "Πέμπτη" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 msgid "Friday" msgstr "ΠαÏασκευή" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 msgid "Saturday" msgstr "Σάββατο" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 msgid "Sunday" msgstr "ΚυÏιακή" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "at" msgstr "σε" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 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:210 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 msgid " days" msgstr " ημέÏες" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 msgid "&Account" msgstr "&ΛογαÏιασμός" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 msgid "For the scheduling to work, you must leave calibre running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 msgid "&Schedule" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222 msgid "Add &title as tag" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223 msgid "&Extra tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:224 msgid "&Advanced" msgstr "&Για Ï€ÏοχωÏημένους" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:225 msgid "&Download now" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:226 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:223 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:228 msgid "Delete downloaded news older than " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:41 msgid "contains" msgstr "πεÏιέχει" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:42 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:43 msgid "" "<p>Negate this match. That is, only return results that <b>do not</b> match " "this query." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:44 msgid "Negate" msgstr "ΑÏνητικό" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "ΠÏοχωÏημένη αναζήτηση" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:114 -msgid "Find entries that have..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:115 -msgid "&All these words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:116 -msgid "This exact &phrase:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:117 -msgid "&One or more of these words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 -msgid "But dont show entries that have..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Any of these &unwanted words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +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_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:80 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:97 msgid "Authors" msgstr "ΣυγγÏαφείς" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:111 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:128 msgid "Publishers" msgstr "" @@ -7463,51 +7329,51 @@ msgid "" "The current tag category will be <b>permanently deleted</b>. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 msgid "User Categories Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 msgid "A&vailable items" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 msgid "Apply tags to current tag category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 msgid "A&pplied items" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:163 msgid "Unapply (remove) tag from current tag category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 msgid "Category name: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:166 msgid "Select a category to edit" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 msgid "Delete this selected tag category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:169 msgid "Enter a new category name. Select the kind before adding it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:170 msgid "Add the new category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:172 msgid "Category filter: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:173 msgid "Select the content kind of the new category" msgstr "" @@ -7522,43 +7388,43 @@ msgid "" "to delete them?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 msgid "Tag Editor" msgstr "ΕπεξεÏγαστής Ετικετών" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 msgid "A&vailable tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 msgid "Apply tag to current book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 msgid "A&pplied tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:135 msgid "Unapply (remove) tag from current book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:137 msgid "&Add tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:138 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:139 msgid "Add tag to available tags and apply it to current book" msgstr "" @@ -7567,12 +7433,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -7596,149 +7462,184 @@ msgstr "" msgid "Are you certain you want to delete the following items?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:77 msgid "Category Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:78 msgid "Items in use" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:79 msgid "" "Delete item from database. This will unapply the item from all books and " "then remove it from the database." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:81 msgid "Rename the item in every book where it is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:106 +msgid "Ctrl+S" +msgstr "Ctrl+Ε" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:56 msgid "Test email settings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:57 msgid "Send test mail from %s to:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 msgid "&Test" msgstr "&Δοκιμή" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 -msgid "No recipe selected" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:55 +msgid "Display contents of exploded ePub" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:56 +msgid "&Explode ePub" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:57 +msgid "Rebuild ePub from exploded contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:58 +msgid "&Rebuild ePub" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:59 +msgid "Discard changes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 +msgid "&Cancel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:61 +msgid "" +"<p>Explode the ePub to display contents in a file browser window. To tweak " +"individual files, right-click, then 'Open with...' your editor of choice. " +"When tweaks are complete, close the file browser window <b>and the editor " +"windows you used to edit files in the epub</b>.</p><p>Rebuild the ePub, " +"updating your calibre library.</p>" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 +msgid "No recipe selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:137 msgid "The attached file: %s is a recipe to download %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:138 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:169 msgid "Switch to Basic mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 msgid "Feed must have a title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 msgid "The feed must have a title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:184 msgid "Feed must have a URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:191 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:291 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:292 msgid "<p>Could not create recipe. Error:<br>%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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:268 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:295 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:269 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:296 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:262 msgid "Pick recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:262 msgid "Pick the recipe to customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:282 msgid "Choose a recipe file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 msgid "Add custom news source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 msgid "Available user recipes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255 msgid "Add/Update &recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 msgid "&Remove recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:257 msgid "&Share recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:258 msgid "Customize &builtin recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:259 msgid "&Load recipe from file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 msgid "" "<html><head><meta name=\"qrichtext\" content=\"1\" /><style " "type=\"text/css\">\n" @@ -7752,62 +7653,116 @@ msgid "" "process.</p></body></html>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 msgid "Recipe &title:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 msgid "&Oldest article:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 msgid "The oldest article to download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 msgid "&Max. number of articles per feed:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 msgid "Maximum number of articles to download per feed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:271 msgid "Feeds in recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 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 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:279 msgid "Add feed to recipe" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 msgid "&Feed title:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:278 msgid "Feed &URL:" msgstr "&URL Ïοής:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:280 msgid "&Add feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:281 msgid "" "For help with writing advanced news recipes, please visit <a " -"href=\"http://calibre.kovidgoyal.net/user_manual/news.html\">User Recipes</a>" +"href=\"http://calibre-ebook.com/user_manual/news.html\">User Recipes</a>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:282 msgid "Recipe source code (python)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "από" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " "\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" @@ -7831,109 +7786,111 @@ msgid "" "metadata entries are documented in tooltips.</p></body></html>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular &expression" msgstr "Κανονική έ&κφÏαση" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 msgid "File &name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 msgid "Title:" msgstr "Τίτλος:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 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:83 -#: /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:97 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:110 msgid "No match" msgstr "Δεν υπάÏχει αντιστοιχία" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 msgid "Authors:" msgstr "ΣυγγÏαφείς:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 msgid "Regular expression (?P<author>)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 msgid "Series:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 msgid "Regular expression (?P<series>)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 msgid "Series index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:133 msgid "Regular expression (?P<series_index>)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:135 msgid "ISBN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:136 msgid "Regular expression (?P<isbn>)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:100 msgid "Cover Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:105 msgid "Shift+Alt+B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:119 msgid "Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:121 msgid "Shift+Alt+T" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:29 msgid "version" msgstr "έκδοση" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:30 msgid "created by Kovid Goyal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:160 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:172 msgid "Update found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:217 msgid "Book Details" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:209 msgid "Alt+D" msgstr "Alt+Π" -#: /home/kovid/work/calibre/src/calibre/gui2/init.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/init.py:219 msgid "Shift+Alt+D" msgstr "" @@ -7980,23 +7937,23 @@ msgstr "" msgid "Job has already run" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Μη διαθέσιμο" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr "" @@ -8004,182 +7961,200 @@ msgstr "" msgid "Eject this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:62 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:63 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:209 msgid "Library" msgstr "Βιβλιοθήκη" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:64 msgid "Show books in calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:64 -msgid "Reader" -msgstr "Αναγνώστης" - #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:65 -msgid "Show books in the main memory of the device" +msgid "Device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:66 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:598 -msgid "Card A" +msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -msgid "Show books in storage card A" +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 +msgid "Card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:68 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:600 -msgid "Card B" +msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 +msgid "Card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:70 msgid "Show books in storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:128 msgid "available" msgstr "διαθέσιμο" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:159 msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "ΣÏνθετη Αναζήτηση" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:169 -msgid "Reset Quick Search" -msgstr "Μηδενισμός γÏήγοÏης αναζήτησης" - #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 -msgid "Copy current search text (instead of search name)" +msgid "&Go!" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 -msgid "Save current search under the name shown in the box" +msgid "Do Quick Search (you can also press the Enter key)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 +msgid "Reset Quick Search" +msgstr "Μηδενισμός γÏήγοÏης αναζήτησης" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 +msgid "Copy current search text (instead of search name)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 +msgid "Save current search under the name shown in the box" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:285 msgid "N" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:285 msgid "Y" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:240 msgid "On Device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:68 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:285 msgid "Size (MB)" msgstr "Μέγεθος (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -msgid "Rating" -msgstr "Αξιολόγηση" - -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1084 -msgid "Book <font face=\"serif\">%s</font> of %s." +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 +msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:679 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1182 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1238 +msgid "This book's UUID is \"{0}\"" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 msgid "In Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 msgid "Size" msgstr "Μέγεθος" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1162 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 +msgid "Book <font face=\"serif\">%s</font> of %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 msgid "Marked for deletion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1219 msgid "Double click to <b>edit</b> me<br><br>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "ΑÏξουσα" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Φθίνουσα" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Δεξιά" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "ΚέντÏο" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:52 msgid "Configure Viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:53 msgid "Use white background" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:54 msgid "Hyphenate" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:55 msgid "<b>Changes will only take effect after a restart.</b>" msgstr "" @@ -8192,7 +8167,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> 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:441 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Δεν βÏέθηκαν αντιστοιχίες." @@ -8209,22 +8184,22 @@ msgid "LRF Viewer toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Επόμενη Σελίδα" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 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:188 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 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:189 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 msgid "Forward" msgstr "ΕμπÏός" @@ -8233,7 +8208,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:196 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 msgid "Open ebook" msgstr "" @@ -8258,7 +8233,7 @@ msgid "Do not check for updates" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "" @@ -8321,40 +8296,40 @@ msgid "" "Bad database location %r. Will start with a new, empty calibre library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:238 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:237 msgid "Starting %s: Loading books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:282 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:284 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:286 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:285 msgid "%s is already running." msgstr "Το %s εκτελείται ήδη." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:288 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:292 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:296 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:295 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:298 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:310 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:309 msgid "try deleting the file" msgstr "" @@ -8373,51 +8348,1095 @@ msgid "&Quit" msgstr "&Έξοδος" #: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:90 +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:109 msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:109 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:138 msgid "No matches found for this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 +msgid "Failed to download metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +msgid "cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +msgid "Downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +msgid "Failed to get" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 +msgid "%s %s for: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 +msgid "Done" +msgstr "ΟλοκληÏώθηκε" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 +msgid "Successfully downloaded metadata for %d out of %d books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 +msgid "Details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/__init__.py:36 +msgid "" +"Restore settings to default values. You have to click Apply to actually save " +"the default settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:49 +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/preferences/adding_ui.py:50 +msgid "Read metadata from &file contents rather than file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:51 +msgid "" +"If an existing book with a similar title and author is found that does not " +"have the format being added, the format is added\n" +"to the existing book, instead of creating a new entry. If the existing book " +"already has the format, then it is silently ignored.\n" +"\n" +"Title match ignores leading indefinite articles (\"the\", \"a\", \"an\"), " +"punctuation, case, etc. Author match is exact." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:55 +msgid "" +"If books with similar titles and authors found, &merge the new files " +"automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:56 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:57 +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/preferences/adding_ui.py:58 +msgid "&Swap author firstname and lastname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:145 +msgid "Normal" +msgstr "Κανονικό" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:146 +msgid "High" +msgstr "Υψηλή" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:147 +msgid "Low" +msgstr "Χαμηλή" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:163 +msgid "Confirmation dialogs have all been reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:137 +msgid "&Overwrite author and title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:138 +msgid "Download &social metadata (tags/ratings/etc.) by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:139 +msgid "Show notification when &new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:140 +msgid "Automatically send downloaded &news to ebook reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:141 +msgid "&Delete news from library when it is automatically sent to reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:142 +msgid "Default network &timeout:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:143 +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/preferences/behavior_ui.py:144 +msgid " seconds" +msgstr " δευτεÏόλεπτα" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:148 +msgid "Job &priority:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:149 +msgid "Preferred &output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:150 +msgid "Restriction to apply when the current library is opened:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:151 +msgid "" +"Apply this restriction on calibre startup if the current library is being " +"used. Also applied when switching to this library. Note that this setting is " +"per library. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:152 +msgid "" +"A comma-separated list of tags that will be applied to books added to the " +"library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:153 +msgid "Tags to apply when adding a book:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:154 +msgid "Reset all disabled &confirmation dialogs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:155 +msgid "Preferred &input format order:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:158 +msgid "Use internal &viewer for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:96 +msgid "You must select a column to delete it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:101 +msgid "The selected column is not a custom column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns.py:103 +msgid "Do you really want to delete column %s and all its data?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:82 msgid "" "Here you can re-arrange the layout of the columns in the calibre library " "book list. You can hide columns by unchecking them. You can also create your " "own, custom columns." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:84 +msgid "Remove a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:86 +msgid "Add a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:88 +msgid "Edit settings of a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/columns_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/custom_columns_ui.py:91 msgid "Add &custom column" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/conversion.py:37 +msgid "" +"Restore settings to default values. Only settings for the currently selected " +"section are restored." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:19 +msgid "Text, column shown in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:22 +msgid "Comma separated text, like tags, shown in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:25 +msgid "Long text, like comments, not shown in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:28 +msgid "Text column for keeping series-like information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:33 +msgid "Floating point numbers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:35 +msgid "Integers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:37 +msgid "Ratings, shown with stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:40 +msgid "Yes/No" +msgstr "Îαι/Όχι" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:42 +msgid "Column built from other columns" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 +msgid "No column selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:72 +msgid "No column has been selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:76 +msgid "Selected column is not a user-defined column" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:111 +msgid "No lookup name was provided" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:113 +msgid "" +"The lookup name must contain only lower case letters, digits and " +"underscores, and start with a letter" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:116 +msgid "" +"Lookup names cannot end with _index, because these names are reserved for " +"the index of a series column." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:126 +msgid "No column heading was provided" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:133 +msgid "The lookup name %s is already used" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:145 +msgid "The heading %s is already used" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:156 +msgid "You must enter a template for composite columns" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:147 +msgid "Create or edit custom columns" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:128 +msgid "&Lookup name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:129 +msgid "Column &heading" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:130 +msgid "" +"Used for searching the column. Must contain only digits and lower case " +"letters." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:131 +msgid "" +"Column heading in the library view and category name in the tag browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:132 +msgid "Column &type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:133 +msgid "What kind of information will be kept in the column." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:134 +msgid "" +"<p>Date format. Use 1-4 'd's for day, 1-4 'M's for month, and 2 or 4 'y's " +"for year.</p>\n" +"<p>For example:\n" +"<ul>\n" +"<li> ddd, d MMM yyyy gives Mon, 5 Jan 2010<li>\n" +"<li>dd MMMM yy gives 05 January 10</li>\n" +"</ul> " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:140 +msgid "Use MMM yyyy for month + year, yyyy for year only" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:141 +msgid "Default: dd MMM yyyy." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:142 +msgid "Format for &dates" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:143 +msgid "<p>Field template. Uses the same syntax as save templates." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:144 +msgid "Similar to save templates. For example, {title} {isbn}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:145 +msgid "Default: (nothing)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column_ui.py:146 +msgid "&Template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:66 +msgid "" +"calibre can send your books to you (or your reader) by email. Emails will be " +"automatically sent for downloaded news to all email addresses that have Auto-" +"send checked." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:67 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:68 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:69 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/email_ui.py:70 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 +msgid "Auto send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 +msgid "Email" +msgstr "Ηλεκ. αλληλογÏαφία" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:29 +msgid "Formats to email. The first matching format will be sent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:30 +msgid "" +"If checked, downloaded news will be automatically mailed <br>to this email " +"address (provided it is in one of the listed formats)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:104 +msgid "new email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:24 +msgid "Narrow" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:24 +msgid "Wide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:51 +msgid "Medium" +msgstr "Μεσαίο" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:51 +msgid "Small" +msgstr "ΜικÏÏŒ" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:52 +msgid "Large" +msgstr "Μεγάλο" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:55 +msgid "Always" +msgstr "Πάντα" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:55 +msgid "Automatic" +msgstr "Αυτόματο" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.py:56 +msgid "Never" +msgstr "Ποτέ" + #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:106 +msgid "User Interface &layout (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:107 +msgid "&Number of covers to show in browse mode (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:108 +msgid "Choose &language (requires restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:109 +msgid "Show &average ratings in the tags browser" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:110 +msgid "Disable all animations. Useful if you have a slow/old computer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:111 +msgid "Disable &animations" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:112 +msgid "Enable system &tray icon (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:113 +msgid "Show &splash screen at startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:114 msgid "Disable ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:255 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:115 +msgid "Use &Roman numerals for series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:116 +msgid "Show cover &browser in a separate window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:117 +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:118 +msgid "&Toolbar" +msgstr "ΓÏαμμή &εÏγαλείων" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:119 +msgid "&Icon size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:120 +msgid "Show &text under icons:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:121 +msgid "&Split the toolbar into two toolbars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +msgid "&Apply" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 +msgid "Restore &defaults" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 +msgid "Save changes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 +msgid "Cancel and return to overview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 +msgid "Restoring to defaults not supported for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 +msgid "" +"Some of the changes you made require a restart. Please restart calibre as " +"soon as possible." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 +msgid "" +"The changes you have made require calibre be restarted immediately. You will " +"not be allowed set any more preferences, until you restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 +msgid "Restart needed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:42 +msgid "Failed to install command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:45 +msgid "Command line tools installed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:46 +msgid "Command line tools installed in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:47 +msgid "" +"If you move calibre.app, you have to re-install the command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:61 +msgid "&Maximum number of waiting worker processes (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:62 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:63 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:64 +msgid "Open calibre &configuration directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc_ui.py:65 +msgid "&Install command line tools" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:44 +msgid "Device currently connected: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:47 +msgid "Device currently connected: None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:207 +msgid "" +"That format and device already has a plugboard or conflicts with another " +"plugboard." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:240 +msgid "Invalid destination" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:241 +msgid "The destination field cannot be blank" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:114 +msgid "" +"Here you can change the metadata calibre uses to update a book when saving " +"to disk or sending to device.\n" +"\n" +"Use this dialog to define a 'plugboard' for a format (or all formats) and a " +"device (or all devices). The plugboard specifies what template is connected " +"to what field. The template is used to compute a value, and that value is " +"assigned to the connected field.\n" +"\n" +"Often templates will contain simple references to composite columns, but " +"this is not necessary. You can use any template in a source box that you can " +"use elsewhere in calibre.\n" +"\n" +"One possible use for a plugboard is to alter the title to contain series " +"information. Another would be to change the author sort, something that mobi " +"users might do to force it to use the ';' that the kindle requires. A third " +"would be to specify the language." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:121 +msgid "Format (choose first)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:122 +msgid "Device (choose second)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:123 +msgid "Add new plugboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:124 +msgid "Edit existing plugboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:125 +msgid "Existing plugboards" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:126 +msgid "Source template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:127 +msgid "Destination field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:128 +msgid "Save plugboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard_ui.py:129 +msgid "Delete plugboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:100 +msgid "%(plugin_type)s %(plugins)s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:101 +msgid "plugins" +msgstr "Ï€Ïόσθετα" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:110 +msgid "" +"\n" +"Customization: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:155 +msgid "No valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:156 +msgid "%s is not a valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:159 +msgid "Choose plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:171 +msgid "Plugin cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:172 +msgid "The plugin: %s cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:182 +msgid "Plugin not customizable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:183 +msgid "Plugin: %s does not need customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:193 +msgid "Customize" +msgstr "ΠÏοσαÏμογή" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:236 +msgid "Cannot remove builtin plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:237 +msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:82 +msgid "" +"Here you can customize the behavior of Calibre by controlling what plugins " +"it uses." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:83 +msgid "Enable/&Disable plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:84 +msgid "&Customize plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:85 +msgid "&Remove plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:86 +msgid "Add new plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:87 +msgid "Plugin &file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins_ui.py:89 +msgid "&Add" +msgstr "&ΠÏοσθήκη" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:33 +msgid "Any custom field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:34 +msgid "The lookup name of any custom field. These names begin with \"#\")" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:47 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:48 +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/preferences/save_template_ui.py:49 +msgid "Available variables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:68 +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/preferences/saving_ui.py:69 +msgid "Save &cover separately" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:70 +msgid "Replace space with &underscores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:71 +msgid "Update &metadata in saved copies" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:72 +msgid "Change paths to &lowercase" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:76 +msgid "Format &dates as:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:74 +msgid "File &formats to save:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:75 +msgid "Convert non-English characters to &English equivalents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/saving_ui.py:76 +msgid "Save metadata in &OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:70 +msgid "Manual management" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:71 +msgid "Only on send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:72 +msgid "Automatic management" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:69 +msgid "Metadata &management:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:73 +msgid "" +"<li><b>Manual management</b>: Calibre updates the metadata and adds " +"collections only when a book is sent. With this option, calibre will never " +"remove a collection.</li>\n" +"<li><b>Only on send</b>: Calibre updates metadata and adds/removes " +"collections for a book only when it is sent to the device. </li>\n" +"<li><b>Automatic management</b>: Calibre automatically keeps metadata on the " +"device in sync with the calibre library, on every connect</li></ul>" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/sending_ui.py:77 +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->Advanced->Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 +msgid "Failed to start content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:99 +msgid "Error log:" +msgstr "ΑÏχείο καταγÏαφής σφαλμάτων:" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:106 +msgid "Access log:" +msgstr "ΑÏχείο καταγÏαφής Ï€Ïοσβάσεων:" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:121 +msgid "You need to restart the server for changes to take effect" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:124 +msgid "Server &port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:127 +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/preferences/server_ui.py:128 +msgid "" +"The maximum size (widthxheight) for displayed covers. Larger covers are " +"resized. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:129 +msgid "Max. &cover size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:131 +msgid "Max. &OPDS items per query:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:132 +msgid "Max. OPDS &ungrouped items:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:133 +msgid "Restriction (saved search) to apply:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:134 +msgid "" +"This restriction (based on a saved search) will restrict the books the " +"content server makes available to those matching the search. This setting is " +"per library (i.e. you can have a different restriction per library)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:135 +msgid "&Start Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:136 +msgid "St&op Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:137 +msgid "&Test Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:138 +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/preferences/server_ui.py:139 +msgid "Run server &automatically on startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:140 +msgid "View &server logs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:51 +msgid "" +"<p>Remember to leave calibre running as the server only runs as long as " +"calibre is running.\n" +"<p>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/preferences/social.py:34 +msgid "Downloading social metadata, please wait..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:36 +msgid "Switch between library and device views" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:39 +msgid "Separator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:52 +msgid "Choose library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:202 +msgid "The main toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:203 +msgid "The main toolbar when a device is connected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:204 +msgid "The context menu for the books in the calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:206 +msgid "The context menu for the books on the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:240 +msgid "Cannot add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:241 +msgid "Cannot add the actions %s to this location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:259 +msgid "Cannot remove" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:260 +msgid "Cannot remove the actions %s from this location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:99 +msgid "Customize the actions in:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:100 +msgid "A&vailable actions" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:101 +msgid "&Current actions" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:102 +msgid "Move selected action up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:104 +msgid "Move selected action down" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:107 +msgid "Add selected actions to toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:109 +msgid "Remove selected actions from toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:43 +msgid "Invalid tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:44 +msgid "" +"The tweaks you entered are invalid, try resetting the tweaks to default and " +"changing them one by one until you find the invalid setting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:50 +msgid "" +"Values for the tweaks are shown below. Edit them to change the behavior of " +"calibre. Your changes will only take effect after a restart of calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:51 +msgid "All available tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:52 +msgid "&Current tweaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Αναζήτηση" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:322 msgid "The selected search will be <b>permanently deleted</b>. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:364 msgid "Search (For Advanced Search click the button to the left)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:406 msgid "Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:414 msgid "Choose saved search or enter name for new saved search" msgstr "" @@ -8456,7 +9475,7 @@ msgid " or " msgstr " ή " #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 msgid "&Default" msgstr "&ΠÏοκαθοÏισμένο" @@ -8472,113 +9491,123 @@ msgstr "" msgid "Double click to change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 msgid "Frame" msgstr "Πλαίσιο" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 msgid "&Custom" msgstr "ΠÏ&οσαÏμοσμένη" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 msgid "&Shortcut:" msgstr "&Συντόμευση:" -#: /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/shortcuts_ui.py:82 msgid "Click to change" msgstr "Κλικ για αλλαγή" -#: /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/shortcuts_ui.py:84 msgid "Clear" msgstr "ΚαθαÏισμός" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:81 msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 -msgid "Show all categories" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:230 msgid "Manage Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:230 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:234 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:241 msgid "Manage User Categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:435 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 +msgid "" +"Changing the authors for several books can take a while. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 +msgid "" +"Changing the metadata for that many books can take a while. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Αναζητήσεις" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Ταξινόμηση κατά όνομα" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:771 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:774 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:780 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:780 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:785 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:789 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:792 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "" @@ -8607,91 +9636,99 @@ msgstr "" msgid "Queueing " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:239 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:246 msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:301 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:316 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:317 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:167 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Αποκατάσταση" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:417 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:445 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:418 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:431 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:446 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:56 -msgid "Update available" +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:53 +msgid "" +"%s has been updated to version <b>%s</b>. See the <a href=\"http://calibre-" +"ebook.com/whats-new\">new features</a>. Visit the download page?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:57 -msgid "" -"%s has been updated to version %s. See the <a href=\"http://calibre-" -"ebook.com/whats-new\">new features</a>. Visit the download page?" +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:59 +msgid "Update available!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:64 +msgid "Show this notification for future updates" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:69 +msgid "&Get update" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 @@ -8718,127 +9755,123 @@ msgstr "Εισαγωγή σελιδοδεικτών" 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 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 msgid "Bookmark Manager" -msgstr "ΕπεξεÏγασία σελιδοδεικτών" +msgstr "ΔιαχείÏιση σελιδοδεικτών" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 msgid "Actions" msgstr "ΕνέÏγειες" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:63 msgid "Edit" msgstr "ΕπεξεÏγασία" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:64 msgid "Delete" msgstr "ΔιαγÏαφή" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:65 msgid "Reset" msgstr "Μηδενισμός" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:66 msgid "Export" msgstr "Εξαγωγή" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:67 msgid "Import" msgstr "Εισαγωγή" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "Configure Ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 msgid "&Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Se&rif family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 msgid "&Sans family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "&Monospace family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 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 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid " px" msgstr " εικ" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace &font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid "S&tandard font:" msgstr "&Τυπική γÏαμματοσειÏά:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Serif" msgstr "Serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "Sans-serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "Monospace" msgstr "Monospace" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Remember last used &window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "Maximum &view width:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "H&yphenate (break line in the middle of large words)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 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 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 msgid "Default &language for hyphenation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:178 msgid "&Resize images larger than the viewer window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:179 msgid "&User stylesheet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:180 msgid "&General" msgstr "&Γενικά" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:181 msgid "Double click to change a keyboard shortcut" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:182 msgid "&Keyboard shortcuts" msgstr "" @@ -8846,96 +9879,96 @@ msgstr "" msgid "No results found for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 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:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Επιλογές γÏαμματοσειÏάς" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:453 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Μετάβαση στο..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Επόμενο τμήμα" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "ΠÏοηγοÏμενο τμήμα" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "" @@ -8991,163 +10024,172 @@ msgstr "ΚÏλιση δεξιά" msgid "Book format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:203 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:269 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "ΠÏοεπισκόπηση ΕκτÏπωσης" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Ebooks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:419 -msgid "Add bookmark" -msgstr "ΠÏοσθήκη σελιδοδείκτη" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:419 -msgid "Enter title for bookmark:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 +msgid "Bookmark #%d" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +msgid "Add bookmark" +msgstr "ΠÏοσθήκη σελιδοδείκτη" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +msgid "Enter title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "ΔιαχείÏιση Σελιδοδεικτών" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:579 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:587 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:592 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:666 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:673 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 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:678 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +msgid "" +"If specified, viewer window will try to open full screen when started." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:684 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" "View an ebook.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "E-book Viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 msgid "Close dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 msgid "toolBar" msgstr "ΓÏαμμή εÏγαλείων" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 msgid "Next page" msgstr "Επόμενη σελίδα" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 msgid "Previous page" msgstr "ΠÏοηγοÏμενη σελίδα" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 msgid "Font size larger" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:198 msgid "Font size smaller" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:202 msgid "Find next" msgstr "Επόμενο" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:203 msgid "Find next occurrence" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:204 msgid "F3" msgstr "F3" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205 msgid "Copy to clipboard" msgstr "ΑντιγÏαφή στο Ï€ÏόχειÏο" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207 msgid "Reference Mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:208 msgid "Bookmark" msgstr "Σελιδοδείκτης" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:209 msgid "Toggle full screen" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:210 msgid "Print" msgstr "ΕκτÏπωση" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:211 msgid "Find previous" msgstr "Αναζήτηση Ï€Ïοηγουμένου" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:212 msgid "Find previous occurrence" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:213 msgid "Shift+F3" msgstr "Shift+F3" @@ -9155,151 +10197,144 @@ msgstr "Shift+F3" msgid "Print eBook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:257 msgid "Copy Image" msgstr "ΑντιγÏαφή εικόνας" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:258 msgid "Paste Image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:384 msgid "Change Case" msgstr "Εναλλαγή Κεφαλαία-ΜικÏά" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:373 -msgid "Upper Case" -msgstr "Κεφαλαία" - -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:374 -msgid "Lower Case" -msgstr "Πεζά" - -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:387 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:376 -msgid "Title Case" -msgstr "Κεφαλαία/Πεζά Τίτλου" - -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:846 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:858 msgid "Drag to resize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:893 msgid "Show" msgstr "Εμφάνιση" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:888 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:900 msgid "Hide" msgstr "ΑπόκÏυψη" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:937 msgid "Toggle" msgstr "Εναλλαγή" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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:374 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 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:376 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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:453 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:469 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:665 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 +msgid "" +"You must choose an empty folder for the calibre library. %s is not empty." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 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:42 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:47 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:43 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:48 msgid "The one stop solution to all your e-book needs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:56 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:57 msgid "&Manufacturers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:58 msgid "&Devices" msgstr "&Συσκευές" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 msgid "" "<h2>Congratulations!</h2> 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:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 msgid "" "<h2>Demo videos</h2>Videos demonstrating the various features of calibre are " "available <a href=\"http://calibre-ebook.com/demo\">online</a>." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:51 msgid "" "<h2>User Manual</h2>A User Manual is also available <a href=\"http://calibre-" "ebook.com/user_manual\">online</a>." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:49 msgid "" "<p>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 " @@ -9308,150 +10343,187 @@ msgid "" "Amazon account." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:50 msgid "&Kindle email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:57 msgid "Choose your &language:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" msgstr "Αλλα&γή" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:60 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Γίνεται αποστολή..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "ÎŒ&νομα υπολογιστή:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&ΘÏÏα:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Εμφάνιση" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&ΚÏυπτογÏάφηση:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:49 msgid "" "<p>If you use the <a href=\"http://www.lexcycle.com/download\">Stanza</a> e-" "book app on your iPhone/iTouch, you can access your calibre book collection " @@ -9459,56 +10531,58 @@ msgid "" "server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:50 msgid "Turn on the &content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:230 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:365 msgid "today" msgstr "σήμεÏα" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:233 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:368 msgid "yesterday" msgstr "χθες" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:236 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:371 msgid "thismonth" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:239 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:240 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:374 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:375 msgid "daysago" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:398 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:408 -msgid "no" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/caches.py:398 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:408 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:539 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:549 msgid "unchecked" msgstr "μη επιλεγμένο" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:401 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:411 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:539 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:549 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:184 +msgid "no" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/caches.py:542 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:552 msgid "checked" msgstr "επιλεγμένο" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:401 -#: /home/kovid/work/calibre/src/calibre/library/caches.py:411 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:542 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:552 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:184 msgid "yes" msgstr "ναι" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:405 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:546 msgid "blank" msgstr "κενό" -#: /home/kovid/work/calibre/src/calibre/library/caches.py:405 +#: /home/kovid/work/calibre/src/calibre/library/caches.py:546 msgid "empty" msgstr "άδειο" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -9517,7 +10591,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -9525,7 +10599,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:206 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -9534,7 +10608,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:216 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -9542,7 +10616,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:225 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -9550,7 +10624,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:234 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -9559,7 +10633,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -9567,7 +10641,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -9575,7 +10649,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:262 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -9583,14 +10657,14 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:530 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 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:537 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -9599,14 +10673,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -9615,28 +10689,35 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:561 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:568 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 +msgid "" +"Include 'Series' section in catalog.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:575 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 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:582 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -9645,7 +10726,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:589 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -9655,27 +10736,66 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:596 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 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:41 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 +msgid "Invalid titles" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:18 +msgid "Extra titles" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:19 +msgid "Invalid authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:20 +msgid "Extra authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:21 +msgid "Missing book formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:22 +msgid "Extra book formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:23 +msgid "Unknown files in books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/check_library.py:24 +msgid "Folders raising exception" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:43 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:120 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:122 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:128 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:130 msgid "" "The fields to display when listing books in the database. Should be a comma " "separated list of fields.\n" @@ -9684,55 +10804,56 @@ msgid "" "fields. Only has effect in the text output format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:135 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:137 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:137 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:139 msgid "Sort results in ascending order" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:139 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:141 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:141 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:143 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1044 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:142 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:144 msgid "The string used to separate fields. Default is a space." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:143 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:145 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:165 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:167 msgid "Invalid fields. Available fields:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:172 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:174 msgid "Invalid sort field. Available fields:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:244 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:246 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:267 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:270 msgid "" "%prog add [options] file1 file2 file3 ...\n" "\n" @@ -9741,43 +10862,43 @@ msgid "" "the directory related options below.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:276 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:279 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:278 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:281 msgid "Process directories recursively" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:280 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:283 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:282 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:285 msgid "Add an empty book (a book with no formats)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:284 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:287 msgid "Set the title of the added empty book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:286 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:289 msgid "Set the authors of the added empty book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:288 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:291 msgid "Set the ISBN of the added empty book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:313 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:317 msgid "You must specify at least one file to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:329 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:334 msgid "" "%prog remove ids\n" "\n" @@ -9786,11 +10907,11 @@ msgid "" "command). For example, 23,34,57-85\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:344 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:349 msgid "You must specify at least one book to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:363 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:368 msgid "" "%prog add_format [options] id ebook_file\n" "\n" @@ -9799,15 +10920,15 @@ msgid "" "already exists, it is replaced.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:378 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:383 msgid "You must specify an id and an ebook file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:383 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:388 msgid "ebook file must have an extension" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:391 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:396 msgid "" "\n" "%prog remove_format [options] id fmt\n" @@ -9817,11 +10938,11 @@ msgid "" "EPUB. If the logical book does not have fmt available, do nothing.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:413 msgid "You must specify an id and a format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:426 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:431 msgid "" "\n" "%prog show_metadata [options] id\n" @@ -9831,15 +10952,15 @@ msgid "" "id is an id number from the list command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:434 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:439 msgid "Print metadata in OPF form (XML)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:443 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:448 msgid "You must specify an id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:456 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:463 msgid "" "\n" "%prog set_metadata [options] id /path/to/metadata.opf\n" @@ -9852,11 +10973,11 @@ msgid "" "show_metadata command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:472 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:479 msgid "You must specify an id and a metadata file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:492 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:499 msgid "" "%prog export [options] ids\n" "\n" @@ -9867,27 +10988,27 @@ msgid "" "an opf file). You can get id numbers from the list command.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:500 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:507 msgid "Export all books in database, ignoring the list of ids." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:502 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:509 msgid "Export books to the specified directory. Default is" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:504 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:511 msgid "Export all books into a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:511 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:518 msgid "Specifying this switch will turn this behavior off." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:534 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:541 msgid "You must specify some ids or the %s option" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:554 msgid "" "%prog add_custom_column [options] label name datatype\n" "\n" @@ -9898,23 +11019,23 @@ msgid "" "datatype is one of: {0}\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:563 msgid "" "This column stores tag like data (i.e. multiple comma separated values). " "Only applies if datatype is text." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:560 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:567 msgid "" "A dictionary of options to customize how the data in this column will be " "interpreted." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:573 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:580 msgid "You must specify label, name and datatype" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:631 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:641 msgid "" "\n" " %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" @@ -9925,30 +11046,30 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:645 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:655 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:649 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:659 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:655 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:505 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:665 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:499 msgid "Show detailed output information. Useful for debugging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:668 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:678 msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:710 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:727 msgid "" "\n" " %prog set_custom [options] column id value\n" @@ -9960,17 +11081,17 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:721 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:738 msgid "" "If the column stores multiple values, append the specified values to the " "existing ones, instead of replacing them." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:732 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:749 msgid "Error: You must specify a field name, id and value" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:751 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:768 msgid "" "\n" " %prog custom_columns [options]\n" @@ -9979,19 +11100,19 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:758 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:775 msgid "Show details for each column." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:770 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:787 msgid "You will lose all data in the column: %r. Are you sure (y/n)? " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:772 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:789 msgid "y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:778 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:795 msgid "" "\n" " %prog remove_custom_column [options] label\n" @@ -10001,15 +11122,15 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:786 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:803 msgid "Do not ask for confirmation" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:796 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:813 msgid "Error: You must specify a column label" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:803 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:823 msgid "" "\n" " %prog saved_searches [options] list\n" @@ -10022,39 +11143,133 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:821 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:841 msgid "Error: You must specify an action (add|remove|list)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:829 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:849 msgid "Name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:830 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:850 msgid "Search string:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:836 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:856 msgid "Error: You must specify a name and a search string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:839 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:859 msgid "added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:844 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:864 msgid "Error: You must specify a name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:847 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:867 msgid "removed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:851 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:871 msgid "Error: Action %s not recognized, must be one of: (add|remove|list)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:865 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:879 +msgid "" +"%prog check_library [options]\n" +"\n" +"Perform some checks on the filesystem representing a library. Reports are " +"{0}\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:886 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1036 +msgid "Output in CSV" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:889 +msgid "" +"Comma-separated list of reports.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:893 +msgid "" +"Comma-separated list of extensions to ignore.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:897 +msgid "" +"Comma-separated list of names to ignore.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:927 +msgid "Unknown report check" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:960 +msgid "" +"%prog restore_database [options]\n" +"\n" +"Restore this database from the metadata stored in OPF files in each\n" +"directory of the calibre library. This is useful if your metadata.db file\n" +"has been corrupted.\n" +"\n" +"WARNING: This command completely regenerates your database. You will lose\n" +"all saved searches, user categories, plugboards, stored per-book conversion\n" +"settings, and custom recipes. Restored metadata will only be as accurate as\n" +"what is found in the OPF files.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:975 +msgid "" +"Really do the recovery. The command will not run unless this option is " +"specified." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:988 +msgid "You must provide the --really-do-it option to do a recovery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1025 +msgid "" +"%prog list_categories [options]\n" +"\n" +"Produce a report of the category information in the database. The\n" +"information is the equivalent of what is shown in the tags pane.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1033 +msgid "" +"Output only the number of items in a category instead of the counts per item " +"within the category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1038 +msgid "" +"The character to put around the category value in CSV mode. Default is " +"quotes (\")." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1041 +msgid "" +"Comma-separated list of category lookup names.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1047 +msgid "The string used to separate fields in CSV mode. Default is a comma." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1085 +msgid "CATEGORY ITEMS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:1154 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -10066,133 +11281,145 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:537 +#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:544 msgid "No label was provided" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:539 +#: /home/kovid/work/calibre/src/calibre/library/custom_columns.py:546 msgid "" "The label must contain only lower case letters, digits and underscores, and " "start with a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:71 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:596 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "ΚÏÏιο" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1915 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1944 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1961 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Συμπίεση βάσης δεδομένων" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2054 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2095 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2117 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:122 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:139 msgid "Ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:276 +msgid "Title Sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/restore.py:125 +msgid "Processed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/restore.py:191 +msgid "creating custom column " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 msgid "The title" msgstr "Ο τίτλος" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 msgid "The authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 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 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:37 msgid "The series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:38 msgid "" "The series number. To get leading zeros use {series_index:0>3s} or " "{series_index:>3s} for leading spaces" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:41 msgid "The rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:42 msgid "The ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:43 msgid "The publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:44 msgid "The date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:37 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:45 msgid "The published date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:38 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:48 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:56 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:54 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:62 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:57 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:65 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:60 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:68 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:63 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:71 msgid "" "Comma separated list of formats to save for each book. By default all " -"available books are saved." +"available formats are saved." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:66 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:74 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 " @@ -10200,7 +11427,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:71 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:79 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 " @@ -10208,7 +11435,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:78 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:86 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -10216,21 +11443,22 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:84 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:92 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:95 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:87 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:98 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:89 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:100 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:263 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:335 msgid "Requested formats not available" msgstr "" @@ -10275,141 +11503,289 @@ msgid "" "disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 -msgid "Password to access your calibre library. Username is " +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:48 +msgid "" +"Prefix to prepend to all URLs. Useful for reverseproxying to this server " +"from Apache/nginx/etc." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:28 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 +msgid "Loading, please wait" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 +msgid "First" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 +msgid "Last" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 +msgid "Previous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 +msgid "Next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 +msgid "Browsing %d books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 +msgid "Average rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 +msgid "%s: %.1f stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 +msgid "%d stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +msgid "Popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 +msgid "Sort by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 +msgid "library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 +msgid "home" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 +msgid "Newest" +msgstr "ÎεώτεÏη" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 +msgid "All books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 +msgid "Browse books by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 +msgid "Choose a category to browse by:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 +msgid "Browsing by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 +msgid "Up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 +msgid "in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 +msgid "Books in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 +msgid "Other formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +msgid "Read %s in the %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 +msgid "Get" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 +msgid "Permalink" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 +msgid "A permanent link to this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 +msgid "This book has been deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 +msgid "in search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 +msgid "Matching books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:39 msgid "" "[options]\n" "\n" -"Start the calibre content server." +"Start the calibre content server. The calibre content server\n" +"exposes your calibre library over the internet. The default interface\n" +"allows you to browse you calibre library by categories. You can also\n" +"access an interface optimized for mobile browsers at /mobile and an\n" +"OPDS based interface for use with reading applications at /opds.\n" +"\n" +"The OPDS interface is advertised via BonJour automatically.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:30 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:52 msgid "Path to the library folder to serve with the content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:32 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:54 msgid "Write process PID to the specified file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:36 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:58 msgid "" "Specifies a restriction to be used for this invocation. This option " "overrides any per-library settings specified in the GUI" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:110 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:62 +msgid "" +"Auto reload server when source code changes. May not work in all " +"environments." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:129 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:131 msgid "%d items" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:146 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:149 msgid "RATING: %s<br />" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:149 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:152 msgid "TAGS: %s<br />" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:153 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:157 msgid "SERIES: %s [%s]<br />" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:233 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:248 msgid "Books in your library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:239 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:254 msgid "By " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:240 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:255 msgid "Books sorted by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:568 -msgid "Newest" -msgstr "ÎεώτεÏη" - -#: /home/kovid/work/calibre/src/calibre/utils/config.py:34 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:32 msgid "%sUsage%s: %s\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:78 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:76 msgid "Created by " msgstr "ΔημιουÏγήθηκε απο τον " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:79 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:77 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:696 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:697 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:698 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:699 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:700 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:701 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:702 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:703 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:704 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:705 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:706 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:707 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:708 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:709 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:712 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:713 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:714 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:715 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:716 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:717 msgid "The priority of worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:718 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:719 msgid "Swap author first and last names when reading metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:720 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:721 msgid "Add new formats to existing book records" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:725 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:723 +msgid "Tags to apply to books added to the library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:727 msgid "List of named saved searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:726 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:728 msgid "User-created tag browser categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:728 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:730 msgid "How and when calibre updates metadata on the device." msgstr "" +#: /home/kovid/work/calibre/src/calibre/utils/formatter.py:33 +msgid "lookup requires either 2 or an odd number of arguments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/formatter.py:56 +msgid "switch requires an odd number of arguments" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." msgstr "Αναμονή..." @@ -10507,13 +11883,55 @@ msgid "German (AT)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:115 -msgid "Dutch (NL)" +msgid "French (BE)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:116 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:117 msgid "Dutch (BE)" msgstr "" +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:56 +msgid "Choose theme (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:188 +msgid "No interpreter" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:189 +msgid "No active interpreter found. Try restarting the console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:203 +msgid "Interpreter died" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/console.py:204 +msgid "" +"Interpreter dies while excuting a command. To see the command, click Show " +"details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:20 +msgid "Welcome to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:41 +msgid " console " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:51 +msgid "Code is running" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/pyconsole/main.py:58 +msgid "Restart console" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 msgid "URL must have the scheme sftp" msgstr "" @@ -10530,7 +11948,7 @@ msgstr "" msgid "Failed to authenticate with server: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "" @@ -10543,124 +11961,124 @@ msgid "Unknown feed" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:158 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:183 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:185 msgid "Untitled article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:22 msgid "Download periodical content from the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:37 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 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:40 msgid "Username for sites that require a login to access content." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:43 msgid "Password for sites that require a login to access content." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:47 msgid "" "Do not download latest version of builtin recipes from the calibre server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:47 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:628 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:708 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:727 msgid "Download finished" msgstr "Η λήψη τελείωσε" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:710 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:729 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:716 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:735 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:718 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:737 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:720 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:809 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:834 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:830 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:855 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:860 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:841 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:869 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:843 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:871 msgid "Generating masthead..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:924 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:952 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:940 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:968 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:950 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:977 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:962 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:986 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1003 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1032 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1200 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1282 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1299 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1446 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1434 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1461 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." @@ -10681,55 +12099,55 @@ msgstr "ΠÏογÏαμματισμένο" msgid "Custom" msgstr "ΠÏοσαÏμοσμένο" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 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:491 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 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:494 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 msgid "" "The maximum number of files to download. This only applies to files from <a " "href> tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:490 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:492 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:500 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 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:502 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 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 " @@ -10738,13 +12156,22 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:504 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 msgid "Do not download CSS stylesheets." msgstr "" +#~ msgid "Communicate with the Nokia 810 internet tablet." +#~ msgstr "Επικοινωνία με το Nokia 810 internet tablet." + #~ msgid "Communicate with the Teclast K3 reader." #~ msgstr "Επικοινωνία με το Teclast K3 reader." +#~ msgid "Set font delta" +#~ msgstr "ΚαθοÏισμός του δέλτα της γÏαμματοσειÏάς" + +#~ msgid " " +#~ msgstr " " + #~ msgid "Communicate with the Kindle 2 eBook reader." #~ msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Kindle 2." @@ -10753,3 +12180,27 @@ msgstr "" #~ msgid "Communicate with the Sony PRS-600/700/900 eBook reader." #~ msgstr "Επικοινωνία με το ηλ.αναγνωστήÏιο Sony PRS-600/700/900." + +#~ msgid "Path to a txt file containing a comment." +#~ msgstr "ΔιεÏθυνση ενός αÏχείου txt που πεÏιέχει κάποιο σχόλιο" + +#~ msgid "Output directory. Defaults to current directory" +#~ msgstr "Φάκελλος εξαγωγής. ΑÏχικά έχει καθοÏιστεί ο Ï„Ïέχων φάκελλος" + +#~ msgid "%prog [options] mybook.chm" +#~ msgstr "%prog [παÏάμετÏοι] mybook.chm" + +#~ msgid "General" +#~ msgstr "Γενικά" + +#~ msgid "Invalid size" +#~ msgstr "Μη έγκυÏο μέγεθος" + +#~ msgid "Text" +#~ msgstr "Κείμενο" + +#~ msgid "Number" +#~ msgstr "ΑÏιθμός" + +#~ msgid "Reader" +#~ msgstr "Αναγνώστης" diff --git a/src/calibre/translations/en_GB.po b/src/calibre/translations/en_GB.po index cdef318587..8a286ac249 100644 --- a/src/calibre/translations/en_GB.po +++ b/src/calibre/translations/en_GB.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 20:32+0000\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-27 10:19+0000\n" "Last-Translator: Vladimir Oka <Unknown>\n" "Language-Team: English (United Kingdom) <en_GB@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-11 04:42+0000\n" +"X-Launchpad-Export-Date: 2010-11-28 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,11 +27,11 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -40,8 +40,8 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -55,7 +55,7 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -74,14 +74,14 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -89,7 +89,7 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -109,10 +109,10 @@ 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:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -121,15 +121,15 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -137,14 +137,14 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -185,14 +185,14 @@ msgstr "User Interface Action" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Preferences" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -202,7 +202,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:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -210,7 +210,7 @@ msgstr "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -220,7 +220,7 @@ msgstr "" "directory pmlname_img or images. This plugin is run every time you add a PML " "file to the library." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Extract cover from comic files" @@ -267,44 +267,44 @@ msgstr "Set metadata in %s files" msgid "Set metadata from %s files" msgstr "Set metadata from %s files" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Look and Feel" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interface" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" "Adjust the look and feel of the calibre interface to suit your tastes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Behaviour" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Change the way calibre behaves" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Add your own columns" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Add/remove your own columns to the calibre book list" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Customise the toolbar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -312,56 +312,56 @@ msgstr "" "Customise the toolbars and context menus, changing which actions are " "available in each" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Input Options" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Conversion" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "Set conversion options specific to each input format" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Common Options" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Set conversion options common to all formats" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Output Options" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Set conversion options specific to each output format" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Adding books" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Import/Export" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "Control how calibre reads metadata from files when adding books" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Saving books to disc" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -369,32 +369,32 @@ msgstr "" "Control how calibre exports files from its database to disc when using Save " "to disc" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Sending books to devices" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Control how calibre transfers files to your ebook reader" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Metadata plugboards" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Change metadata fields before saving/sending" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Sharing books by email" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Sharing" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -402,11 +402,11 @@ msgstr "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Sharing over the net" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -414,33 +414,33 @@ msgstr "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Plugins" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Advanced" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Add/remove/customise various bits of calibre functionality" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Tweaks" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "Fine tune how calibre behaves in various contexts" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Miscellaneous" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Miscellaneous advanced configuration" @@ -485,7 +485,7 @@ msgstr "" "no information about the input document." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -496,62 +496,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "This profile is intended for the SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "This profile is intended for the SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 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:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "This profile is intended for the Mobipocket books." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "This profile is intended for the Hanlin V3 and its clones." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "This profile is intended for the Hanlin V5 and its clones." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "This profile is intended for the Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "This profile is intended for the Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "This profile is intended for the Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "This profile is intended for the Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "This profile is intended for the IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "This profile is intended for the IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "This profile is intended for the B&N Nook." @@ -569,29 +569,29 @@ 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:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Intended for the iPad and similar devices with a resolution of 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "Intended for generic tablet devices, does no resizing of images" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "This profile is intended for the Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "This profile is intended for the SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "This profile is intended for the 5-inch JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -599,11 +599,15 @@ 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:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "This profile is intended for the Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "This profile is intended for the B&N Nook Color." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "This profile is intended for the Sanda Bambook." @@ -679,7 +683,7 @@ msgstr "Disable the named plugin" msgid "Communicate with Android phones." msgstr "Communicate with Android devices." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -687,7 +691,7 @@ msgstr "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Communicate with S60 phones." @@ -764,18 +768,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "News" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Catalogue" @@ -801,6 +805,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Communicate with the Cybook Gen 3 / Opus eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Communicate with the Cybook Orizon eBook reader." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Communicate with the EB600 eBook reader." @@ -813,6 +821,10 @@ msgstr "Communicate with the Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Communicate with the PocketBook 301 reader." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Communicate with the PocketBook 602 reader." + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -873,8 +885,8 @@ msgstr "Communicate with the SpringDesign Alex eBook reader." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -963,26 +975,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Getting list of books on device..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Removing books from device metadata listing..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Adding books to device metadata listing..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Not Implemented" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1023,6 +1035,10 @@ msgstr "Communicate with the VelocityMicro" msgid "Communicate with the GM2000" msgstr "Communicate with the GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Communicate with the Acer Lumiread" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Communicate with the Nokia 770 internet tablet." @@ -1043,6 +1059,14 @@ msgstr "The Nook" msgid "Communicate with the Nook eBook reader." msgstr "Communicate with the Nook eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Communicate with the Nook Color eBook reader." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Communicate with the Nuut2 eBook reader." @@ -2073,14 +2097,6 @@ msgstr "" "can result in various nasty side effects in the rest of of the conversion " "pipeline." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"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." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "CSS file used for the output instead of the default file" @@ -2245,7 +2261,7 @@ msgid "Path to output file" msgstr "Path to output file" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Verbose processing" @@ -2474,7 +2490,7 @@ msgstr "Comments" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Tags" @@ -2625,6 +2641,7 @@ msgid "No cover found" msgstr "No cover found" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Cover download" @@ -2692,19 +2709,19 @@ msgstr "description/reviews" msgid "Download %s from %s" msgstr "Download %s from %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Convert comments downloaded from %s to plain text" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Downloads metadata from Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Downloads metadata from isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2712,15 +2729,15 @@ msgstr "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Downloads social metadata from amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Downloads series/tags/rating information from librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2744,23 +2761,24 @@ msgstr "" "isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "The ISBN ID of the book you want metadata for." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "The author whose book to search for." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "The title of the book to search for." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "The publisher of the book to search for." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " not found." @@ -2778,8 +2796,24 @@ msgstr "" "Fetch a cover image/social metadata for the book identified by ISBN from " "LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Downloads metadata from french Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Downloads covers from french Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "Nicebooks timed out. Try again later." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "An errror occured with Nicebooks cover fetcher" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Cover" @@ -2820,70 +2854,70 @@ msgstr "All articles" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "This is an Amazon Topaz book. It cannot be processed." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Title Page" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Table of Contents" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glossary" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Acknowledgements" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliography" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Colophon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dedication" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraph" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Foreword" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "List of Illustrations" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "List of Tables" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Notes" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Preface" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Main Text" @@ -2891,7 +2925,7 @@ msgstr "Main Text" msgid "%s format books are not supported" msgstr "%s format books are not supported" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Book %s of %s" @@ -2902,7 +2936,7 @@ msgstr "HTML TOC generation options." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Rating" @@ -2934,7 +2968,7 @@ msgstr "Footnotes" msgid "Sidebar" msgstr "Sidebar" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2944,7 +2978,7 @@ msgstr "" "Normally calibre treats blank lines as paragraph markers. With this option " "it will assume that every line represents a paragraph instead." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3254,7 +3288,7 @@ msgid "" msgstr "" "Specify the character encoding of the output document. The default is cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3489,7 +3523,7 @@ msgid "Disable UI animations" msgstr "Disable UI animations" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Copied" @@ -3501,7 +3535,7 @@ msgstr "Copy" msgid "Copy to Clipboard" msgstr "Copy to Clipboard" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Choose Files" @@ -3553,89 +3587,89 @@ msgstr "How many empty books?" msgid "How many empty books should be added?" msgstr "How many empty books should be added?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Uploading books to device." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB Books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF Books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML Books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT Books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI Books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Topaz books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Text books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF Books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB Books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Comics" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Archives" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Supported books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Merged some books" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Some duplicates were found and merged into the following existing books:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Failed to read metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Failed to read metadata from the following" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Add to library" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3643,13 +3677,13 @@ msgstr "Add to library" msgid "No book selected" msgstr "No book selected" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "The following books are virtual and cannot be added to the calibre library:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "No book files found" @@ -3662,7 +3696,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Add books to your calibre library from the connected device" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Fetch annotations (experimental)" @@ -3759,7 +3793,7 @@ msgid "Checking database integrity" msgstr "Checking database integrity" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3775,19 +3809,19 @@ msgstr "Some inconsistencies found" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d books" @@ -3933,7 +3967,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Not allowed" @@ -3965,6 +3999,10 @@ msgstr "Cannot convert" msgid "Starting conversion of %d book(s)" msgstr "Starting conversion of %d book(s)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "Empty output file, probably the conversion process crashed" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Copy to library" @@ -3999,9 +4037,9 @@ msgid "Could not copy books: " msgstr "Could not copy books: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Failed" @@ -4062,14 +4100,14 @@ msgid "Main memory" msgstr "Main memory" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Storage Card A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Storage Card B" @@ -4214,7 +4252,7 @@ msgid "covers" msgstr "covers" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadata" @@ -4315,6 +4353,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Run welcome wizard" @@ -4403,7 +4442,7 @@ msgid "Click the show details button to see which ones." msgstr "Click the show details button to see which ones." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Show book details" @@ -4545,7 +4584,7 @@ msgid "The specified directory could not be processed." msgstr "The specified directory could not be processed." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "No books" @@ -4842,7 +4881,7 @@ msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4885,7 +4924,7 @@ msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Form" @@ -4972,23 +5011,23 @@ msgstr "CSV/XML Options" msgid "E-book options" msgstr "E-book options" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "'Don't include this book' tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "'Mark this book as read' tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Additional note tag prefix:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "Regex pattern describing tags to exclude as genres:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5002,22 +5041,26 @@ msgstr "" "- A regex pattern of a single dot excludes all genre tags, generating no " "Genre Section" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Include 'Titles' Section" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Include 'Recently Added' Section" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Sort numbers as text" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "Include 'Series' Section" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Wishlist tag:" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Tab template for catalog.ui" @@ -5045,11 +5088,11 @@ msgstr "" "in a previous conversion (if they exist) instead of using the defaults " "specified in the Preferences" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Bulk Convert" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Options specific to the output format." @@ -5520,7 +5563,7 @@ 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:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Author(s): " @@ -5538,7 +5581,7 @@ msgstr "" "comma" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Publisher: " @@ -5549,7 +5592,7 @@ msgid "Ta&gs: " msgstr "Ta&gs: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5559,7 +5602,7 @@ msgstr "" "<br><br>They can be any words or phrases, separated by commas." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5567,8 +5610,8 @@ msgstr "&Series:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -6084,7 +6127,7 @@ msgid "Automatically number books" msgstr "Automatically number books" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Force numbers to start with " @@ -6100,221 +6143,163 @@ msgstr "tags to add" msgid "tags to remove" msgstr "tags to remove" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "No details available." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "Device no longer connected." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Get device information" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Get list of books on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Get annotations from device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Send metadata to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Send collections to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Upload %d books to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Delete books from device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Download books from device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "View book on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Set default send to device action" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Send to main memory" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Send to storage card A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Send to storage card B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Main Memory" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Send specific format to" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Send and delete from library" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Eject device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Error communicating with device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 -msgid "Select folder to open as device" -msgstr "Select folder to open as device" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 -msgid "Error talking to device" -msgstr "Error talking to device" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 -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/device.py:770 -msgid "Device: " -msgstr "Device: " - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 -msgid " detected." -msgstr " detected." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 -msgid "selected to send" -msgstr "selected to send" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 -msgid "Choose format to send to device" -msgstr "Choose format to send to device" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 -msgid "No device" -msgstr "No device" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 -msgid "Cannot send: No device is connected" -msgstr "Cannot send: No device is connected" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 -msgid "No card" -msgstr "No card" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 -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:934 -msgid "E-book:" -msgstr "E-book:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -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:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "by" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "in the %s format." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Sending email to" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 msgid "No suitable formats" msgstr "No suitable formats" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "Auto convert the following books before sending via email?" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 +msgid "Select folder to open as device" +msgstr "Select folder to open as device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 +msgid "Error talking to device" +msgstr "Error talking to device" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" -"Could not email the following books as no suitable formats were found:" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." msgstr "" -"Could not email the following books as no suitable formats were found:" +"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/device.py:1009 -msgid "Failed to email books" -msgstr "Failed to email books" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 +msgid "Device: " +msgstr "Device: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Failed to email the following books:" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 +msgid " detected." +msgstr " detected." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Sent by email:" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 +msgid "selected to send" +msgstr "selected to send" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "News:" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 +msgid "Choose format to send to device" +msgstr "Choose format to send to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Attached is the" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 +msgid "No device" +msgstr "No device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Sent news to" +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 +msgid "Cannot send: No device is connected" +msgstr "Cannot send: No device is connected" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 +msgid "No card" +msgstr "No card" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 +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:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 msgid "Auto convert the following books before uploading to the device?" msgstr "Auto convert the following books before uploading to the device?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Sending catalogues to device." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Sending news to device." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Sending books to device." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6322,11 +6307,11 @@ msgstr "" "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." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "No space on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6370,15 +6355,21 @@ msgstr "Add books by ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Paste from clipboard" @@ -6465,7 +6456,7 @@ msgstr "Path from library" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Name" @@ -6518,7 +6509,7 @@ msgid "No location selected" msgstr "No location selected" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Bad location" @@ -6618,12 +6609,12 @@ msgid "Author sort" msgstr "Author sort" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Invalid author name" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Author names cannot contain & characters." @@ -6776,50 +6767,50 @@ msgstr "Search/Replace" msgid "Working" msgstr "Working" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Lower Case" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Upper Case" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Title Case" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Character match" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Regular Expression" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Replace field" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Prepend to field" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Append to field" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Editing meta information for <b>%d books</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Book %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -6831,7 +6822,7 @@ msgstr "" "your library before proceeding.<p>Search and replace in text fields using " "character matching or regular expressions. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6847,7 +6838,7 @@ msgstr "" "checked, the search text must match exactly. If it is unchecked, the search " "text will match both upper- and lower-case letters" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6873,31 +6864,31 @@ msgstr "" "information on python's regular expressions, and in particular the 'sub' " "function." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "You must specify a destination when source is a composite field" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Search/replace invalid" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" "Authors cannot be set to the empty string. Book title %s not processed" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "Title cannot be set to the empty string. Book title %s not processed" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Search pattern is invalid: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6905,19 +6896,19 @@ msgstr "" "Applying changes to %d books.\n" "Phase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Edit Meta information" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "A&utomatically set author sort" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "Author s&ort: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -6925,63 +6916,63 @@ 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:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Rating:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "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:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "No change" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " stars" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Add ta&gs: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Open Tag Editor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Remove tags:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 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:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Check this box to remove all tags from the books." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Remove all" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "If checked, the series will be cleared" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Clear series" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -6993,11 +6984,11 @@ msgstr "" "you selected them. So if you selected Book A and then Book B,\n" "Book A will have series number 1 and Book B series number 2." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Automatically number books in this series" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7007,15 +6998,15 @@ msgstr "" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Remove &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Swap title and author" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7025,11 +7016,11 @@ msgstr "" "checked,\n" "title and author are swapped before the title case is set" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Change title to title case" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7039,33 +7030,33 @@ msgstr "" "\n" "Future conversion of these books will use the default settings." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "Remove &stored conversion settings for the selected books" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "&Basic metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "&Custom metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Search &field:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "The name of the field that you want to search" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Search mode:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7073,35 +7064,35 @@ msgstr "" "Choose whether to use basic text matching or advanced regular expression " "matching" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Search for:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 -msgid "" -"Enter the what you are looking for, either plain text or a regular " -"expression, depending on the mode" -msgstr "" -"Enter the what you are looking for, either plain text or a regular " -"expression, depending on the mode" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" +"Enter the what you are looking for, either plain text or a regular " +"expression, depending on the mode" +msgstr "" +"Enter the what you are looking for, either plain text or a regular " +"expression, depending on the mode" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Case sensitive" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "&Replace with:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -7109,11 +7100,11 @@ msgstr "" "The replacement text. The matched search text will be replaced with this " "string" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Apply function after replace:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7125,11 +7116,11 @@ msgstr "" "field is processed. In regular expression mode, only the matched text is " "processed" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "&Destination field:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7137,15 +7128,15 @@ msgstr "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Mode:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Specify how the text should be copied into the destination." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7155,23 +7146,23 @@ msgstr "" "comma or\n" "nothing should be put between the original text and the inserted text" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "use comma" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "Test &text" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Test re&sult" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Your test:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" msgstr "&Search and replace" @@ -7456,20 +7447,21 @@ msgstr "Password needed" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&Username:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Password:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Show password" @@ -7709,46 +7701,46 @@ msgid "Advanced Search" msgstr "Advanced Search" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "Find entries that have..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "&All these words:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "This exact &phrase:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "&One or more of these words:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "But dont show entries that have..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "Any of these &unwanted words:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "What kind of match to use:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" +msgstr "Contains: the word or phrase matches anywhere in the metadata field" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "Equals: the word or phrase must match the entire metadata field" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" +"Regular expression: the expression must match anywhere in the metadata field" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Find entries that have..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&All these words:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "This exact &phrase:" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "Contains: the word or phrase matches anywhere in the metadata" +msgid "&One or more of these words:" +msgstr "&One or more of these words:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "Equals: the word or phrase must match an entire metadata field" +msgid "But dont show entries that have..." +msgstr "But dont show entries that have..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "" -"Regular expression: the expression must match anywhere in the metadata" +msgid "Any of these &unwanted words:" +msgstr "Any of these &unwanted words:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -7934,12 +7926,12 @@ msgid "%s (was %s)" msgstr "%s (was %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "Item is blank" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "An item cannot be set to nothing. Delete it instead." @@ -8022,7 +8014,7 @@ msgid "Discard changes" msgstr "Discard changes" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Cancel" @@ -8228,6 +8220,61 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Recipe source code (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "Email %s to %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "News:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "Attached is the %s periodical downloaded by calibre." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "E-book:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "Attached, you will find the e-book" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "by" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "in the %s format." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Sending email to" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "Auto convert the following books before sending via email?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +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/email.py:303 +msgid "Failed to email book" +msgstr "Failed to email book" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "sent" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Sent news to" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8423,23 +8470,23 @@ msgstr "Cannot kill jobs that communicate with the device" msgid "Job has already run" msgstr "Job has already run" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Unavailable" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Jobs:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Click to see list of jobs" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Jobs" @@ -8465,7 +8512,7 @@ msgid "Show books in the main memory of the device" msgstr "Show books in the main memory of the device" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Card A" @@ -8474,7 +8521,7 @@ msgid "Show books in storage card A" msgstr "Show books on storage card A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Card B" @@ -8556,7 +8603,7 @@ msgstr "Book %s of %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "The lookup/search name is \"{0}\"" @@ -8585,47 +8632,47 @@ msgstr "Marked for deletion" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Double click to <b>edit</b> me<br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Hide column %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Sort on %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Ascending" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Descending" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Change text alignment for %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Left" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Right" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centre" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Show column" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Restore default layout" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8658,7 +8705,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>No matches</b> for the search phrase <i>%s</i> were found." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "No matches found" @@ -8675,12 +8722,12 @@ msgid "LRF Viewer toolbar" msgstr "LRF Viewer toolbar" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Next Page" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Previous Page" @@ -8724,7 +8771,7 @@ msgid "Do not check for updates" msgstr "Do not check for updates" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Calibre Library" @@ -8858,37 +8905,37 @@ msgstr "Book has neither title nor ISBN" msgid "No matches found for this book" msgstr "No matches found for this book" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "Failed to download metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "cover" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Downloaded" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "Failed to get" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s for: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Done" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "Successfully downloaded metadata for %d out of %d books" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Details" @@ -9431,27 +9478,27 @@ msgstr "Show &text under icons:" msgid "&Split the toolbar into two toolbars" msgstr "&Split the toolbar into two toolbars" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Apply" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Restore &defaults" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Save changes" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Cancel and return to overview" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "Restoring to defaults not supported for" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9459,7 +9506,7 @@ msgstr "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9467,7 +9514,7 @@ msgstr "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Restart needed" @@ -9814,7 +9861,7 @@ msgstr "" "by customising the device interface plugins in Preferences->Advanced->Plugins" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Failed to start content server" @@ -10030,7 +10077,7 @@ msgstr "&Current tweaks" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Search" @@ -10128,26 +10175,22 @@ msgstr "Clear" msgid "&Alternate shortcut:" msgstr "&Alternate shortcut:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Rename '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Edit sort for '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Hide category %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Show category" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Show all categories" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10162,66 +10205,70 @@ msgstr "Manage Saved Searches" msgid "Manage User Categories" msgstr "Manage User Categories" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Show all categories" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" "Changing the authors for several books can take a while. Are you sure?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "Changing the metadata for that many books can take a while. Are you sure?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Searches" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Duplicate search name" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "The saved search name %s is already used." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Sort by name" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Sort by popularity" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Sort by average rating" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Set the sort order for entries in the Tag Browser" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Match all" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Match any" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "When selecting multiple entries in the Tag Browser match any or all of them" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Manage &user categories" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Add your own categories to the Tag Browser" @@ -10268,28 +10315,28 @@ msgstr "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Restore" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Donate to support calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Eject connected device" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Calibre Quick Start Guide" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Conversion Error" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10297,15 +10344,15 @@ msgstr "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Recipe Disabled" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Failed</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10315,11 +10362,11 @@ msgstr "" "you find it useful, please consider donating to support its development. " "Your donation helps keep calibre development going." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 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:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10329,11 +10376,11 @@ msgstr "" " Quitting may cause corruption on the device.<br>\n" " Are you sure you want to quit?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "WARNING: Active jobs" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10511,17 +10558,17 @@ msgstr "&Keyboard shortcuts" msgid "No results found for:" msgstr "No results found for:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Options to customise the ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Remember last used window size" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10529,80 +10576,80 @@ msgstr "" "Set the user CSS stylesheet. This can be used to customise the look of all " "books." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Maximum width of the viewer window, in pixels." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "Resize images larger than the viewer window to fit inside it" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Hyphenate text" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Default language for hyphenation rules" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Font options" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "The serif font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "The sans-serif font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "The monospaced font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "The standard font size in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "The monospaced font size in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "The standard font type" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&Lookup in dictionary" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /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/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Next Section" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Previous Section" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Document Start" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Document End" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Section Start" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Section End" @@ -10670,87 +10717,87 @@ msgstr "Go to a reference. To get reference numbers, use the reference mode." msgid "Search for text in book" msgstr "Search for text in book" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Print Preview" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Connecting to dict.org to lookup: <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Choose ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Ebooks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "No matches found for: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Loading flow..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Laying out %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Bookmark #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Add bookmark" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Enter title for bookmark:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Manage Bookmarks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Loading ebook..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM Error" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>This book is protected by <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Could not open ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Options to control the ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 -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:705 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:708 +msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "If specified, viewer window will try to open full screen when started." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Print javascript alert and console messages to the console" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10868,7 +10915,7 @@ msgstr "Hide" msgid "Toggle" msgstr "Toggle" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -10878,7 +10925,7 @@ msgstr "" "your calibre book collection directly on the device. To do this you have to " "turn on the content server." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -10886,7 +10933,7 @@ msgstr "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -10896,20 +10943,20 @@ msgstr "" "WordPlayer. Here myhostname should be the fully qualified hostname or the IP " "address of the computer calibre is running on." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Moving library..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Failed to move library" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Invalid database" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -10917,21 +10964,21 @@ msgstr "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Could not move library" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Select location for books" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "You must choose an empty folder for the calibre library. %s is not empty." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "welcome wizard" @@ -11016,11 +11063,11 @@ msgstr "Choose your &language:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11036,48 +11083,78 @@ msgstr "" "location. If a calibre library already exists at the new location, calibre " "will switch to using it." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Using: %s:%s@%s:%s and %s encryption" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Sending..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "Mail successfully sent" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Finish gmail setup" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "Your %s &email address:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "Your %s &username:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "Your %s &password:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "Setup" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Bad configuration" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "You must set the From email address" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "You must set the username and password for the mail server." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Send email &from:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11085,7 +11162,7 @@ msgstr "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11093,49 +11170,49 @@ msgstr "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "Mail &Server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "calibre can <b>optionally</b> use a server to send mail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Hostname:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "The hostname of your mail server. For e.g. smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "The port your mail server listens for connections on. The default is 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "Your username on the mail server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "Your password on the mail server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Show" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Encryption:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11143,23 +11220,35 @@ msgstr "" "Use TLS encryption when connecting to the mail server. This is the most " "common." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Use SSL encryption when connecting to the mail server." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "WARNING: Using no encryption is highly insecure" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "&None" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Use Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Use Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Test email" @@ -11226,7 +11315,7 @@ msgstr "blank" msgid "empty" msgstr "empty" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11240,7 +11329,7 @@ msgstr "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11252,7 +11341,7 @@ msgstr "" "Default: '%default'\n" "Applies to: CSV, XML output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11266,7 +11355,7 @@ msgstr "" "Default: '%%default'\n" "Applies to: BIBTEX output format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11278,7 +11367,7 @@ msgstr "" "Default: '%default'\n" "Applies to: BIBTEX output format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11290,7 +11379,7 @@ msgstr "" "Default: '%default'\n" "Applies to: BIBTEX output format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11304,7 +11393,7 @@ msgstr "" "Default: '%%default'\n" "Applies to: BIBTEX output format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11316,7 +11405,7 @@ msgstr "" "Default: '%default'\n" "Applies to: BIBTEX output format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11328,7 +11417,7 @@ msgstr "" "Default: '%default'\n" "Applies to: BIBTEX output format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11340,7 +11429,7 @@ msgstr "" "Default: '%default'\n" "Applies to: BIBTEX output format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11350,7 +11439,7 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11364,7 +11453,7 @@ msgstr "" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11374,7 +11463,7 @@ msgstr "" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11388,7 +11477,7 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11398,7 +11487,7 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11408,7 +11497,7 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11418,7 +11507,7 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11428,7 +11517,7 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11442,7 +11531,7 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11458,7 +11547,7 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11468,6 +11557,16 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Invalid titles" @@ -12176,35 +12275,35 @@ msgstr "" "The label must contain only lower case letters, digits and underscores, and " "start with a letter" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sAverage rating is %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Main" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "<p>Migrating old database to ebook library in %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Copying <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Compacting database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Checking SQL integrity..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Checking for missing files." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "Checked id" @@ -12428,128 +12527,129 @@ msgstr "" "Prefix to prepend to all URLs. Useful for reverseproxying to this server " "from Apache/nginx/etc." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -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/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "Loading, please wait" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "Go to" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "First" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Last" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Previous" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Next" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "Browsing %d books" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Average rating" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f stars" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d stars" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Popularity" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Sort by" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "library" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "home" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Newest" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "All books" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Browse books by" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Choose a category to browse by:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Browsing by" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Up" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "in" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Books in" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Other formats" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Read %s in the %s format" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Get" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Permalink" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "A permanent link to this book" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "This book has been deleted" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "in search" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Matching books" @@ -12883,7 +12983,7 @@ msgstr "Failed to negotiate SSH session: " msgid "Failed to authenticate with server: %s" msgstr "Failed to authenticate with server: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Control email delivery" @@ -13369,6 +13469,18 @@ msgstr "Do not download CSS stylesheets." #~ msgid "Send specific format to main memory" #~ msgstr "Send specific format to main memory" +#~ msgid "Failed to email the following books:" +#~ msgstr "Failed to email the following books:" + +#~ msgid "Failed to email books" +#~ msgstr "Failed to email books" + +#~ msgid "Sent by email:" +#~ msgstr "Sent by email:" + +#~ msgid "Attached is the" +#~ msgstr "Attached is the" + #~ msgid "" #~ "Email\n" #~ "Delivery" @@ -13376,6 +13488,9 @@ msgstr "Do not download CSS stylesheets." #~ "Email\n" #~ "Delivery" +#~ msgid "Finish gmail setup" +#~ msgstr "Finish gmail setup" + #~ msgid "Customize %s" #~ msgstr "Customize %s" @@ -13438,6 +13553,9 @@ msgstr "Do not download CSS stylesheets." #~ "The format in which to output the data. Available choices: %s. Defaults is " #~ "text." +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "Password to access your calibre library. Username is " + #~ msgid "" #~ "[options]\n" #~ "\n" @@ -13500,3 +13618,60 @@ msgstr "Do not download CSS stylesheets." #~ msgid " " #~ msgstr " " + +#~ 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 "" +#~ "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." + +#~ 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 "" +#~ "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." + +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." + +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Regular expression: the expression must match anywhere in the metadata" + +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "Contains: the word or phrase matches anywhere in the metadata" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "Equals: the word or phrase must match an entire metadata field" + +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" + +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" + +#~ msgid "No details available" +#~ msgstr "No details available" diff --git a/src/calibre/translations/es.po b/src/calibre/translations/es.po index 890f092200..1150dfb8e2 100644 --- a/src/calibre/translations/es.po +++ b/src/calibre/translations/es.po @@ -10,17 +10,17 @@ msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 21:13+0000\n" -"Last-Translator: DiegoJ <diegojromerolopez@gmail.com>\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-29 04:44+0000\n" +"Last-Translator: Fitoschido <Unknown>\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-11-11 04:42+0000\n" +"X-Launchpad-Export-Date: 2010-11-30 04:46+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -28,7 +28,7 @@ msgstr "" "Este perfil está pensado para la línea PRS de SONY. Los 500/505/700, etc., " "en modo apaisado. Útil principalmente para cómics." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Este perfil está pensado para el Kindle DX de Amazon." @@ -46,11 +46,11 @@ msgstr "No hace absolutamente nada" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -59,8 +59,8 @@ msgstr "No hace absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -74,7 +74,7 @@ msgstr "No hace absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -93,14 +93,14 @@ msgstr "No hace absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -108,7 +108,7 @@ msgstr "No hace absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -128,10 +128,10 @@ msgstr "No hace absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -140,15 +140,15 @@ msgstr "No hace absolutamente nada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -156,14 +156,14 @@ msgstr "No hace absolutamente nada" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -204,14 +204,14 @@ msgstr "Acción de interfaz de usuario" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Preferencias" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -221,7 +221,7 @@ msgstr "" "con los archivos enlazados. Este complemento se ejecuta cada vez que se " "añade un archivo HTML a la biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -229,7 +229,7 @@ msgstr "" "Codificación de los archivos HTML de entrada. Las opciones comunes incluyen: " "cp1252, latin1, iso-8859-1 y utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -239,7 +239,7 @@ msgstr "" "los directorios pmlname_img o imágenes. Este complemento se ejecutará cada " "vez que añada un archivo PML a la biblioteca" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Extraer la portada de los archivos de cómic" @@ -286,45 +286,45 @@ msgstr "Asignar metadatos a los archivos %s" msgid "Set metadata from %s files" msgstr "Establecer metadatos desde archivos %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Aspecto Visual y Apariencia" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interfaz" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" "Ajuste la apariencia y sensación de la interfaz de calibre para que se " "adapte a sus gustos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Comportamiento" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Cambiar el comportamiento de calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Añadir sus propias columnas" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Añada/elimine sus propias columnas en la lista de libros de calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Personalizar la barra de herramientas" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -332,60 +332,60 @@ msgstr "" "Personaliza las barras de herramientas y los menús de contexto, cambiando " "las acciones que estarán disponible en cada uno" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Opciones de entrada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Conversión" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "" "Establecer las opciones de conversión específicas de cada formato de entrada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Opciones comunes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "" "Establecer las opciones de conversión comunes para todos los formatos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Opciones de salida" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "" "Establece las opciones específicas de conversión para cada formato de salida" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Añadir libros" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Importar/Exportar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Controla cuándo calibre lee los metadatos de los archivos al añadir libros" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Guardar libros en disco" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -393,33 +393,33 @@ msgstr "" "Controla cuándo calibre exporta archivos de su base de datos al dicos al " "usar Guardar al disco" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Enviar libros a dispositivos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "" "Controla cuándo calibre transfiere los archivos a su lector de libros" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Control de metadatos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Cambiar los cambpos de metadatos antes de guardar/enviar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Compartir de libros por correo" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Compartir" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -427,11 +427,11 @@ msgstr "" "Configurar la compartición de libros por correo electrónico. Puede usarse " "para enviar automáticamente las noticias descargadas a sus dispositivos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Compartir por red" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -440,33 +440,33 @@ msgstr "" "biblioteca de calibre en cualquier lugar, con cualquier dispositivo, a " "través de Internet." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Complementos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Avanzada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Añadir/eliminar/configurar diversas funciones de calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Ajustes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "Ajuste como se comporta calibre en diversos contextos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Miscelánea" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Configuración miscelánea avanzada" @@ -512,7 +512,7 @@ msgstr "" "útil si no sabe nada del documento de entrada." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -524,62 +524,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Este perfil está pensado para el SONY PRS-300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Este perfil está pensado para el SONY PRS-900" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Este perfil está pensado para el Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Este perfil está pensado para los libros Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Este perfil está pensado para el Hanlin V3 y sus clones." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Este perfil está pensado para el Hanlin V5 y sus clones." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Este perfil está pensado para el Cybook Gen3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Este perfil está pensado para el Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Este perfil está pensado para el Kindle de Amazon" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Este perfil está pensado para el Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Este perfil está pensado para el IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Este perfil está pensado para el IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Este perfile está pensado para el Nook de B&N." @@ -597,30 +597,34 @@ msgstr "" "útil si quiere generar un documento que pueda ser leido en el PC o en varios " "dispositivos diferentes." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Pensado para el Ipad y dispositivos similares con una resolución de 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" "Orientado para dispositivos de tableta genéricos, sin redimensión de imágenes" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Este perfil está pensado para el lector Kobo" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Este perfil está pensado para el SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Este perfil está pensado para el JetBook de 5 pulgadas." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Este perfil está orientado al B&N Nook Color." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Este perfil está pensado para el Sandra Bambook." @@ -696,7 +700,7 @@ msgstr "Desactivar el complemento nombrado" msgid "Communicate with Android phones." msgstr "Comunicar con teléfonos Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -704,7 +708,7 @@ msgstr "" "Lista de directorios, separados por comas, donde almacenar los libros en el " "dispositivo. Se usará el primero que exista" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Comunicar con teléfonos S60." @@ -783,18 +787,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Noticias" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Catálogo" @@ -820,6 +824,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Comunicarse con el lector Cybook Gen 3 / Opus." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Comunicar con el lector Cybook Orizon." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Comunicar con el lector EB600" @@ -832,6 +840,10 @@ msgstr "Comunicarse con el Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Comunicarse con el lector PocketBook 301." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Comunicarse con el lector PocketBook 602." + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Equipo de expertos" @@ -892,8 +904,8 @@ msgstr "Comunicar con el lector Alex de SpringDesign." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -982,26 +994,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Obteniendo la lista de libros en el dispositivo ..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Eliminando libros del listado de metatados del dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Añadiendo libros al listado de metatados del dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "No implementado" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1043,6 +1055,10 @@ msgstr "Comunicar con VelocityMono" msgid "Communicate with the GM2000" msgstr "Comunicar con el GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Comunicarse con el Acer Lumiread" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Comunicarse son la tableta de internet Nokia 770." @@ -1063,6 +1079,14 @@ msgstr "El Nook" msgid "Communicate with the Nook eBook reader." msgstr "Comunicarse con el lector Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Comunicar con el lector Nook Color." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Comunicar con el lector Nuut2." @@ -2122,15 +2146,6 @@ msgstr "" "que está haciendo, ya que puede ocasionar varios efectos desagradables en el " "resto del proceso de conversión." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Longitud de línea promedio para la división de líneas si el HTML viene de " -"una conversión parcial previa de un archivo PDF. El valor por defecto es " -"%default, que desactiva esta opción." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "Fichero CSS usado en la salida en lugar del predeterminado" @@ -2295,7 +2310,7 @@ msgid "Path to output file" msgstr "Ruta del fichero de salida" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Procesado detallado" @@ -2526,7 +2541,7 @@ msgstr "Comentarios" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Etiquetas" @@ -2679,6 +2694,7 @@ msgid "No cover found" msgstr "No se encontro ninguna portada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Descarga de portadas" @@ -2749,19 +2765,19 @@ msgstr "descripción/reseñas" msgid "Download %s from %s" msgstr "Descargar %s desde %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Convertir los comentarios descargados de %s en texto simple" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Descarga metadatos de Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Descarga metadatos de isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2769,16 +2785,16 @@ msgstr "" "Para usar isbndb.com debe registrar una %scuenta gratuita%s e introducir su " "clave de acceso debajo." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Descarga metadatos sociales de amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" "Descargar información de serie/etiquetas/calificación de librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2802,23 +2818,24 @@ msgstr "" "una cuenta gratuita en isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "El ISBN del libro cuyos metadatos se desean." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "El autor cuyo libro se quiere buscar." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "El título del libro que se quiere buscar." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "La editorial del libro que se quiere buscar." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " no encontrado." @@ -2836,8 +2853,26 @@ msgstr "" "Obtiene metadatos sociales o la imagen de portada de LibraryThing.com del " "libro identificado por el ISBN.\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Descarga metadatos en francés de Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Descarga portadas en francés de Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" +"El tiempo de conexión con Nicebooks ha vencido. Inténtelo de nuevo más tarde." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "" +"Ha ocurrido un error al intentar obtener las portadas desde Nicebooks" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Portada" @@ -2881,70 +2916,70 @@ msgstr "Todos los artículos" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Este es un libro Topaz de Amazon. No se puede procesar." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Página de título" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Ãndice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Ãndice analítico" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glosario" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Agradecimientos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografía" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Colofón" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dedicatoria" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epígrafe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Prólogo" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Lista de ilustraciones" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Lista de tablas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Notas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Prefacio" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Texto principal" @@ -2952,7 +2987,7 @@ msgstr "Texto principal" msgid "%s format books are not supported" msgstr "El formato de libros %s no está soportado" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Libro %s de %s" @@ -2963,7 +2998,7 @@ msgstr "Opciones de generación del Ãndice HTML." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Valoración" @@ -2997,7 +3032,7 @@ msgstr "Notas al pie" msgid "Sidebar" msgstr "Recuadro" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -3007,7 +3042,7 @@ msgstr "" "Normalmente calibre interpreta las líneas en blanco como marcas de párrafo. " "Con esta opción se interpreta que cada línea es un párrafo separado." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3323,7 +3358,7 @@ msgstr "" "Especificar la codificación del documento de salida. El valor por defecto es " "cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3570,7 +3605,7 @@ msgid "Disable UI animations" msgstr "Desactivar animaciones de la interfaz" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Copiado" @@ -3582,7 +3617,7 @@ msgstr "Copiar" msgid "Copy to Clipboard" msgstr "Copiar al portapapeles" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Escoger ficheros" @@ -3638,90 +3673,90 @@ msgstr "¿Cuantos libros vacios?" msgid "How many empty books should be added?" msgstr "¿Cuantos libros vacios debe de estar aumentado?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Enviando libros al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Libros" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "Libros en EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "Libros en LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "Libros en HTML" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "Libros en LIT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "Libros en MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Libros en formato topaz" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Libros en formato texto" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "Libros en PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "Libros SNB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Cómics" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Archivos" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Libros soportados" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Se han unido algunos libros" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Se han encontrado algunos libros duplicados y se han unido a los siguientes " "libros existentes:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Fallo leyendo metadatos" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Fallo leyendo metadatos de" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Añadir a la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3729,14 +3764,14 @@ msgstr "Añadir a la biblioteca" msgid "No book selected" msgstr "No hay libros seleccionados" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "Los siguientes libros son virtuales y no se pueden añadir a la biblioteca de " "calibre:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "No se han encontrado archivos de libros" @@ -3749,7 +3784,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Añadir libros a la biblioteca de calibre a partir del dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Obtener anotaciones (experimental)" @@ -3846,7 +3881,7 @@ msgid "Checking database integrity" msgstr "Comprobando la integridad de la base de datos" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3862,19 +3897,19 @@ msgstr "Se encontraron incoherencias" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"Los siguientes libros tiene formatos especificados en la base de datos que " -"no están disponibles en realidad. Las entradas estos formatos se han " -"eliminado. Debería comprobarlos manualmente. Esto puede ocurrir si manipula " -"los ficheros de la carpeta de la biblioteca directamente." +"Los siguientes libros tenían formatos o portadas en la base de datos que no " +"estaban disponibles en realidad. Las entradas de los formatos o portadas se " +"han eliminado. Debería comprobarlos manualmente. Esto puede suceder si " +"manipula directamente los ficheros en la carpeta de la biblioteca." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d libros" @@ -4022,7 +4057,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "No permitido" @@ -4055,6 +4090,11 @@ msgstr "No se puede convertir" msgid "Starting conversion of %d book(s)" msgstr "Iniciando la conversión de %d libro(s)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" +"Archivo de salida vacío, probablemente el proceso de conversión ha reventado" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Copiar a la biblioteca" @@ -4089,9 +4129,9 @@ msgid "Could not copy books: " msgstr "No se pudieron copiar estos libros: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Falló" @@ -4152,14 +4192,14 @@ msgid "Main memory" msgstr "Memoria principal" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Tarjeta de almacenamiento A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Tarjeta de almacenamiento B" @@ -4304,7 +4344,7 @@ msgid "covers" msgstr "portadas" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadatos" @@ -4404,6 +4444,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Ejecutar el asistente de bienvenida" @@ -4492,7 +4533,7 @@ msgid "Click the show details button to see which ones." msgstr "Pulse el botón \"Mostrar detalles\" para ver cuáles." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Mostrar detalles del libro" @@ -4635,7 +4676,7 @@ msgid "The specified directory could not be processed." msgstr "El directorio especificado no se puede procesar." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Sin libros" @@ -4933,7 +4974,7 @@ msgstr "salida" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4976,7 +5017,7 @@ msgstr "salida" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Formulario" @@ -5063,25 +5104,25 @@ msgstr "Opciones CSV/XML" msgid "E-book options" msgstr "Opciones de libro digital" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "Etiqueta para 'no incluir este libro':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "Etiqueta para 'marcar este libro como leído':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Prefijo adicional para notas:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" "Expresión regular que describe las etiquetas que no se considerarán como " "géneros:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5095,22 +5136,26 @@ msgstr "" "- Una expresión con sólo un punto excluye todas las etiquetas de género, por " "lo que ne genera la sección Géneros" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Incluir la sección 'Títulos'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Incluir la sección 'Añadidos recientemente'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Ordenar los números como texto" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "Incluir la sección \"Serie\"" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Etiqueta de deseado:" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Plantilla para catalog.ui" @@ -5138,11 +5183,11 @@ msgstr "" "valores guardados en una conversión anterior (si existe) en vez de usar los " "predeterminados especificados en las Preferencias" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Convertir en bloque" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opciones específicas del formato de salida." @@ -5617,7 +5662,7 @@ msgid "Change the title of this book" msgstr "Cambiar el título del libro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Autor(es): " @@ -5635,7 +5680,7 @@ msgstr "" "comas." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Editorial: " @@ -5646,7 +5691,7 @@ msgid "Ta&gs: " msgstr "Eti&quetas: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5656,7 +5701,7 @@ msgstr "" "utilizarse cualesquier palabras o frases, separadas por comas." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5664,8 +5709,8 @@ msgstr "&Serie:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -6187,7 +6232,7 @@ msgid "Automatically number books" msgstr "Numerar automáticamente los libros" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Forzar números para que empiecen con " @@ -6203,97 +6248,103 @@ msgstr "etiquetas a añadir" msgid "tags to remove" msgstr "etiquetas a eliminar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "No hay detalles disponibles." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "El dispositivo ya no esta conectado." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Obtener información del dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Obtener lista de libros en el dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Obtener anotaciones del dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Enviar metadatos al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Enviar colecciones al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Pasar %d libros al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Borrar libros del dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Obtener libros del dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Ver libro en el dispositvo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Asignar acción de enviar al dispositivo por defecto" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Enviar a la memoria principal" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Enviar a la tarjeta de memoria A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Enviar a la tarjeta de memoria B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Memoria principal" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Enviar formato especifico para" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Enviar y eliminar de la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Desconectar dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Error en la comunicación con el dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "No hay formatos adecuados" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Seleccionar carpeta para abrir como un dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Error de comunicación con el dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6301,128 +6352,61 @@ msgstr "" "Hubo un error de comunicación con el dispositivo. Desconecte y vuelva a " "conectar el dispositivo o reinicie la aplicación." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Dispositivo: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " detectado." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "elegido para enviar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Elige el formato para enviar al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Sin dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "No se pudo enviar: no hay ningún dispositivo conectado" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Sin tarjeta" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "No se pudo enviar: el dispositivo no tiene tarjeta de memoria" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "Libro electrónico:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "El libro electrónico está adjunto" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "por" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "en el formato %s." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Enviando correo electrónico a" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "No hay formatos adecuados" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"¿Convertir automáticamente los siguientes libros antes de enviar por correo " -"electrónico?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"No se pudieron enviar por correo electrónico los siguientes libros porque no " -"se encontraron formatos compatibles:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Fallo al enviar libros por correo electrónico" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Fallo al enviar por correo electrónico los siguientes libros:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Enviado por correo electrónico:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Noticias:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Adjunto está el" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Enviar noticias a" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "" "¿Convertir automáticamente los siguientes libros antes de pasarlos al " "dispositivo?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Enviando catálogos al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Enviando noticias al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Enviando libros al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6431,11 +6415,11 @@ msgstr "" "encontraron formatos adecuados. Convierta el(los) libro(s) a un formato " "soportado por su dispositivo antes de volver a intentarlo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "No hay espacio en el dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6482,15 +6466,22 @@ msgstr "Añadir libros por ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" "<p>Introduzca una lista de ISBN en el cuadro de la izquierda, uno por línea. " -"calibre creará automáticamente entradas para los libros basándose en el ISBN " -"y descargará los metadatos y portadas.<p>Los ISBN de la lista que no sean " -"válidos no se considerarán." +"calibre creará automáticamente entradas para libros basándose en el ISBN y " +"descargará sus metadatos y portadas.</p>\n" +"<p>Cualquier ISBN no válido en la lista se omitirá.</p>\n" +"<p>También puede especificar un fichero para añadir con cada ISBN. Para ello " +"introduzca la ruta completa al fichero después de <code>>></code>. Por " +"ejemplo:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Pegar del portapapeles" @@ -6579,7 +6570,7 @@ msgstr "Ruta de la biblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Nombre" @@ -6632,7 +6623,7 @@ msgid "No location selected" msgstr "Sin ubicación seleccionada" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Ubicación incorrecta" @@ -6734,12 +6725,12 @@ msgid "Author sort" msgstr "Orden de autor" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Nombre de Autor inválido" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Los nombres de Autores no pueden contener \"&\"." @@ -6895,50 +6886,50 @@ msgstr "Buscar/Reemplazar" msgid "Working" msgstr "Procesando..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Minúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Mayúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Formato de título (todas las iniciales en mayúscula)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Coincidencia de caracter" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Expresión Regular" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Reemplazar campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Anteponer al campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Anexar al campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Editando información para <b>%d libros</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Libro %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -6951,7 +6942,7 @@ msgstr "" "continuar.<p>Busca y reemplaza en campos de texto usando emparejamiento de " "caracteres o expresiones regulares. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6968,7 +6959,7 @@ msgstr "" "debe coincidir exactamente. Si está desactivada, se encontrarán " "coincidencias tanto con mayúsculas como con minúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6994,34 +6985,34 @@ msgstr "" "referencia</a> para más información sobre las expresiones regulares de " "python, y en particular sobre la función \"sub\"." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "Debe especificar un destino cuando la fuente es un campo compuesto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Buscar/sustituir no válido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" "La cadena Autores no puede dejarse en blanco. El libro con el título %s no " "fue procesado" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" "El título no puede dejarse en blanco. El libro con el título %s no fue " "procesado" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "El patrón de búsqueda no es válido: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -7029,19 +7020,19 @@ msgstr "" "Aplicando cambios a %d libros.\n" "Fase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Editar metadatos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "Establecer a&utomáticamente el orden de autor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "&Orden de autor: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -7049,64 +7040,64 @@ msgstr "" "Especificar cómo ordenar el(los) autor(es) de este libro. Por ejemplo, " "ordena Miguel de Cervantes como Cervantes, Miguel de." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Valoración:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Valoración de este libro: 0-5 estrellas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Sin cambios" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " estrellas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Añadir eti&quetas: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Abrir editor de etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "Eli&minar etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Lista de etiquetas, separadas por comas, para eliminar de los libros " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Marque esta casilla para eliminar todas las etiquetas de los libros." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Eliminar todo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Si está marcado, las series serán borradas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Limpiar series" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7119,11 +7110,11 @@ msgstr "" "el libro A y luego el B, el libro A será el número 1 en la serio y el libro\n" "B será el número 2." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Numerar automáticamente los libros de esta serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7134,15 +7125,15 @@ msgstr "" "la serie. Si marca esta casilla calibre comenzará la numeración a partir del " "valor del cuadro." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Eliminar &formato:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Intercambiar título y autor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7153,11 +7144,11 @@ msgstr "" "autor y título están marcadas, primero se intercambian y luego se cambia el " "título." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Cambiar el título a inicial mayúscula" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7168,34 +7159,34 @@ msgstr "" "Las conversiones futuras de estos libros usarán las configuraciones " "predeterminadas." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" "Eliminar las &configuraciones de conversión para los libros seleccionados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "Metadatos &básicos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "Metadatos &personalizados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Campo de &búsqueda:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "El nombre del campo en el que desea buscar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Modo de búsqueda:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7203,11 +7194,11 @@ msgstr "" "Elija si desea usar el modo básico de búsqueda de texto o el modo avanzado " "de expresiones regulares" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Buscar:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" @@ -7215,7 +7206,7 @@ msgstr "" "Introduzca lo que quiere buscar, ya sea un texto sencillo o una expresión " "regular, según el modo elegido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -7224,15 +7215,15 @@ msgstr "" "mayúsculas o minúsculas. Desmárquela si las mayúsculas o minúsculas son " "indiferentes." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Distinguir mayúsculas y minúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "&Sustituir con:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -7240,11 +7231,11 @@ msgstr "" "El texto de reemplazo. Las coincidencias del texto buscado se sustituirán " "por este texto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Aplicar función después de sustituir:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7255,11 +7246,11 @@ msgstr "" "el modo de caracteres se procesa todo el texto. En el mode de expresiones " "regulares sólo se procesan las coincidencias de la búsqueda" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "&Campo de destino:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7267,15 +7258,15 @@ msgstr "" "El campo donde se pondrá el texto después de todas las sustituciones. SI se " "deja en blanco, se usará el campo original." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Modo:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Especifica cómo debe copiarse el texto en el destino." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7285,23 +7276,23 @@ msgstr "" "casilla indica si se usará\n" "una coma o nada entre el texto original y el añadido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "usar coma" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "Texto de &prueba" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "&Resultado de la prueba" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Su prueba:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" msgstr "Bu&scar y reemplazar" @@ -7594,20 +7585,21 @@ msgstr "Se necesita contraseña." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&Usuario:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "Cont&raseña:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Mostrar contraseña" @@ -7852,48 +7844,51 @@ msgid "Advanced Search" msgstr "Búsqueda avanzada" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "Encuentra entradas que tengan..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "&Todas estas palabras:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "Esta &frase exacta:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "&Una o más de estas palabras:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "Pero no mostrar las entradas que tengan..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "Cualquiera de estas palabras &no deseadas:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "Tipo de coincidencias:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -"Contiene: se busca la palabra o frase en cualquier posición de los metadatos" +"Contiene: la palabra o frase se busca en cualquier lugar del campo de " +"metadatos" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" +"Coincide: la palabra o frase debe coincidir con el campo de metadatos " +"completo" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" +"Expresión regular: la expresión se busca en cualquier lugar del campo de " +"metadatos" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Encuentra entradas que tengan..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Todas estas palabras:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Esta &frase exacta:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "&Una o más de estas palabras:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "" -"Coincide: La palabra o frase debe corresponder al campo de metadatos completo" +msgid "But dont show entries that have..." +msgstr "Pero no mostrar las entradas que tengan..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "" -"Expresión regular: se busca la expresión en cualquier lugar de los metadatos" +msgid "Any of these &unwanted words:" +msgstr "Cualquiera de estas palabras &no deseadas:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -8086,12 +8081,12 @@ msgid "%s (was %s)" msgstr "%s (era %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "El elemento está en blanco" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "No puede establecerse un elemento en blanco. Bórrelo en su lugar." @@ -8174,7 +8169,7 @@ msgid "Discard changes" msgstr "Descartar los cambios" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Cancelar" @@ -8382,6 +8377,64 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Código fuente de la receta (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "Enviar por correo electrónico %s a %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Noticias:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "Se adjunta el fichero de %s descargado por calibre." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "Libro electrónico:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "El libro electrónico está adjunto" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "por" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "en el formato %s." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Enviando correo electrónico a" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"¿Convertir automáticamente los siguientes libros antes de enviar por correo " +"electrónico?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"No se pudieron enviar por correo electrónico los siguientes libros porque no " +"se encontraron formatos compatibles:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "Falló al enviar por correo el libro" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "enviado" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Enviar noticias a" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8579,23 +8632,23 @@ msgstr "No se pueden detener tareas que se comunican con el dispositivo" msgid "Job has already run" msgstr "La tarea ya se ha ejecutado" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "No disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Tareas:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Mayús+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Pulse para ver la lista de trabajos" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - tareas" @@ -8621,7 +8674,7 @@ msgid "Show books in the main memory of the device" msgstr "Mostrar los libros de la memoria principal del dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Tarjeta A" @@ -8630,7 +8683,7 @@ msgid "Show books in storage card A" msgstr "Mostrar los libros de la tarjeta de memoria A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Tarjeta B" @@ -8712,7 +8765,7 @@ msgstr "Libro %s de %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "El nombre de búsqueda es \"{0}\"" @@ -8741,47 +8794,47 @@ msgstr "Marcado para borrarlo" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Doble clic para <b>editarme</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Ocultar columna %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Ordenar según %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Ascendente" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Descendente" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Cambiar la alineación del texto para %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Izquierda" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Derecha" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centro" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Mostrar columna" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Restaurar formato por defecto" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8815,7 +8868,7 @@ msgstr "" "<b>No</b> se encontraron coincidencias para la búsqueda \"<i>%s</i>\"." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "No se encontraron coincidencias" @@ -8832,12 +8885,12 @@ msgid "LRF Viewer toolbar" msgstr "Barra de herramientas del visor de LRF" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Página siguiente" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Página anterior" @@ -8881,7 +8934,7 @@ msgid "Do not check for updates" msgstr "No comprobar actualizaciones" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Biblioteca de calibre" @@ -9021,37 +9074,37 @@ msgstr "El libro no tiene ni título ni ISBN" msgid "No matches found for this book" msgstr "No se ha encontrado el libro" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "No se pudieron descargar los metadatos" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "portada" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Descargado" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "No se pudo obtener" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s para: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Hecho" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "Se descargaron con éxito los metadatos para %d de %d libros" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Detalles" @@ -9614,28 +9667,28 @@ msgstr "Mostrar &texto bajo los iconos:" msgid "&Split the toolbar into two toolbars" msgstr "&Dividir la barra de herramientas en dos" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Aplicar" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Restaurar opciones &predeterminadas" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Guardar cambios" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Cancelar y volver a la panorámica" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "" "La restauración de las opciones predeterminadas no está soportada para" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9643,7 +9696,7 @@ msgstr "" "Algunos cambios requieren que reinicie. Por favor, reinicie calibre cuanto " "antes." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9652,7 +9705,7 @@ msgstr "" "no podrá realizar ningún otro ajuste ni podrá elegir sus preferencias hasta " "que la operación de reinicio concluya." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Se requiere reiniciar" @@ -10006,7 +10059,7 @@ msgstr "" "dispositivo en Preferencias->Complementos" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Fallo al iniciar el servidor de contenidos" @@ -10227,7 +10280,7 @@ msgstr "&Ajustes actuales" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Buscar" @@ -10326,26 +10379,22 @@ msgstr "Limpiar" msgid "&Alternate shortcut:" msgstr "&Atajo alternativo:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Renombrar \"%s\"" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Editar orden para \"%s\"" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Ocultar categoría %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Mostrar categoría" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Ver todas las categorias" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10360,67 +10409,71 @@ msgstr "Administrar búsquedas guardadas" msgid "Manage User Categories" msgstr "Administrar categorías de usuarios" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Ver todas las categorias" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" "Cambiar los autores de varios libros puede tardar un rato. ¿Está seguro?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "Cambiar los metadatos de muchos libros puede tardar un rato. ¿Está seguro?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Búsquedas" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Nombre de búsqueda duplicado" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "El nombre guardado buscado %s está en uso." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Ordenar por nombre" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Ordenar por popularidad" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Ordenar por calificación promedio" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Establece el orden de las entradas en el navegador de etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Buscar todas" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Buscar cualquiera" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "Al seleccionar varias entradas en el navegador de etiquetas buscar una " "cualquiera o todas ellas" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Administrar categorías de &usuario" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Añada sus propias categorías al navegador de etiquetas" @@ -10467,28 +10520,28 @@ msgstr "" "Los siguientes libros ya han sido convertidos al formato %s. ¿Desea volver a " "convertirlos?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Restaurar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Donar para apoyar a calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Desconectar dispositivo conectado" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Guía de inicio rápido de calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Error de conversión" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10497,15 +10550,15 @@ msgstr "" "href=\"%s\">DRM</a>. Debe eliminar primero el DRM con herramientas de " "terceros." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Receta deshabilitada" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Fallo</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10515,11 +10568,11 @@ msgstr "" "lo encuentra útil, considere donar para apoyar su desarrollo. Su donación es " "lo que hace que el desarrollo de calibre continúe." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Hay tareas activas. ¿Está seguro de que quiere salir?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10530,11 +10583,11 @@ msgstr "" "de datos en el dispositivo.<br>\n" " ¿Está seguro de que desea salir?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "AVISO: Tareas activas" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10715,17 +10768,17 @@ msgstr "&Atajos de teclado" msgid "No results found for:" msgstr "No hay resultados para:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Opciones para personalizar el visor de libros electrónicos" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "&Recordar el último tamaño de ventana usado" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10733,82 +10786,82 @@ msgstr "" "Establecer los estilos CSS de usuario. Esto se usa para personalizar la " "apariencia de todos los libros." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Anchura máxima de la ventana del visor, en píxeles." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 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:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Dividir palabras" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Idioma por defecto para las reglas de división de palabras" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Opciones de tipo de letra" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "El tipo de letra serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "El tipo de letra sans-serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "El tipo de letra monoespaciada" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "El tamaño de letra estándar en px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "El tamaño de letra monoespaciada en px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "El tipo de letra estándar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&Localizar en el diccionario" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Ir a..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Siguiente sección" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Sección anterior" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Inicio del documento" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Final del documento" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Inicio de la sección" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Final de la sección" @@ -10878,88 +10931,88 @@ msgstr "" msgid "Search for text in book" msgstr "Buscar un texto en el libro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Previsualización de impresión" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Conectando con dict.org para buscar: <b>%s</b>..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Elegir libro electrónico" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Libros electrónicos" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "No se encontraron correspondencias para: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Cargando flujo..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Disponiendo %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Marcador #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Añadir marcador" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Introducir el título del marcador:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Administrar marcadores" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Cargando libro electrónico..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "Error de DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Este libro está protegido por <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "No se pudo abrir el libro electrónico" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Opciones para controlar el visor de libros electrónicos" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Si se especifica, la ventana del visor intentará situarse en el frente " "cuando se inicie el programa." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Si se activa, la ventana del visor tratará de iniciarse a pantalla completa." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Dirigir alertas de javascript y mensajes de consola a la consola" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -11077,7 +11130,7 @@ msgstr "Ocultar" msgid "Toggle" msgstr "Alternar" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -11087,7 +11140,7 @@ msgstr "" "Android, puede acceder a su colección de libros de calibre directamente con " "él. Para ello debe activar el servidor de contenidos." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -11095,7 +11148,7 @@ msgstr "" "Recuerde dejar calibre en ejecución, el servidor sólo funciona mientras " "calibre se está ejecutando." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -11105,20 +11158,20 @@ msgstr "" "WordPlayer, donde miservidor es el nombre de servidor completo o la " "dirección IP del equipo donde se ejecuta calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Moviendo la biblioteca..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Fallo al mover la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Base de datos no valida" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -11126,22 +11179,22 @@ msgstr "" "<p>Ya existe una biblioteca no válida en %s, bórrela antes de intentar mover " "la biblioteca actual.<br>Error: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "No se pudo mover la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Seleccionar ubicación para los libros" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "Debe elegir una carpeta vacía para la biblioteca de calibre. %s no está " "vacía." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "asistente de bienvenida" @@ -11228,11 +11281,12 @@ msgstr "Elija su &idioma:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Escoja una ubicación para los libros. Cuando añada libros en calibre serán " -"copiados aquí:" +"<p>Elija una ubicación para sus libros. Cuando añada libros en calibre, se " +"copiarán aquí. Use una <b>carpeta vacía</b> para una biblioteca de calibre " +"nueva:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11248,50 +11302,80 @@ msgstr "" "ubicación. Si hay otra biblioteca de calibre en esta nueva ubicación, " "calibre la usará en su lugar." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Usando: %s:%s@%s:%s y cifrado %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Enviando..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "Correo enviado con éxito" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Terminar la configuración de gmail" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"No olvide introducir su nombre de usuario y contraseña de gmail. Puede " -"solicitar una cuenta gratuita de gmail en http://gmail.com" +"Si está estableciendo una nueva cuenta de hotmail, debe entrar en ella una " +"vez antes de poder enviar correos." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"Puede solicitar una cuenta de correo electrónico {name} gratuita en <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "Su &dirección de correo de %s:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "Su nombre de &usuario de %s:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "Su &contraseña de %s:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"Si piensa usar el correo electrónico para enviar libros a su Kindle, " +"recuerde añadir su dirección de correo de %s a las direcciones de correo " +"permitias en su página de gestión de Kindle en Amazon.com." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "Configuración" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Configuración incorrecta" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Debe asignar la dirección de correo electrónico remitente" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "" "Debe especificar el nombre de usuario y contraseña para el servidor de " "correo." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "&Enviar correo electrónico desde:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11299,7 +11383,7 @@ msgstr "" "<p>Esto es lo que se mostrará en el campo De: de los correos electrónicos " "enviados por calibre.<br>Ponga su dirección de correo electrónico." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11308,52 +11392,52 @@ msgstr "" "sólo acepta correos electrónicos de servicios de correo ampliamente " "conocidos." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "Servidor de correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "calibre puede, <b>opcionalmente</b>, usar un servidor para enviar correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Nombre del equipo:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "" "Nombre de equipo de su servidor de correo. Por ejemplo, smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "Puert&o:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "Puerto en el que su servidor de correo espera las conexiones. Por defecto es " "el 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "Su nombre de usuario en el servidor de correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "Su contraseña en el servidor de correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Mostrar" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Cifrado:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11361,23 +11445,35 @@ msgstr "" "Usar cifrado TLS al conectar con el servidor de correo. Ésta es la opción " "común." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Usar cifrado SSL al conectar con el servidor de correo." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "Aviso: no usar cifrado es muy inseguro" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "&Ninguno" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Usar &gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Usar Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "Pro&bar correo electrónico" @@ -11403,7 +11499,7 @@ msgstr "today" #: /home/kovid/work/calibre/src/calibre/library/caches.py:368 msgid "yesterday" -msgstr "yesterday" +msgstr "ayer" #: /home/kovid/work/calibre/src/calibre/library/caches.py:371 msgid "thismonth" @@ -11444,7 +11540,7 @@ msgstr "blank" msgid "empty" msgstr "empty" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11458,7 +11554,7 @@ msgstr "" "Valor por defecto: '%%default'\n" "Aplicable a: formatos de salida CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11471,7 +11567,7 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11485,7 +11581,7 @@ msgstr "" "Valor predeterminado: '%%default'\n" "Aplicable a: formato de salida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11498,7 +11594,7 @@ msgstr "" "Valor predeterminado: '%default'\n" "Aplicable a: formato de salida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11510,7 +11606,7 @@ msgstr "" "Valor predeterminado: '%default'\n" "Aplicable a: formato de salida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11525,7 +11621,7 @@ msgstr "" "Valor predeterminado: '%%default'\n" "Aplicable a: formato de salida BIBTEXT" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11537,7 +11633,7 @@ msgstr "" "Valor predeterminado: '%default'\n" "Aplicable a: formato de salida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11549,7 +11645,7 @@ msgstr "" "Valor predeterminado: '%default'\n" "Aplicable a: formato de salida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11561,7 +11657,7 @@ msgstr "" "Valor predeterminado: '%default'\n" "Aplicable a: formato de salida BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11571,7 +11667,7 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11585,7 +11681,7 @@ msgstr "" "Valor por defecto: '%default'None\n" "Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11597,7 +11693,7 @@ msgstr "" "ejemplo '[<etiqueta>]'\n" "Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11611,7 +11707,7 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11621,7 +11717,7 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11631,7 +11727,7 @@ msgstr "" "Por defecto: '%default'\n" "Aplicar a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11641,7 +11737,7 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11652,7 +11748,7 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11666,7 +11762,7 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11681,7 +11777,7 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida ePub y MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11691,6 +11787,16 @@ msgstr "" "Valor por defecto: '%default'\n" "Aplicable a: formatos de salida ePub, MOBI" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etiqueta que indica que un libro se mostrará como deseado.\n" +"Valor predeterminado: '%default'\n" +"Se aplica a: formatos de salida ePub y MOBI" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Títulos no válidos" @@ -12413,37 +12519,37 @@ msgstr "" "La etiqueta debe contener sólo letras minúsculas, dígitos y guión bajo, y " "empezar por una letra" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sCalificación promedio es %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Principal" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" "<p>Migrando la base de datos antigua a la biblioteca de libros electrónicos " "en %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Copiando <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Compactando la base de datos" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Comprobando la integridad de SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Comprobando ficheros inexistentes." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "ID comprobado" @@ -12671,129 +12777,129 @@ msgstr "" "Prefijo para anteponer a todas las URL. Útil para \"reverseproxying\" a este " "servidor Apache/nginx/etc." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -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/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "Cargando. Por favor, espere" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "Ir a" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Primero" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Ultimo" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Anterior" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Siguiente" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "Explorando %d libros" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Valoración media" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f estrellas" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d estrellas" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Popularidad" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Ordenar por" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "biblioteca" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "inicio" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Más reciente" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Todos los libros" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Explorar libros por" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Elija una categoría" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Explorando por" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Arriba" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "en" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Libros en" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Otros formatos" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Leer %s en el formato %s" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Obtener" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Permalink" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "Un enlace permanente a este libro" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Este libro ha sido borrado" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "en búsqueda" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Libros encontrados" @@ -13134,7 +13240,7 @@ msgstr "No se pudo establecer la sesión SSH: " msgid "Failed to authenticate with server: %s" msgstr "No se pudo autenticar con el servidor: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Controlar el envío de correo electrónico" @@ -15342,6 +15448,18 @@ msgstr "No descargar estilos CSS." #~ msgid "Send specific format to storage card B" #~ msgstr "Enviar un formato específico a la tarjeta de memoria B" +#~ msgid "Failed to email books" +#~ msgstr "Fallo al enviar libros por correo electrónico" + +#~ msgid "Failed to email the following books:" +#~ msgstr "Fallo al enviar por correo electrónico los siguientes libros:" + +#~ msgid "Sent by email:" +#~ msgstr "Enviado por correo electrónico:" + +#~ msgid "Attached is the" +#~ msgstr "Adjunto está el" + #~ msgid "" #~ "Email\n" #~ "Delivery" @@ -15582,6 +15700,23 @@ msgstr "No descargar estilos CSS." #~ "href=\"http://calibre.kovidgoyal.net/user_manual\">en línea</a> el Manual de " #~ "usuario." +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Escoja una ubicación para los libros. Cuando añada libros en calibre serán " +#~ "copiados aquí:" + +#~ msgid "Finish gmail setup" +#~ msgstr "Terminar la configuración de gmail" + +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "No olvide introducir su nombre de usuario y contraseña de gmail. Puede " +#~ "solicitar una cuenta gratuita de gmail en http://gmail.com" + #~ msgid "" #~ "The format in which to output the data. Available choices: %s. Defaults is " #~ "text." @@ -15589,6 +15724,10 @@ msgstr "No descargar estilos CSS." #~ "El formato en el que se muestran los datos. Las opciones disponibles son: " #~ "%s. Por defecto es text." +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "" +#~ "Contraseña para acceder a la biblioteca de calibre. El nombre de usuario es " + #~ msgid "" #~ "[options]\n" #~ "\n" @@ -15607,6 +15746,17 @@ msgstr "No descargar estilos CSS." #~ msgid "&Check database integrity" #~ msgstr "&Comprobar la integridad de la base de datos" +#~ 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 "" +#~ "Los siguientes libros tiene formatos especificados en la base de datos que " +#~ "no están disponibles en realidad. Las entradas estos formatos se han " +#~ "eliminado. Debería comprobarlos manualmente. Esto puede ocurrir si manipula " +#~ "los ficheros de la carpeta de la biblioteca directamente." + #~ msgid "" #~ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " #~ "\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" @@ -15853,6 +16003,19 @@ msgstr "No descargar estilos CSS." #~ msgid " " #~ msgstr " " +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Expresión regular: se busca la expresión en cualquier lugar de los metadatos" + +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "" +#~ "Contiene: se busca la palabra o frase en cualquier posición de los metadatos" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Coincide: La palabra o frase debe corresponder al campo de metadatos completo" + #~ msgid "Masthead font:" #~ msgstr "Tipo de letra para el rótulo:" @@ -15896,6 +16059,14 @@ msgstr "No descargar estilos CSS." #~ msgid "Edit meta information" #~ msgstr "Editar metadatos" +#~ 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 "" +#~ "Longitud de línea promedio para la división de líneas si el HTML viene de " +#~ "una conversión parcial previa de un archivo PDF. El valor por defecto es " +#~ "%default, que desactiva esta opción." + #~ msgid "(%d found)" #~ msgstr "(%d encontrado)" @@ -16209,6 +16380,17 @@ msgstr "No descargar estilos CSS." #~ msgid "Communicate with the Promedia eBook reader" #~ msgstr "Comunicarse con el lector Promedia eBook reader" +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Introduzca una lista de ISBN en el cuadro de la izquierda, uno por línea. " +#~ "calibre creará automáticamente entradas para los libros basándose en el ISBN " +#~ "y descargará los metadatos y portadas.<p>Los ISBN de la lista que no sean " +#~ "válidos no se considerarán." + #~ msgid "&Tweaks" #~ msgstr "A&justes" diff --git a/src/calibre/translations/eu.po b/src/calibre/translations/eu.po index 96257c2e70..7e77662838 100644 --- a/src/calibre/translations/eu.po +++ b/src/calibre/translations/eu.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 17:34+0000\n" -"Last-Translator: Bingen Markes <Unknown>\n" +"POT-Creation-Date: 2010-11-26 19:04+0000\n" +"PO-Revision-Date: 2010-11-26 21:46+0000\n" +"Last-Translator: gorkaazk <gorkaazkarate@euskalerria.org>\n" "Language-Team: Basque <eu@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-11 04:40+0000\n" +"X-Launchpad-Export-Date: 2010-11-27 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,11 +27,11 @@ msgstr "Ez du ezer egiten" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -40,8 +40,8 @@ msgstr "Ez du ezer egiten" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -55,7 +55,7 @@ msgstr "Ez du ezer egiten" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -74,14 +74,14 @@ msgstr "Ez du ezer egiten" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -89,7 +89,7 @@ msgstr "Ez du ezer egiten" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -109,10 +109,10 @@ msgstr "Ez du ezer egiten" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -121,15 +121,15 @@ msgstr "Ez du ezer egiten" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -137,14 +137,14 @@ msgstr "Ez du ezer egiten" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -164,7 +164,7 @@ msgstr "Oinarria" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:172 msgid "File type" -msgstr "Fitxategi mota" +msgstr "Fitxategi-mota" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:208 msgid "Metadata reader" @@ -176,7 +176,7 @@ msgstr "Metadatuen idazlea" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:268 msgid "Catalog generator" -msgstr "Katalogo sortzailea" +msgstr "Katalogo-sortzailea" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:369 msgid "User Interface Action" @@ -185,14 +185,14 @@ msgstr "Erabiltzailearen interfaze ekintza" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Hobespenak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -202,7 +202,7 @@ msgstr "" "estekatutako fitxategi guztiak barne dituelarik. Gehigarri hau, liburutegira " "HTML fitxategi bat gehitzen duzun bakoitzean exekutatuko da." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -210,7 +210,7 @@ msgstr "" "HTML sorburu fitxategientzako karaktere kodeketa. Aukeraketa arruntak " "barnean ditu: cp1252, latin1, iso-8859-1 and utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -220,7 +220,7 @@ msgstr "" "pmlname_img direktorioan dauden irudi guztiekin. Gehigarri hau, liburutegira " "PML fitxategi bat gehitzen duzun bakoitzean exekutatuko da." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Erauzi ezazu liburu-azala komiki fitxategietatik" @@ -267,45 +267,45 @@ msgstr "Ezarri metadatuak %s fitxategietan" msgid "Set metadata from %s files" msgstr "Ezarri metadatuak %s fitxategietatik" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Itxura eta izaera" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interfazea" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "Doi ezazu calibreren interfazearen itxura zure gustuen arabera" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Jokabidea" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Alda ezazu calibreren jokatzeko era" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Gehi itzazu zureak diren zutabeak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "" "Gehitu/ezabatu itzazu zuk egindako zure zutabeak calibreren liburu " "zerrendara/zerrendatik" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Pertsonalizatu tresna-barra" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -313,58 +313,58 @@ msgstr "" "Pertsonalizatu tresna-barra eta testuinguruaren araberako menuak, bakoitzean " "eskuragarri agertuko diren ekintzekin aldatuz." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Sorburu aukerak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Bihurketa" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "Ezarri itzazu sorburu formatu bakoitzeko bihurketa aukera zehatzak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Aukera komunak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Ezarri itzazu formatu guztietarako komunak diren bihurketa aukerak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Helburu aukerak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Ezarri itzazu helburu formatu bakoitzeko bihurketa aukera zehatzak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Liburuak gehitzen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Inportatu/Esportatu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Kontrola ezazu calibrek nola irakurtzen dituen metadatuak fitxategietatik " "liburuak gehitzerakoan" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Liburuak diskan gordetzen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -372,34 +372,34 @@ msgstr "" "Kontrola ezazu calibrek nola esportatzen dituen fitxategiak bere datu " "basetik diskora \"Diskoan gorde\" aukera erabiltzen denean." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Bidaltzen liburuak gailuetara" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "" "Kontrola ezazu ea calibrek nola bidaltzen dituen fitxategiak zure liburu " "elektronikoetara" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Metadatuen konektore-txartela" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Aldatu metadatu eremuak gorde/igorri baino lehenago" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Liburuak e-posta bidez partekatzen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Partekatzen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -407,11 +407,11 @@ msgstr "" "Antolatu liburuen elkarbanatzea e-postaren bidez. Saretik deskargatutako " "albisteak norbere gailuetara automatikoki bidaltzeko erabil daiteke" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Sarean zehar elkarbanatzen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -420,35 +420,35 @@ msgstr "" "interneten bidezko sarbidea emango dizun edozein lekutan eta edozein " "gailuren bidez" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Pluginak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Aurreratua" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Gehitu/ezabatu/pertsonalizatu calibreren zenbait aukera" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Doikuntzak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "" "Afina ezazu zehaztasun handiz nola jokatuko duen calibrek hainbat " "testuingurutan" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Denetarik" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Hainbat gauzetarako ezarpen aurreratuak" @@ -494,7 +494,7 @@ msgstr "" "da sarrerako dokumentuari buruz ezer ez dakizunean." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -506,62 +506,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Profil hau \"SONY PRS 300\" horretara zuzendurik dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Profil hau \"SONY PRS 900\" horretara zuzendurik dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Profil hau Microsoft Reader-arentzat zuzendua dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Profil hau Mobipocket liburuentzat zuzendua dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Profil hau Hanlin V3 eta bere klonentzat zuzendua dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Profil hau \"Hanlin V5\" eta bere klonetara zuzendurik dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Profil hau Cybook G3-arentzat zuzendua dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Profil hau Cybook Opus-arentzat zuzendua dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Profil hau Amazon Kindle gailuarentzat dago prestaturik." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Profil hau Irex Illiad-arentzat zuzendua dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Profil hau IRex Digital Reader 1000-rentzat zuzendua dago." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Profil hau \"IRex Digital Reader 800\" horrentzat dago prestaturik." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Profil hau \"B&N Nook\" horrentzat dago prestaturik." @@ -579,32 +579,32 @@ msgstr "" "da ordenagailu edota gailu ezberdinentzat zuzenduta dagoen dokumentu bat " "egin nahi baduzu." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "iPad eta antzeko trepetetarako zuzendurik, 768x1024 bereizmena duten " "trepetetarako." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" "Edozein tablet gailutan erabiltzeko asmoz, ez ditu irudien neurriak modu " "automatikoan aldatuko" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Profil hau \"Kobo Reader\" horietara zuzendurik dago." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Profil hau \"SONY PRS 300\" horretara zuzendurik dago." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Profil hau 5 hazbeteko JetBook gailuarentzat dago prestaturik." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -613,11 +613,15 @@ msgstr "" "500/505/600/700 eta abar orrialdea horizontal moduan erakutsita. Batez ere " "komikietan erabilgarria." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Profil hau Amazon Kindle DX-arentzat zuzendua dago." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Profil hau B&N Nook Color horrentzat sortu da." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Sanda Bambook horrentzat egindako profila." @@ -697,7 +701,7 @@ msgstr "Desgaitu izendaturiko gehigarria." msgid "Communicate with Android phones." msgstr "Adroid telefonoekin komunikatu." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -705,7 +709,7 @@ msgstr "" "Gailuan dagoen komen bitartez bereizitako direktorioen zerrenda, liburu " "elektronikoak hara igortzeko. Existitzen den lehena erabiliko da." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "S60 telefonoekin komunikatu." @@ -786,18 +790,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Albisteak" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Katalogoa" @@ -824,6 +828,10 @@ msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "" "Jar zaitez harremanetan \"Cybook Gen 3 / Opus eBook reader\" horrekin." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Jar zaitez harremanetan Cybook Orizon eBook reader." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Komunikatu EB600 eBook irakurgailuarekin." @@ -836,6 +844,10 @@ msgstr "Jar zaitez harremanetan \"Astak Mentor EB600\" horrekin." msgid "Communicate with the PocketBook 301 reader." msgstr "Jar zaitez harremanetan \"PocketBook 301 reader\" horrekin." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Adituen lagun-taldea" @@ -896,8 +908,8 @@ msgstr "Jar zaitez harremanetan \"SpringDesign Alex eBook reader\" horrekin." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -986,26 +998,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Liburu zerrenda gailutik eskuratzen..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Gailuaren metadatu zerrendatik liburuak kentzen..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Gailuaren metadatu zerrendara liburuak gehitzen..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Abiarazi gabea, inplementatu gabea" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1047,6 +1059,10 @@ msgstr "Jar zaitez harremanetan VelocityMicro enpresarekin" msgid "Communicate with the GM2000" msgstr "Jar zaitez harremanetan GM2000-ko horiekin" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Jar zaitez harremanetan \"Nokia 770 internet tablet\" horrekin." @@ -1067,6 +1083,14 @@ msgstr "Nook-a" msgid "Communicate with the Nook eBook reader." msgstr "Komunikatu Nook eBook irakurgailuarekin." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Jar zaitez Nook Color eBook reader horrekin harremanetan." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Komunikatu Nuut2 eBook irakurgailuarekin." @@ -2186,15 +2210,6 @@ msgstr "" "hau bakarrik ondo dakizunean zertaz ari zaren. Aukera honek gustuko ez diren " "ondorio batzuk bihurketaren beste eremu batzuetara ekar ditzake." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Batez besteko lerroaren luzera jauzi-lerroan baldin eta HTML hori aurretik " -"egin den PDF fitxategi baten bihurketa bada. Lehenetsita hauxe: %default eta " -"horrek hau bertan behera utziko luke." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "" @@ -2373,7 +2388,7 @@ msgid "Path to output file" msgstr "Helburu fitxategirako bidea" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Hitz-jarioa prozesatzen" @@ -2617,7 +2632,7 @@ msgstr "Iruzkinak" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Etiketak" @@ -2772,6 +2787,7 @@ msgid "No cover found" msgstr "Ez da liburu-azalik aurkitu" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Deskargatu liburu-azala" @@ -2841,19 +2857,19 @@ msgstr "deskripzioa/aipamenak edo kritikak" msgid "Download %s from %s" msgstr "Deskargatu %s hemendik: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Bihurtu deskargatutako iruzkinak %s horretatik testu sinplera" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Deskargatu metadatatuak Google Books gunetik" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Deskargatu datuak isbndb.com gunetik" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2861,17 +2877,17 @@ msgstr "" "Erabiltzeko isbndb.com izena eman beharko duzu %sfree account%s doaneko " "kontua izateko. Gero zure pasahitza erabili beharko duzu." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Deskargatu gizarte mailako metadatuak amazon.com gunetik" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" "Deskargatu serieak/etiketak/balorazioak informazioa hemendik: " "librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2896,23 +2912,24 @@ msgstr "" "doaneko kontu batean izena ematen duzunean sortzen duzun pasahitza.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "Nahi dituzun metadatuen liburuaren ISBN ID." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "Bilatzen ari zaren liburuaren egilea." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "Bilatzen ari zaren liburuaren izenburua." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "Bilatzen ari zaren liburuaren argitaleytxea." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " ez da aurkitu." @@ -2930,8 +2947,25 @@ msgstr "" "Eskura ezazu liburu azal bat irudi/gizarte metadatuekin bere ISBN-ren bidez " "hemendik: LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Deskargatzen ditu metadatuak Nicebooks frantziarretik" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Deskargatzen ditu liburu-azalak Nicebooks frantziarretik" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" +"Nicebooks horretan egoteko denbora agorturik. Saia zaitez berriro geroago." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "Akats bat gertatu da Nicebooks-en liburu-azalen eskuratzailearekin" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Liburu-azala" @@ -2977,70 +3011,70 @@ msgstr "Artikulu guztiak" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Hauxe Amazon Topaz liburua da. Ezin da prozesatu." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Orriaren Izenburua" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Aurkibidea" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Indizea" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glosarioa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Aipamenak" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Azken oharra" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Copyright-a" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Eskaintza" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigrafea" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Sarrera" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Irudien zerrenda" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Taulen zerrenda" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Oharrak" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Aitzinsolasa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Testu nagusia" @@ -3048,7 +3082,7 @@ msgstr "Testu nagusia" msgid "%s format books are not supported" msgstr "%s liburuen formatuekin ezin. Oraingoz sostengurik ez" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "%s liburu %s-etatik" @@ -3059,7 +3093,7 @@ msgstr "HTML aurkibideak sortzeko aukerak." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Balorazioa" @@ -3093,7 +3127,7 @@ msgstr "Oin-oharrak" msgid "Sidebar" msgstr "Alboko barra" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -3103,7 +3137,7 @@ msgstr "" "Normalean calibre honek lerro zuriak paragrafo markatzat hartzen ditu. " "Aukera honekin kontu egingo da lerro guztiek paragrafo baten maila daukatela." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3419,7 +3453,7 @@ msgid "" msgstr "" "Zehaztu karaktereen kodea helburu dokumentuan. Lehenetsita hauxe: cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3670,7 +3704,7 @@ msgid "Disable UI animations" msgstr "Desgaitu EI (erabiltzailearen interfazearen) animazioak" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Kopiaturik" @@ -3682,7 +3716,7 @@ msgstr "Kopiatu" msgid "Copy to Clipboard" msgstr "Kopiatu arbelean" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Aukeratu fitxategiak" @@ -3737,90 +3771,90 @@ msgstr "Zenbat liburu hutsik?" msgid "How many empty books should be added?" msgstr "Zenbat liburu hutsik gehitu beharko?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Kargatzen liburuak irakurgailuan." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Topaz liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Text liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB Liburuak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Komikiak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Artxiboak" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Onartzen diren liburuak (formatu hauei eusten zaie)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Bateratu liburu batzuk" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Kopia bikoitz batzuk aurkitu dira eta batu egin dira dagoeneko sortuak " "zeuden liburu hauetan:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Metadatuak irakurtzen huts egin du" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Huts egin du metadatuak hemendik irakurtzen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Gehitu liburutegira" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3828,13 +3862,13 @@ msgstr "Gehitu liburutegira" msgid "No book selected" msgstr "Hautaturiko libururik ez dago" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "Hurrengo liburuak birtualak dira eta ezin dira calibre liburutegira gehitu:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Liburu fitxategirik ez da aurkitu" @@ -3847,7 +3881,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Gehitu liburuak zure calibre liburutegira konektatutako gailutik" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Berreskura itzazu zure ohar eta zirriborroak (esperimentala)" @@ -3944,7 +3978,7 @@ msgid "Checking database integrity" msgstr "Datu baseen osaketa aztertzen" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3960,19 +3994,19 @@ msgstr "Funsgabetasun batzuk aurkitu egin dira" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"Hurrengo liburuek badituzte datu basean zerrendatzen diren formatuak baina " -"oraindik eskuragarri ez daudenak. Formatu horietako sarrerak ezabatu egin " -"dira. Horiek eskuz aztertu beharko dituzu. Hau gerta daiteke liburutegiaren " -"karpetan bertan fitxategiak eraldatzen badituzu." +"Ondoko liburuek badituzte liburu-azalak orain eskuragarri ez dagoen datu " +"base batean. Formatu eta liburu-azalen sarrerak ezabatu egin dira. Eskuz " +"arakatu beharko. Horrelakorik gerta daiteke liburutegiko karpetako " +"fitxategiak eskuz aldatu egin badituzu." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d books" @@ -4121,7 +4155,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Not allowed" @@ -4154,6 +4188,11 @@ msgstr "Ezin da bihurtu" msgid "Starting conversion of %d book(s)" msgstr "%d liburu(ar)en bihurketa abiatzen" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" +"Helburu fitxategia hutsik. Ziur aski bihurketa prozesuak huts egin du" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Kopiatu liburutegira." @@ -4188,9 +4227,9 @@ msgid "Could not copy books: " msgstr "Ezin izan dira liburuak kopiatu: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Huts egin du" @@ -4251,14 +4290,14 @@ msgid "Main memory" msgstr "Memoria nagusia" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Memoria-txartela A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Memoria-txartela B" @@ -4403,7 +4442,7 @@ msgid "covers" msgstr "liburu-azalak" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadatuak" @@ -4505,6 +4544,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Run welcome wizard" @@ -4594,7 +4634,7 @@ msgstr "" "Egin klik zehaztasunak erakutsi botoian ea zeintzuk izan diren ikusteko." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Show book details" @@ -4738,7 +4778,7 @@ msgid "The specified directory could not be processed." msgstr "Zehaztutako direktorioa ezin izan da prozesatu." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Libururik ez" @@ -5040,7 +5080,7 @@ msgstr "outputa, helburua" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -5083,7 +5123,7 @@ msgstr "outputa, helburua" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Inprimakia" @@ -5171,25 +5211,25 @@ msgstr "CSV/XML aukerak" msgid "E-book options" msgstr "E-liburu aukerak" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "'Liburu hau ez sartu' etiketa:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "'Liburu hau irakurrita bezala markatu' etiketa:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Ohar gehigarriaren etiketa aurrizkia:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" "Regex eredua, \"ohiko adierazpen\" eredua, baztertzeko etiketak " "deskribatzen, generoarengatik esaterako:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5203,22 +5243,26 @@ msgstr "" "- dot sinple baten regex eredu batek kanpoan utziko ditu genero etiketa " "guztiak, Generorik Gabeko Saila sortuz." -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Bere baitan 'Izenburuak' saila badago" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Erantsi 'Gehitu berriak' atala" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Sailkatu zenbakiak testuak izango balira bezala" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "'Series' Saila barne" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Desio-zerrenda etiketa" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Tab txantiloia katalogo.ui horretarako" @@ -5246,11 +5290,11 @@ msgstr "" "gordetako bihurketen balioak (horrelakorik balego), erabili beharrean " "Lehentasunetan zehaztutako balio lehenetsiak." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Karga handiko bihurketa" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Helburu formatuarentzako berariazko aukerak." @@ -5727,7 +5771,7 @@ msgid "Change the title of this book" msgstr "Aldatu liburu honen izenburua" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Egilea(k):s " @@ -5745,7 +5789,7 @@ msgstr "" "beharko lirateke." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Argitaratzailea: " @@ -5756,7 +5800,7 @@ msgid "Ta&gs: " msgstr "Etike&tak: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5767,7 +5811,7 @@ msgstr "" "etiketa, komekin bereiziak." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5775,8 +5819,8 @@ msgstr "&Sailak:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -6301,7 +6345,7 @@ msgid "Automatically number books" msgstr "Liburuen zenbaketa automatikoa" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "behartu zenbakia honekin hasten " @@ -6317,97 +6361,103 @@ msgstr "gehitzeko etiketak" msgid "tags to remove" msgstr "ezabatzeko etiketak" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Ez dago zehaztasunik eskura." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "Irakurgailua dagoeneko ez dago konektaturik." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Lortu irakurgailutik informazioa" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Lortu liburu zerrenda irakurgailutik" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Lortu zirriborroak eta oharrak irakurgailutik" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Igorri irakurgailura metadatuak" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Igorri irakurgailura bildumak" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Kargatu %d liburuak irakurgailuan" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Ezabatu liburuak irakurgailutik" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Deskargatu liburuak irakurgailutik" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Ikusi liburua irakurgailuan" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Ezarri lehenetsia bezala \"irakurgailura bidali\" ekintza" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Bidali memoria nagusira" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Bidali A memoria-txartelera" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Bidali B memoria-txartelera" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Memoria nagusia" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Bidali formatu zehatza hona" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Bidali eta ezabatu liburutegitik" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Egotzi irakurgailua (Eject)" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Irakurgailuarekin komunikatzeko saioak huts egin du" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Ez dago formatu egokirik" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Aukeratu karpeta bat irakurgailua izango balitz bezala zabaltzeko" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Akatsen bat irakurgailuarekin komunikatzerakoan" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6415,127 +6465,60 @@ msgstr "" "Behin-behineko huts egite bat egon da irakurgailuarekin komunikatzerakoan. " "Mesedez, deskonektatu eta konektatu berriro gailua, edo berrabiarazi." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Gailua: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " detektaturik." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "hautatua bidaltzeko" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Aukeratu irakurgailura bidaltzeko formatua" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Gailurik ez dago" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Ezin izan da igorri: ez dago inolako gailurik konektatua" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Txartelik ez dago" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Ezin bidali: gailuak ez dauka memoria-txartelik" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "Liburu elektronikoa:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "Erantsita, liburu elektronikoa topatuko duzu" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "egilea:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "%s formatuan." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "E-posta igortzen honi:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Ez dago formatu egokirik" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"Bihurtu modu automatikoan ondorengo liburuak e-postaren bidez igorri " -"aurretik?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"Ezin izan da e-postaz ondorengo liburuak igorri formatu egokirik topatu ez " -"delako:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Huts egin du liburuak igortzerakoan" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Huts egin du e-postaz hurrengo liburuak bidaltzerakoan:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "E-postaz igorria:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Albisteak:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Erantsita doana hau da" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Bidali albisteak honi:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Bihurtu modu automatikoan hurrengo liburuak irakurgailuan kargatu aurretik?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Katalogoak irakurgailura bidaltzen." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Albisteak irakurgailura bidaltzen." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Liburuak irakurgailura bidaltzen." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6544,11 +6527,11 @@ msgstr "" "topatu egin ez delako. Lehenengo eta behin, bihurtu liburua(k) zure " "irakurgailuak onartzen duen formaturen batean." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Lekurik ez irakurgailuan" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6593,16 +6576,14 @@ msgstr "Gehitu liburuak ISBN-aren arabera" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Sar ezazu ISBN zerrenda bat kutxan ezkerretan, banan-banan. calibrek " -"automatikoki sortuko ditu liburuentzako sarrerak ISBN horietan oinarrituta " -"eta metadatuak eta liburu-azalak deskargatuko ditu liburu " -"horientzat.<p>Zerrendako edozein ISBN-rekin ez ikusiarena egingo da zehatz-" -"zehatza ez bada." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Itsatsi arbeletik" @@ -6690,7 +6671,7 @@ msgstr "Liburutegitiko laster-bidea" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Izena" @@ -6744,7 +6725,7 @@ msgid "No location selected" msgstr "Kokogunea hautatu gabe" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Txarto kokatua" @@ -6846,12 +6827,12 @@ msgid "Author sort" msgstr "Egile izenaren araberako sailkapena" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Baliogarria ez den egile izena" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Egile izenek ezin dute & karakterea eduki." @@ -7013,50 +6994,50 @@ msgstr "Bilatu/Ordeztu" msgid "Working" msgstr "Lanean" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Letra xeheak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Letra larriak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Izenburuaren letra mota (xehe/larri)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Karaktereek bat egin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Adierazpen erregularra" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Ordeztu eremua" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Erantsi aurretik eremuari" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Erantsi eremuari" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Editatzen <b>%d liburuetako</b>metadatuen informazioa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Liburua %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -7068,7 +7049,7 @@ msgstr "" "babes-kopia egitea zeharo gomendagarria da.<b> Bilatu eta ordeztu eremuak " "testuan adierazpen erregularrak edo irizpide-karaktereak erabiliz. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -7085,7 +7066,7 @@ msgstr "" "bada ondo zehazten, bilaketa testua bai letra larriekin bai letra xeheekin " "egingo da." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -7111,34 +7092,34 @@ msgstr "" "erreferentzia</a> python adierazpen arruntei buruz gehiago irakurtzeko eta " "begiratu batez ere 'sub' funtzioa." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "Zehaztu beha duzu helburu bat sorburua eremu mistoa denean" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Bilatu/ordeztu ez dabil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" "Egileak ezin dira hutsik dagoen kate batean ezarri. Liburuaren izenburua %s " "ez da prozesatu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" "Izenburuak ezin dira hutsik dagoen kate batean ezarri. Liburuaren izenburua " "%s ez da prozesatu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Bilatzeko patroaia ez dabil: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -7146,19 +7127,19 @@ msgstr "" "Aldaketak ezartzen %d liburuetara.\n" "Fase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Editatu meta informazioa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "A&utomatikoki ezarri egile izenaren araberako sailkapena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "Egile izenaren araberako s&ailkapena: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -7166,63 +7147,63 @@ msgstr "" "Zehaztu ea nola sailkatuko d(ir)en liburu honen egile izena(k) Adibidez " "Charles Dickens honela sailkatuko da; Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Balorazioa:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Liburu honen balorazioa. 0-5 izar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Aldaketarik ez" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " izarrak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Gehitu eti&ketak: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Zabaldu etiketen editorea" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Ezabatu etiketak:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "Liburuetatik ezabatzeko komen bidez bereiziriko etiketen zerrenda. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Aztertu kutxatila hau liburuetako etiketa guztiak ezabatzeko" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Ezabatu dena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Arakatuz gero, seriak ezabatu egingo dira" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Ezabatu serieak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7237,11 +7218,11 @@ msgstr "" "A Liburuak 1 serie zenbakia izango du eta B Liburuak 2 serie zenbakia izango " "du." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Automatikoki esleitu zenbakiak liburuei sail honetan" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7253,15 +7234,15 @@ msgstr "" "zenbaketarekin hasteko\n" "kutxan dagoen zenbakitik hasita" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Ezabatu &formatua:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Trukatu haien artean izenburua eta egilearen izena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7271,11 +7252,11 @@ msgstr "" "bai egile azterketan\n" "egile eta izenburua aztertuko dira izenburu letra tipoa ezarri baino lehen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Aldatu izenburua, izenburu letra tipora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7286,33 +7267,33 @@ msgstr "" "Etorkizunean liburu hauen bihurketek lehenetsitako ezarpenak erabiliko " "dituzte." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "Ezabatu &gordetako bihurketa ezarpenak hautatutako liburuentzat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "&Oinarrizko metadatuak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "&Pertsonalizaturiko metadatuak" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Search &eremua:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "Aztertu nahi duzun eremuaren izena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Bilaketa modua:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7320,11 +7301,11 @@ msgstr "" "Aukeratu ea oinarrizko testuaren bilaketa egin edo adierazpen arrunten " "bilaketa aurreratua egin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Bilatu hau:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" @@ -7332,7 +7313,7 @@ msgstr "" "Sartu bilatzen ari zaren hori, bai testu hutsa bai adierazpen arrunta, " "aukeratu duzun moduaren arabera" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -7341,26 +7322,26 @@ msgstr "" "letra larri eta letra xeheekin. Ez arakatu kutxa honetan baldin eta letra " "tipoari ez badiozu arreta eskaini nahi." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Letra larriak/xeheak bereiziz" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "&Ordeztu honekin:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "" "Ordezkatze testua. Bat egiten duen testua kate honekin ordezkatu egingo da" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Aplikatu funtzioa ordezkatu eta gero:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7372,11 +7353,11 @@ msgstr "" "eremu osoa prozesatu egingo da. Adierazpen erregular moduan, bakarrik " "prozesatuko da bilatu eta bat egiten duen testua" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "&Helburu eremua:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7384,15 +7365,15 @@ msgstr "" "Ordezkatzeak egin eta gero ezarriko den eremua. Zuriz utziz gero, sorburu " "eremua erabiliko da." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Modua:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Zehaztu nola kopiatuko den testua helburura." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7402,23 +7383,23 @@ msgstr "" "adieraziko du ea koma bat edo\n" "ezer ez jarriko den jatorrizko testua eta txertatutako testuaren artean" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "erabili koma bat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "Testua &testua" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Testu emai&tza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Zure testua:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" msgstr "Bilatu eta ordeztu" @@ -7712,20 +7693,21 @@ msgstr "Pasahitza beharko" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&Erabiltzaile-izena:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Pasahitza:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Erakutsi pasahitza" @@ -7967,50 +7949,48 @@ msgid "Advanced Search" msgstr "Bilaketa aurreratua" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "Bilatu hauxe duten sarrerak..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "Hitz &hauek guztiak:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "Zehatz eta mehatz &esaldi hau:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "&Bat edo gehiago hitz hauetatik:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "Baina ez erakutsi honako hauxe daukaten sarrerak..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "&nahi-ez-den hitz hauetako bat:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "Zein motatako bat etortze erabili:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -"Bere baitan: metadatuetan edonon bat egiten duten hitzak edo esaldiak" +"Badauka: hitza edo esaldia metadatu eremuko edozein tokitan bat dator" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "Berdinak: hitza edo esaldia metadatu eremu osoan bat etorri behar du" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" +"Adierazpen erregularra: adierazpenak metadatu eremuko edozein tokitan bat " +"etorri behar" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Bilatu hauxe duten sarrerak..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "Hitz &hauek guztiak:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Zehatz eta mehatz &esaldi hau:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "&Bat edo gehiago hitz hauetatik:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "" -"Berdinak: hitzak edo esaldiak metadatu baten eremu osoarekin egin beharko du " -"bat" +msgid "But dont show entries that have..." +msgstr "Baina ez erakutsi honako hauxe daukaten sarrerak..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "" -"Ohiko adierazpena: adierazpenak bat egin beharko du metadatuen edozein " -"tokitan" +msgid "Any of these &unwanted words:" +msgstr "&nahi-ez-den hitz hauetako bat:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -8199,12 +8179,12 @@ msgid "%s (was %s)" msgstr "%s (%s izan da)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "Elementua zuriz dago" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "Elementu bat ezin zaio ezerezari gehitu. Horren ordez, ezaba ezazu." @@ -8290,7 +8270,7 @@ msgid "Discard changes" msgstr "Baztertu aldaketak" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Bertan behera utzi" @@ -8500,6 +8480,64 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Formularen iturri kodea (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "E-postal %s honi %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Albisteak:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "Liburu elektronikoa:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "Erantsita, liburu elektronikoa topatuko duzu" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "egilea:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "%s formatuan." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "E-posta igortzen honi:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"Bihurtu modu automatikoan ondorengo liburuak e-postaren bidez igorri " +"aurretik?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Ezin izan da e-postaz ondorengo liburuak igorri formatu egokirik topatu ez " +"delako:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Bidali albisteak honi:" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8696,23 +8734,23 @@ msgstr "Ezin dira irakurgailuarekin konektaturik dauden lanak geldiarazi" msgid "Job has already run" msgstr "Lana dagoeneko exekutatu egin da" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Ez dago erabilgarri" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Lanak:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Maiusk+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Egin klik lanen zerrenda ikusteko" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Lanak" @@ -8738,7 +8776,7 @@ msgid "Show books in the main memory of the device" msgstr "Erakutsi liburuak irakurgailuaren memoria nagusian" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "A txartela" @@ -8747,7 +8785,7 @@ msgid "Show books in storage card A" msgstr "Erakutsi liburuak A memoria-txartelean" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "B txartela" @@ -8830,7 +8868,7 @@ msgstr "%s liburua %s-etatik." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "Bilaketa izena hauxe: \"{0}\"" @@ -8859,47 +8897,47 @@ msgstr "Ezabatzeko markatuta" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Egin ezazu klik birritan <b>editatzeko</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Ezkutatu %s zutabea" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "%s -en arabera sailkatu" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Gorantz" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Beherantz" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Alda ezazu testuaren lerrokatzea %s horretarako" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Ezkerretara" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Eskuinetara" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Erdian" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Erakutsi zutabea" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Berrezarri lehenetsitako diseinua" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8932,7 +8970,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "Ez da <b>bat datorrenik</b> esaldia bilatzerakoan <i>%s</i> aurkitu." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Ez da bat datorrenik aurkitu" @@ -8949,12 +8987,12 @@ msgid "LRF Viewer toolbar" msgstr "LRF Ikustailearen tresna-barra" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Hurrengo orrialdea" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Aurreko orrialdea" @@ -8998,7 +9036,7 @@ msgid "Do not check for updates" msgstr "Ez ibili eguneratzeen bila" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "calibre liburutegia" @@ -9137,37 +9175,37 @@ msgstr "Liburuak ez du ez izenbururik ez ISBNrik" msgid "No matches found for this book" msgstr "Ez da bat etortzerik aurkitu liburu honetarako" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "Kale egin du metadatuak deskargatzen" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "liburu-azala" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Deskargatua" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "Ezin izan da eskuratu" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s honetarako: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Egina" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "Ongi deskargatu dira metadatuak %d horietarako %d liburuetatik" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Zehaztasunak" @@ -9736,27 +9774,27 @@ msgstr "Erakutsi &testua ikonoen azpian:" msgid "&Split the toolbar into two toolbars" msgstr "&Banatu tresna barra bi tresna barra berrietan" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Aplikatu" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Berrezarri &lehenetsiak" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Gorde aldaketak" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Bertan behera utzi eta itzuli ikuspegi orokorrera" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "Lehenetsitako balioak berreskuratzea ez dago onartua honentzat :" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9764,7 +9802,7 @@ msgstr "" "Egindako aldaketa batzuek berrabiaraztea eskatzen dute. Mesedez, " "berrabiarazi calibre ahal bezain pronto." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9773,7 +9811,7 @@ msgstr "" "duten. Ezin izango dituzu aukera gehiago aldatu edo ezarri calibre " "berrabiarazi arte." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Berrabiarazi beharko" @@ -10137,7 +10175,7 @@ msgstr "" "honela: Preferences->Advanced->Plugins (Aukerak>Aurreratua>Gehigarriak)" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Huts egin du edukien zerbitzaria abiarazten" @@ -10358,7 +10396,7 @@ msgstr "&Current oraingo aldaketak" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Bilatu" @@ -10457,26 +10495,22 @@ msgstr "Garbitu" msgid "&Alternate shortcut:" msgstr "&Ordezko lasterbidea:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Berriro izendatu '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Editatu mota (fitxategi mota) '%s' horretarako" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Ezkutatu %s kategoria" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Erakutsi kategoria" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Erakutsi kategoria guztiak" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10491,67 +10525,71 @@ msgstr "Kudeatu gordetako bilaketak" msgid "Manage User Categories" msgstr "Kudeatu erabiltzaile kategoriak" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Erakutsi kategoria guztiak" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" "Liburu multzo batean egileen izenak aldatzeko denbora beharko. Ziur zaude?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "Liburu multzo batean metadatuak aldatzeko denbora beharko. Ziur zaude?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Bilaketak" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Bilaketa izena bikoiztua" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "%s bilaketa izen hori dagoeneko erabilia izan da." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Izenez ordenatu" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Ospearen arabera ordenatu" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Ordenatu batezbesteko balorazioen arabera" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Ezarri etiketen arakatzaileko sarreren ordena" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Bilatu dena" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Bilatu edozein" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "Etiketen arakatzailean hainbat sarrera hautatzen direnean bilatu haietako " "bat edo haiek guztiak" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Kudeatu &erabiltzaile kategoriak" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Gehi ezazu zeuk asmatutako kategoria etiketa arakatzailean" @@ -10598,28 +10636,28 @@ msgstr "" "Honako liburuak dagoeneko %s formatura bihurtu dira. Nahi dituzu berriro " "bihurtu?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Lehengoratu" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Emaitza egin calibre diruz laguntzeko" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Deskonektatu konektatuta zegoen gailua" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Calibre Quick Start Guide (azkar erabiltzeko gida)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Bihurketa akatsa" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10629,15 +10667,15 @@ msgstr "" "sistema bat). Bihurtu ahal izateko DRM arazo hori konpondu beharko duzu " "beste batzuen lanabesak erabiliz." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Formula desgaitua" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Huts egin du</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10648,12 +10686,12 @@ msgstr "" "kontua garapenean laguntzeko. Zure emaitzak lagunduko dio calibreri garatzen " "jarraitzen." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" "Oraintxe bertan lan batzuk egiten ari dira. Ziur zaude irten nahi duzula?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10664,11 +10702,11 @@ msgstr "" "daiteke.<br>\n" " Ziur zaude? Benetan irten nahi duzu?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "ABISUA: lanean dihardu" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10849,17 +10887,17 @@ msgstr "&Gilzadiko laster-bideak" msgid "No results found for:" msgstr "Ez da emaitzik aurkitu honetarako:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Liburu elektronikoen irakurgailua pertsonalizatzeko aukerak" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Gogoratu erabilitako azken leiho tamaina" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10867,83 +10905,83 @@ msgstr "" "Ezarri CSS (Cascading Style Sheets) estiloa. Hau liburu guztien itxura " "pertsonalizatzeko erabil daiteke." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Zabalera maximoa ikustaileko leihoan, pixeletan." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" "Ikustaileko leihoa baino handiagoak diren irudien neurriak aldatzen ditu, " "ikustaileko leihora doitzeko" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Gidoidun \" - \"hitzak dituen testua" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "" "Lehenetsitako zein hizkuntzatako gidoiei buruzko arautegia dago ezarrita" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Letra-tipoaren aukerak" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "Serif letra-tipokoen familia" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "Sans-serif letra-tipokoen familia" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "Monospaced letra-tipokoen familia" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "Letra-tipo tamaina estandarra pixeletan" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "Monospaced letra-tipo tamaina pixeletan" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Letra-tipo estandarra" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&Bilatu hiztegian" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Joan horra..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Hurrengo atala" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Aurreko atala" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Documentuaren hasiera" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Documentuaren bukaera" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Atalaren hasiera" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Atalaren amaiera" @@ -11013,91 +11051,91 @@ msgstr "" msgid "Search for text in book" msgstr "Bilatu testua liburuan" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Inprimatze-aurrebista" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Konektatzen dict.org horrekin hauxe bilatzeko: <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Aukeratu liburua" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Liburu elektronikoak" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Ez da bat etortzerik aurkitu %s horretarako" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Jarioa kargatzen..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Bistarazten %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Laster-marka #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Gehitu laster-marka" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Sartu laster-markaren izenburua:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Kudeatu laster-markak" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Liburu elektronikoa kargatzen..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM, Digital Rights Management, sistemak eragindako errorea" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "" "<p>Liburu hau irakurtzeko murriztapenak daude: <a href=\"%s\">DRM \"Digital " "Rights Management\"</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Ezin izan da liburua zabaldu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Liburu elektronikoen irakurgailua kontrolatzeko aukerak" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Zehazten bada, ikustailearen leihoa saiatuko da aurreko aldera etortzen " "hasterakoan." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Hauxe hautatu eginez gero, ikusiko den leihoa saiatuko da pantaila osoa " "zabaltzen hasi eta berehalakoan." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Inprimatu javascript alerta eta kontsola mezuak kontsolara" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -11215,7 +11253,7 @@ msgstr "Ezkutatu" msgid "Toggle" msgstr "Txandakatu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -11225,7 +11263,7 @@ msgstr "" "zaitezke calibre liburu bildumara gailutik beratik. Hau egiteko gaitu egin " "beharko duzu edukien zerbitzaria." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -11233,7 +11271,7 @@ msgstr "" "Gogoratu calibre exekutatzen uztea, zerbitzaria ibiliko da calibre dabilen " "bitartean bakarrik." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -11244,20 +11282,20 @@ msgstr "" "erabat hartakoturiko, kualifikaturiko, ostatze-izena edo bestela, calibre " "exekutatzen ari den ordenagailuko IP helbidea." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Mugitzen liburutegia..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Huts egin du liburutegia mugitzen" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Datu base balio gabea" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -11265,22 +11303,22 @@ msgstr "" "<p>Balio gabeko liburutegia dago %s horretan, ezabatu oraingo liburutegia " "mugitzen saiatu baino lehen.<br>Errorea: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Ezin izan da liburutegia mugitu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Hautatu liburuendako kokagunea" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "Aukeratu beharko duzu hutsik dagoen edozein karpeta calibre liburutegirako. " "%s hori ez dago hutsik." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "ongi-etorri laguntzailea" @@ -11367,11 +11405,12 @@ msgstr "Aukeratu zure &hizkuntza:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Aukeratu kokaleku bat zure liburuentzat. calibren liburuak gehitzen " -"dituzunean, hemen kopiatuko dira:" +"<p>Aukera ezazu zure liburuarentzako leku bat. calibrera liburuak gehitzen " +"dituzunean, hona kopiatu egingo dira. Erabil ezazu <b>hutsik dagoen " +"karpeta</b> bat calibre liburutegi berri baterako:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11387,50 +11426,80 @@ msgstr "" "da. calibre liburutegia existitzen bada dagoeneko kokagune berrian, " "calibrek aldatuko du hori erabiltzeko." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Erabiltzen: %s:%s@%s:%s eta %s kodeketa" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Bidaltzen..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "E-posta arrakastaz igorria" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Bukatu gmail konfiguratzen" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Ez ahantzi zure gmail kontuko erabiltzaile izena eta pasahitza sartzen. " -"Doaneko e-posta zerbitzuko kontua eskatzea duzu http://gmail.com horretan." +"Hotmail kontu berri bat konfiguratzen ari bazara, mezuak bidaltzen hasi " +"baino lehen saioa hasita izan beharko duzu." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"Izena eman ahal duzu {name} e-posta kontua doan izateko hemen: <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "Zure %s &e-posta helbidea:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "Zure %s &erabiltzaile-izena:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "Your %s &pasahitza:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"Zure Kindle horretara liburuak e-postaren bidez bidaltzeko asmoa baduzu, " +"gogoratu zure %s e-posta helbidea gehitzea Amazon.com Kindle kudeaketa " +"orriko baimenduetako e-posta helbideetara." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "Konfiguratu" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Konfigurazio okerra" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Aukeratu beharko duzu igorle e-posta helbidea" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "" "Zehaztu beharko duzu erabiltzaile izena eta pasahitza e-posta " "zerbitzariarentzat." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Bidali e-posta &hemendik:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11438,7 +11507,7 @@ msgstr "" "<p>Hauxe da Igorlearen eremuan erakutsiko dena: calibrek bidalitako e-posta " "mezuen igorlea.<br> Ezarri ezazu zure e-posta helbidearekin." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11447,53 +11516,53 @@ msgstr "" "zerbitzuak bakarrik onartzen baditu oso ezagunak diren e-posta zerbitzuetako " "mezuak." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "E-posta &Zerbitzaria" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "calibrek erabil dezake, <b>hautazko</b>, horrelako zerbitzari bat mezua " "bidaltzeko" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Ostalariaren izena:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "" "Zure e-posta zerbitzariaren ostalariaren izena. Esate baterako smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Portua:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "Zure e-posta zerbitzariaren portua konexioen zain egongo da. Lehenetsita 25 " "da" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "Zire erabiltzaile izena e-posta zerbitzarian" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "Zire pasahitza e-posta zerbitzarian" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Erakutsi" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Kodeketa:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11501,25 +11570,37 @@ msgstr "" "Erabil ezazu TLS encryption, Transport Layer Security kodeketa, zure e-" "postarekiko konexioan. Hauxe da erabiliena." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS (Transport Layer Security kodeketa)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "" "Erabili SSL encryption, Secure Sockets Layer kodeketa, e-posta " "zerbitzariarekin konexioa egiterakoan." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Erabili Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Erabil ezazu Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Aztertu e-posta" @@ -11586,7 +11667,7 @@ msgstr "hutsunea, zuriunea" msgid "empty" msgstr "hutsik" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11600,7 +11681,7 @@ msgstr "" "Lehenetsita: '%%default'\n" "Aplikatu hauek: CSV, XML output formatuei" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11612,7 +11693,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatuko: CSV, XML output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11626,7 +11707,7 @@ msgstr "" "Lehenetsita: '%%default'\n" "Aplikatu hauek: BIBTEX output formatuei" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11638,7 +11719,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatuko: BIBTEX output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11650,7 +11731,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatuko da: BIBTEX output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11664,7 +11745,7 @@ msgstr "" "Lehenetsita: '%%default'\n" "Aplikatuko da: BIBTEX output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11676,7 +11757,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatuko da: BIBTEX output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11688,7 +11769,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatuko da: BIBTEX output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11700,7 +11781,7 @@ msgstr "" "Lehenetsia: '%default'\n" "Aplikatuko da: BIBTEX output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11710,7 +11791,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatuko zaie ePub, MOBI irteera formatuei" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11724,7 +11805,7 @@ msgstr "" "Lehenetsita: '%default'None\n" "Aplikatzeko formatu hauetarako: ePUB eta MOBI irteera formatuak" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11735,7 +11816,7 @@ msgstr "" "adibidez '[<etiketa>]'\n" "Erantsiko da: ePub, MOBI output formatuetan" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11751,7 +11832,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatuko da: ePub, MOBI output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11761,7 +11842,7 @@ msgstr "" "Lehenetsia: '%default'\n" "Aplikatuko: ePub, MOBI output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11771,7 +11852,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatzeko: ePub, MOBI output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11781,7 +11862,7 @@ msgstr "" "Lehenetsia: '%default'\n" "Aplikatuko da: ePub, MOBI output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11792,7 +11873,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Applikatuko da: ePub, MOBI output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11807,7 +11888,7 @@ msgstr "" "Lehentsita: '%default'\n" "Aplikatuko da: ePub, MOBI output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11822,7 +11903,7 @@ msgstr "" "Lehenetsita: '%default'\n" "Aplikatuko da: ePub, MOBI output formatuetara" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11832,6 +11913,16 @@ msgstr "" "Lehenetsia: '%default'\n" "Aplikatuko da: ePub, MOBI output formatuetara" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etiketa honek liburua desio-zerrenda horretakoa bezala erakutsiko.\n" +"Lehenetsita: '%default'\n" +"Aplikatuko den formatuak: ePub, MOBI helburu formatuak" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Izenburu horiek ez dira zuzenak" @@ -12562,37 +12653,37 @@ msgstr "" "Etiketak idazteko bakarrik letra xeheak, zenbakiak eta azpimarrak (hau da " "beheko gidoitxoak). Letra batekin hasi beharko" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sBatezbesteko balorazioa hauxe: %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Nagusia" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" "<p>Migrazioa egiten datu base zaharretik liburu elektronikoen liburutegira " "zera honetan: %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Kopiatzen <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Trinkotzen datu basea" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Aztertzen SQL-ren osotasuna..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Aztertzen fitxategi galduen bila." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "Aztertutako ID" @@ -12824,128 +12915,129 @@ msgstr "" "URL guztiei aurretik eskegitzeko kodea. Erabilgarria zerbitzari honantz " "egiten diren atzekoz aurrerako proxyetan, Apache/nginx/ eta abarretatik hona." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "calibre liburutegian sartzeko pasahitza. Erabiltzaile izena: " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "Kargatzen. Mesedez, zaude apur batean." -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "Joan hona" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Lehena" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Azkena" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Aurrekoa" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Hurrengoa" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "Gainbegiratzen %d liburuak" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Batez besteko balorazioa" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f izarrak" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d izarrak" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Ospea" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Sailkatu honen arabera:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "liburutegia" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "hasiera" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Berriena" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Liburu guztiak" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Gainbegiratu liburuak honen arabera:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Aukeratu kategoria bat horren arabera gainbegiratzeko:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Gainbegiratzen honen arabera:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Gora" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "barnean" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Liburuan non:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Beste formatu batzuk" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Irakur ezazu %s formatu honetan: %s" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Eskuratu" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Esteka iraunkorra" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "Behin betiko esteka liburu honetara" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Liburu hau ezabatu egin da" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "bilatzen" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Liburuak parekatzen" @@ -13290,7 +13382,7 @@ msgstr "Huts egin du SSH saioa ezartzerakoan: " msgid "Failed to authenticate with server: %s" msgstr "Huts egin du zerbitzariarekin egiaztatzerakon: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Kontrolatu e-posta banaketa" @@ -13605,6 +13697,14 @@ msgstr "Ez deskargatu CSS (Cascading Style Sheets) estilo orririk." #~ msgid "General" #~ msgstr "Orokorra" +#~ 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 "" +#~ "Batez besteko lerroaren luzera jauzi-lerroan baldin eta HTML hori aurretik " +#~ "egin den PDF fitxategi baten bihurketa bada. Lehenetsita hauxe: %default eta " +#~ "horrek hau bertan behera utziko luke." + #~ msgid "EDITORIAL REVIEW" #~ msgstr "ARGITALETXEAREN BERRIKUSKETA" @@ -13633,6 +13733,18 @@ msgstr "Ez deskargatu CSS (Cascading Style Sheets) estilo orririk." #~ msgid "Output directory. Defaults to current directory" #~ msgstr "Helburu-direktorioa. Lehenetsia, oraingo direktoriora" +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Sar ezazu ISBN zerrenda bat kutxan ezkerretan, banan-banan. calibrek " +#~ "automatikoki sortuko ditu liburuentzako sarrerak ISBN horietan oinarrituta " +#~ "eta metadatuak eta liburu-azalak deskargatuko ditu liburu " +#~ "horientzat.<p>Zerrendako edozein ISBN-rekin ez ikusiarena egingo da zehatz-" +#~ "zehatza ez bada." + #~ msgid "Book Jacket" #~ msgstr "Liburu-azalaren estalkia" @@ -13708,6 +13820,18 @@ msgstr "Ez deskargatu CSS (Cascading Style Sheets) estilo orririk." #~ msgstr "" #~ "Aplikatu aldaketak %d liburuetara. Honek denbora une bat beharko du, agian." +#~ msgid "Failed to email books" +#~ msgstr "Huts egin du liburuak igortzerakoan" + +#~ msgid "Failed to email the following books:" +#~ msgstr "Huts egin du e-postaz hurrengo liburuak bidaltzerakoan:" + +#~ msgid "Sent by email:" +#~ msgstr "E-postaz igorria:" + +#~ msgid "Attached is the" +#~ msgstr "Erantsita doana hau da" + #~ msgid "" #~ "Content\n" #~ "Server" @@ -13797,6 +13921,25 @@ msgstr "Ez deskargatu CSS (Cascading Style Sheets) estilo orririk." #~ msgid "Download &cover" #~ msgstr "Deskargatu &liburu-azala" +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "" +#~ "Bere baitan: metadatuetan edonon bat egiten duten hitzak edo esaldiak" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Berdinak: hitzak edo esaldiak metadatu baten eremu osoarekin egin beharko du " +#~ "bat" + +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Aukeratu kokaleku bat zure liburuentzat. calibren liburuak gehitzen " +#~ "dituzunean, hemen kopiatuko dira:" + +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "calibre liburutegian sartzeko pasahitza. Erabiltzaile izena: " + #~ msgid "" #~ "[options]\n" #~ "\n" @@ -13823,6 +13966,17 @@ msgstr "Ez deskargatu CSS (Cascading Style Sheets) estilo orririk." #~ "Egindako aldaketek calibre berrabiaraztea eskatzen dute. Mesedez, " #~ "berrabiarazi ahalik eta lehenen." +#~ 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 "" +#~ "Hurrengo liburuek badituzte datu basean zerrendatzen diren formatuak baina " +#~ "oraindik eskuragarri ez daudenak. Formatu horietako sarrerak ezabatu egin " +#~ "dira. Horiek eskuz aztertu beharko dituzu. Hau gerta daiteke liburutegiaren " +#~ "karpetan bertan fitxategiak eraldatzen badituzu." + #~ msgid "" #~ "<li><b>Manual Management</b>: Calibre updates the metadata and adds " #~ "collections only when a book is sent. With this option, calibre will never " @@ -13871,6 +14025,12 @@ msgstr "Ez deskargatu CSS (Cascading Style Sheets) estilo orririk." #~ "Sortu modu automatikoan egile-izenaren araberako sailkapena oraingo egile-" #~ "izen honetan oinarriturik" +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Ohiko adierazpena: adierazpenak bat egin beharko du metadatuen edozein " +#~ "tokitan" + #~ msgid "" #~ "Comma separated list of formats to save for each book. By default all " #~ "available books are saved." @@ -13905,6 +14065,16 @@ msgstr "Ez deskargatu CSS (Cascading Style Sheets) estilo orririk." #~ msgid "Update available" #~ msgstr "Eskuragarri dago eguneratze berri bat" +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Ez ahantzi zure gmail kontuko erabiltzaile izena eta pasahitza sartzen. " +#~ "Doaneko e-posta zerbitzuko kontua eskatzea duzu http://gmail.com horretan." + +#~ msgid "Finish gmail setup" +#~ msgstr "Bukatu gmail konfiguratzen" + #~ msgid "" #~ "Book formats and metadata from the selected books will be added to the " #~ "<b>first selected book.</b> ISBN will <i>not</i> be merged.<br><br> The " @@ -14078,3 +14248,6 @@ msgstr "Ez deskargatu CSS (Cascading Style Sheets) estilo orririk." #~ "egokitzea da. beste aukera bat egile izenen multzoa aldatzea litzateke, mobi " #~ "erabiltzaileek egin beharreko zerbait, aplikazioak kindlek behar dituen ';' " #~ "horiek erabiltzeko. Hirugarrena hizkuntza zehaztea litzateke." + +#~ msgid "No details available" +#~ msgstr "Ez dago xehetasunik eskuragarri" diff --git a/src/calibre/translations/fr.po b/src/calibre/translations/fr.po index 17542ac491..5cce2b895d 100644 --- a/src/calibre/translations/fr.po +++ b/src/calibre/translations/fr.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.22\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-11-06 15:45+0000\n" -"PO-Revision-Date: 2010-11-08 22:51+0000\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-12-02 02:39+0000\n" "Last-Translator: sengian <Unknown>\n" "Language-Team: Français <kde-i18n-doc@kde.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-10 05:01+0000\n" +"X-Launchpad-Export-Date: 2010-12-03 05:02+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Bookmarks: 1177,1104,-1,-1,-1,-1,-1,-1,-1,-1\n" "Generated-By: pygettext.py 1.5\n" @@ -29,11 +29,11 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -42,8 +42,8 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -57,7 +57,7 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -76,14 +76,14 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -91,7 +91,7 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -111,10 +111,10 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -123,15 +123,15 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -139,14 +139,14 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -187,14 +187,14 @@ msgstr "Action d'interface utilisateur" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Préférences" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -204,7 +204,7 @@ msgstr "" "contenant tous les fichiers liés. Ce plug-in est lancé chaque fois que vous " "ajoutez un fichier HTML à la bibliothèque." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -212,7 +212,7 @@ msgstr "" "Encodage des caractères pour les fichiers HTML en entrée. Les choix les plus " "communs incluent : cp1252, latin1, iso-8859-1 et utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -222,7 +222,7 @@ msgstr "" "le répertoire pmlname_img ou images. Ce plugin est lancé à chaque ajout d'un " "fichier PML dans la bibliothèque." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Extraction de la couverture depuis des fichiers de bandes dessinées" @@ -269,44 +269,44 @@ msgstr "Définir les métadonnées des fichiers %s" msgid "Set metadata from %s files" msgstr "Définir les métadonnées à partir des fichiers %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Apparence" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interface" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" "Ajuster l'aspect et l'ergonomie de l'interface de Calibre à votre convenance" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Comportement" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Changer le comportement de calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Ajouter vos colonnes personnalisées" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Ajouter/retirer vos propres colonnes dans la liste des livres" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Personnaliser la barre d'outils" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -314,60 +314,60 @@ msgstr "" "Personnaliser les barres d'outils et les menus contextuels, en changeant les " "actions disponibles dans ceux-ci" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Options de saisie" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Conversion" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "" "Définissez les options de conversion spécfiques pour chaque format d'entrée" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Options communes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "" "Définisser les options de conversion communes à tous les formats d'entrée" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Formats de sortie" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Définissez des options spécifiques pour chaque format de sortie" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Ajouter des livres" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Import/Export" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Définir comment les métadonnées sont lues par Calibre lors de l'ajout de " "livres" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Sauvegarder les livres sur le disque" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -375,34 +375,34 @@ msgstr "" "Contrôle la manière dont Calibre exporte les fichiers de sa base de données " "sur le disque lors des sauvegardes sur disque" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Envoyer les livres aux appareils" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "" "Contrôler la façon dont Calibre exporte les fichiers vers votre lecteur " "d'eBook" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Tableau de connexions de métadonnées" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Modifier les champs de métadonnées avant de sauvegarder/envoyer" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Partager des livres par courriel" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Partage" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -410,11 +410,11 @@ msgstr "" "Mise en place du partage de livre par courriel. Peu aussi être utilisé pour " "envoyer automatiquement les dernières nouvelles téléchargées à votre appareil" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Partager à travers le réseau" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -422,34 +422,34 @@ msgstr "" "Installer le serveur de contenu de Calibre qui vous permet d'accéder à votre " "bibliothèque Calibre n'importe où, sur tous vos appareils, via Internet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Plugins" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Avancé" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Ajouter/Retirer/Modifier diverses fonctionalités de Calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Ajustements" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "" "Affiner la manière dont Calibre se comporte dans différents contextes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Divers" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Diverses configurations avancées" @@ -495,7 +495,7 @@ msgstr "" "vous ne savez rien à propos du document d'entrée." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -506,62 +506,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Ce profil est prévu pour le SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Ce profil est prévu pour le SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Ce profil est prévu pour le lecteur Microsoft." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Ce profil est prévu pour les livres Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Ce profil est prévu pour le Handlin V3 et ses clones." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Ce profil est prévu pour le Hanlin V5 et ses clones." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Ce profil est prévu pour le Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Ce profil est prévu pour le Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Ce profil est prévu pour le Kindle d'Amazon." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Ce profil est prévu pour l'Iliad Irex." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Ce profil est prévu pour l'IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Ce profil est prévu pour le lecteur IRex Digital 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Ce profil est prévu pour le Nook B&N." @@ -579,29 +579,29 @@ msgstr "" "souhaitez générer un document que vous avez l'intention de lire sur un " "ordinateur ou sur une gamme d'appareils." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Prévu pour l'iPad ou des appareils semblables avec une résolution de 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "Prévu pour les tablettes génériques, ne redimensionne pas les images" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Ce profil est prévu pour le lecteur Kobo" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Ce profil est prévu pour le SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Ce profil est prévu pour le JetBook de 5 pouces." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -609,11 +609,15 @@ msgstr "" "Ce profil est prévu pour la gamme des SONY PRS (500, 505, 700, etc.) en mode " "paysage. Utile principalement pour les bandes dessinées." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Ce profil est prévu pour le Kindle DX d'Amazon." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Ce profil est prévu pour le B&N Nook Color." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Ce profil est prévu pour le Sanda Bambook." @@ -692,7 +696,7 @@ msgstr "Désactive le plugin nommé" msgid "Communicate with Android phones." msgstr "Communiquer avec les téléphones Android" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -700,7 +704,7 @@ msgstr "" "Liste de répertoires séparés par des virgules utilisée pour envoyer les " "ebooks vers l'appareil. Le premier existant sera utilisé." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Communiquer avec les téléphones S60" @@ -778,18 +782,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Informations" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Catalogue" @@ -815,6 +819,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Communiquer avec le lecteur eBook Cybook Gen 3 / Opus" +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Communiquer avec le lecteur d'ebooks Cybook Orizon." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Communiquer avec le lecteur d'ebook EB600" @@ -827,6 +835,10 @@ msgstr "Communiquer avec l'Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Communiquer avec le lecteur PocketBook 301" +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Communiquer avec le lecteur PocketBook 602." + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -887,8 +899,8 @@ msgstr "Communiquer avec le lecteur d'ebook Alex de SpringDesign" #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -977,26 +989,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Lit la liste des livres de l'appareil..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Supprime les livres de la liste des métadonnées de l'appareil..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Ajoute les livres à liste des métadonnées de l'appareil..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Non implémenté" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1038,6 +1050,10 @@ msgstr "Communiquer avec le VelocityMicro" msgid "Communicate with the GM2000" msgstr "Communiquer avec le GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Communiquer avec l'Acer Lumiread" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Communiquer avec la tablette internet Nokia 770." @@ -1058,6 +1074,14 @@ msgstr "Le Nook" msgid "Communicate with the Nook eBook reader." msgstr "Communiquer avec le lecteur d'ebook Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Couleur" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Communiquer avec le lecteur d'ebooks Nook Color." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Communiquer avec le lecteur d'ebook Nuut2." @@ -2141,15 +2165,6 @@ msgstr "" "savez ce que vous faîtes car il peut en résulter des effets variés et " "déplaisants dans le reste de le chaine de conversion." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Longueur moyenne de ligne pour les sauts de lignes si le HTML provient d'une " -"conversion précédente et partielle d'un fichier PDF. Par défaut : %default " -"(qui désactivera cela)." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "Fichier CSS utilisé pour la sortie au lieu du fichier par défaut" @@ -2317,7 +2332,7 @@ msgid "Path to output file" msgstr "Chemin vers le fichier sortie" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Analyse avec explications" @@ -2502,8 +2517,8 @@ msgstr "Oui" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 @@ -2537,8 +2552,8 @@ msgstr "Producteur" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 @@ -2553,7 +2568,7 @@ msgstr "Commentaires" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Etiquettes" @@ -2708,6 +2723,7 @@ msgid "No cover found" msgstr "Aucune couverture trouvée" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Télécharger la couverture" @@ -2779,19 +2795,19 @@ msgstr "Description/Commentaires" msgid "Download %s from %s" msgstr "Téléchargement de %s sur %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Convertir les commentaires téléchargés de %s en texte intégral" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Télécharge les métadonnées à partir de Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Télécharge les métadonnées à partir d'isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2799,17 +2815,17 @@ msgstr "" "Pour utiliser isbndb.com vous devez vous enregistrer un %scompte gratuit%s " "et entrer votre clef d'accès ci-dessous." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Télécharge les métadonnées sociales à partir d'amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" "Télécharger les informations sur les séries/étiquettes/notes à partir de " "librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2834,23 +2850,24 @@ msgstr "" "compte gratuit sur isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "L'ISBN du livre dont vous désirez les métadonnées." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "L'auteur du livre à chercher." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "le titre du livre à chercher." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "L'éditeur du livre à chercher." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " pas trouvé." @@ -2868,8 +2885,26 @@ msgstr "" "Récupère les métadonnées sociales/la couverture du livre identifié par ISBN " "à partir de LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Télécharger les métadonnées depuis Nicebooks (français)" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Télécharger les couvertures depuis Nicebooks (français)" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "Le délai d'attente de Nicebooks est dépassé. Essayez plus tard." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "" +"Une erreur est survenue dans le processus de récupération des couvertures de " +"Nicebooks" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Couverture" @@ -2910,74 +2945,74 @@ msgstr "" msgid "All articles" msgstr "Tous les articles" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "C'est un livre Amazon Topaz. Il ne peut pas être traité." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Page de titre" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Table des matières" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glossaire" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Remerciements" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliographie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Marque de l'imprimeur" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dédicace" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraphe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Avant-propos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Liste d'illustrations" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Liste des tables" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Notes" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Préface" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Texte principal" @@ -2985,7 +3020,7 @@ msgstr "Texte principal" msgid "%s format books are not supported" msgstr "Les livres au format %s ne sont pas supportés" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Livre %s de la série %s" @@ -2996,7 +3031,7 @@ msgstr "Options pour la génération des tables de matières HTML." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Note" @@ -3030,7 +3065,7 @@ msgstr "Notes de bas de page" msgid "Sidebar" msgstr "Panneau latéral" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -3041,7 +3076,7 @@ msgstr "" "paragraphes. Avec cette option, il supposera que chaque ligne représente un " "paragraphe." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3360,7 +3395,7 @@ msgstr "" "Spécifier l'encodage de caractères pour le document de sortie. Par défaut : " "cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3403,16 +3438,17 @@ msgid "" "Specify whether or not to insert two space characters to indent the first " "line of each paragraph." msgstr "" -"Spécifier s'il faut ou non insérer deux caractères espace pour indenter la " -"première ligne de chaque paragraphe." +"Spécifier s'il faut insérer ou non deux espaces pour indenter la première " +"ligne de chaque paragraphe." #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:44 msgid "" "Specify whether or not to hide the chapter title for each chapter. Useful " "for image-only output (eg. comics)." msgstr "" -"Spécifier s'il faut ou non cacher le titre de chapitre pour chaque chapitre. " -"Utile pour les sorties ne contenant que des images. (eg. bandes dessinées)" +"Spécifier s'il faut cacher ou non le titre de chapitre pour chaque chapitre. " +"Utile pour les sorties ne contenant que des images (eg. les bandes " +"dessinées)." #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:122 msgid "Start Page" @@ -3607,7 +3643,7 @@ msgid "Disable UI animations" msgstr "Désactiver les animations de IU" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Copié" @@ -3619,7 +3655,7 @@ msgstr "Copier" msgid "Copy to Clipboard" msgstr "Copier dans le Presse-papiers" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Choisir les fichiers" @@ -3673,90 +3709,90 @@ msgstr "Combien de livres vides?" msgid "How many empty books should be added?" msgstr "Combien de livres vides doivent être ajoutés?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Téléchargement des livres vers l'appareil." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Livres" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "Livres EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "Livres LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "Livres HTML" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "Livres LIT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "Livres MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Livres Topaz" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Livres Texte" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "Livres PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "Livres SNB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Bande Dessinées" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Archives" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Livres supportés" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Fusionne des livres" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Des doublons ont été trouvés et fusionnés dans les livres existants suivants " ":" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Impossible de lire les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 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/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Ajouter à la bibliothèqye" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3764,14 +3800,14 @@ msgstr "Ajouter à la bibliothèqye" msgid "No book selected" msgstr "Aucun livre sélectionné" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "Les livres suivants sont virtuels et ne peuvent être ajoutés à la " "bibliothèque Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Aucun fichier de livres trouvé" @@ -3786,7 +3822,7 @@ msgstr "" "connecté" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Récupérer les annotations (expérimental)" @@ -3886,7 +3922,7 @@ msgid "Checking database integrity" msgstr "Vérifier l'intégrité de la base de données" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3902,19 +3938,20 @@ msgstr "Des incohérences ont été trouvées" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"Les livres suivants ont des formats listés dans la base qui ne sont pas " -"disponible actuellement. Les entrées pour les formats ont été supprimés. " -"Vous devrez les vérifier manuellement. Ceci peut arriver si vous avez " -"manipulé les fichiers directement dans le dossier de la bibliothèque." +"Les livres suivants avaient des formats ou des couvertures répertoriés dans " +"la base de donnée qui ne sont pas actuellement disponibles. Les entrées pour " +"les formats/couvertures ont étés supprimées. Vous devriez les vérifiez " +"manuellement. Ceci peut arriver si vous manipulez directement les fichiers " +"dans le dossier de la bibliothèque." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d livres" @@ -4064,7 +4101,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Interdit" @@ -4098,6 +4135,12 @@ msgstr "Conversion impossible" msgid "Starting conversion of %d book(s)" msgstr "Démarrer la conversion de %d livre(s)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" +"Fichier de sortie vide, le processus de conversion a probablement cessé de " +"fonctionné" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Copier vers la bibliothèque" @@ -4132,9 +4175,9 @@ msgid "Could not copy books: " msgstr "Impossible de copier les livres : " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:683 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Echec" @@ -4196,14 +4239,14 @@ msgid "Main memory" msgstr "Mémoire principale" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Carte mémoire A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Carte mémoire B" @@ -4349,7 +4392,7 @@ msgid "covers" msgstr "couvertures" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "métadonnées" @@ -4450,6 +4493,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Démarrer l'assistant de bienvenue" @@ -4540,7 +4584,7 @@ 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/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Afficher les détails du livre" @@ -4685,7 +4729,7 @@ 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:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Aucun livre" @@ -4892,11 +4936,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 @@ -4905,10 +4949,10 @@ msgstr "Chemin" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 @@ -4939,7 +4983,7 @@ msgstr "Cliquer pour ouvrir" msgid "None" msgstr "Aucun" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 msgid "Double-click to open Book Details window" msgstr "Double-cliquer pour ouvrir la fenêtre de détails du livre" @@ -4984,7 +5028,7 @@ msgstr "sortie" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -5027,7 +5071,7 @@ msgstr "sortie" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Formulaire" @@ -5114,24 +5158,24 @@ msgstr "Options CSV/XML" msgid "E-book options" msgstr "Options de l'e-book" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 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:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 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:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Prefixe additionnel de l'étiquette (tag) Note :" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" "Expression régulière décrivant les étiquettes à exclure en tant que genres :" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5145,26 +5189,43 @@ msgstr "" "- Une regex constituée d'un point exclue toutes les étiquettes de genre, " "produisant une section sans genre" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Inclure la section 'Titres'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Inclure la section 'Récemment ajouté'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 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:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "Inclure la section 'Series'" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Etiquette Liste de souhaits :" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Gabarit d'étiquette pour catalog.ui" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "Gras" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "Italique" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +msgstr "Souligné" + #: /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 " @@ -5176,11 +5237,11 @@ msgstr "" "(s'ils existent) à la place des valeurs par défaut spécifiées dans les " "préférences." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Conversion de masse" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Options spécifiques pour le format de sortie." @@ -5653,7 +5714,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:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Auteur(s) : " @@ -5671,7 +5732,7 @@ msgstr "" "séparer leurs noms par une virgule." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Editeur : " @@ -5682,7 +5743,7 @@ msgid "Ta&gs: " msgstr "Eti&quettes : " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5693,15 +5754,16 @@ msgstr "" "ou phrases, séparés par des virgules." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "&Séries :" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5882,7 +5944,7 @@ msgid "Options specific to the input format." msgstr "Options spécifiques au format d'entrée." #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5904,11 +5966,11 @@ msgstr "Sortie SNB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:40 msgid "Hide chapter name" -msgstr "Cacher le nom de chapitre" +msgstr "Cacher le nom des chapitres" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:41 msgid "Insert space before the first line for each paragraph" -msgstr "Insérer un espace avant la première ligne de chaque paragraphe" +msgstr "Insérer une espace avant la première ligne de chaque paragraphe" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 msgid "Insert empty line between paragraphs" @@ -6084,8 +6146,8 @@ msgid "Force maximum line length" msgstr "Forcer la longueur de ligne maximale" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -6227,7 +6289,7 @@ msgid "Automatically number books" msgstr "Nummérotation automatique des livres" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Force les nombres à commencer par " @@ -6243,97 +6305,103 @@ msgstr "étiquettes à ajouter" msgid "tags to remove" msgstr "étiquettes à supprimer" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Pas de détail disponible." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "L'appareil n'est plus connecté." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Lit les informations de l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Lit la liste des livres à partir de l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Obtenir les annotations à partir de l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Envoie les métadonnées vers l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Envoyer les collections vers l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Envoie %d livre(s) à l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Supprime les livres de l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Télécharger les livres à partir de l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Afficher le livre sur l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Indiquer l'action par défaut pour 'envoyer au lecteur'" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Envoyer vers la mémoire du lecteur" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Envoyer vers la carte mémoire A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Envoyer vers la carte mémoire B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Mémoire principale" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Envoyer le format spécifique vers" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Envoyer et effacer de la bibliothèque" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Ejecter l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Erreur pendant la communication avec le lecteur électronique" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Pas de format convenable" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Sélectionner le dossier à ouvrir comme appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Erreur pendant la communication avec le lecteur électronique" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6342,128 +6410,61 @@ msgstr "" "lecteur électronique. Veuillez déconnecter et reconnecter le lecteur " "électronique et redémarrer." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Appareil : " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " detecté." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "sélectionné pour l'envoi" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Choisir le format à envoyer au lecteur" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Aucun appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Impossible d'envoyer : Aucun appareil n'est connecté" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Aucune carte" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Impossible d'envoyer : L'appareil n'a pas de carte mémoire" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "E-book :" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "En pièce jointe, vous trouverez l'ebook" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "par" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "dans le format %s." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Envoi d'un email à" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Pas de format convenable" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"Convertir automatiquement les livres suivants avant de les envoyer par email " -"?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"Impossible d'envoyer par email les livres suivants car aucun format " -"convenable n'a été trouvé :" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "L'envoi par email des livres a échoué" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "L'envoi par email des livres suivants a échoué :" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Envoyer par email :" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "News :" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Le fichier attaché est" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Envoi des News vers" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Convertir automatiquement les livres suivants avant de les télécharger dans " "l'appareil ?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Envoie les catalogues vers l'appareil." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Envoi les News vers l'appareil." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Envoie les livres dans l'appareil." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6472,11 +6473,11 @@ msgstr "" "convenable n'a été trouvé. Convertissez avant le(s) livre(s) vers un format " "supporté par votre appareil." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Le lecteur électronique n'a plus d'espace mémoire disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6522,27 +6523,34 @@ msgstr "Ajouter les les livres à partir de leur ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Entrer une liste de numéros ISBN dans la boite de gauche, un par ligne. " -"Calibre va automatiquement créer des entrées pour des livres à partir des " -"numeros ISBN et télécharger les métadonnées et les couvertures " -"correspondates.<p>Tout numéro ISBN incorrect de la liste sera ignoré." +"<p>Entrer une liste d'ISBNs dans la boite à gauche, une par ligne. Calibre " +"va automatiquement créer des entrées pour ces livres à partir de l'ISBN et " +"télécharger les métadonnées et la couverture correspondantes.</p>\n" +"<p>Tous les ISBNs invalides de la liste seront ignorés.</p>\n" +"<p>Vous pouvez aussi spécifier un fichier qui sera ajouté avec chaque ISBN. " +"Pour faire celà, entrez le chemin complet du fichier après <code>>></code>. " +"Par exemple :</p>\n" +"<p><code>9788842915232 >> %s</code></p>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "Co&ller à partir du bloc-notes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "Adapte la &couverture à l'emplacement" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "&Précédent" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "Suiva&nt" @@ -6588,7 +6596,7 @@ msgstr "&Démarrer la vérification" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:38 msgid "Copy &to clipboard" -msgstr "Copier dans le presse-papier" +msgstr "Copier &dans le presse-papier" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:54 msgid "Names to ignore:" @@ -6598,6 +6606,8 @@ msgstr "Noms à ignorer :" msgid "" "Enter comma-separated standard file name wildcards, such as synctoy*.dat" msgstr "" +"Entrez un nom de fichier standard avec des caractères de remplacement " +"séparés par des virgules, tel que synctoy*.dat" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 msgid "Extensions to ignore" @@ -6617,7 +6627,7 @@ msgstr "Chemin à partir de la bibliothèque" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Nom" @@ -6626,7 +6636,7 @@ msgid "" "The marked files and folders will be <b>permanently deleted</b>. Are you " "sure?" msgstr "" -"Les fichiers et répertoires marqués seront <b>supprimé définitivement</b>. " +"Les fichiers et répertoires marqués seront <b>définitivement supprimés</b>. " "Êtes-vous sûr ?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:45 @@ -6670,7 +6680,7 @@ msgid "No location selected" msgstr "Aucun emplacement sélectionné" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Mauvais emplacement" @@ -6712,6 +6722,7 @@ msgid "Set options for converting %s" msgstr "Indiquer les options pour la conversion de %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&Titre :" @@ -6770,12 +6781,12 @@ msgid "Author sort" msgstr "Clé de tri par auteur" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Nom de l'auteur erroné" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Les noms d'auteurs ne peuvent pas contenir le caractère &" @@ -6845,8 +6856,8 @@ msgid "" "No metadata found, try adjusting the title and author and/or removing the " "ISBN." msgstr "" -"Aucune métadonnée trouvée, essayer en ajustant le titre et l'auteur et/ou en " -"supprimant l'ISBN." +"Aucune métadonnée trouvée, essayez en modifiant le titre et l'auteur et/ou " +"en supprimant l'ISBN." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Fetch metadata" @@ -6936,65 +6947,63 @@ msgstr "Rechercher/Remplacer" msgid "Working" msgstr "En cours" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Minuscule" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Majuscule" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Casse du titre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Correspondance de caractère" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Expression régulière" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Remplacer le champ" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Ajouter initialement au champ" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Ajouter au champs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Edite les informations des métadonnées pour <b>%d livres</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Livre %d :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" "<b>Vous pouvez détruire votre bibliothèque en utilisant cette option.</b> " "Les changements sont permanents. Il n'y a pas de fonction pour revenir en " -"arrière. Cette fonction est experimentale, et il peut y avoir des bugs. Vous " -"êtes fortement encouragé à sauvegarder votre bibliothèque avant de " -"continuer. <p>REchercher et remplacer dans les champs de texte en utilisant " -"une correspondance de caractères ou une expression régulière. " +"arrière. Vous êtes fortement encouragé à sauvegarder votre bibliothèque " +"avant de continuer. <p>Rechercher et remplacer dans les champs de texte en " +"utilisant une correspondance de caractères ou une expression régulière. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -7011,7 +7020,7 @@ msgstr "" "n'est pas cochée, le texte correspondra à la fois aux majuscules et aux " "minuscules" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -7038,35 +7047,35 @@ msgstr "" "plus d'informations sur les expressions régulières en python, et en " "particulier la fonction 'sub'." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "" "Vous devez préciser uen destination quand la source est un champ mixte" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Recherche/Remplacement erroné" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" "La clé auteur ne peut être une chaine vide. Le livre dont le titre est %s " "n'a pas été traité" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" "Le titre ne peut être une chaîne vide. Le livre dont le titre est %s n'a pas " "été traité" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Motif de recherche erroné : %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -7074,19 +7083,19 @@ msgstr "" "Applique les changements à %d livres.\n" "Phase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Editer les informations sur les Métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 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:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "&Tri par auteur : " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -7094,64 +7103,64 @@ 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:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Note :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "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:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Aucune modification" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " étoiles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Ajouter des &étiquettes : " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Ouvre l'éditeur de mots-clefs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Supprime les étiquettes :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 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:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Cocher cette cas pour supprimer toutes les étiquettes des livres." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Tout supprimer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Si cette case n'est pas cochée, les séries seront effacées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Effacer les séries" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7166,11 +7175,11 @@ msgstr "" "livre B,\n" "le livre A aura le numéro de série 1 et le livre B le numéro 2." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Numérote automatiquement les livres dans ces séries" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7182,15 +7191,15 @@ msgstr "" "Calibre \n" "que la numérotation doit démarrer à partir de la valeur de la case" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Supprimer le &format :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Intervertir le titre et l'auteur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7200,11 +7209,11 @@ msgstr "" "sont cochés,\n" "le titre et l'auteur sont échangés avant que la case titre ne soit remplie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Modifier titre en case de titre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7214,35 +7223,35 @@ msgstr "" "\n" "Toute conversion future de ces livres utilisera les paramètres par défaut." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" "Supprimer les paramètres de conversion &enregistrés pour les livres " "sélectionnés" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "Metadonnées de &base" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "Metadonnées &personnalisées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "&Champs de recherche :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "Le nom du champ dans lequel va être effectué la recherche" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Mode de recherche :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7250,11 +7259,11 @@ msgstr "" "Choisissez si vous utilisez la recherche texte basique ou la recherche " "avancée par expression régulière" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Rechercher :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" @@ -7262,7 +7271,7 @@ msgstr "" "Entrez le terme que vous recherchez, soit du texte simple, soit une " "expression régulière, en fonction du mode" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -7270,15 +7279,15 @@ msgstr "" "Cochez cette case si la recherche doit respecter les majuscules et les " "minuscules. Décochez là si la casse doit être ignorée." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Sensible à la casse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "Re&mplacer par :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -7286,11 +7295,11 @@ msgstr "" "Le texte de remplacement. Le texte correspondant à la recherche va être " "remplacé par cette chaîne." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Appliquer la fonction après un remplacement :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7302,11 +7311,11 @@ msgstr "" "entier est traité. En mode expression régulière, seule texte coorespondant à " "la recherche est traité" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "Champ de &destination :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7314,16 +7323,16 @@ msgstr "" "Le champ de destination dans lequel le texte va être copié après avoir " "effectué tous les remplacements. Si vide, le champ source est utilisé." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Mode :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "" "Précise comment le texte devrait être copié dans la destination sélectionnée." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7333,25 +7342,25 @@ msgstr "" "de dialogue indique si une virgule\n" "doit être ajoutée ou non entre le texte original et le texte inséré" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "utilise une virgule" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "&Texte de test" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Ré&sultat de test" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Votre test :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 -msgid "&Search and replace (experimental)" -msgstr "&Rechercher et remplacer (experimental)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" +msgstr "Rechercher et remplacer" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 msgid "Last modified: %s" @@ -7447,7 +7456,7 @@ msgid "" "discard or apply these changes" msgstr "" "Vous avez modifié les étiquettes. Pour pouvoir utiliser l'éditeur " -"d'étiquettes, vous devez soit abandonner ou bien valider ces modifications" +"d'étiquettes, vous devez soit abandonner soit valider ces modifications" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:639 msgid "Downloading cover..." @@ -7645,20 +7654,21 @@ msgstr "Mot de passe nécessaire" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "Nom d'&utilisateur :" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "Mot de &passe :" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Montrer le mot de passe" @@ -7899,62 +7909,58 @@ msgstr "" msgid "Negate" msgstr "Exclut" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "Recherche avancée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "Trouver les entrées qui ont..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "&Tous ces mots :" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "Cette &phrase exacte :" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "&Un ou plus de ces mots :" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "Mais ne montre pas les entrées qui ont..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "A&ucun de ces mots non souhaités :" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "Type de correspondance à utiliser" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -"Contient : le mot ou la phrase peuvent correspondre à n'importe quel élément " -"des métadonnées" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "" -"Egal : le mot ou la phrase doivent correspondrent à un champ entier de " +"Contient : le mot ou la phrase est contenu n'importe où dans le champ de " "métadonnée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" msgstr "" -"Expression régulière : l'expression doit correspondre quelque part dans les " -"métadonnées" +"Egal : le mot ou la phrase doit correspondre exactement au champ de " +"métadonnée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" +"Expression régulière : l'expression doit correspondre n'importe où dans le " +"champ de métadonnée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Trouver les entrées qui ont..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Tous ces mots :" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Cette &phrase exacte :" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "&Un ou plus de ces mots :" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "Mais ne montre pas les entrées qui ont..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "A&ucun de ces mots non souhaités :" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" @@ -7962,6 +7968,48 @@ msgstr "" "Consulter le <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-" "search-interface\">manuel utilisateur</a> pour avoir plus d'informations." +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "Recherche avancée" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "Entrer le titre." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "&Auteur:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "Étiquettes:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "Entrer un nom d'auteur. Un seul auteur peut être utilisé." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" +"Entrer un nom de séries, sans index. Un seul nom de séries peut être utilisé." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "Entrer des étiquettes séparées par des espaces" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "Effacer" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "Chercher seulement dans les champs spécifiques:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "Titr&e/Auteur/Series ..." + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "Choisir les formats" @@ -8101,12 +8149,12 @@ msgid "%s (was %s)" msgstr "%s (autrefois %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "L'article est vide" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" "Un article ne peut être défini à une valeur nulle. Supprimez le à la place." @@ -8191,7 +8239,7 @@ msgid "Discard changes" msgstr "Abandonner les changements" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Annuler" @@ -8401,6 +8449,64 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Code source de la recette (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "Envoyer par mél %s à %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "News :" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "Trouvez en pièce jointe le périodique %s téléchargé par Calibre." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "E-book :" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "En pièce jointe, vous trouverez l'ebook" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "par" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "dans le format %s." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Envoi d'un email à" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"Convertir automatiquement les livres suivants avant de les envoyer par email " +"?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Impossible d'envoyer par email les livres suivants car aucun format " +"convenable n'a été trouvé :" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "Echec de l'envoi du livre par mél" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "envoyé" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Envoi des News vers" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8599,23 +8705,23 @@ msgstr "" msgid "Job has already run" msgstr "Le travail a déjà démarré" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Indisponible" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Travaux :" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Maj+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Cliquer pour afficher la liste des travaux" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Travaux" @@ -8641,7 +8747,7 @@ msgid "Show books in the main memory of the device" msgstr "Afficher les livres dans mémoire principale de l'appareil" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Carte A" @@ -8650,7 +8756,7 @@ msgid "Show books in storage card A" msgstr "Afficher les livres dans la carte mémoire A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Carte B" @@ -8669,11 +8775,15 @@ msgstr "" "Les livres affichés seront limités à ceux correspondant à la recherche " "sauvegardée sélectionnée" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "Maj+Ctrl+F" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "Recherche avancée" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" @@ -8682,28 +8792,28 @@ msgstr "" "commentaires, etc...<br><br>Les mots séparés par des espaces sont traités " "avec des AND" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" msgstr "&Go!" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" msgstr "Lancer une recherche rapide (vous pouvez aussi appuyer sur Enter)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "Réinitialisation de la recherche rapide" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "" "Copier le texte de recherche courant (au lieu du nom de la recherche)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "Sauvegarder la recherche courante avec le nom indiqué dans la boite" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "Supprimer la recherche sauvegardée actuelle" @@ -8731,7 +8841,7 @@ msgstr "Livre %s sur %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "Le nom recherché/consulté est \"{0}\"" @@ -8760,47 +8870,47 @@ msgstr "Marqué pour suppression" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Double clic pour m' <b>éditer</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Cacher la colonne %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Trier par %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Ascendant" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Descendant" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Changer l'alignement du texte pour %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Gauche" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Droite" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centre" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Afficher la colonne" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Restorer l'affichage par défaut" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8833,7 +8943,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>Aucun résultat</b> pour la recherche <i>%s</i>." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Aucun résultat" @@ -8850,12 +8960,12 @@ msgid "LRF Viewer toolbar" msgstr "Barre d'outil pour l'afficheur LRF" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Page suivante" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Page précédente" @@ -8899,7 +9009,7 @@ msgid "Do not check for updates" msgstr "Ne pas vérifier les mises à jour" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Bibliothèque Calibre" @@ -9041,37 +9151,37 @@ msgstr "Le livre n'a ni titre ni ISBN" msgid "No matches found for this book" msgstr "Aucune correspondance pour ce livre" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "Echec du téléchargement des métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "couverture" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Téléchargé" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "Echec de l'obtention de" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s pour : %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Terminé" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "Métadonnées télécargées avec succès pour %d livres sur %d" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Détails" @@ -9641,29 +9751,29 @@ msgstr "Afficher le &texte sous les icônes :" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel_ui.py:121 msgid "&Split the toolbar into two toolbars" -msgstr "&Sépare la barre d'outils en deux bares distinctes" +msgstr "&Sépare la barre d'outils en deux barres distinctes" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Appliquer" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Restaurer les valeurs par &défaut" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Enregistrer les modifications" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Annuler et retourner à la vue d'ensemble" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" -msgstr "La restauration des valeurs par défaut n'est pas suppotée pour" +msgstr "La restauration des valeurs par défaut n'est pas supportée pour" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9671,7 +9781,7 @@ msgstr "" "Certains des changements que vous avez effectués nécessitent le redémarrage " "de Calibre. Veuillez redémarrer Calibre dès que possible" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9680,7 +9790,7 @@ msgstr "" "de Calibre. Vous ne serez pas autorisé à modifier les préférences avant le " "redémarrage." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Redémarrage nécessaire" @@ -10041,7 +10151,7 @@ msgstr "" "de l'interface de l'appareil dans Préférences->Avancé->Plugins" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "A échoué lors du démarrage du serveur de contenu" @@ -10261,7 +10371,7 @@ msgstr "Réglages a&ctuels" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Trouver" @@ -10363,26 +10473,22 @@ msgstr "Effacer" msgid "&Alternate shortcut:" msgstr "Raccourci &alternatif :" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Renommer '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Editer la recherche our '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Cacher la catégorie %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Afficher la catégorie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Afficher toutes les catégories" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10397,69 +10503,73 @@ msgstr "Gérer les Recherches Sauvegardées" msgid "Manage User Categories" msgstr "Gérer les Catégories définies par l'Utilisateur" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Afficher toutes les catégories" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" "Changer les auteurs pour plusieurs livres peut prendre un certain temps. " "Etes-vous sûr?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "Changer les métadonnées pourautant de livres peut prendre un certain temps. " "Etes-vous sûr?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Recherches" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Nom de recherche en double" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "Le nom de la recherche sauvegardé %s est déjà utilisé" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Trier par nom" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Trier par popularité" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Trier par note moyenne" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Définir l'ordre de tri des entrées dans le navigateur d'étiquettes" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Toutes les correspondances" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Aucune correspondance" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "Quand de multiples entrées sont sélectionnées dans le navigateur " "d'étiquettes, fait correspondre à tout ou partie de celles-ci" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Gérer les catégories de l'&utilisateur" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Ajouter vos propres catégories au navigateur d'étiquettes" @@ -10506,28 +10616,28 @@ msgstr "" "Les fichiers suivants ont déjà été convertis au format %s. Souhaitez-vous " "les reconvertir ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Montrer" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Donner pour supporter Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Ejecter l'appareil connecté" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Guide De Démarrage Rapide Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Erreur lors de la conversion" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10536,15 +10646,15 @@ msgstr "" "href=\"%s\">DRM</a>. Vous devez d'abord enlever les DRM avec des outils " "tiers." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Recette désactivée" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Échoué</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10554,11 +10664,11 @@ msgstr "" "le monde. Si vous le trouvez utile, vous pouvez donner pour soutenir son " "développement. Vos donations aident Calibre à continuer à se développer." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 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:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10569,11 +10679,11 @@ msgstr "" "l'appareil.<br>\n" " Êtes-vous sûr de vouloir quitter ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "ATTENTION : Travaux actifs" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10754,17 +10864,17 @@ msgstr "&Raccourcis clavier" msgid "No results found for:" msgstr "Aucun résultat trouvé pour :" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Options pour personnalier l'afficheur d'ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Se souvenir de la dernière taille de fenêtre utilisée" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10772,82 +10882,82 @@ msgstr "" "Voir la feuille de style utilisateur CSS. Peut être utilisée pour " "personnaliser le visuel de tous les livres." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Largeur maximale de la fenêtre de l'afficheur, en pixels." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" "Redimensionner les images plus grandes que la fenêtre de l'afficheur pour " "qu'elles aient la bonne taille" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Texte avec césure" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Langue par défaut pour les règles de césure" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Options de la police" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "La famille de police serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "La famille de police sans-serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "La famille de police monospace" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "La taille de police standard en px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "La taille de police monospace en px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Le type de police standard" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&Rechercher dans le dictionnaire" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Aller vers..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Section suivante" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Section précédente" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Début du document" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Fin du document" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Début de la section" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Fin de la section" @@ -10917,90 +11027,90 @@ msgstr "" msgid "Search for text in book" msgstr "Rechercher du texte dans le livre" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Aperçu avant impression" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Connexion à dict.org pour rechercher : <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Choisir un ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Ebooks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Pas de correspondance trouvée pour : %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Chargement du flux..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Aménagement de %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Marque-page #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Ajouter un signet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Entrer un titre pour le signet :" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Gérer les Signets" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Charge l'ebook..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "Erreur de DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Ce livre est protégé par <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Impossible d'ouvrir l'ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:691 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Options pour contrôler l'afficheur d'ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Si spécifié, la fenêtre de l'afficheur essaiera d'apparaitre au premier plan " "au lancement." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Si précisé, la fenêtre de l'afficheur essaiera de s'ouvrir en plein écran au " "démarrage." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "" "Afficher les alertes javascript et les messages console dans la console" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -11118,7 +11228,7 @@ msgstr "Masquer" msgid "Toggle" msgstr "Basculer" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -11129,7 +11239,7 @@ msgstr "" "votre appareil. Pour pouvoir le faire, vous devez démarrer le serveur de " "contenu." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -11137,7 +11247,7 @@ msgstr "" "Rappelez-vous de laisser Calibre fonctionner car le serveur ne fonctionne " "que lorsque Calibre fonctionne." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -11147,20 +11257,20 @@ msgstr "" "WordPlayer. Ici nomhote doit être le nom d'hôte complet ou l'adresse IP de " "l'ordinateur où Calibre est démarré." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Déplace la bibliothèque..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Le déplacement de la bibliothèque a échoué." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Base de données incorrecte" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -11168,22 +11278,22 @@ msgstr "" "<p>Une bibliothèque incorrecte existe à %s, la supprimer avant d'essayer de " "déplacer la bibliothèque existante.<br>Erreur : %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Impossible de déplacer la bibliothèque" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Sélectionner l'emplacement pour les livres" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "Vous devez choisir un dossier vide pour la bibliothèque calibre. %s n'est " "pas vide." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "assistant de bienvenue" @@ -11270,11 +11380,12 @@ msgstr "Choisir votre &langue :" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Choisissez un emplacement pour vos livres. Quand vous ajoutez des livres à " -"Calibre, ils seront copiés ici :" +"<p>Choisissez un emplacement pour vos livres. Quand vous ajoutez des livres " +"à Calibre, ils seront copiés ici. Utilisez un <b>dossier vide</b> pour votre " +"nouvelle bibliothèque Calibre :" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11290,50 +11401,80 @@ msgstr "" "emplacement. Si une bibliothèque Calibre existe déjà à cet emplacement, " "Calibre basculera pour pouvoir l'utiliser." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Utilise : %s:%s@%s:%s et l'encryptage %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Envoi..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "Le courrier a été envoyé avec succès" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Termine le paramétrage de gmail" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"N'oublier pas de saisir votre nom d'utilisateur et mot de passe gmail. Vous " -"pouvez créer un compte gmail gratuit à http://gmail.com" +"Si vous mettez en place un nouveau compte hotmail, vous devez vous connecter " +"une première fois avant d'être capable d'envoyer des méls." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"Vous pouvez vous enregistrer pour un compte mél {name} gratuit à <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "Votre adresse &mél %s :" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "Votre nom d'&utilisateur %s :" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "Votre mot de &passe %s :" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"Si vous planifiez d'utiliser des méls pour envoyer des livres à votre " +"Kindle, rappelez-vous d'ajouter votre adresse mél %s aux adresses méls " +"autorisées dans la page de coniguration de votre Kindle sur Amazon.com." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "Configuration" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Mauvaise configuration" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Vous devez indiquer l'adresse email 'De'" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "" "Vous devez indiquer le nom d'utilisateur et le mot de passe pour le serveur " "de mail." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Envoyer l'email &de :" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11341,7 +11482,7 @@ msgstr "" "<p>Ce qui sera présent dans le champ De : des emails envoyés par " "Calibre.<br> Indiquer ici votre adresse email" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11349,50 +11490,50 @@ msgstr "" "<p>Un serveur d'email est utile si le service auquel vous envoyez un email " "ne les accepte que venant de services réputés" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "&Serveur de messagerie" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "Calibre peut <b>optionnellement</b> utiliser un serveur pour envoyer les " "emails" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "Nom d'&hôte :" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "Le nom d'hôte de votre serveur de messagerie. Par ex. smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Port :" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "Le port d'écoute de votre serveur de messagerie. Par défault : 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "Votre nom d'utilisateur pour le serveur de messagerie" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "Votre mot de passe pour le serveur de messagerie" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Visualiser" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Cryptage :" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11400,24 +11541,38 @@ msgstr "" "Utiliser le cryptage TLS lors de la connexion au serveur de messagerie. " "Cette option est la plus utilisée." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "" "Utiliser le cryptage SSL lors de la connexion au serveur de messagerie." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" +"ATTENTION : Ne pas utiliser de système d'encryptage présente un fort risque " +"au niveau de la sécurité" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "Aucu&n" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Utiliser Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Utiliser Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Tester l'email" @@ -11484,7 +11639,7 @@ msgstr "vierge" msgid "empty" msgstr "Vide" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11498,7 +11653,7 @@ msgstr "" "Par défaut : '%%default'\n" "S'applique au formats : CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11510,7 +11665,7 @@ msgstr "" "Défaut : '%default'\n" "S'applique au formats : CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11524,7 +11679,7 @@ msgstr "" "Par défaut : '%%default'\n" "S'applique au format : BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11536,7 +11691,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique au format : BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11548,7 +11703,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique au format : BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11563,7 +11718,7 @@ msgstr "" "Par défaut : '%%default'\n" "S'applique au format : BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11575,7 +11730,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique au format : BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11587,7 +11742,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique au format : BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11599,7 +11754,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique au format : BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11609,7 +11764,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11623,7 +11778,7 @@ msgstr "" "Par défaut : '%default'None\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11634,7 +11789,7 @@ msgstr "" "'[<tags>]'\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11649,7 +11804,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11659,7 +11814,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11669,7 +11824,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11679,7 +11834,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11690,7 +11845,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub et MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11704,7 +11859,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11720,7 +11875,7 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11730,6 +11885,17 @@ msgstr "" "Par défaut : '%default'\n" "S'applique aux formats : ePub, MOBI" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etiquette indiquant un livre qui doit être affiché comme un élément de la " +"Liste de souhaits.\n" +"Par défaut : '%default'\n" +"S'applique aux formats : ePub, MOBI" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Titres incorrects" @@ -12466,35 +12632,35 @@ msgstr "" "L'étiquette ne doit contenir que des minuscules, des chiffres et des " "underscores (tirets bas), et commencer par une lettre" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "La note moyenne de %sest %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Principal" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "<p>Migre l'ancienne base vers la bibliothèque dans %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Copie <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Compacte la base" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Vérifie l'intégrité SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Vérifie si des fichiers sont manquants." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "Id vérifié" @@ -12719,131 +12885,132 @@ msgid "" "Prefix to prepend to all URLs. Useful for reverseproxying to this server " "from Apache/nginx/etc." msgstr "" +"Préfixe à ajouter avant toutes les URLs. Utile pour faire du reverse proxy " +"sur ce serveur à partir d'Apache/nginx/etc." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "" -"Mot de passe pour accéder à la bibliothèque Calibre. Le nom d'utilisateur " -"est " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "Chargement, veuillez patientez..." -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "Aller à" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Premier" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Dernier" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Précédent" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Suivant" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "Naviguer dans %d livres" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Note moyenne" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s : %.1f étoile(s)" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d étoile(s)" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Popularité" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Classement par" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "bibliothèque" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "accueil" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Le plus récent" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Tous les livres" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Naviguer dans les livres par:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Choisissez une catégorie pour naviguer par :" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Navigation par" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Haut" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "dans" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Livres en" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Autres formats" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Lire %s dans le format %s" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Obtenir" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Lien permanent" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "Un lien permanent vers ce livre" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Ce livre a été supprimé" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "dans la recherche" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Livres correspondants" @@ -12859,6 +13026,18 @@ msgid "" "\n" "The OPDS interface is advertised via BonJour automatically.\n" msgstr "" +"[options]\n" +"\n" +"Démarre le serveur de contenu Calibre. Le serveur de contenu Calibre\n" +"publie votre bibliothèque Calibre sur internet. L'interface par défaut\n" +" vous permet de parcourir la bibliothèque Calibre par catégories. Vous " +"pouvez\n" +"aussi accèder à une interface optimisée pour les navigateurs mobiles à " +"/mobile\n" +"et une interface basée sur OPDS pour utiliser avec des applications de " +"lecture à /opds.\n" +"\n" +"L'interface OPDS est affichée automatiquement via BonJour.\n" #: /home/kovid/work/calibre/src/calibre/library/server/main.py:52 msgid "Path to the library folder to serve with the content server" @@ -13173,7 +13352,7 @@ msgstr "Impossible d'activer une session SSH : " msgid "Failed to authenticate with server: %s" msgstr "Impossible de s'authentifier auprès du server : %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Contrôler l'envoi d'email" @@ -15247,6 +15426,9 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "Send specific format to storage card" #~ msgstr "Envoyer le format spécifique vers la carte mémoire" +#~ msgid "Failed to email books" +#~ msgstr "L'envoi par email des livres a échoué" + #~ msgid "" #~ "Could not email the following books as no suitable formats were " #~ "found:<br><ul>%s</ul>" @@ -15254,6 +15436,9 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ "Impossible d'envoyer par email les livres suivants car aucun format " #~ "convenable n'a été trouvé :<br><ul>%s</ul>" +#~ msgid "Finish gmail setup" +#~ msgstr "Termine le paramétrage de gmail" + #~ msgid "Dont forget to enter your gmail username and password" #~ msgstr "" #~ "N'oubliez pas d'entrer votre nom d'utilisateur et votre mot de passe gmail" @@ -15536,6 +15721,9 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "tease" #~ msgstr "taquin" +#~ msgid "Attached is the" +#~ msgstr "Le fichier attaché est" + #~ msgid "<p>%s is already running. %s</p>" #~ msgstr "<p>%s est déjà démarré. %s</p>" @@ -15767,6 +15955,13 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "English (IND)" #~ msgstr "Anglais (IND)" +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "N'oublier pas de saisir votre nom d'utilisateur et mot de passe gmail. Vous " +#~ "pouvez créer un compte gmail gratuit à http://gmail.com" + #~ msgid "" #~ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " #~ "\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" @@ -15845,6 +16040,14 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "Do not add a blank line between paragraphs." #~ msgstr "Ne pas ajouter une ligne blanche entre les paragraphes" +#~ 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 "" +#~ "Longueur moyenne de ligne pour les sauts de lignes si le HTML provient d'une " +#~ "conversion précédente et partielle d'un fichier PDF. Par défaut : %default " +#~ "(qui désactivera cela)." + #~ msgid "TabWidget" #~ msgstr "Widget avec onglet" @@ -15923,6 +16126,9 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ "- L'expression '.' ignore tout les tags; ne générant ainsi aucun genre de " #~ "catégories dans le catalogue" +#~ msgid " " +#~ msgstr " " + #~ msgid "Output directory. Defaults to current directory" #~ msgstr "Répertoire de sortie. Par défaut : répertoire courant" @@ -15940,6 +16146,12 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgstr "" #~ "<p>Pour l'aide, consulter le <a href=\"%s\">Manuel Utilisateur</a><br>" +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Expression régulière : l'expression doit correspondre quelque part dans les " +#~ "métadonnées" + #~ msgid "" #~ "If an existing book with a similar title and author is found that does not " #~ "have the format being added, the format is added \n" @@ -16223,6 +16435,17 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "The name %s is already used." #~ msgstr "Le nom %s est déjà utilisé." +#~ 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 "" +#~ "Les livres suivants ont des formats listés dans la base qui ne sont pas " +#~ "disponible actuellement. Les entrées pour les formats ont été supprimés. " +#~ "Vous devrez les vérifier manuellement. Ceci peut arriver si vous avez " +#~ "manipulé les fichiers directement dans le dossier de la bibliothèque." + #~ msgid "" #~ "&Location of ebooks (The ebooks are stored in folders sorted by author and " #~ "metadata is stored in the file metadata.db)" @@ -16248,6 +16471,11 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "Side bar" #~ msgstr "Volet" +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "" +#~ "Mot de passe pour accéder à la bibliothèque Calibre. Le nom d'utilisateur " +#~ "est " + #~ msgid "" #~ "[options]\n" #~ "\n" @@ -16426,6 +16654,17 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "Restore to &default" #~ msgstr "Revenir aux réglages par &défaut" +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Entrer une liste de numéros ISBN dans la boite de gauche, un par ligne. " +#~ "Calibre va automatiquement créer des entrées pour des livres à partir des " +#~ "numeros ISBN et télécharger les métadonnées et les couvertures " +#~ "correspondates.<p>Tout numéro ISBN incorrect de la liste sera ignoré." + #~ msgid "" #~ "Note: <b>you can destroy your library</b> using this feature. Changes are " #~ "permanent. There is no undo function. You are strongly encouraged to back up " @@ -16439,6 +16678,9 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "Apply function &after replace:" #~ msgstr "Appliquer la fonction &après remplacement:" +#~ msgid "&Search and replace (experimental)" +#~ msgstr "&Rechercher et remplacer (experimental)" + #~ msgid "Path to a txt file containing a comment." #~ msgstr "Chemin vers un fichier txt contenant un commentaire." @@ -16479,6 +16721,20 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "Run the check" #~ msgstr "Executer la vérification" +#~ msgid "" +#~ "<b>You can destroy your library using this feature.</b> Changes are " +#~ "permanent. There is no undo function. This feature is experimental, and " +#~ "there may be bugs. You are strongly encouraged to back up your library " +#~ "before proceeding.<p>Search and replace in text fields using character " +#~ "matching or regular expressions. " +#~ msgstr "" +#~ "<b>Vous pouvez détruire votre bibliothèque en utilisant cette option.</b> " +#~ "Les changements sont permanents. Il n'y a pas de fonction pour revenir en " +#~ "arrière. Cette fonction est experimentale, et il peut y avoir des bugs. Vous " +#~ "êtes fortement encouragé à sauvegarder votre bibliothèque avant de " +#~ "continuer. <p>REchercher et remplacer dans les champs de texte en utilisant " +#~ "une correspondance de caractères ou une expression régulière. " + #~ msgid "Check the library folders for potential problems" #~ msgstr "" #~ "Vérifie les dossiers de la bibliothèque à la recherche de problèmes " @@ -16532,6 +16788,29 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ "do to force it to use the ';' that the kindle requires. A third would be to " #~ "specify the language." +#~ msgid "Failed to email the following books:" +#~ msgstr "L'envoi par email des livres suivants a échoué :" + +#~ msgid "Sent by email:" +#~ msgstr "Envoyer par email :" + +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "" +#~ "Contient : le mot ou la phrase peuvent correspondre à n'importe quel élément " +#~ "des métadonnées" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Egal : le mot ou la phrase doivent correspondrent à un champ entier de " +#~ "métadonnée" + +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Choisissez un emplacement pour vos livres. Quand vous ajoutez des livres à " +#~ "Calibre, ils seront copiés ici :" + #~ msgid "" #~ "\n" #~ " %prog restore_database [options]\n" diff --git a/src/calibre/translations/gl.po b/src/calibre/translations/gl.po index 276041a1da..012822b6d8 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 <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-10-29 19:59+0000\n" -"PO-Revision-Date: 2010-10-29 19:53+0000\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-28 21:19+0000\n" "Last-Translator: Antón Méixome <meixome@gmail.com>\n" "Language-Team: Galician <gl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-10-30 05:03+0000\n" +"X-Launchpad-Export-Date: 2010-11-29 04:48+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,11 +27,11 @@ msgstr "Non facer nada" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -40,8 +40,8 @@ msgstr "Non facer nada" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:336 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:339 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -55,7 +55,7 @@ msgstr "Non facer nada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:333 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -74,14 +74,14 @@ msgstr "Non facer nada" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -89,7 +89,7 @@ msgstr "Non facer nada" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -109,43 +109,43 @@ msgstr "Non facer nada" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:277 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:280 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:915 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:924 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1231 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1234 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1112 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:228 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:78 @@ -185,14 +185,14 @@ msgstr "Acción da interface de usuario" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Preferencias" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -202,7 +202,7 @@ msgstr "" "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:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -210,7 +210,7 @@ msgstr "" "Codificación de caracteres para os ficheiros HTML de orixe. As opcións " "comúns inclúen: cp1252, latin1, iso-8859-1 e utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -220,7 +220,7 @@ msgstr "" "cartafol pmlname_img ou imaxes. Este engadido execútase cada vez que engade " "un ficheiro PML á biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Extrae a portada dos ficheiros de banda deseñada" @@ -267,45 +267,45 @@ msgstr "Define os metadatos nos ficheiros %s" msgid "Set metadata from %s files" msgstr "Define os metadatos desde os ficheiros %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:708 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Aparencia e comportamento" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:710 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:722 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:733 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:744 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interface" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" "Axuste a aparencia e comportamento da interface do Calibre para que se " "adapte aos seus gustos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Comportamento" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:726 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Cambiar o modo en que se comporta o Calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Engadir as súas propias columnas" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Engadir/retirar as columnas propias da lista de libros do Calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Personalizar a barra de ferramentas" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -313,60 +313,60 @@ msgstr "" "Personalizar as barras de ferramentas e os menús de contexto, cambiando as " "accións que estarán dispoñíbeis en cada un" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Opcións de entrada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:756 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:767 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:778 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Conversión" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:760 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "" "Estabelecer as opcións de conversión específicas para cada formato de entrada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Opcións comúns" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:771 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Estabelecer as opcións de conversión comúns para todos os formatos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Opcións de saída" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "" "Estabelece as opcións específicas de conversión para cada formato de saída" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Adición de libros" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:789 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:801 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:813 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:825 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Importar/exportar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:793 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Controla o modo como Calibre le os metadatos dos ficheiros na proceso de " "adición de libros" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:799 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Gardado de libros no disco" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:805 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -374,33 +374,33 @@ msgstr "" "Controla o modo como Calibre exporta ficheiros da súa base de datos no " "disco no proceso de Gardado no disco" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:811 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Envío de libros a dispositivos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "" "Controla cando Calibre transfere os ficheiros ao seu lector de libros" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Plugboards de metadatos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Cambiar campos de metadatos antes do gardado/envío" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Compartición de libros por correo" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:836 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:848 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Compartición" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:840 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -408,11 +408,11 @@ msgstr "" "Configura a compartición de libros por correo electrónico. Pódese usar para " "enviar automticamente as noticias descargadas aos seus dispositivos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:846 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Compartición na rede" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -421,33 +421,33 @@ msgstr "" "biblioteca do Calibre en calquera lugar, con calquera dispositivo, a través " "da Internet." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:859 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Complementos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:873 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:884 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Avanzado" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Engadir/eliminar/configurar diversas funcións do Calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:871 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Axustes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:877 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "Axuste fino de como se comporta o Calibre en diversos contextos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Miscelánea" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:888 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Configuración miscelánea avanzada" @@ -492,7 +492,7 @@ msgstr "" "non sabe nada sobre o documento de entrada." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:433 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -503,62 +503,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Este perfil é o propio para o SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:470 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Este perfil é o propio para o SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:500 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Este perfil é o propio para o Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Este perfil é o propio para os libros Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Este perfil é o propio para o Hanlin V3 e os seus clones." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Este perfil é o propio para o Hanlin V5 e os seus clones." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:544 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Este perfil é o propio para o Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Este perfil é o propio para o Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:568 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Este perfil é o propio para o Kindle de Amazon." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Este perfil é o propio para o rex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:622 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Este peril é o propio para o IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:636 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Este perfil é o propio para o IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:650 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Este perfil é o propio para o B&N Nook." @@ -576,30 +576,30 @@ msgstr "" "quere producir un documento apropiado para ser lido nun computador ou noutro " "tipo de dispositivos." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:270 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Sangrado para o iPad ou dispositivos semellantes cunha resolución de 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:424 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" "Orientado dispositivos de tableta xenéricos, sen redimensionado de imaxes" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:448 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Este perfil está sangrado para o Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:461 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Este perfil é o propio para o SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Este perfil é o propio para o JetBook de cinco polgadas." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -607,11 +607,15 @@ msgstr "" "Este perfl é o propio para os da liña SONY PRS. Os 00/505/700 etc en modo " "apaisado. Usados sobre todo para cómics." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:589 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Este perfil é o propio o Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:664 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Este perfil está orientado a B&N Nook Color." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Este perfil está pensado para o Sandra Bambook." @@ -690,7 +694,7 @@ msgstr "Desactivar o complemento sinalado" msgid "Communicate with Android phones." msgstr "Comunicar con teléfonos Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -698,7 +702,7 @@ msgstr "" "Lista de cartafoles, separados por comas, onde almacenar os libros no " "dispositivo. Usarase o primeiro que exista" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Comunicar con teléfonos S60" @@ -733,14 +737,14 @@ msgstr "Actualizando a relación de metadatos..." #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:378 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:947 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:987 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2949 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2989 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2956 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2996 msgid "%d of %d" msgstr "%d de %d" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:385 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:992 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2995 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3002 msgid "finished" msgstr "ramtouse" @@ -770,29 +774,29 @@ msgstr "" "Algunhas portadas non se converteron. \n" "Prema \"Amosar detalles\" para relacionalas." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2546 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2553 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:444 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:467 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:882 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Noticias" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2547 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Catálogo" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2853 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2860 msgid "Communicate with iTunes." msgstr "Conectar con iTunes." @@ -814,6 +818,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Comunicarse co lector de libros electrónico Cybook Gen 3 / Opus." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Comunicar co lector Cybook Orizon." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Comunicar co lector EB600" @@ -826,6 +834,10 @@ msgstr "Conectar co Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Conectar co lector PocketBook 301." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Comunicar co lector PocketBook 602." + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -886,8 +898,8 @@ msgstr "Comunicar co lector SpringDesign Alex eBook." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -976,26 +988,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Obtendo a lista de libros do dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Eliminando libros da lista de metatados do dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Engadindo libros á lista de metatados do dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Non implementado" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1016,22 +1028,30 @@ msgid "Communicate with the Sweex MM300" msgstr "Conectar co Sweex MM300" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:79 +msgid "Communicate with the Digma Q600" +msgstr "Comunicar co Digma Q600" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:88 msgid "Communicate with the Kogan" msgstr "Comunicar co Kogan" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:87 -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:114 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:96 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:123 msgid "Communicate with the Pandigital Novel" msgstr "Conectar co Pandigital Novel" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:130 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:142 msgid "Communicate with the VelocityMicro" msgstr "Comunicar con VelocityMono" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:148 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:160 msgid "Communicate with the GM2000" msgstr "Comunicar co GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Comunicar co Acer Lumiread" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Comunicar coa táboa de internet Nokia 770." @@ -1052,6 +1072,14 @@ msgstr "O Nook" msgid "Communicate with the Nook eBook reader." msgstr "Comunicar co lector de libro electrónico Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Comunicar co lector de libros electrónicos Nook Color" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Comunicar co lector Nuut2." @@ -1091,7 +1119,7 @@ msgstr "Comunicar co lector de Newsmy" #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:47 msgid "Communicate with the Pico reader." -msgstr "" +msgstr "Comunicar co lector Pico." #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:57 msgid "Communicate with the iPapyrus reader." @@ -2106,14 +2134,33 @@ msgstr "" "que está facendo, xa que pode ocasionar varios efectos desagradábeis no " "resto do proceso de conversión." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 +msgid "CSS file used for the output instead of the default file" +msgstr "CSS utilizado para a saída en vez do arquivo predeterminado" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:36 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." +"Template used for generation of the html index file instead of the default " +"file" msgstr "" -"Lonxitude de liña media para a división de liñas se o HTML vén dunha " -"conversión parcial previa dun ficheiro PDF. O valor predefinido é %default, " -"que desactiva esta opción." +"Modelo usado para a xeración do ficheiro de html index en lugar do ficheiro " +"predeterminado" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:39 +msgid "" +"Template used for the generation of the html contents of the book instead of " +"the default file" +msgstr "" +"Modelo usado para a xeración dos contidos de html do libro en lugar do " +"predeterminado" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:42 +msgid "" +"Extract the contents of the generated ZIP file to the specified directory. " +"WARNING: The contents of the directory will be deleted." +msgstr "" +"Extraer o contido do arquivo ZIP no cartafol correspondente. AVISO: " +"Borrarase o contido do cartafol." #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." @@ -2251,7 +2298,7 @@ msgid "Path to output file" msgstr "Camiño 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:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Procesado por petición" @@ -2431,13 +2478,13 @@ msgstr "Si" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:380 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:930 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:923 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:303 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:570 msgid "Title" @@ -2446,8 +2493,8 @@ msgstr "Título" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:385 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:931 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924 msgid "Author(s)" msgstr "Autores/as" @@ -2463,37 +2510,36 @@ msgid "Producer" msgstr "Produtor" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:609 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:212 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:332 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 msgid "Comments" msgstr "Comentarios" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1134 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:618 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Etiquetas" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:613 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:337 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1143 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:108 msgid "Series" msgstr "Series" @@ -2503,12 +2549,12 @@ msgid "Language" msgstr "Idioma" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 msgid "Timestamp" msgstr "Marca temporal" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:151 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:157 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:258 @@ -2634,6 +2680,7 @@ msgid "No cover found" msgstr "Non se achou capa ningunha" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Descarga de portada" @@ -2683,35 +2730,39 @@ msgstr "" msgid "Downloads metadata from Douban.com" msgstr "Descargar os metadatos de Douban.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:57 msgid "Metadata download" msgstr "Descarga de metadatos" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "ratings" msgstr "puntuacións" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "tags" msgstr "etiquetas" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:142 msgid "description/reviews" msgstr "descrición/críticas" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:130 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:143 msgid "Download %s from %s" msgstr "Descargar %s desde %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 +msgid "Convert comments downloaded from %s to plain text" +msgstr "Coverter os comentarios descargados de %s a texto simple" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Descarga os metadatos do Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Descara os metadatos de isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2719,16 +2770,16 @@ msgstr "" "Para empregar o isbndb.com, é preciso ter unha %sconta gratuíta%s e escribir " "a súa chave de acceso abaixo." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:211 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Descarga os metadatos de amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" "Descargar a información de series, etiquetas e puntuación de librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2752,23 +2803,24 @@ msgstr "" "Isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "O ISBN do libro cuxos metatados se precisan." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "O autor cuxo libro se pretende procurar." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "O título do libro polo que procurar." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "A editorial do libro polo que procurar." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " non se achou." @@ -2786,8 +2838,25 @@ msgstr "" "Obtén metadatos sociais ou imaxes para o libro identificado polo ISBN a " "través de LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Descarga metadatos en francés de Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Descarga portadas en francés de Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" +"O tempo de conexión con Nicebooks esgotouse. Ténteo de máis tarde de novo." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "Produciuse un erro ao tentar obter as portadas de Nicebooks" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Capa" @@ -2827,74 +2896,74 @@ msgstr "" msgid "All articles" msgstr "Todos os artigos" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Este é un libro Topaz de Amazon. Por tanto, non se pode procesar." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Páxina de título" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Ãndice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Ãndice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glosario" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Agradecementos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Colofón" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Dereitos de copia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dedicatoria" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epígrafe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Prólogo" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Lista de ilustracións" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Lista de táboas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Notas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Prefacio" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Texto principal" @@ -2902,7 +2971,7 @@ msgstr "Texto principal" msgid "%s format books are not supported" msgstr "O formato de libros %s non está soportado" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Libro %s de %s" @@ -2911,9 +2980,9 @@ msgstr "Libro %s de %s" msgid "HTML TOC generation options." msgstr "Opcións da xeración HTM TOC" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:153 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:616 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Avaliación" @@ -2946,7 +3015,7 @@ msgstr "Notas a rodapé." msgid "Sidebar" msgstr "Barra lateral" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2957,7 +3026,7 @@ msgstr "" "parágrafo. Con esta opción interprétase que cada liña representa un " "parágrafo." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3273,7 +3342,7 @@ msgstr "" "Especificar a codificación de caracteres do documento de saída. O por " "omisión é cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3309,18 +3378,23 @@ msgstr "" msgid "" "Specify whether or not to insert an empty line between two paragraphs." msgstr "" +"Especificar se inserimos ou non unha liña baleira entre dous parágrafos." #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:40 msgid "" "Specify whether or not to insert two space characters to indent the first " "line of each paragraph." msgstr "" +"Especificar se inserir ou non dous caracteres de espazo para identar a " +"primeira liña de cada parágrafo." #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:44 msgid "" "Specify whether or not to hide the chapter title for each chapter. Useful " "for image-only output (eg. comics)." msgstr "" +"Especificar se agochar ou non o título do capítulo para cada capítulo. " +"Práctico no caso de saída soamente para imaxes (ex. cómics)" #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:122 msgid "Start Page" @@ -3513,7 +3587,7 @@ msgid "Disable UI animations" msgstr "Desactivar as animacións UI" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Copiado" @@ -3525,7 +3599,7 @@ msgstr "Copiar" msgid "Copy to Clipboard" msgstr "Copiar no Portapapeis" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Escoller os Ficheiros" @@ -3581,104 +3655,104 @@ msgstr "Cantos libros baleiros?" msgid "How many empty books should be added?" msgstr "Cantos libros baleiros deben ser engadidos?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Subindo libros ao dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Libros" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "Libros de EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "Libros de LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "Libros de HTML" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "Libros de LIT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "Libros de MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Libros de Topaz" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Libros de Text" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "Libros de PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "Libros SNB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Comics" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Arquivos" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Libros compatibles" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Combinar varios libros" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Acháronse algúns libros duplicados e uníronse as seguintes libros existentes:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Fallou ao ler os metadatos" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Fallouse ao ler os metadatos dos libros seguintes" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Engadir á biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "No book selected" msgstr "Non se seleccionou ningún libro" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "Os seguintes libros son virtuais e non se poden engadir á biblioteca de " "Calibre:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Non se achou ningún ficheiro de libro" @@ -3691,7 +3765,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Engadir libros á biblioteca do Calibre desde o dispositivo conectado" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Obter anotacións (experimental)" @@ -3788,7 +3862,7 @@ msgid "Checking database integrity" msgstr "A comprobar a integridade da base de datos" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3804,19 +3878,19 @@ msgstr "Atopáronse algunhas incosistencias" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"Os libros seguintes teñen formatos especificados na base de datos que non " -"están actualmente dispoñíbeis. Elimináronse as entradas para os formatos e, " -"por tanto, debe comprobalos manualmente. Isto adoita acontecer ao manipular " -"directamente os ficheiros na biblioteca." +"Os seguintes libros tiñan formatos ou portadas na base de datos que non " +"estaban dispoñíbeis en realidade. As entradas dos formatos ou portadas " +"elimináronse. Debería comprobalos manualmente. Isto pode suceder se manipula " +"directamente os ficheiros no cartafol da biblioteca." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:139 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d libros" @@ -3963,7 +4037,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:734 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Non permitido" @@ -3995,6 +4069,12 @@ msgstr "Non se pode converter" msgid "Starting conversion of %d book(s)" msgstr "Esta a comezar a conversión de %d libros(s)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" +"O ficheiro de saída está baleiro, probablemente o proceso de conversión " +"fallou" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Copiar á biblioteca" @@ -4029,9 +4109,9 @@ msgid "Could not copy books: " msgstr "No se puideron copiar estes libros: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:708 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:679 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Fallou" @@ -4092,14 +4172,14 @@ msgid "Main memory" msgstr "Memoria principal" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Tarxeta de almacenaxe A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Tarxeta de almacenaxe B" @@ -4244,7 +4324,7 @@ msgid "covers" msgstr "capas" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadatps" @@ -4266,36 +4346,37 @@ msgstr "Non se poden unir os libros" msgid "At least two books must be selected for merging" msgstr "Precísase seleccionar, cando menos, dous libros para os unir" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:197 msgid "" "Book formats and metadata from the selected books will be added to the " -"<b>first selected book.</b> ISBN will <i>not</i> be merged.<br><br> The " +"<b>first selected book</b> (%s). ISBN will <i>not</i> be merged.<br><br> The " "second and subsequently selected books will not be deleted or " "changed.<br><br>Please confirm you want to proceed." msgstr "" -"Os formatos e metadatos dos libros seleccionados engadiranse ao <b>primeir " -"libro seleccionado</b>. O ISBN <i>non</i> se engadirá.<br><br>O segundo " -"libro e os seguintes non se borrarán nin se alterarán.<br><br>Confirme que " -"desexa continuar." +"Os formatos de libro e os metadatos dos libros seleccionado serán engadidos " +"ao <b>primeiro libro seleccionado</b> (%s). O ISBN <i>non</i> se combinará. " +"<br><br> O segundo e subsecuentes libros seleccionados non serán eliminados " +"nin cambiados. <br> <br>Confirme por favor que quere proceder." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 msgid "" "Book formats and metadata from the selected books will be merged into the " -"<b>first selected book</b>. ISBN will <i>not</i> be merged.<br><br>After " -"merger the second and subsequently selected books will be <b>deleted</b>. " -"<br><br>All book formats of the first selected book will be kept and any " -"duplicate formats in the second and subsequently selected books will be " -"permanently <b>deleted</b> from your computer.<br><br> Are you <b>sure</b> " -"you want to proceed?" +"<b>first selected book</b> (%s). ISBN will <i>not</i> be " +"merged.<br><br>After merger the second and subsequently selected books will " +"be <b>deleted</b>. <br><br>All book formats of the first selected book will " +"be kept and any duplicate formats in the second and subsequently selected " +"books will be permanently <b>deleted</b> from your computer.<br><br> Are " +"you <b>sure</b> you want to proceed?" msgstr "" -"Os formatos e metadatos dos libros seleccionados engadiranse ao <b>primeiro " -"libro seleccionado</b>. O ISBN <i>non</i> se engadirá.<br><br>Despois da " -"unión, o segundo libro e os seguintes <b>borraranse</b>.<br><br>Todos os " -"formatos do primeiro libro seleccionado manteranse e se hai formatos " -"duplicados nos restantes libros, <b>borraranse</b> permanentemente do seu " -"computador.<br><br>Está <b>seguro</b> de querer continuar?" +"Os formatos de libro e os metadatos dos libros seleccionados combinaranse no " +"<b>primeiro libro seleccionado</b> (%s). O ISBN <i>non</i> non será " +"combinado. <br><br>Despois de combinar o seguindo e subsecuentes libros " +"seleccionados, <b>eliminaranse</b>.<br><br>Todos os formatos do primeiro " +"libro seleccionado gardaranse e calquera formato duplicado no segundo e " +"subsecuentes libros seleccionados <b>eliminaranse</b> do seu computador. " +"<br><br>Está seguro</b> de querer proceder?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 msgid "" "You are about to merge more than 5 books. Are you <b>sure</b> you want to " "proceed?" @@ -4343,6 +4424,7 @@ msgid "Ctrl+P" msgstr "Ctrl + P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Lanzar o asistente de benvida" @@ -4431,7 +4513,7 @@ msgid "Click the show details button to see which ones." msgstr "Prema o botón de amosar detalles para os ver." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Amosar os detalles do libro" @@ -4518,21 +4600,21 @@ msgstr "Ver" msgid "View specific format" msgstr "Ver o formato específico" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:158 msgid "Cannot view" msgstr "Non se pode ver" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "Escoller o formato de visualización" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 msgid "Multiple Books Selected" msgstr "Seleccionou múltiplos libros" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 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 " @@ -4544,11 +4626,11 @@ msgstr "" "computador. Ademais, unha vez comezado o proceso, non o pode deter até que " "rematar. Desexa, con todo, continuar?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:118 msgid "Cannot open folder" msgstr "Non se pode abrir o ficheiro" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:159 msgid "%s has no available formats." msgstr "%s non ten formatos dispoíbeis" @@ -4573,7 +4655,7 @@ msgid "The specified directory could not be processed." msgstr "Non se puido procesar o directorio especificado." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Sen libros" @@ -4777,49 +4859,49 @@ msgstr "" "&Múltiplos libros por cartafol interpreta que cada ficheiro de ebook é un " "libro diferente" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:327 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1124 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 msgid "Path" msgstr "Camiño" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:326 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 msgid "Formats" msgstr "Formatos" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:934 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:927 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120 msgid "Collections" msgstr "Coleccións" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:60 msgid "Click to open" msgstr "Prema para abrir" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1133 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1137 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1130 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 @@ -4827,9 +4909,9 @@ msgstr "Prema para abrir" msgid "None" msgstr "Ningún" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:312 -msgid "Click to open Book Details window" -msgstr "Prema para abrir a xanela de detalles do libro" +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 +msgid "Double-click to open Book Details window" +msgstr "Facer doble clic para abrir a ventá Detalles do Libro" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 msgid "BibTeX Options" @@ -4872,7 +4954,7 @@ msgstr "saída" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4915,7 +4997,7 @@ msgstr "saída" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Formulario" @@ -4950,7 +5032,7 @@ msgstr "ignorar" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 msgid "backslashreplace" -msgstr "" +msgstr "substituirbarradeitadadereita" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 msgid "BibTeX entry type:" @@ -5002,24 +5084,24 @@ msgstr "Opcións de CSV/XML" msgid "E-book options" msgstr "Opcións do libro electrónico" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "Etiqueta 'non incluír este libro':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "Etiqueta 'marcar este libro como lido':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Prefixo adicional para notas:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" "Expresión regular que describe as etiquetas que se excluirán como xéneros:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5033,26 +5115,43 @@ msgstr "" "- Unha expresión con só un punto exclúe todas as etiquetas de xénero, o que " "xera a Sección Xéneros" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Incluír a sección 'títulos'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Incluír a sección 'engadidos recentemente'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Ordenar os números como texto" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "Incluír a sección \"Serie\"" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Etiqueta de desexo:" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Modelo para catalog.ui" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "Negra" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "Cursiva" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +msgstr "Subliñado" + #: /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 " @@ -5063,11 +5162,11 @@ msgstr "" "empregar os valores gardados na conversión anterior (se existir) no canto de " "as especificadas nas Preferencias." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Conversión por Petición" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opcións específicas do formato de saida." @@ -5541,7 +5640,7 @@ msgid "Change the title of this book" msgstr "Mudar o título deste libro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Autores/as: " @@ -5559,7 +5658,7 @@ msgstr "" "vírgulas" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Editorial: " @@ -5570,7 +5669,7 @@ msgid "Ta&gs: " msgstr "&Etiquetas " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5581,15 +5680,16 @@ msgstr "" "estar separadas por vírgula." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "&Serie:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5770,7 +5870,7 @@ msgid "Options specific to the input format." msgstr "Opcións específicas do formato de entrada." #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5791,15 +5891,15 @@ msgstr "Saída SNB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:40 msgid "Hide chapter name" -msgstr "" +msgstr "Non amosar o número de capítulo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:41 msgid "Insert space before the first line for each paragraph" -msgstr "" +msgstr "Insira un espazo antes da primeira liña de cada parágrafo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 msgid "Insert empty line between paragraphs" -msgstr "" +msgstr "Inserir unha liña baleira entre parágrafos" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" @@ -5968,8 +6068,8 @@ msgid "Force maximum line length" msgstr "Forzar a lonxitude máxima da liña" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -6112,7 +6212,7 @@ msgid "Automatically number books" msgstr "Numerar automaticamente os libros" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Forzar números para comezar con " @@ -6128,97 +6228,103 @@ msgstr "etiquetas para engadir" msgid "tags to remove" msgstr "etiquetas para borrar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Non hai detalles dispoñíbeis" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "O dispositivo non está conectado." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Obter a información do dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Obter unha relación de libros do dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Obter as anotacións do dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Enviar os metadatos ao dispostivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Enviar as coleccións ao dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Cargar %d libros do dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Borrar libros do dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Descargar libros do dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Ver libro no dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Establecer a acción de enviar ao dispositivo por defecto" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Enviar á memoria principal" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Enviar á tarxeta de almacenaxe A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Enviar á tarxeta de almacenaxe B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Memoria principal" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +msgid "Send specific format to" +msgstr "Enviar o formato especifico para" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Enviar e borrar da biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 -msgid "Send specific format to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Extraer dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Erro ao conectar co dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:667 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Non hai formatos axeitados" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Escoller o cartafol para abrir co como dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Erro ao conectar co dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:715 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6226,127 +6332,60 @@ msgstr "" "Produciuse un erro temporal na comunicación co dispositivo. Desconecte e " "volva conectar o dispositovo e/ou reinícieo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Dispositivo: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:760 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " detectado" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:858 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "seleccionado para enviar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:863 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Elixa formato para enviar ao dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Sen dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Non se pode enviar: non hai ningún dispositivo conectado" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Sen tarxeta" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:877 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Non de pode enviar: o dispositivo non ten tarxeta de memoria" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:922 -msgid "E-book:" -msgstr "Libro electrónico:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 -msgid "Attached, you will find the e-book" -msgstr "O libro electrónico está anexo" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "por" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -msgid "in the %s format." -msgstr "no formato %s." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:940 -msgid "Sending email to" -msgstr "Enviando correo a" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:970 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1071 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1275 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1283 -msgid "No suitable formats" -msgstr "Non hai formatos axeitados" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"Desexa converter automaticamente os seguintes libros antes de os enviar por " -"correo?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"Non se puideron enviar por correo os libros seguintes xa que non se achou ou " -"formato correcto." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 -msgid "Failed to email books" -msgstr "Fallou ao enviar por correo os libros" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:998 -msgid "Failed to email the following books:" -msgstr "Fallou ao enviar por correo os libros seguintes:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1002 -msgid "Sent by email:" -msgstr "Enviar por correo:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1030 -msgid "News:" -msgstr "Novas:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1031 -msgid "Attached is the" -msgstr "Anexo está o" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "Sent news to" -msgstr "Enviar novas a" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1072 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1157 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1276 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Desexa converter os libros seguintes antes de os enviar ao dispositivo?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1102 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "A enviar catálogos ao dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "A enviar novas ao dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "A enviar libros ao dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1284 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6355,11 +6394,11 @@ msgstr "" "atoparon formatos compatíbeis. Converta o ou os libros a un formato " "compatíbel co dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1348 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Non hai espazo no dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1349 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6404,27 +6443,34 @@ msgstr "Engadir libros polo ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Introduza unha lista de ISBN no cadro da esquerda, un por liña. Calibre " +"<p>Introduza unha lista de ISBN no cadro da esquerda, un por liña. O Calibre " "creará automaticamente entradas para os libros baseándose no ISBN e " -"descargará os metadatos e portadas.<p>Os ISBN da lista que non sexan válidos " -"serán ignorados." +"descargará os seus metadatos e portadas.</p>\n" +"<p>Calquera ISBN incorrecto na lista omitirase.</p>\n" +"<p>Tamén pode especificar un ficheiro para engadir con cada ISBN. Para iso " +"introduza a ruta completa do ficheiro tras <code>>></code>. Por " +"exemplo:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Pegar do portapapeis" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "Axustar a &capa dentro da visualización" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "&Anterior" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "&Seguinte" @@ -6475,21 +6521,36 @@ msgstr "Copiar no por&tapapeis" msgid "Names to ignore:" msgstr "Nombres para ignorar:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:59 +msgid "" +"Enter comma-separated standard file name wildcards, such as synctoy*.dat" +msgstr "" +"Introduza nomes de ficheiro estándares como comodín, separados por coma, tal " +"como synctoy*.dat" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 msgid "Extensions to ignore" msgstr "Extensiones para ignorar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:67 +msgid "" +"Enter comma-separated extensions without a leading dot. Used only in book " +"folders" +msgstr "" +"Introduza as extensións separadas por comas, sen o punto. Úsase unicamente " +"en cartafoles de libros" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 msgid "Path from library" msgstr "Camiño da biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Nome" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:136 msgid "" "The marked files and folders will be <b>permanently deleted</b>. Are you " "sure?" @@ -6538,7 +6599,7 @@ msgid "No location selected" msgstr "Non seleccionou unha localización" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Localización incorrecta" @@ -6579,6 +6640,7 @@ msgid "Set options for converting %s" msgstr "Establecer as opcións para converter %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&Título:" @@ -6616,7 +6678,7 @@ msgstr "Localización" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:932 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:294 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 @@ -6624,7 +6686,7 @@ msgid "Date" msgstr "Data" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1123 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1116 msgid "Format" msgstr "Formato" @@ -6637,12 +6699,12 @@ msgid "Author sort" msgstr "Ordenar por autoría" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Nombre de autor incorrecto" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Os nombres de autores non poden conter caracteres \"&\"." @@ -6798,64 +6860,63 @@ msgstr "Buscar/Substituír" msgid "Working" msgstr "Traballando" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Minúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Maiúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Formato de título (todas as iniciais en maiúscula)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Coincidencia de carácter" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Expresión regular" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Substituír campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Antepoñer ao campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Anexar ao campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "A editar a metainformación para <b>%d libros</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Libro %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -"<b>Pode destruír a súa biblioteca con esta característica.</b> Os cambios " -"son permanentes. Non existe unha función para desfacer. Esta característica " -"é experimental e pode haber erros. Recoméndaselle facer unha copia de " -"seguranza da biblioteca antes de continuar.<p>Busque e substitúa nos campos " -"de texto utilizando un carácter coincidente ou expresións regulares. " +"<b>Pode destruír a súa biblioteca usando esta funcionalidade.</b> Os cambios " +"son permanentes. Non hai función de desfacer. Recoméndaselle fortemente " +"realizar unha copia de seguranza da súa biblioteca antes de " +"continuar.<p>Buscar e substituír en campos de texto usando ocorrencias de " +"caracteres ou expresións regulares. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6872,7 +6933,7 @@ msgstr "" "exactamente. Se está desactivada, encontraranse coincidencias tanto con " "maiúsculas coma con minúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6898,34 +6959,34 @@ msgstr "" "información sobre as expresións regulares de Python, e en particular sobre a " "función \"sub\"." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "Debe especificar un destino cando a orixe é un campo de composición" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Buscar/substituir no vé correcto" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" "A cadea Autores non se pode deixar en branco. O libro co título %s non foi " "procesado" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" "O título non se pode deixar en branco. O libro co título %s non foi " "procesado" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "O patrón de busca non é correcto: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:665 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6933,19 +6994,19 @@ msgstr "" "Aplicando cambios a %d libros.\n" "Fase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Editar metainformación" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "Estabelecer a&utomaticamente a orde por autor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "Orde por aut&oría: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -6953,64 +7014,64 @@ msgstr "" "Especificar como ordenar a autoría deste libro. Por exemplo, Rosalía de " "Castro pode ordenarse como Castro, Rosalía de." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Valoración" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Valoración deste libro. 0-5 estrelas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Sen mudanzas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " estrelas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Engadir esti&quetas " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Abrir o editor de etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Quitar etiquetas:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Listaxe de etiquetas, separadas por vírgula, para eliminar dos libros. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Marque esta caixa para eliminar todas as etiquetas dos libros." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Eliminar todo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Se está marcado, as series serán desbotadas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Desbotar series" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7023,11 +7084,11 @@ msgstr "" "o libro A e logo o B, o libro A será o número 1 na serie e o libro\n" "B será o número 2." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Numerar automaticamente os libros nesta serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7038,26 +7099,30 @@ msgstr "" "a serie. Se marca esta caixa Calibre comezará a numeración a partir do valor " "do cadro." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Quitar &formato:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Intercambiar título e autoría" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" +"Fai que o título teña a inicial maiúscula. Se tanto esta caixa como a de " +"intercambiar\n" +"autor e título están marcadas, primeiro intercámbianse e logo cámbiase o " +"título." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" -msgstr "" +msgstr "Cambiar o título a inicial maiúscula" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7068,73 +7133,80 @@ msgstr "" "\n" "A conversión futura destes libros empregará a preestablecida." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "Borrar a configuración de conversión para os libros &seleccionados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "Metadatos &básicos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "Metadatos &personalizados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 -msgid "Search &field:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 -msgid "The name of the field that you want to search" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 -msgid "Search mode:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +msgid "Search &field:" +msgstr "Campo de &busca:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +msgid "The name of the field that you want to search" +msgstr "O nome do campo no que buscar" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +msgid "Search mode:" +msgstr "Modo de busca:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" +"Escolla se quere usar o modo básico de busca de texto ou o modo avanzado de " +"expresións regulares" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" -msgstr "" +msgstr "&Buscar de:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" +"Introduza o que quere buscar, xa sexa un texto sinxelo o unha expresión " +"regular, segundo o modo escollido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" +"Marque esta caixa se o texto de busca debe coincidir exactamente en " +"maiúsculas ou minúsculas. Desmárquea se as maiúsculas ou minúsculas son " +"indiferentes." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" -msgstr "" +msgstr "Distinguir maiúsculas de minúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" -msgstr "" +msgstr "&Substituír con:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7142,49 +7214,49 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 -msgid "&Search and replace (experimental)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -7457,20 +7529,21 @@ msgstr "Precísase contrasinal" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "Nome de &usuario:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Contrasinal" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Amosar contrasinal" @@ -7710,58 +7783,52 @@ msgstr "" msgid "Negate" msgstr "Negar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "Procura avanzada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "Achar entradas que teñan..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "&Todas estas palabras:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "Esta &frase exacta:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "&Unha ou máis destas palabras" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "Mais non buscar entradas que teñan..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "Algunha destas palabras &non desexadas:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "Que tipo de coincidencia para empregar:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "Contén: búscase a palabra ou a frase en calquera parte dos metadatos" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -"Igual: a palabra ou a frase debe coincidir cun campo completo de metadatos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -"Expresión regular: búscase a expresión en calquera parte dos metadatos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Achar entradas que teñan..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Todas estas palabras:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Esta &frase exacta:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "&Unha ou máis destas palabras" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "Mais non buscar entradas que teñan..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "Algunha destas palabras &non desexadas:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" @@ -7769,6 +7836,47 @@ msgstr "" "Vexa o <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">Manual de usuario</a> para máis axuda" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "Escoller formatos" @@ -7903,12 +8011,12 @@ msgid "%s (was %s)" msgstr "%s (era %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "O elemento está en branco" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "Un elemento non se pode deixar en branco. Bórreo no seu lugar." @@ -7991,7 +8099,7 @@ msgid "Discard changes" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "" @@ -8191,6 +8299,64 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Código fonte das receitas (pytom)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Novas:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "Libro electrónico:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "O libro electrónico está anexo" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "por" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "no formato %s." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Enviando correo a" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"Desexa converter automaticamente os seguintes libros antes de os enviar por " +"correo?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Non se puideron enviar por correo os libros seguintes xa que non se achou ou " +"formato correcto." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Enviar novas a" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8388,23 +8554,23 @@ msgstr "Non se poden deter as tarefas que comunican co dispositivo" msgid "Job has already run" msgstr "A tarefa xa se está a executar" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Non dispoñíbel" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Tarefas:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Faga clic para ver a lista de traballos" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Tarefas" @@ -8430,7 +8596,7 @@ msgid "Show books in the main memory of the device" msgstr "Amosar os libros na memoria principal do dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Tarxeta A" @@ -8439,7 +8605,7 @@ msgid "Show books in storage card A" msgstr "Amosar os libros almacenados na tarxeta A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Tarxeta B" @@ -8451,21 +8617,21 @@ msgstr "Amosar os libros almacenados na tarxeta B" msgid "available" msgstr "dispoñíbel" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:159 msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" "Só se amosarán os libros que coincidan coa busca gardada seleccionada" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "Procura avanzada" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 -msgid "&Search:" -msgstr "&Buscar:" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" @@ -8474,19 +8640,27 @@ msgstr "" "comentarios etc.<br><br>Búscanse os libros que conteñan todas as palabras " "separadas por espazos" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 +msgid "&Go!" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 +msgid "Do Quick Search (you can also press the Enter key)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "Reiniciar a procura rápida" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "Copiar o texto de procura actual (no canto do nome da procura)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "Gardar a procura actual baixo o nome amosado na caixa" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "Borrar a actual procura gardada" @@ -8508,79 +8682,82 @@ msgstr "No dispositivo" msgid "Size (MB)" msgstr "Tamaño (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1143 -msgid "Book <font face=\"serif\">%s</font> of %s." -msgstr "Libro <font face=\"serif\">%s</font> de %s" +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 +msgid "Book %s of %s." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:700 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "O nome de busca é \"{0}\"" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:706 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1238 msgid "This book's UUID is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:929 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 msgid "In Library" msgstr "Na biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 msgid "Size" msgstr "Tamaño" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1223 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 +msgid "Book <font face=\"serif\">%s</font> of %s." +msgstr "Libro <font face=\"serif\">%s</font> de %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 msgid "Marked for deletion" msgstr "Marcado para borrar" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1226 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1219 msgid "Double click to <b>edit</b> me<br><br>" msgstr "Prema dúas veces para <b>editar</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Ocultar a columna %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Ordenar en %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Ascendente" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Descendente" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Mudar o aliñamento do texto a %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Esquerda" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Dereita" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centrado" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Amosar columna" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Restaurar a disposición por defecto" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8613,7 +8790,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>Sen coincidencias</b> para a frase de busca <i>%s</i>." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Non se atopou ningunha coincidencia" @@ -8630,12 +8807,12 @@ msgid "LRF Viewer toolbar" msgstr "Barra de ferramentas do visor de LRF" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Páxina seguinte" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Páxina anterior" @@ -8679,7 +8856,7 @@ msgid "Do not check for updates" msgstr "Non comprobar se hai actualizacións" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Biblioteca do Calibre" @@ -8817,37 +8994,37 @@ msgstr "O libro non ten título nin ISBN" msgid "No matches found for this book" msgstr "Non se encontraron resultados para este libro" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Feito" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "" @@ -9387,39 +9564,39 @@ msgstr "Amosar &texto debaixo das iconas" msgid "&Split the toolbar into two toolbars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "" @@ -9737,7 +9914,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Fallou ao iniciar o servidor de contido" @@ -9940,25 +10117,26 @@ msgid "&Current tweaks" msgstr "Axustes a&ctuais" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Buscar" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:322 msgid "The selected search will be <b>permanently deleted</b>. Are you sure?" msgstr "" "A busca seleccionada será <b>eliminada permanentemente</b>. Está seguro?" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:364 msgid "Search (For Advanced Search click the button to the left)" msgstr "Busca (para buscas avanzadas faga clic no botón da esquerda)" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:406 msgid "Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:414 msgid "Choose saved search or enter name for new saved search" msgstr "" @@ -10039,26 +10217,22 @@ msgstr "Limpar" msgid "&Alternate shortcut:" msgstr "Atallo &alternativo:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10073,63 +10247,67 @@ msgstr "" msgid "Manage User Categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Buscas" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Ordenar polo nome" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:889 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "" @@ -10173,42 +10351,42 @@ msgid "" msgstr "" "Os seguintes libros xa foron convertidos ao formato %s. Desexa reconvertelos?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Restabelecer" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Doar para axudar ao calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Fallou</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10219,22 +10397,22 @@ msgstr "" "desenvolvemento. A súa contribución axudará a continuar co desenvolvemento " "do calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Hai traballos en activo. Está seguro de querer saír?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "Aviso: traballos en activo" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10410,96 +10588,96 @@ msgstr "&Atallos do teclado" msgid "No results found for:" msgstr "Non se encontraron resultados para:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Opcións para personalizar o visualizador de libros" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Lembrar o tamaño da última xanela usada" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 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:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Largura máxima da xanela do visualizador, en píxeles." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Opcións de tipo de letra" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "O tipo de letra estándar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&Buscar no dicionario" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Ir a..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Sección seguinte" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Sección anterior" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "" @@ -10567,85 +10745,85 @@ msgstr "" msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Previsualización da impresión" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Libros electrónicos" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:697 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 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:700 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10760,59 +10938,59 @@ msgstr "" msgid "Toggle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 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:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "" @@ -10884,8 +11062,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 @@ -10899,121 +11077,158 @@ msgid "" "will switch to using it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Configuración errada" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 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:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Enviar correos &desde:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>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:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "&Servidor de Correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "Nome do &host:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 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:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Porto:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 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:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "O seu nome de usuario/a no servidor de correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "O seu contrasinal no servidor de correo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Amosar" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Cifrado:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 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:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Usar Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Probar o correo" @@ -11076,7 +11291,7 @@ msgstr "" msgid "empty" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11085,7 +11300,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11093,7 +11308,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11102,7 +11317,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11110,7 +11325,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11118,7 +11333,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11127,7 +11342,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11135,7 +11350,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11143,7 +11358,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11151,14 +11366,14 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 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:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11167,14 +11382,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11183,35 +11398,35 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 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:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11220,7 +11435,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11230,13 +11445,20 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 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:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "" @@ -11548,7 +11770,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:665 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:505 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:499 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -11778,35 +12000,35 @@ msgid "" "start with a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "A copiar <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "A compactar a base de datos" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "A comprobar a integridade SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "A comprobar os ficheiros perdidos." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "id comprobada" @@ -11996,120 +12218,129 @@ msgid "" "from Apache/nginx/etc." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:149 -msgid "Password to access your calibre library. Username is " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:401 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:224 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:132 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:244 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:308 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:512 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 +msgid "library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 +msgid "home" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:309 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:513 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:341 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:346 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:421 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:422 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:543 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:546 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:597 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:604 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:624 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:625 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:636 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:720 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:722 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "" @@ -12140,6 +12371,12 @@ msgid "" "overrides any per-library settings specified in the GUI" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:62 +msgid "" +"Auto reload server when source code changes. May not work in all " +"environments." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d book" msgstr "" @@ -12420,7 +12657,7 @@ msgstr "" msgid "Failed to authenticate with server: %s" msgstr "Erro ao se autenticar no servidor: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Controlar o envío de correo" @@ -12464,93 +12701,93 @@ msgstr "" msgid "Unknown News Source" msgstr "Fonte de Novas Descoñecida" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:628 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:713 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:727 msgid "Download finished" msgstr "Rematou a descarga" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:715 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:729 msgid "Failed to download the following articles:" msgstr "Produciuse un fallo na descarga dos seguintes artigos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:721 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:735 msgid "Failed to download parts of the following articles:" msgstr "Produciuse un fallo na descarga de partes do seguintes artigos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:723 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:737 msgid " from " msgstr " desde " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:725 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 msgid "\tFailed links:" msgstr "\tLigazóns erradas:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:814 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:834 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:855 msgid "Fetching feeds..." msgstr "A obter os fluxos..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:860 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:849 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:869 msgid "Trying to download cover..." msgstr "Tratando de descargar a capa..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:871 msgid "Generating masthead..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:932 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:952 msgid "Starting download [%d thread(s)]..." msgstr "A comezar a descarga [%d fío(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:948 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:968 msgid "Feeds downloaded to %s" msgstr "Fluxos descargados en %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:957 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:977 msgid "Could not download cover: %s" msgstr "Non se puido descargar a capa: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:964 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:986 msgid "Downloading cover from %s" msgstr "A descargar a capa desde %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1009 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1032 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1177 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1200 msgid "Untitled Article" msgstr "Artigo sen Título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1248 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Article downloaded: %s" msgstr "Artigo descargado: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1259 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1282 msgid "Article download failed: %s" msgstr "Erro ao descargar o artigo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1276 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1299 msgid "Fetching feed" msgstr "A obter o fluxo" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1423 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1446 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1461 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." @@ -12571,18 +12808,18 @@ msgstr "Programado" msgid "Custom" msgstr "Personalizado" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "Base directory into which URL is saved. Default is %default" msgstr "Directorio base onde se gardan os URL. O predefinido é %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -12590,38 +12827,38 @@ msgstr "" "Tempo máximo en segundos para esperar a resposta do servidor. Predefinido: " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:491 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 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:494 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 msgid "" "The maximum number of files to download. This only applies to files from <a " "href> tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:490 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:492 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:500 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 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:502 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 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 " @@ -12630,7 +12867,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:504 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 msgid "Do not download CSS stylesheets." msgstr "Non descargar follas de estilo CSS" @@ -12671,6 +12908,9 @@ msgstr "Non descargar follas de estilo CSS" #~ msgid "General" #~ msgstr "Xeral" +#~ msgid " " +#~ msgstr " " + #~ msgid "Path to a txt file containing a comment." #~ msgstr "Camiño a un ficheiro txt que contén un comentario." @@ -12698,6 +12938,9 @@ msgstr "Non descargar follas de estilo CSS" #~ msgid "Stop &all jobs" #~ msgstr "Parar &todos os traballos" +#~ msgid "&Search:" +#~ msgstr "&Buscar:" + #~ msgid "Communicate with the Kindle 2 eBook reader." #~ msgstr "Comunicar co lector Kindle 2" @@ -12728,6 +12971,14 @@ msgstr "Non descargar follas de estilo CSS" #~ "xustificado ou non en realidade, depende de se o formato de libro " #~ "electrónico e o dispositivo de lectura admiten o texto xustificado." +#~ 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 "" +#~ "Lonxitude de liña media para a división de liñas se o HTML vén dunha " +#~ "conversión parcial previa dun ficheiro PDF. O valor predefinido é %default, " +#~ "que desactiva esta opción." + #~ msgid "Communicate with iBooks through iTunes." #~ msgstr "Comunicar con iBooks a través do iTunes." @@ -12803,6 +13054,9 @@ msgstr "Non descargar follas de estilo CSS" #~ "segundo e seguinte <b>borrarase</b> permanentemente do computador.<br><br> " #~ "Ten <b>certeza</b> de que desexa continuar?" +#~ msgid "Click to open Book Details window" +#~ msgstr "Prema para abrir a xanela de detalles do libro" + #~ msgid "" #~ "Regex tips:\n" #~ "- The default regex - \\[[\\w ]*\\] - excludes genre tags of the form [tag], " @@ -12822,6 +13076,18 @@ msgstr "Non descargar follas de estilo CSS" #~ msgid "Send specific format" #~ msgstr "Enviar un formato específico" +#~ msgid "Failed to email books" +#~ msgstr "Fallou ao enviar por correo os libros" + +#~ msgid "Failed to email the following books:" +#~ msgstr "Fallou ao enviar por correo os libros seguintes:" + +#~ msgid "Sent by email:" +#~ msgstr "Enviar por correo:" + +#~ msgid "Attached is the" +#~ msgstr "Anexo está o" + #~ msgid "Fit &cover to view" #~ msgstr "Axustar a &capa á xanela" @@ -12870,6 +13136,17 @@ msgstr "Non descargar follas de estilo CSS" #~ "As mudanzas que fixo requiren que reinicie o Calibre. Reinicie cando lle for " #~ "máis práctico." +#~ 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 "" +#~ "Os libros seguintes teñen formatos especificados na base de datos que non " +#~ "están actualmente dispoñíbeis. Elimináronse as entradas para os formatos e, " +#~ "por tanto, debe comprobalos manualmente. Isto adoita acontecer ao manipular " +#~ "directamente os ficheiros na biblioteca." + #~ msgid "TabWidget" #~ msgstr "TabWidget" @@ -13002,6 +13279,18 @@ msgstr "Non descargar follas de estilo CSS" #~ msgid "Download &cover" #~ msgstr "Descargar &capa" +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "Contén: búscase a palabra ou a frase en calquera parte dos metadatos" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Igual: a palabra ou a frase debe coincidir cun campo completo de metadatos" + +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Expresión regular: búscase a expresión en calquera parte dos metadatos" + #~ msgid "" #~ "For help with writing advanced news recipes, please visit <a " #~ "href=\"http://calibre.kovidgoyal.net/user_manual/news.html\">User Recipes</a>" @@ -13041,8 +13330,59 @@ msgstr "Non descargar follas de estilo CSS" #~ msgid "&Tweaks" #~ msgstr "Axus&tes" +#~ msgid "" +#~ "Book formats and metadata from the selected books will be merged into the " +#~ "<b>first selected book</b>. ISBN will <i>not</i> be merged.<br><br>After " +#~ "merger the second and subsequently selected books will be <b>deleted</b>. " +#~ "<br><br>All book formats of the first selected book will be kept and any " +#~ "duplicate formats in the second and subsequently selected books will be " +#~ "permanently <b>deleted</b> from your computer.<br><br> Are you <b>sure</b> " +#~ "you want to proceed?" +#~ msgstr "" +#~ "Os formatos e metadatos dos libros seleccionados engadiranse ao <b>primeiro " +#~ "libro seleccionado</b>. O ISBN <i>non</i> se engadirá.<br><br>Despois da " +#~ "unión, o segundo libro e os seguintes <b>borraranse</b>.<br><br>Todos os " +#~ "formatos do primeiro libro seleccionado manteranse e se hai formatos " +#~ "duplicados nos restantes libros, <b>borraranse</b> permanentemente do seu " +#~ "computador.<br><br>Está <b>seguro</b> de querer continuar?" + +#~ msgid "" +#~ "Book formats and metadata from the selected books will be added to the " +#~ "<b>first selected book.</b> ISBN will <i>not</i> be merged.<br><br> The " +#~ "second and subsequently selected books will not be deleted or " +#~ "changed.<br><br>Please confirm you want to proceed." +#~ msgstr "" +#~ "Os formatos e metadatos dos libros seleccionados engadiranse ao <b>primeir " +#~ "libro seleccionado</b>. O ISBN <i>non</i> se engadirá.<br><br>O segundo " +#~ "libro e os seguintes non se borrarán nin se alterarán.<br><br>Confirme que " +#~ "desexa continuar." + +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Introduza unha lista de ISBN no cadro da esquerda, un por liña. Calibre " +#~ "creará automaticamente entradas para os libros baseándose no ISBN e " +#~ "descargará os metadatos e portadas.<p>Os ISBN da lista que non sexan válidos " +#~ "serán ignorados." + #~ msgid "Run the check" #~ msgstr "Excutar a comprobación" #~ msgid "Additional Information" #~ msgstr "Información adicional" + +#~ msgid "" +#~ "<b>You can destroy your library using this feature.</b> Changes are " +#~ "permanent. There is no undo function. This feature is experimental, and " +#~ "there may be bugs. You are strongly encouraged to back up your library " +#~ "before proceeding.<p>Search and replace in text fields using character " +#~ "matching or regular expressions. " +#~ msgstr "" +#~ "<b>Pode destruír a súa biblioteca con esta característica.</b> Os cambios " +#~ "son permanentes. Non existe unha función para desfacer. Esta característica " +#~ "é experimental e pode haber erros. Recoméndaselle facer unha copia de " +#~ "seguranza da biblioteca antes de continuar.<p>Busque e substitúa nos campos " +#~ "de texto utilizando un carácter coincidente ou expresións regulares. " diff --git a/src/calibre/translations/he.po b/src/calibre/translations/he.po index 3af329b358..9e7e4296ad 100644 --- a/src/calibre/translations/he.po +++ b/src/calibre/translations/he.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-10-28 00:31+0000\n" -"PO-Revision-Date: 2010-10-28 02:18+0000\n" -"Last-Translator: Kovid Goyal <Unknown>\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-30 11:45+0000\n" +"Last-Translator: Ddorda <Ddorda@ubuntu.com>\n" "Language-Team: Hebrew <he@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-10-29 05:24+0000\n" +"X-Launchpad-Export-Date: 2010-12-01 04:56+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,21 +27,21 @@ msgstr "×œ× ×¢×•×©×” דבר" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:407 #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:336 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:339 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -54,8 +54,8 @@ msgstr "×œ× ×¢×•×©×” דבר" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:333 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -74,14 +74,14 @@ msgstr "×œ× ×¢×•×©×” דבר" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -89,7 +89,7 @@ msgstr "×œ× ×¢×•×©×” דבר" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -109,43 +109,43 @@ msgstr "×œ× ×¢×•×©×” דבר" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:277 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:280 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:915 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:924 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1231 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1234 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1112 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:224 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:78 @@ -185,14 +185,14 @@ msgstr "פעולה בממשק משתמש" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" -msgstr "הגדרות" +msgstr "העדפות" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -201,7 +201,7 @@ msgstr "" "עקוב ×חר כל ×”×§×™×©×•×¨×™× ×”×ž×§×•×ž×™×™× ×‘×§×•×‘×¥ HTML וצור קובץ ZIP המכיל ×ת כל ×”×§×‘×¦×™× " "המקושרי×. תוסף ×–×” רץ בכל ×¤×¢× ×©×ž×ª×•×•×¡×£ קובץ HTML לספרייה." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -209,7 +209,7 @@ msgstr "" "קידוד ×ª×•×•×™× ×¢×‘×•×¨ קבצי ×” HTML הנכנסי×. בחירות נפוצות כוללות: cp1252, latin1, " "iso-8859-1 ו-utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -218,7 +218,7 @@ msgstr "" "צור ×רכיון PMLZ ×שר מכיל ×ת קובץ ×”PML וכל התמונות בתוך תיקיית pmlname_img ×ו " "images. תוסף ×–×” רץ בכל ×¤×¢× ×©×ž×•×¡×™×¤×™× ×§×•×‘×¥ PML לספריה." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "חלץ עטיפה מקובץ קומיקס" @@ -265,98 +265,98 @@ msgstr "כתוב תגיות ×ž×˜× ×ž- %s קבצי×" msgid "Set metadata from %s files" msgstr "כתוב תגיות ×ž×˜× ×ž- %s קבצי×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:706 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "מר××” ותחושה" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:708 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "ממשק" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "הת×× ×ת המר××” והמרגש של ממשק קליבר ×œ×˜×¢× ×”×ישי שלך" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "×ופן הפעולה" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "שנה ×ת ×ופן הפעולה של קליבר" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "הוסף ×˜×•×¨×™× ×ישיי×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "הוסף/הסר ×˜×•×¨×™× ××™×©×™×™× ×œ×¨×©×™×ž×ª ×”×¡×¤×¨×™× ×©×œ קליבר" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "הת×× ×ישית ×ת סרגל הכלי×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" msgstr "הת×× ×ישית סרגלי ×›×œ×™× ×•×ª×¤×¨×™×˜×™ מידע, שנה ×ת הפעולות ×”×פשריות בכל ×חד." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "×פשרויות קלט" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "המרה" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "קבע ×פשרויות המרה ספציפיות לפי סוג הקלט" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "×פשרויות נפוצות" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "קבע ×פשרויות המרה המשותפות לכל סוגי הקבצי×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "×פשריות פלט" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "קבע ×פשרויות המרה ספציפיות לפי סוג הפלט" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "הוספת ספרי×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:799 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:811 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "ייבו×/ייצו×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "שלוט בצורה שקליבר ×§×•×¨× ×ž×™×“×¢ ×ž×˜× ×ž×§×‘×¦×™× ×‘×–×ž×Ÿ הוספת ספרי×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "שומר ×¡×¤×¨×™× ×œ×“×™×¡×§" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:803 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -364,75 +364,75 @@ msgstr "" "קבע ×יך calibre ×ž×™×¦× ×§×‘×¦×™× ×ž×ž×¡×“ ×”× ×ª×•× ×™× ×œ×“×™×¡×§ הקשיח בבחירת \"שמירה לדיסק " "הקשיח\"" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "שולח ×¡×¤×¨×™× ×œ×”×ª×§× ×™×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:815 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "שלוט בצורת ההעברה של קליבר ×œ×§×•×¨× ×”×¡×¤×¨×™× ×©×œ×š" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:821 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:827 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "שנה שדות נתוני ×ž×˜× ×œ×¤× ×™ שמירה/שליחה" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "שיתוף ×¡×¤×¨×™× ×‘×ž×™×™×œ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:846 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "שיתוף" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" msgstr "" "הגדר שיתוף ×¡×¤×¨×™× ×“×¨×š מייל. יכול לשמש לשליחה ×וטומטית של חדשות להתקני×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "שיתוף ברשת" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:850 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "תוספי×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:859 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:871 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "הגדרות מתקדמות" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:863 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "הוסף/הסר/הגדר ×—×œ×§×™× ×©×•× ×™× ×©×œ תפקודיות calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:869 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "שיפורי×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" -msgstr "" +msgstr "כוונן ×ת התנהגות קליבר ×‘×”×§×©×¨×™× ×©×•× ×™×" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "שונות" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "הגדרות מתקדמות שונות" @@ -475,7 +475,7 @@ msgstr "" "מקור המסמך." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:433 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "פרופיל ×–×” מיועד עבור SONY PRS line ×ž×“×’×ž×™× 500/505/600/700 ועוד." @@ -485,62 +485,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "פרופיל ×–×” מיועד עבור SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:470 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "פרופיל ×–×” מיועד עבור SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:500 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "פרופיל ×–×” מיועד עבור Microsoft Reader" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "פרופיל ×–×” מיועד עבור Mobipocket books." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "פרופיל ×–×” מיועד עבור Hanlin V3 ×•×ž×›×©×™×¨×™× ×“×•×ž×™×." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "פרופיל ×–×” מיועד עבור Hanlin V5 ×•×ž×›×©×™×¨×™× ×“×•×ž×™×" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:544 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "פרופיל ×–×” מיועד עבור Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "פרופיל ×–×” מיועד עבור Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:568 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "פרופיל ×–×” מיועד עבור Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "פרופיל ×–×” מיועד עבור Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:622 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 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:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:636 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "פרופיל ×–×” מיועד עבור IRex Digital Reader 800" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:650 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "פרופיל ×–×” מיועד עבור B&N Nook." @@ -557,28 +557,28 @@ msgstr "" "פרופיל ×–×” מנסה לת ברירות מחדל סבירות ×•×”×•× ×™×¢×™×œ במידה ו×תה רוצה להפיק מסמך " "שנועד ×œ×”×§×¨× ×‘×ž×—×©×‘ ×ו על מגוון מכשירי×." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:270 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "מיועד ל-iPad ×•×ž×›×©×™×¨×™× ×“×•×ž×™× ×¢× ×¨×–×•×œ×•×¦×™×” של 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:424 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" -msgstr "" +msgstr "מיועד למכשירי קרי××” גנריי×, ×œ× ×ž×©× ×” מידות של תמונות" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:448 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "פרופיל ×–×” מיועד ל-Kobo Reader" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:461 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "פרופיל ×–×” מיועד למכשיר SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "פרופיל ×–×” מיועד למכשיר 5-inch JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -586,11 +586,15 @@ msgstr "" "פרופיל ×–×” מיועד למכשיר מקו SONY PRS. ×”- 500/505/700 וכדומה בתצוגה " "×ופקית.שימושי במיוחד עבור קומיקס." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:589 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "פרופיל ×–×” מיועד למכשיר Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:663 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "הפרופיל ×”×–×” מיועד ל'ס×נדה במבוק' (Sanda Bambook)." @@ -664,13 +668,13 @@ msgstr "הפסק ×ת הרכיב המצויין" msgid "Communicate with Android phones." msgstr "מתקשר ×¢× ×˜×œ×¤×•×Ÿ Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 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/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "תקשר ×¢× ×¡×œ×•×œ×¨×™ S60" @@ -703,14 +707,14 @@ msgstr "מעדכן ×¨×™×©×•× × ×ª×•× ×™ ×ž×˜× ×©×œ החומרה" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:378 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:947 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:987 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2949 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2989 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2956 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2996 msgid "%d of %d" msgstr "%d מתוך %d" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:385 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:992 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2995 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3002 msgid "finished" msgstr "הסתיי×" @@ -740,29 +744,29 @@ msgstr "" "×œ× ×”×™×” ×פשר להמיר חלק מתמונות השער.\n" "לחץ על 'הצג פרטי×' לקבלת רשימה." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2546 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2553 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:444 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:467 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:882 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "חדשות" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2547 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "קטלוג" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2853 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2860 msgid "Communicate with iTunes." msgstr "תקשר ×¢× ×ייטונס" @@ -784,6 +788,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "מחליף × ×ª×•× ×™× ×¢× Cybook Gen 3 / Opus eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "תקשר ×¢× ×”×§×•×¨× ×”×לקטרוני Cybook Orizon." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "מחליף × ×ª×•× ×™× ×¢× EB600 eBook reader." @@ -796,6 +804,10 @@ msgstr "תקשר ×¢× ×צטק מנטור EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "תקשר ×¢× ×§×•×¨× ×”×¡×¤×¨×™×פוקטבוק 301" +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -854,8 +866,8 @@ msgstr "מתקשר ×¢× SpringDesign Alex eBook reader." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -944,26 +956,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "×§×•×¨× ×ת רשימת ×”×¡×¤×¨×™× ×ž×”×”×ª×§×Ÿ..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "מסיר ×¡×¤×¨×™× ×ž×¨×©×™×ž×ª ×”×¡×¤×¨×™× ×‘×ž×›×©×™×¨" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "מוסיף ×¡×¤×¨×™× ×œ×¨×©×™×ž×ª ×”×¡×¤×¨×™× ×‘×ž×›×©×™×¨" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "×œ× ×™×•×©×" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -982,29 +994,37 @@ msgid "Communicate with the Sweex MM300" msgstr "תקשר ×¢× ×¡×•×•×™×§×¡ MM300" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:79 +msgid "Communicate with the Digma Q600" +msgstr "תקשר ×¢× ×”-Digma Q600" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:88 msgid "Communicate with the Kogan" msgstr "תקשר ×¢× ×§×•×’×Ÿ" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:87 -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:114 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:96 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:123 msgid "Communicate with the Pandigital Novel" msgstr "תקשר ×¢× ×¤×ן דיגיט×ל נובל" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:124 -msgid "Communicate with the VelocityMicro" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/devices/misc.py:142 +msgid "Communicate with the VelocityMicro" +msgstr "תקשר ×¢× ×”-VelocityMicro" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:160 msgid "Communicate with the GM2000" msgstr "תקשר ×¢× GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "תקשר ×¢× ×ž×—×©×‘ ט×בלט נוקיה 770" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810/900 internet tablet." -msgstr "" +msgstr "תקשר ×¢× ×”-Nokia 810/900 internet tablet" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74 msgid "Communicate with the Nokia E52" @@ -1018,6 +1038,14 @@ msgstr "מכשיר ×”-Nook" msgid "Communicate with the Nook eBook reader." msgstr "מתקשר ×¢× Nook eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "נוק צבעוני (Nook Color)" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "תקשר ×¢× ×”×§×•×¨× ×”×לקטרוני, נוק הצבעוני (Nook Color)." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "מתקשר ×¢× Nuut2 eBook reader" @@ -1053,11 +1081,15 @@ msgstr "תקשר ×¢× ×§×•×¨× ×”×¡×¤×¨×™× ×˜×§×œ×¡×˜ K3/K5" msgid "Communicate with the Newsmy reader." msgstr "תקשר ×¢× ×§×•×¨× ×”×¡×¤×¨×™× × ×™×•×¡×ž×™" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:47 +msgid "Communicate with the Pico reader." +msgstr "תקשר ×¢× ×”-Pico reader" + +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:57 msgid "Communicate with the iPapyrus reader." msgstr "תקשר ×¢× ×§×•×¨× ×”×¡×¤×¨×™× ×ייפפירוס" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:68 msgid "Communicate with the Sovos reader." msgstr "תקשר ×¢× ×§×•×¨× ×”×¡×¤×¨×™× ×¡×•×‘×•×¡" @@ -1068,6 +1100,7 @@ msgstr "×œ× ×ž×¦×œ×™×— ×œ×ž×¦×•× ×ת כונן %s. נסה ל×תחל ×ת המ #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:438 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" +"×œ× ×ž×¦×œ×™×— ×œ×ž×¦×•× ×ת עיגון החומרה (mount point) ×”-%s. נסה ל×תחל ×ת המחשב." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:503 msgid "Unable to detect the %s disk drive." @@ -1075,7 +1108,7 @@ msgstr "×œ× ×ž×¦×œ×™×— ×œ×ž×¦×•× ×ת כונן %s." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:596 msgid "Could not find mount helper: %s." -msgstr "" +msgstr "×œ× ×”×¦×œ×™×— ×œ×ž×¦×•× ×ת עזר עיגון חומרה (mount helper): %s" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:608 msgid "" @@ -1092,6 +1125,8 @@ msgid "" "The main memory of %s is read only. This usually happens because of file " "system errors." msgstr "" +"הזיכרון של %s הינו לקרי××” בלבד. דבר ×–×” לרוב קורה בגלל שגי×ות במערכת ×”×§×‘×¦×™× " +"(file system)." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:815 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 @@ -1164,7 +1199,7 @@ msgstr "שולח ×ž×˜× ×ª×’×™×•×ª למכשיר" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:182 msgid "Rendered %s" -msgstr "" +msgstr "חובר %s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:185 msgid "Failed %s" @@ -1321,15 +1356,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 msgid "List builtin recipes" -msgstr "" +msgstr "פרט ×ž×ª×›×•× ×™× ×ž×•×‘× ×™×" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:256 msgid "Output saved to" -msgstr "" +msgstr "הפלט נשמר ×ל" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 msgid "Level of verbosity. Specify multiple times for greater verbosity." -msgstr "" +msgstr "רמת פירוט ×ודות המתבצע. בחר מספר ×¤×¢×ž×™× ×œ×¨×ž×ª פירוט גבוהה." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:106 msgid "" @@ -1419,13 +1454,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 msgid "Don't add auto-detected chapters to the Table of Contents." -msgstr "" +msgstr "×ת תוסיף ×¤×¨×§×™× ×©× ×ž×¦×ו ×וטומטית לטבלת תוכן-×”×¢× ×™×™× ×™×." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" msgstr "" +"×× ×ž×¡×¤×¨ ×”×¤×¨×§×™× ×©× ×ž×¦×ו קטן מהמספר הנקוב, ××– ×§×™×©×•×¨×™× (לינקי×) יווצרו בתוכן-" +"×”×¢× ×™×™× ×™×. ברירת מחדל: %default" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:231 msgid "" @@ -1603,15 +1640,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." -msgstr "" +msgstr "קבע ×ת הכותרת." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 msgid "Set the authors. Multiple authors should be separated by ampersands." -msgstr "" +msgstr "קבע ×ת המחברי×. ×× ×™×© כמה, הפרד ×‘×™× ×”× ×‘×¢×–×¨×ª התו ×מפרסנד (&)." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 msgid "The version of the title to be used for sorting. " -msgstr "" +msgstr "גרסת המסמך, לשימוש במיון. " #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 msgid "String to be used when sorting by author. " @@ -1619,64 +1656,64 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:466 msgid "Set the cover to the specified file or URL" -msgstr "" +msgstr "קבע ×ת הכריכה כקובץ המצויין ×ו כתובת ×ינטרנט (URL)" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." -msgstr "" +msgstr "קבע ×ת תי×ור הספר." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." -msgstr "" +msgstr "קבע ×ת ×”×ž×•×¦×™× ×œ×ור." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." -msgstr "" +msgstr "קבע ×ת הסדרה לה הספר שייך." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." -msgstr "" +msgstr "קבע ×ת מספר הספר בסדרה." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." -msgstr "" +msgstr "קבע ×ת דירוג הספר. מספר ×–×” צריך להיות בין 1 ל-5." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." -msgstr "" +msgstr "קבע ×ת המספר הסטנדרטי של הספר (ISBN)." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." -msgstr "" +msgstr "קבע תוייות לספר ×–×”. הפרד תוויות ×¢× ×¤×¡×™×§×™×." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." -msgstr "" +msgstr "קבע ×ת מפיק הספר." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." -msgstr "" +msgstr "קבע ×ת השפה." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:506 msgid "Set the publication date." -msgstr "" +msgstr "קבע ×ת ת×ריך היצי××” ל×ור." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:510 msgid "Set the book timestamp (used by the date column in calibre)." -msgstr "" +msgstr "קבע ×ת זמן הספר (יופיע בעמודת 'ת×ריך' בקליבר)." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:610 msgid "Could not find an ebook inside the archive" -msgstr "" +msgstr "הספר ×œ× × ×ž×¦× ×‘×ª×•×š ×”×רכיון" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:668 msgid "Values of series index and rating must be numbers. Ignoring" @@ -1684,23 +1721,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:675 msgid "Failed to parse date/time" -msgstr "" +msgstr "קרי×ת הת×ריך/זמן נכשלה." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:830 msgid "Converting input to HTML..." -msgstr "" +msgstr "ממיר ×ת הקלט ל-HTML..." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:858 msgid "Running transforms on ebook..." -msgstr "" +msgstr "מריץ ×©×™× ×•×™×™× ×¢×œ הספר..." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:945 msgid "Creating" -msgstr "" +msgstr "מייצר" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/__init__.py:20 msgid "Failed to parse: %s with error: %s" -msgstr "" +msgstr "קרי×ת %s נכשלה ×¢× ×”×©×’×™××”: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/fix/__init__.py:26 msgid "ePub Fixer" @@ -1794,19 +1831,19 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:170 -#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:203 msgid "Start" -msgstr "" +msgstr "התחל" #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:147 #: /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 "תוכן ×”×¢× ×™×™× ×™×:" #: /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 "" +msgstr "×ל ×ª×©×™× ×ת תוכן ×”×¢× ×™×™× ×™× ×‘×ª×—×™×œ×ª הספר." #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:21 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:32 @@ -1814,7 +1851,7 @@ msgstr "" #: /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 "" +msgstr "הוסף ×ת תוכן ×”×¢× ×™×™× ×™× ×‘×ª×—×™×œ×ª הספר." #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:24 msgid "" @@ -1822,12 +1859,16 @@ msgid "" "experimental. It can cause conversion to fail. It can also produce " "unexpected output." msgstr "" +"נסה להפוך ×ת ×”×¤×¨×§×™× ×œ×—×œ×§×™× × ×¤×¨×“×™×. ×זהרה: ×ופציה זו ×”×™× ×” ניסיונית. ×”×™× ×¢×œ×•×œ×” " +"×œ×’×¨×•× ×œ×”×ž×¨×” להיכשל. ×”×™× ×’× ×¢×œ×•×œ×” ×œ×’×¨×•× ×œ×¤×œ×˜ ×œ× ×¦×¤×•×™." #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:249 msgid "" "Traverse links in HTML files breadth first. Normally, they are traversed " "depth first." msgstr "" +"עבור על ×”×§×™×©×•×¨×™× ×‘×§×‘×¦×™ ×”-HTML בצורה רוחבית (breadth first). לרוב המעבר נעשה " +"לעומק כל קישור (depth first)." #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:256 msgid "" @@ -1844,10 +1885,26 @@ msgid "" "pipeline." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 +msgid "CSS file used for the output instead of the default file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:36 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." +"Template used for generation of the html index file instead of the default " +"file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:39 +msgid "" +"Template used for the generation of the html contents of the book instead of " +"the default file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:42 +msgid "" +"Extract the contents of the generated ZIP file to the specified directory. " +"WARNING: The contents of the directory will be deleted." msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 @@ -1881,23 +1938,23 @@ 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 "" +msgstr "עיבוד הקובץ %s כשל" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" -msgstr "" +msgstr "%s ×”×™× ×” תיקייה ריקה" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" -msgstr "" +msgstr "עיבוד הקישור %s %s כשל" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" -msgstr "" +msgstr "הוספת הקישור %s לתוכן ×”×¢× ×™×™× ×™× ×œ× ×”×¦×œ×™×—×”" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" -msgstr "" +msgstr "×œ× ×ž×¦×œ×™×— לעבד ×ת התמונה %s. שגי××”: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" @@ -1908,33 +1965,37 @@ msgid "" "Could not process image: %s\n" "%s" msgstr "" +"עיבוד התמונה ×œ× ×”×¦×œ×™×—: %s\n" +"%s" #: /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 "" +msgstr "שגי××” קרתה בעת עיבוד הטבלה: %s. ×ž×ª×¢×œ× ×ž×”×’×“×¨×ª הטבלה." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" "Bad table:\n" "%s" msgstr "" +"טבלה בלתי תקינה:\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" -msgstr "" +msgstr "לטבלה ×ª× ×’×“×•×œ מדי" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" -msgstr "" +msgstr "קרי×ת תמונת הכריכה ×œ× ×”×¦×œ×™×—×”: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" -msgstr "" +msgstr "×œ× ×™×›×•×œ ×œ×§×¨×•× ×ž: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" -msgstr "" +msgstr "עיבוד קובץ ×”-opf ×œ× ×”×¦×œ×™×—" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 msgid "" @@ -1948,7 +2009,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 msgid "Do not save embedded image and font files to disk" -msgstr "" +msgstr "×ל תשמור קבצי תמונות מקובעות ×•×¤×•× ×˜×™× ×œ×“×™×¡×§ הקשיח." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 msgid "Parsing LRF..." @@ -1956,7 +2017,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 msgid "Creating XML..." -msgstr "" +msgstr "יוצר XML..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 msgid "LRS written to " @@ -1964,7 +2025,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 msgid "Could not read from thumbnail file:" -msgstr "" +msgstr "הקרי××” מקובץ התמונות הממוזערות ×œ× ×”×¦×œ×™×—×”:" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 msgid "" @@ -1977,7 +2038,7 @@ 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:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "" @@ -2138,23 +2199,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:380 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:930 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:923 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:303 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:570 msgid "Title" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:385 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:931 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924 msgid "Author(s)" msgstr "" @@ -2170,37 +2231,36 @@ msgid "Producer" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:609 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:212 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:332 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 msgid "Comments" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1134 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:608 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:613 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:337 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1143 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:108 msgid "Series" msgstr "" @@ -2210,12 +2270,12 @@ msgid "Language" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 msgid "Timestamp" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:151 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:157 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:258 @@ -2320,6 +2380,7 @@ msgid "No cover found" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "" @@ -2365,49 +2426,53 @@ msgstr "" msgid "Downloads metadata from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:57 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:142 msgid "description/reviews" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:130 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:143 msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 +msgid "Convert comments downloaded from %s to plain text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 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:211 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2421,23 +2486,24 @@ msgid "" "\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr "" @@ -2450,8 +2516,24 @@ msgid "" "LibraryThing.com\n" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "" @@ -2486,74 +2568,74 @@ msgstr "" msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "" @@ -2561,7 +2643,7 @@ msgstr "" msgid "%s format books are not supported" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "" @@ -2570,9 +2652,9 @@ msgstr "" msgid "HTML TOC generation options." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:153 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:606 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "" @@ -2602,7 +2684,7 @@ msgstr "" msgid "Sidebar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2610,7 +2692,7 @@ msgid "" "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/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -2857,20 +2939,20 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 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/snb/output.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:25 #: /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/snb/output.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:29 #: /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 " @@ -2879,17 +2961,34 @@ msgid "" "minimum of 25 characters. Use 0 to disable line splitting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:36 +msgid "" +"Specify whether or not to insert an empty line between two paragraphs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:40 +msgid "" +"Specify whether or not to insert two space characters to indent the first " +"line of each paragraph." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:44 +msgid "" +"Specify whether or not to hide the chapter title for each chapter. Useful " +"for image-only output (eg. comics)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:122 msgid "Start Page" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:132 #: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:134 -#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:136 msgid "Cover Pages" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:149 -#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:152 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:147 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:150 msgid " (Preface)" msgstr "" @@ -3046,7 +3145,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "" @@ -3106,101 +3205,101 @@ msgstr "" msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "" @@ -3213,7 +3312,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "" @@ -3308,7 +3407,7 @@ msgid "Checking database integrity" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3324,15 +3423,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers 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/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:139 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "" @@ -3468,7 +3567,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:734 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "" @@ -3500,6 +3599,10 @@ msgstr "" msgid "Starting conversion of %d book(s)" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "" @@ -3534,9 +3637,9 @@ msgid "Could not copy books: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:708 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:679 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "" @@ -3597,14 +3700,14 @@ msgid "Main memory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "" @@ -3745,7 +3848,7 @@ msgid "covers" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "" @@ -3767,26 +3870,26 @@ msgstr "" msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:197 msgid "" "Book formats and metadata from the selected books will be added to the " -"<b>first selected book.</b> ISBN will <i>not</i> be merged.<br><br> The " +"<b>first selected book</b> (%s). ISBN will <i>not</i> be merged.<br><br> The " "second and subsequently selected books will not be deleted or " "changed.<br><br>Please confirm you want to proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 msgid "" "Book formats and metadata from the selected books will be merged into the " -"<b>first selected book</b>. ISBN will <i>not</i> be merged.<br><br>After " -"merger the second and subsequently selected books will be <b>deleted</b>. " -"<br><br>All book formats of the first selected book will be kept and any " -"duplicate formats in the second and subsequently selected books will be " -"permanently <b>deleted</b> from your computer.<br><br> Are you <b>sure</b> " -"you want to proceed?" +"<b>first selected book</b> (%s). ISBN will <i>not</i> be " +"merged.<br><br>After merger the second and subsequently selected books will " +"be <b>deleted</b>. <br><br>All book formats of the first selected book will " +"be kept and any duplicate formats in the second and subsequently selected " +"books will be permanently <b>deleted</b> from your computer.<br><br> Are " +"you <b>sure</b> you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 msgid "" "You are about to merge more than 5 books. Are you <b>sure</b> you want to " "proceed?" @@ -3833,6 +3936,7 @@ msgid "Ctrl+P" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "" @@ -3918,7 +4022,7 @@ msgid "Click the show details button to see which ones." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:613 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "" @@ -4005,21 +4109,21 @@ msgstr "" msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:158 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 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 " @@ -4027,11 +4131,11 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:118 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:159 msgid "%s has no available formats." msgstr "" @@ -4056,7 +4160,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "" @@ -4241,49 +4345,49 @@ msgid "" "&Multiple books per folder, assumes every ebook file is a different book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:327 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1124 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 msgid "Path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:326 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 msgid "Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:934 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:927 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120 msgid "Collections" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:60 msgid "Click to open" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1133 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1137 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1130 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 @@ -4291,8 +4395,8 @@ msgstr "" msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:312 -msgid "Click to open Book Details window" +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 +msgid "Double-click to open Book Details window" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 @@ -4336,7 +4440,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4353,7 +4457,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:43 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:33 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 @@ -4379,7 +4483,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "" @@ -4459,23 +4563,23 @@ msgstr "" msgid "E-book options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -4484,26 +4588,43 @@ msgid "" "Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 " @@ -4511,11 +4632,11 @@ msgid "" "specified in the Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "" @@ -4962,7 +5083,7 @@ msgid "Change the title of this book" 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:333 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "" @@ -4978,7 +5099,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "" @@ -4989,7 +5110,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -4997,15 +5118,16 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5184,7 +5306,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5202,6 +5324,18 @@ msgstr "" msgid "SNB Output" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:40 +msgid "Hide chapter name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:41 +msgid "Insert space before the first line for each paragraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 +msgid "Insert empty line between paragraphs" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -5359,8 +5493,8 @@ msgid "Force maximum line length" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -5495,7 +5629,7 @@ msgid "Automatically number books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "" @@ -5511,228 +5645,171 @@ msgstr "" msgid "tags to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +msgid "Send specific format to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 -msgid "Send specific format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:667 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:715 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 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/device.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:760 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:858 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:863 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:877 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:922 -msgid "E-book:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 -msgid "Attached, you will find the e-book" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -msgid "in the %s format." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:940 -msgid "Sending email to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:970 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1071 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1275 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1283 -msgid "No suitable formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 -msgid "Auto convert the following books before sending via email?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 -msgid "Failed to email books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:998 -msgid "Failed to email the following books:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1002 -msgid "Sent by email:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1030 -msgid "News:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1031 -msgid "Attached is the" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "Sent news to" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1072 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1157 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1276 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1102 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1284 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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:1348 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1349 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -5775,23 +5852,26 @@ msgstr "" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "" @@ -5841,21 +5921,32 @@ msgstr "" msgid "Names to ignore:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:59 +msgid "" +"Enter comma-separated standard file name wildcards, such as synctoy*.dat" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 msgid "Extensions to ignore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:67 +msgid "" +"Enter comma-separated extensions without a leading dot. Used only in book " +"folders" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 msgid "Path from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:136 msgid "" "The marked files and folders will be <b>permanently deleted</b>. Are you " "sure?" @@ -5902,7 +5993,7 @@ msgid "No location selected" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "" @@ -5943,6 +6034,7 @@ msgid "Set options for converting %s" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "" @@ -5978,15 +6070,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:932 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:294 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:568 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Date" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1123 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1116 msgid "Format" msgstr "" @@ -5999,12 +6091,12 @@ msgid "Author sort" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "" @@ -6147,59 +6239,58 @@ msgstr "" msgid "Working" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6209,7 +6300,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6224,110 +6315,110 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:665 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 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:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -6335,110 +6426,110 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -6446,49 +6537,49 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 -msgid "&Search and replace (experimental)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -6571,72 +6662,74 @@ msgid "This ISBN number is invalid" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 -msgid "Cannot use tag editor" +msgid "Tags changed" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 -msgid "The tags editor cannot be used if you have modified the tags" +msgid "" +"You have changed the tags. In order to use the tags editor, you must either " +"discard or apply these changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:639 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:644 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:649 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:655 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:651 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:667 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:656 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:652 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:663 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:668 msgid "<b>Could not fetch cover.</b><br/>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:653 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:657 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:662 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:669 msgid "" "For the error message from each cover source, click Show details below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:670 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:677 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:710 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:711 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:742 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:736 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:743 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:823 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:833 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:834 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -6755,20 +6848,21 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "" @@ -6996,61 +7090,98 @@ msgstr "" msgid "Negate" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "" @@ -7178,12 +7309,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -7264,7 +7395,7 @@ msgid "Discard changes" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "" @@ -7453,6 +7584,60 @@ msgstr "" msgid "Recipe source code (python)" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -7628,23 +7813,23 @@ msgstr "" msgid "Job has already run" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr "" @@ -7670,7 +7855,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "" @@ -7679,7 +7864,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "" @@ -7691,38 +7876,46 @@ msgstr "" msgid "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:159 msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:171 -msgid "Advanced search" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 -msgid "&Search:" +msgid "Advanced search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 +msgid "&Go!" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 +msgid "Do Quick Search (you can also press the Enter key)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "" @@ -7744,79 +7937,82 @@ msgstr "" msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1143 -msgid "Book <font face=\"serif\">%s</font> of %s." +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 +msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:700 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:706 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1238 msgid "This book's UUID is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:929 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 msgid "In Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 msgid "Size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1223 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 +msgid "Book <font face=\"serif\">%s</font> of %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 msgid "Marked for deletion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1226 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1219 msgid "Double click to <b>edit</b> me<br><br>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -7847,7 +8043,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> 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:442 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "" @@ -7864,12 +8060,12 @@ msgid "LRF Viewer toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "" @@ -7913,7 +8109,7 @@ msgid "Do not check for updates" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "" @@ -8040,37 +8236,37 @@ msgstr "" msgid "No matches found for this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "" @@ -8566,39 +8762,39 @@ msgstr "" msgid "&Split the toolbar into two toolbars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "" @@ -8904,7 +9100,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "" @@ -9098,24 +9294,25 @@ msgid "&Current tweaks" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:322 msgid "The selected search will be <b>permanently deleted</b>. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:364 msgid "Search (For Advanced Search click the button to the left)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:406 msgid "Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:414 msgid "Choose saved search or enter name for new saved search" msgstr "" @@ -9196,26 +9393,22 @@ msgstr "" msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -9230,63 +9423,67 @@ msgstr "" msgid "Manage User Categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:889 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "" @@ -9329,64 +9526,64 @@ msgid "" "reconvert them?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -9558,96 +9755,96 @@ msgstr "" msgid "No results found for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 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:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "" @@ -9715,85 +9912,85 @@ msgstr "" msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:697 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 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:700 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -9908,59 +10105,59 @@ msgstr "" msgid "Toggle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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:382 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 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:384 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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:461 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "" @@ -10032,8 +10229,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 @@ -10047,121 +10244,158 @@ msgid "" "will switch to using it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 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:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>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:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 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:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 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:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 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:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "" @@ -10224,7 +10458,7 @@ msgstr "" msgid "empty" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10233,7 +10467,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10241,7 +10475,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10250,7 +10484,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10258,7 +10492,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -10266,7 +10500,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -10275,7 +10509,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -10283,7 +10517,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -10291,7 +10525,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -10299,14 +10533,14 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 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:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -10315,14 +10549,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -10331,35 +10565,35 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 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:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -10368,7 +10602,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -10378,13 +10612,20 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 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:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "" @@ -10696,7 +10937,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:665 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:505 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:499 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -10926,35 +11167,35 @@ msgid "" "start with a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "" @@ -11138,124 +11379,139 @@ msgid "" "disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:131 -msgid "Password to access your calibre library. Username is " +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:48 +msgid "" +"Prefix to prepend to all URLs. Useful for reverseproxying to this server " +"from Apache/nginx/etc." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:399 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" -msgstr "" +msgstr "טוען, × × ×œ×”×ž×ª×™×Ÿ" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "לך ל..." + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" -msgstr "" +msgstr "ר×שון" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" -msgstr "" +msgstr "×חרון" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" -msgstr "" +msgstr "הקוד×" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" -msgstr "" +msgstr "הב×" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:224 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:132 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:244 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:307 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:505 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:568 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 +msgid "library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 +msgid "home" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:308 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:506 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:340 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:345 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:418 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:419 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:535 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:538 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:588 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:595 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:600 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:615 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:626 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:707 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:709 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:28 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:39 msgid "" "[options]\n" "\n" @@ -11268,20 +11524,26 @@ msgid "" "The OPDS interface is advertised via BonJour automatically.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:41 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:52 msgid "Path to the library folder to serve with the content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:43 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:54 msgid "Write process PID to the specified file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:47 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:58 msgid "" "Specifies a restriction to be used for this invocation. This option " "overrides any per-library settings specified in the GUI" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:62 +msgid "" +"Auto reload server when source code changes. May not work in all " +"environments." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d book" msgstr "" @@ -11402,27 +11664,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." -msgstr "" +msgstr "מחכה..." #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:52 msgid "Stopped" -msgstr "" +msgstr "נעצר" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Finished" -msgstr "" +msgstr "סיי×" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:76 msgid "Working..." -msgstr "" +msgstr "עובד..." #: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 msgid "Brazilian Portuguese" -msgstr "" +msgstr "פורטוגזית ברזיל×ית" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "English (UK)" -msgstr "" +msgstr "×נגלית (הממלכה המ×וחדת)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 msgid "Simplified Chinese" @@ -11430,7 +11692,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 msgid "Chinese (HK)" -msgstr "" +msgstr "סינית (הונג-קונג)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 msgid "Traditional Chinese" @@ -11438,23 +11700,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 msgid "English" -msgstr "" +msgstr "×נגלית" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 msgid "English (Australia)" -msgstr "" +msgstr "×נגלית (×וסטרליה)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 msgid "English (New Zealand)" -msgstr "" +msgstr "×נגלית (ניו-זילנד)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 msgid "English (Canada)" -msgstr "" +msgstr "×נגלית (קנדה)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 msgid "English (India)" -msgstr "" +msgstr "×נגלית (הודו)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 msgid "English (Thailand)" @@ -11470,7 +11732,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "English (Israel)" -msgstr "" +msgstr "×נגלית (ישר×ל)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 msgid "English (Singapore)" @@ -11562,7 +11824,7 @@ msgstr "" msgid "Failed to authenticate with server: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "" @@ -11604,95 +11866,95 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:47 msgid "Unknown News Source" -msgstr "" +msgstr "מקור חדשות בלתי ידוע" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:615 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:628 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:714 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:727 msgid "Download finished" -msgstr "" +msgstr "ההורדה הסתיימה" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:716 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:729 msgid "Failed to download the following articles:" -msgstr "" +msgstr "הורדת הכתבות הב×ות כשלה:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:722 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:735 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:724 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:737 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:726 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:834 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:836 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:855 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:841 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:860 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:850 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:869 msgid "Trying to download cover..." -msgstr "" +msgstr "מנסה להוריד עמוד שער/כריכה..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:852 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:871 msgid "Generating masthead..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:933 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:952 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:949 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:968 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:958 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:977 msgid "Could not download cover: %s" -msgstr "" +msgstr "×œ× ×”×¦×œ×™×— להוריד כריכה: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:965 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:986 msgid "Downloading cover from %s" -msgstr "" +msgstr "מוריד כריכה מ-%s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1010 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1032 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1178 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1200 msgid "Untitled Article" -msgstr "" +msgstr "כתבה ×œ×œ× ×©×" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1249 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Article downloaded: %s" -msgstr "" +msgstr "כתבה הורדה: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1260 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1282 msgid "Article download failed: %s" -msgstr "" +msgstr "הורדת הכתבה כשלה: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1277 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1299 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1424 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1446 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1439 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1461 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." @@ -11702,7 +11964,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 msgid "You" -msgstr "" +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 @@ -11715,30 +11977,30 @@ msgstr "" msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 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:491 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 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:494 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 msgid "" "The maximum number of files to download. This only applies to files from <a " "href> tags. Default is %default" @@ -11746,27 +12008,27 @@ msgstr "" "×ž×§×¡×™×ž×•× ×§×‘×¦×™× ×œ×”×•×¨×“×”. רק לגבי ×§×‘×¦×™× ×ž×ª×’×™×•×ª <a href>. ברירת המחדל ×”×™× " "%default ." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:490 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "פרק הזמן בין הורדות. ברירת המחדל ×”×™× %default שניות." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:492 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:500 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 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:502 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 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 " @@ -11775,13 +12037,16 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:504 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 msgid "Do not download CSS stylesheets." msgstr "×œ× ×œ×”×•×¨×™×“ דפי-סגנון CSS" #~ msgid "Path to a txt file containing a comment." #~ msgstr "נתיב לקובץ TXT המכיל הערה." +#~ msgid " " +#~ msgstr " " + #~ msgid "Communicate with the Sony PRS-300/505/500 eBook reader." #~ msgstr "מתקשר ×¢× Sony PRS-300/505/500 eBook reader." diff --git a/src/calibre/translations/it.po b/src/calibre/translations/it.po index 4ca54fc6ac..390c3459cc 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-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-11 10:09+0000\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-28 19:45+0000\n" "Last-Translator: MeltingShell <Unknown>\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-11-12 04:44+0000\n" +"X-Launchpad-Export-Date: 2010-11-29 04:48+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" @@ -30,11 +30,11 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -43,8 +43,8 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -58,7 +58,7 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -77,14 +77,14 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -92,7 +92,7 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -112,10 +112,10 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -124,15 +124,15 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -140,14 +140,14 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -188,14 +188,14 @@ msgstr "Azioni interfaccia utente" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Preferenze" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -205,7 +205,7 @@ msgstr "" "tutti i file collegati. Questo plug-in viene eseguito ogni volta che si " "aggiunge un file HTML alla biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -213,7 +213,7 @@ msgstr "" "Codifica dei caratteri nei file HTML in ingresso. Scelte comuni includono: " "cp1252, latin1, iso-8859-1 e utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -223,7 +223,7 @@ msgstr "" "nella cartella pmlname_img o in images. Questo plug-in eseguito ogni volta " "che si aggiunge un documento PML alla biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Estrae le copertine dai file dei fumetti" @@ -270,45 +270,45 @@ msgstr "Imposta i metadati nei file %s" msgid "Set metadata from %s files" msgstr "imposta metadati da %s file" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Aspetto" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interfaccia" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" "Modifica l'aspetto dell'interfaccia di calibre secondo i propri gusti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Comportamento" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Cambia il comportamento di calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Aggiungi colonne personalizzate" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "" "Aggiunge/Rimuove colonne personalizzate dalla lista dei libri di calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Personalizza la barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -316,59 +316,59 @@ msgstr "" "Personalizza la barra degli strumenti e i menu contestuali, cambiando le " "azioni disponibili in ognuno" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" -msgstr "Opzioni di digitazione" +msgstr "Opzioni di input" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Conversione" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "" "Imposta le opzioni di conversione specifiche per ogni formato di input" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Opzioni comuni" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Imposta le opzioni di conversione comuni a tutti i formati" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Opzioni di output" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "" "Imposta le opzioni di conversione specifiche per ogni formato di output" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Aggiunta libri" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Importa/Esporta" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Controlla come calibre legge i metadati dai libri quando vengono aggiunti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Salvataggio libri su disco" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -376,32 +376,32 @@ msgstr "" "Controlla come calibre esporta i file dal suo database al disco quando si " "usa «Salva su disco»" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Invio libri ai dispositivi" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Controlla come calibre trasferisce i file al lettore di ebook" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Cambiare i campi dei metadati prima di salvare/inviare" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Condivisione libri via email" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Condivisione" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -409,11 +409,11 @@ msgstr "" "Imposta la condivisione dei libri via email. Può essere usato per inviare " "automaticamente le news scaricate ai dispositivi." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Condividi sulla rete" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -421,34 +421,34 @@ msgstr "" "Imposta il Server di Contenuti calibre che da accesso alla biblioteca di " "calibre da ogni luogo, su ogni dispositivo, su internet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Plugins" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Avanzate" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "" "Aggiungi/rimuovi/personalizza varie opzioni delle funzionalità di calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Ottimizzazioni" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "Modifica in dettaglio come si comporta calibre in vari contesti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Varie" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Configurazione avanzata varia" @@ -493,7 +493,7 @@ msgstr "" "sa nulla sul documento di origine." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -505,62 +505,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Questo profilo è adatto per il Sony PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Questo profilo è adatto per il Sony PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Questo profilo è adatto per il Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Questo profilo è adatto per i libri in formato Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Questo profilo è adatto per l'Hanlin V3 ed i suoi cloni." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Questo profilo è adatto per Hanlin V5 e i suoi cloni." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Questo profilo è adatto per il Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Questo profilo è adatto per il Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Questo profilo è adatto per il Kindle di Amazon." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Questo profilo è adatto per l'Irex di Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Questo profilo è adatto per l'IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Questo profilo adatto per l'IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Questo profilo è adatto per il Nook B&N." @@ -578,31 +578,31 @@ msgstr "" "produrre un documento da poter leggere tramite computer o su vari " "dispositivi." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Questo profilo è adatto per l'iPad e dispositivi simili con una risoluzione " "di 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" "Pensato per dispositivi tablet generici, non ridimensiona le immagini" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Questo profilo è adatto per il Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Questo profilo è adatto per il Sony PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Questo profilo è adatto per il JetBook da 5 pollici." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -610,11 +610,15 @@ msgstr "" "Questo profilo è adatto per la linea SONY PRS. Il 500/505/700 ecc, in " "modalità panoramica. Utile principalmente per i fumetti." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Questo profilo è adatto per il Kindle DX di Amazon." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Questo profilo è pensato per il B&N Nook Color." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Questo profilo è riservato a Sanda Bambook." @@ -692,7 +696,7 @@ msgstr "Disabilita il plugin nominato" msgid "Communicate with Android phones." msgstr "Comunica con i telefoni Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -700,7 +704,7 @@ msgstr "" "Lista delle cartelle separate da virgole dei libri da inviare al " "dispositivo. Verrà usata la prima cartella esistente." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Comunica con i telefoni S60." @@ -778,18 +782,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Notizie" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Catalogo" @@ -815,6 +819,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Comunica con il lettore Cybook Gen 3 / Opus." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Comunica con il lettore Cybook Orizon." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Comunica con il lettore EB600." @@ -827,6 +835,10 @@ msgstr "Comunica con l'Astak Mentor EB600." msgid "Communicate with the PocketBook 301 reader." msgstr "Comunica con il lettore PocketBook 301." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -887,8 +899,8 @@ msgstr "Comunica con il lettore SpringDesign Alex." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -977,26 +989,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Recupero della lista dei libri sul dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Cancellazione libri dalla lista metadati del dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Aggiunta dei libri alla lista metadati del dispositivo..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Non Implementato" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1038,6 +1050,10 @@ msgstr "Comunica con il VelocityMicro" msgid "Communicate with the GM2000" msgstr "Comunica con il GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Comunica con l'internet tablet Nokia 770." @@ -1058,6 +1074,14 @@ msgstr "Il lettore Nook" msgid "Communicate with the Nook eBook reader." msgstr "Comunica con il lettore Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Comunica con il lettore Nook Color" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Comunica con il lettore Nuut2." @@ -2121,16 +2145,6 @@ msgstr "" "solamente se si è sicuri di quello che si sta facendo poiché potrebbe " "causare effetti collaterali nella sequenza di conversione." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Valore medio della lunghezza di linea per interrompere righe quando il " -"codice HTML è generato da una precedente conversione parziale da un " -"documento PDF. %default è il valore predefinito per disabilitare questa " -"funzione." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "File CSS usato per l'output invece del file predefinito" @@ -2296,7 +2310,7 @@ msgid "Path to output file" msgstr "Percorso del file in uscita" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Elaborazione dettagliata" @@ -2533,7 +2547,7 @@ msgstr "Commenti" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Tag" @@ -2684,6 +2698,7 @@ msgid "No cover found" msgstr "Nessuna copertina trovata" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Scarica cover" @@ -2751,19 +2766,19 @@ msgstr "Descrizione/Rassegne" msgid "Download %s from %s" msgstr "Scarica %s da %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Converti i commenti scaricati da %s in testo semplice." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Scarica i metadati da Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Scarica i metadati da isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2771,15 +2786,15 @@ msgstr "" "Per utilizzare isbndb.com è necessario registrarsi per un %saccount " "gratuito%s ed inserire qui sotto il codice di accesso ottenuto." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Scaricare i metadati sociali da amazon.com." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Scarica informazioni su serie/tag/valutazione da librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2804,23 +2819,24 @@ msgstr "" "gratuitamente su isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "Il codice ISBN del libro di cui si vogliono i metadati." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "L'autore del libro da cercare" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "Il titolo del libro da cercare" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "L'editore del libro da cercare" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " non trovato" @@ -2838,8 +2854,24 @@ msgstr "" "Recupera un'immagine di copertina/metadato sociale per il libro identificato " "con da ISBN da LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Scarica metadati dai Nicebooks francesi" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "Nicebooks scaduti. Riprovare più tardi." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "Si è verificato un errore con il fetcher di copertine Nicebooks" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Copertina" @@ -2881,70 +2913,70 @@ msgstr "Tutti gli articoli" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Questo è un libro Amazon Topaz. Non può essere elaborato." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Pagina iniziale" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Indice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Indice analitico" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glossario" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Ringraziamenti" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Colophon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Diritti d'autore" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dedica" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigrafe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Premessa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Indice delle figure" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Indice delle tabelle" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Note" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Prefazione" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Corpo del testo" @@ -2952,7 +2984,7 @@ msgstr "Corpo del testo" msgid "%s format books are not supported" msgstr "I libri nel formato %s non sono supportati" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Libro %s di %s" @@ -2963,7 +2995,7 @@ msgstr "Opzioni per creazione della TOC (indice contenuti) da HTML" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Valutazione" @@ -2997,7 +3029,7 @@ msgstr "Note" msgid "Sidebar" msgstr "Menu a lato" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -3008,7 +3040,7 @@ msgstr "" "paragrafi. Con questa opzione si assumerà che ogni linea rappresenti un " "paragrafo." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3334,7 +3366,7 @@ msgstr "" "Specifica la codifica dei caratteri nel documento di output. Il valore " "predefinito è CP1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3580,7 +3612,7 @@ msgid "Disable UI animations" msgstr "Disattiva animazioni interfaccia" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Copiato" @@ -3592,7 +3624,7 @@ msgstr "Copia" msgid "Copy to Clipboard" msgstr "Copia negli appunti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Seleziona documenti" @@ -3645,88 +3677,88 @@ msgstr "Quanti libri vuoti?" msgid "How many empty books should be added?" msgstr "quanti libri vuoti si desidera aggiungere?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Invio dei libri al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Libri" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "Libri EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "Libri LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "Libri HTML" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "Libri LIT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "Libri MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Libri Topaz" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Libri TXT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "Libri PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "Libri SNB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Fumetti" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Archivi" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Libri supportati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Uniti alcuni libri" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "Alcune copie sono state trovate e unite con i seguenti libri:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Impossibile leggere i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Impossibile leggere i metadati dai seguenti" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Aggiungi alla biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3734,14 +3766,14 @@ msgstr "Aggiungi alla biblioteca" msgid "No book selected" msgstr "Nessun libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "I seguenti libri sono virtuali e non possono essere aggiunti alla biblioteca " "calibre:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Nessun libro trovato" @@ -3754,7 +3786,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Aggiungi libri alla biblioteca calibre dal dispositivo connesso" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Preleva annotazioni (sperimentale)" @@ -3851,7 +3883,7 @@ msgid "Checking database integrity" msgstr "Controllo d'integrità del database" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3867,19 +3899,15 @@ msgstr "Sono stati trovati problemi di consistenza" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"I libri indicati hanno formati elencati nel database che non sono " -"disponibili. I riferimenti a tali formati sono stati rimossi. È consigliato " -"controllarli manualmente. Questo problema può sorgere se i documenti nella " -"cartella della biblioteca vengono modificati direttamente." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d libri" @@ -4026,7 +4054,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Non permesso" @@ -4059,6 +4087,11 @@ msgstr "Impossibile convertire" msgid "Starting conversion of %d book(s)" msgstr "Conversione di %d libri avviata" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" +"File di output vuoto, probabilmente il processo di conversione è fallito" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Copia nella biblioteca." @@ -4093,9 +4126,9 @@ msgid "Could not copy books: " msgstr "Impossibile copiare i libri: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Fallito" @@ -4156,14 +4189,14 @@ msgid "Main memory" msgstr "Memoria principale" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Scheda di memoria A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Scheda di memoria B" @@ -4308,7 +4341,7 @@ msgid "covers" msgstr "copertine" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadati" @@ -4337,6 +4370,10 @@ msgid "" "second and subsequently selected books will not be deleted or " "changed.<br><br>Please confirm you want to proceed." msgstr "" +"I diversi formati del libro e i metadata dei libri selezionati saranno " +"aggiunti al <b>primo libro selezionato</b> (%s). Il codice ISBN <i>non</i> " +"sarà modificato.<br><br> I libri successivi non saranno cancellati o " +"modificati.<br><br>Conferma per procedere." #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 msgid "" @@ -4396,6 +4433,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Avvia l'assistente di configurazione iniziale" @@ -4484,7 +4522,7 @@ msgid "Click the show details button to see which ones." msgstr "Fare clic sul pulsante dettagli per vedere quali." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Visualizza i dettagli del libro" @@ -4626,7 +4664,7 @@ msgid "The specified directory could not be processed." msgstr "Impossibile elaborare la cartella indicata." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Nessun libro." @@ -4924,7 +4962,7 @@ msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4967,7 +5005,7 @@ msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Formato" @@ -5054,23 +5092,23 @@ msgstr "Opzioni CSV/XML" msgid "E-book options" msgstr "Opzioni per il libro elettronico" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "Tag per 'Non usare questo libro':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "Tag per 'Marca questo libro come letto':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Tag per note aggiuntive:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "Espressione regolare per definire i tag da escludere come generi:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5084,22 +5122,26 @@ msgstr "" "- Un modello con un punto singolo esclude tutti i tag di genere, generando " "una sezione senza genere" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Includi la sezione 'Titolo'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Includi Sezione 'Ultimi Aggiunti'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Ordina i numeri come testo" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "Includi sezione 'Serie'" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Tag della lista dei desideri:" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Esempio paginazione per il catalog.ui" @@ -5110,7 +5152,7 @@ msgstr "Grassetto" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 msgid "Italic" -msgstr "" +msgstr "Corsivo" #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 @@ -5127,11 +5169,11 @@ msgstr "" "salvati in una conversione precedente (se esistente) invece di usare i " "valori predefiniti nelle Preferenze" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Conversione in gruppo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opzioni specifiche per i formati di output" @@ -5606,7 +5648,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:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Autori: " @@ -5624,7 +5666,7 @@ msgstr "" "una virgola" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Editore: " @@ -5635,7 +5677,7 @@ msgid "Ta&gs: " msgstr "T&ag: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5646,7 +5688,7 @@ msgstr "" "virgole." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5654,8 +5696,8 @@ msgstr "&Serie:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -6176,7 +6218,7 @@ msgid "Automatically number books" msgstr "Numera i libri automaticamente" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Forza i numeri ad iniziare con " @@ -6192,97 +6234,103 @@ msgstr "tag da aggiungere" msgid "tags to remove" msgstr "tag da eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Nessun dettaglio disponibile." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "Dispositivo non più collegato." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Recupera informazioni sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Recupera la lista dei libri del dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Ricevi annotazioni dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Invia metadati al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Invia collezioni al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Invia %d libri al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Cancella i libri dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Scarica libri dal dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Visualizza libro sul dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Imposta azione predefinita di invio" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Invia alla memoria principale" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Invia alla scheda di memoria A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Invia alla scheda di memoria B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Memoria principale" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Invia formato specifico a" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Invia ed elimina dalla biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Espelli dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Errore di comunicazione col dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Nessun formato adatto" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Selezionare la cartella da aprire come dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Errore di comunicazione col dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6290,127 +6338,60 @@ msgstr "" "Si è verificato un errore di comunicazione temporaneo col dispositivo. " "Disconnettere e riconnettere il dispositivo e/o riavviare." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Dispositivo: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " individuato." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "Selezione per l'invio" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Selezionare il formato da inviare al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Nessun dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Impossibile inviare: nessun dispositivo connesso" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Nessuna scheda" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Impossibile inviare: il dispositivo non ha schede di memoria" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "Libro elettronico" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "Troverete allegato il libro elettronico" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "di" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "nel formato %s" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Spedizione di un messaggio elettronico a" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Nessun formato adatto" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"Convertire automaticamente i libri selezionati prima di inviare con posta " -"eletrronica?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"Impossibile inviare i libri seguenti via email poiché non sono stati trovati " -"formati adatti:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Impossibile inviare via email i libri" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Impossibile inviare via email i seguenti libri:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Inviato per posta elettronica" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Notizie:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Allegato c'é" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Notizie inviate a" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Convertire automaticamente i libri seguenti prima di inviarli al dispositivo?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Inviando i cataloghi al dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Invio delle notizie al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Invio dei libri al dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6419,11 +6400,11 @@ msgstr "" "trovato un formato adeguato. È prima necessario convertire i libri in un " "formato supportato dal dispositivo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Spazio sul dispositivo insufficiente" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6469,15 +6450,14 @@ msgstr "Aggiungi libri da ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Inserire una lista di ISBN nell'area sulla sinistra, uno per linea. " -"calibre creerà automaticamente gli elementi per i libri basandosi sull'ISBN " -"scaricando i metadati e le copertine.<p>Tutti gli ISBN non validi verranno " -"ignorati." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Incolla dagli appunti" @@ -6545,6 +6525,8 @@ msgstr "Nomi da ignorare" msgid "" "Enter comma-separated standard file name wildcards, such as synctoy*.dat" msgstr "" +"Inserire una lista di nomi di file standard con wildcard, ad esempio " +"synctoy*.dat" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 msgid "Extensions to ignore" @@ -6555,6 +6537,8 @@ msgid "" "Enter comma-separated extensions without a leading dot. Used only in book " "folders" msgstr "" +"Inserire una lista separata da virgole delle estensioni senza il punto. " +"Usate solo nelle cartelle dei libri" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 msgid "Path from library" @@ -6562,7 +6546,7 @@ msgstr "Percorso della blblioteca" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Nome" @@ -6615,7 +6599,7 @@ msgid "No location selected" msgstr "Nessuna posizione selezionata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Posizione non valida" @@ -6716,12 +6700,12 @@ msgid "Author sort" msgstr "Ordinamento per autore" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Nome dell'autore non valido" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "I nomi degli autori non possono contenere caratteri &." @@ -6879,58 +6863,63 @@ msgstr "Cerca/Sostituisci" msgid "Working" msgstr "In esecuzione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Minuscole" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Maiuscole" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Caratteri per titolo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Corrispondenza carattere" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Espressione regolare" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Sostituisci campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Anteponi al campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Appendi al campo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Modifica metadati per <b>%d libri</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Libro %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " "your library before proceeding.<p>Search and replace in text fields using " "character matching or regular expressions. " msgstr "" +"<b>È possibile distruggere la biblioteca con questa funzionalità.</b> Le " +"modifiche sono permanenti, non è possible tornare indietro. È fortemente " +"consigliato di fare una copia della propria biblioteca prima di " +"procedere.<p>Cerca e sostituisce nei campi di testo usando la corrispondenza " +"dei caratteri o le espressioni regolari. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6940,7 +6929,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6955,30 +6944,31 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "" +"È necessario specificare una destinazione se la sorgente è un campo complesso" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Cerca/sostituisci non validi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "Gli autori non possono essere lasciati vuoti. Libro %s non elaborato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "Il titolo non può essere lasciato vuoto. Libro %s non elaborato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Il modello di ricerca non è valido: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6986,19 +6976,19 @@ msgstr "" "Appica modifiche a %d libri.\n" "Fase{0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Modifica metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 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:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "Author s&ort: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -7007,63 +6997,63 @@ msgstr "" "esempio, Alessandro Manzoni deve essere classificato come Manzoni, " "Alessandro." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Valutazione:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Valutazione di questo libro. 0-5 stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Nessuna modifica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Aggiungi ta&gs: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Apri l'editor dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Rimuovi tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 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:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Selezionare questa casella per eliminare tutti i tag dai libri." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Rimuovi tutti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Se selezionati, le serie verranno ripulite" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Ripulisci serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7071,37 +7061,42 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Numera automaticamente i libri in questa serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" +"Le serie saranno normalmente renumerate partendo dal numero più alto del " +"database\n" +"per quella serie. Selezionando questa casella permetterai a calibre di " +"iniziare la numerazione\n" +"partendo dal valore presente nel box." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Cancella for&mato:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Scambia titolo e autore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Cambia il titolo al formato titolo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7112,63 +7107,70 @@ msgstr "" "Per le prossime conversioni di questi libri verranno usate le impostazioni " "predefinite." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "Elimina le impostazioni di &conversione per i libri selezionati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "Metadati &principali" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "Metadati &aggiuntivi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "&Campo di ricerca:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "Il nome del campo per il quale vuoi effettuare la ricerca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Modalità ricerca:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" +"Scegli se utilizzare una corrispondenza di testo semplice o una " +"corrispondenza di testo avanzata." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Cerca:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" +"Inserire quello che si sta cercando, testo semplice o un espressione " +"regolare, dipende dalla modalità" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" +"Seleziona questa casella se la stringa di ricerca deve far corrispondere " +"esattamente i caratteri maiuscoli e minuscoli. De-seleziona per ignorare la " +"corrispondenza." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Maiuscole/minuscole" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "&Sostituisci con:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -7176,11 +7178,11 @@ msgstr "" "Il testo da sostituire. Il testo corrispondente dalla ricerca verrà " "sostituito con questa stringa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Applica funzione dopo sostituzione:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7188,50 +7190,50 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "Campo &destinazione:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Modalità:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Specifica come il testo deve essere copiato nella destinazione." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "usa la virgola" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "&Testo di prova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "&Risultato della prova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Il test:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" -msgstr "" +msgstr "&Cerca e sostituisce" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 msgid "Last modified: %s" @@ -7521,20 +7523,21 @@ msgstr "Password necessaria" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&Nome utente:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Password:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Mostra password" @@ -7778,48 +7781,45 @@ msgid "Advanced Search" msgstr "Ricerca avanzata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "Trova elementi che hanno..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "&Tutte queste parole:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "&Questa frase esatta:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "&Una o più di queste parole:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "Ma non visualizzare elementi che hanno..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "Una di queste parole non richie&ste:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "Tipo di corrispondenza da usare:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Trova elementi che hanno..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Tutte queste parole:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "&Questa frase esatta:" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "Contiene: la parola o frase corrispondenti ovunque nei metadati" +msgid "&One or more of these words:" +msgstr "&Una o più di queste parole:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "" -"Uguale: la parola o frase deve corrispondere esattamente nei metadati" +msgid "But dont show entries that have..." +msgstr "Ma non visualizzare elementi che hanno..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "" -"Espressione regolare: l'espressione deve corrispondere in qualunque punto " -"dei metadati" +msgid "Any of these &unwanted words:" +msgstr "Una di queste parole non richie&ste:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -7839,7 +7839,7 @@ msgstr "Inserisci il titolo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 msgid "&Author:" -msgstr "" +msgstr "&Autore:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 msgid "Ta&gs:" @@ -8005,12 +8005,12 @@ msgid "%s (was %s)" msgstr "%s (era %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "L'elemento è vuoto" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" "Un elemento non può essere impostato a niente. Cancellarlo piuttosto." @@ -8094,7 +8094,7 @@ msgid "Discard changes" msgstr "Annulla i cambiamenti" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Annulla" @@ -8293,6 +8293,64 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Codice sorgente ricetta (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Notizie:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "Libro elettronico" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "Troverete allegato il libro elettronico" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "di" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "nel formato %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Spedizione di un messaggio elettronico a" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"Convertire automaticamente i libri selezionati prima di inviare con posta " +"eletrronica?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Impossibile inviare i libri seguenti via email poiché non sono stati trovati " +"formati adatti:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Notizie inviate a" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8489,23 +8547,23 @@ msgstr "Impossibile annullare i lavori che comunicano col dispositivo" msgid "Job has already run" msgstr "Il lavoro è già stato avviato" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Non disponibile" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Lavori:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Fare clic per vedere la lista dei lavori" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Lavori" @@ -8531,7 +8589,7 @@ msgid "Show books in the main memory of the device" msgstr "Mostra libri nella memoria principale del dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Scheda A" @@ -8540,7 +8598,7 @@ msgid "Show books in storage card A" msgstr "Mostra libri nella memory card A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Scheda B" @@ -8577,7 +8635,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" -msgstr "" +msgstr "&Vai!" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" @@ -8619,11 +8677,11 @@ msgstr "Dimensione (MB)" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 msgid "Book %s of %s." -msgstr "" +msgstr "Libro %s di %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "La parola chiave è \"{0}\"" @@ -8652,47 +8710,47 @@ msgstr "Marcato per l'eliminazione" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Doppio clic per <b>modificarmi</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Nascondi colonna %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Ordina per %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Ascendente" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Discendente" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Cambia allineamento del testo per %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Sinistra" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Destra" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centrato" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Mostra colonna" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Ripristina layout perdefinito" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8725,7 +8783,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>Nessuna corrispondenza</b> trovata per la frase <i>%s</i>" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Nessuna corrispondenza trovata" @@ -8742,12 +8800,12 @@ msgid "LRF Viewer toolbar" msgstr "Barra degli strumenti visualizzatore LRF" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Pagina successiva" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Pagina precedente" @@ -8791,7 +8849,7 @@ msgid "Do not check for updates" msgstr "Non controllare gli aggiornamenti" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Biblioteca di calibre" @@ -8928,37 +8986,37 @@ msgstr "Il Libro non ha ne titolo ne ISBN" msgid "No matches found for this book" msgstr "Nessun risultato trovato per questo libro" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "Scaricamento metadati fallito" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "copertina" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Scaricati" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "Impossibile ottenere" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s per: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Completato" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "Scaricamento dei metadati completato per %d libri su %d" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Dettagli" @@ -9506,27 +9564,27 @@ msgstr "Mostra &testo sotto le icone:" msgid "&Split the toolbar into two toolbars" msgstr "&Dividi la barra degli strumenti in due barre" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Applica" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Ripristina &predefiniti" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Salva modifiche" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Annulla e torna al quadro generale" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "Ripristino predefiniti non supportato per" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9534,7 +9592,7 @@ msgstr "" "Alcune modifiche effettuate richiedono il riavvio. Riavviare calibre il " "prima possibile." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9542,7 +9600,7 @@ msgstr "" "Le modifiche effettuate richiedono il riavvio immediato di calibre. Non è " "possibile fare altre modifiche finché non si riavvia." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Riavvio richiesto" @@ -9878,7 +9936,7 @@ msgstr "" "dispositivo in «Preferenze->Avanzate->Plugins»" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Avvio del server dei contenuti fallito" @@ -10096,7 +10154,7 @@ msgstr "Ottimizzazioni &attuali" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Cerca" @@ -10194,26 +10252,22 @@ msgstr "Svuota" msgid "&Alternate shortcut:" msgstr "Scorciatoia &alternativa" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Rinomina '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Modifica ordinamento per '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Nascondi categoria %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Visualizza categoria" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Visualizza tutte le categorie" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10228,65 +10282,73 @@ msgstr "Gestione ricerche salvate" msgid "Manage User Categories" msgstr "Gestione categorie utente" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Visualizza tutte le categorie" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" +"Modificare gli autori di molti libri può durare un tempo abbastanza lungo. " +"Sei sicuro?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" +"Modificare i metadata per tanti libri può durare un tempo abbastanza lungo. " +"Sei sicuro?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Ricerche" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Duplica parola chiave" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "Il nome della ricerca salvata %s è già in uso." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Ordina per nome" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Ordina per popolarità" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Ordina per valutazione media" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Imposta l'ordinamento degli elementi nel browser dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Fai corrispondere tutti" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Fai corrispondere uno qualsiasi" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "Quando vengono selezionati più elementi nel browser dei tag fai " "corrisponderne qualsiasi o tutti" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Gestione categorie &utente" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Aggiungi categorie personalizzate al browser dei tag" @@ -10333,28 +10395,28 @@ msgstr "" "I libri nella lista sono già stati convertiti nel formato %s. Convertirli " "nuovamente?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Ripristina" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Donazione per sostenere Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Espelli dispositivo connesso" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Guida rapida di Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Errore di conversione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10363,15 +10425,15 @@ msgstr "" "href=\"%s\">DRM</a>. È prima necessario rimuovere la DRM usando un altro " "prodotto." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Ricetta deattivata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Operazione Fallita</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10382,11 +10444,11 @@ msgstr "" "lo sviluppo. La tua donazione aiuterà a mantenere attivo lo sviluppo di " "calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 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:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10397,11 +10459,11 @@ msgstr "" "sul dispositivo.<br>\n" " Interrompere comunque?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "ATTENZIONE: Lavori attivi" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10583,17 +10645,17 @@ msgstr "Combinazione di tasti per accesso rapido" msgid "No results found for:" msgstr "Nessun risultato trovato per:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Opzioni per personalizzare il lettore di libri" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Ricorda la dimensione della finestra usata l'ultima volta" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10601,82 +10663,82 @@ msgstr "" "Imposta il foglio di stile CSS dell'utente. Può essere usato per " "personalizzare l'aspetto di tutti i libri." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Larghezza maassima della finestra di visualizzazione in pixel." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" "&Ridimensiona le immagini più grandi della finestra del visualizzatore per " "farle entrare nella finestra" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Sillabare il testo" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Lingua predefinita per le regole di sillabazione" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Opzioni carattere" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "La famiglia di caratteri con grazie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "La famiglia di caratteri senza grazie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "La famiglia di caratteri a spaziatura fissa" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "La dimensione dei caratteri predefinita in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "La dimensione dei caratteri a spaziatura fissa in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Il tipo di carattere predefinito" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "Cerca nel dizionario (&L)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Vai a..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Sezione successiva" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Sezione precedente" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Inizio documento" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Fine documento" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Inizio sezione" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Fine sezione" @@ -10746,90 +10808,90 @@ msgstr "" msgid "Search for text in book" msgstr "Cerca del testo nel libro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Anteprima di stampa" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Sto collegano a dict.org per cercare: <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Scelta libro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Libri" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Nessuna corrispondenza trovata per %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Caricamento..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Impaginazione %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Segnalibro #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Aggiungi segnalibro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Inserire il titolo per il segnalibro:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Gestire i segnalibri" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Caricamento libro..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "Errore DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Questo libro è protetto da <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Impossibile aprire il libro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Opzioni per controllare il visualizzatore di libri" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Se specificato, la finestra di visualizzazione tenterà di apparire in primo " "piano quando avviata." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Se selezionato, all'avvio la finestra del viewer si aprirà a pieno schermo." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "" "Scrivi avvertenze dall'esecuzione e messaggi dal quadro di comando nella " "finestra del quadro di comando." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10947,7 +11009,7 @@ msgstr "Nascondi" msgid "Toggle" msgstr "Attiva/Disattiva" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -10957,7 +11019,7 @@ msgstr "" "accedere alla collezione di libri calibre direttamente dal dispositivo. Per " "fare questo è necessario attivare il server di contenuti." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -10965,7 +11027,7 @@ msgstr "" "Ricordare di lasciare calibre aperto poiché il server funziona solamente " "quando calibre è avviato." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -10976,20 +11038,20 @@ msgstr "" "un host valido o l'indirizzo IP del computer sul quale calibre è in " "esecuzione." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Spostamento della biblioteca in corso..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Impossibile spostare la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Database non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -10997,22 +11059,22 @@ msgstr "" "<p>Una biblioteca non valida esiste già in %s, eliminarla prima di tentare " "di spostare la biblioteca esistente.<br> Errore: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Impossibile spostare la biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Selezionare un percorso per i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "Devi scegliere una cartella vuota per la biblioteca di calibre. %s non è " "vuota." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "Benvenuti nel wizard" @@ -11098,11 +11160,9 @@ msgstr "Selezionare la &lingua:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Selezionare una destinazione per i libri. Quando verranno aggiunti libri a " -"Calibre, questi saranno copiati qui:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11118,51 +11178,74 @@ msgstr "" "posizione. Se nella nuova posizione già esiste una biblioteca di calibre, " "calibre utilizzerà quest'ultima." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Si sta usando %s:%s@%s:%s e cifrature %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Spedizione in corso..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "Messaggio inviato con successo" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Configurazione di gmail completata" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Non dimenticate di immettere il vosto nome utente e password per gmail. É " -"possibile creare un account gratis sul sito http://gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Configurazione difettosa" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "" "É necessario specificare un indirizzo di posta elettronica come mittente" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "" "É necessario specificare un nome utente e password per il server di posta " "elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "&Mittente:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11170,7 +11253,7 @@ msgstr "" "<p>Questo sarà immesso nel campo Da: per le email inviate da " "calibre.<br>Specificare il proprio indirizzo email" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11178,75 +11261,87 @@ msgstr "" "<p>Un server di posta è utile se il servizio al quale state mandando email " "accetta solamente posta elettronica da server di posta ben conosciuti." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "&Server di posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "calibre può <b>opzionalmente</b> usare un server per inviare la posta " "elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Hostname:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "Il nome del server per la posta. Per esempio smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Porta" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "La porta su cui il server di posta attende connessioni. Il valore " "predefinito è 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "I vostro nome utente sul server per la posta" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "La vostra password sul server per la posta" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Mostra" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Sicurezza" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." msgstr "Utilizza" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "" "Usa cifrature SSL quando ci si connette al server di posta elettronica." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Usa Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Verifica email" @@ -11313,7 +11408,7 @@ msgstr "vuota" msgid "empty" msgstr "vuoto" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11327,7 +11422,7 @@ msgstr "" "Valore predefinito: '%%default'\n" "Applicabile ai formati di output: CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11339,7 +11434,7 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11353,7 +11448,7 @@ msgstr "" "Predefinito: '%%default'\n" "Applicabile ai formati di output: BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11365,7 +11460,7 @@ msgstr "" "Predefinito: '%default'\n" "Applicabile ai formati di output: BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11377,7 +11472,7 @@ msgstr "" "Predefinito: '%default'\n" "Applicabile ai formati di output: BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11391,7 +11486,7 @@ msgstr "" "Predefinito: '%%default'\n" "Applicabile ai formati di output: BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11403,7 +11498,7 @@ msgstr "" "Predefinita: '%default'\n" "Applicabile ai formati di output: BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11415,7 +11510,7 @@ msgstr "" "Predefinito: '%default'\n" "Applicabile ai formati di output: BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11427,7 +11522,7 @@ msgstr "" "Predefinito: '%default'\n" "Applicabile ai formati di output: BIBTEX" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11437,7 +11532,7 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11451,7 +11546,7 @@ msgstr "" "Valore predefinito: '%default'Nessuno\n" "Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11462,7 +11557,7 @@ msgstr "" "'[<tag>]'\n" "Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11477,7 +11572,7 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11487,7 +11582,7 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: epub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11497,7 +11592,7 @@ msgstr "" "Predefinito:'%default'\n" "Applicabile ai formati di output:ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11507,7 +11602,7 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11518,7 +11613,7 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11532,7 +11627,7 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11548,7 +11643,7 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11558,6 +11653,13 @@ msgstr "" "Valore predefinito: '%default'\n" "Applicabile ai formati di output: ePub, MOBI" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Titoli non validi" @@ -12152,6 +12254,8 @@ msgid "" "Comma-separated list of names to ignore.\n" "Default: all" msgstr "" +"Lista separata da virgole dei nomi da ignorare.\n" +"Predefinito: tutti" #: /home/kovid/work/calibre/src/calibre/library/cli.py:927 msgid "Unknown report check" @@ -12248,36 +12352,36 @@ msgstr "" "L'etichetta può contenere solo lettere minuscole, numeri e trattini bassi, e " "deve iniziare con una lettera" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sLa valutazione media è %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Principale" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" "<p>Migrazione del vecchio database nella biblioteca in %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Sto copiando <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Compattazione database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Controllo di integrità SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Controllo per file mancanti" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "ID controllate" @@ -12504,129 +12608,129 @@ msgid "" "from Apache/nginx/etc." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -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/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "Sto caricando, attendere" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "Vai a" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Prima" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Ultima" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Precedente" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Successiva" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Valutazione media" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f stelle" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d stelle" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Popolarità" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Ordina per" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "libreria" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "home" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Più recenti" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Tutti i libri" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Sfoglia i libri per" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" -msgstr "" +msgstr "Selezionare una categoria in da sfogliare per:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Su" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "in" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" -msgstr "" +msgstr "Libri in" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Altri formati" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Leggi %s nel formato %s" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Scarica" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Permalink" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" -msgstr "" +msgstr "Un collegamento permanente a questo libro" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Questo libro è stato cancellato" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" -msgstr "" +msgstr "nella ricerca" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Libri corrispondenti" @@ -12952,7 +13056,7 @@ msgstr "Negoziazione della sessione SSH fallita: " msgid "Failed to authenticate with server: %s" msgstr "Autenticazione fallita col server: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Controllo dell'invio delle email" @@ -14774,6 +14878,10 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "Could not initialize the fontconfig library" #~ msgstr "Impossibile inizializzare la biblioteca fontconfig" +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "" +#~ "Password per accedere alla propria biblioteca di calibre. Il nome utente è " + #~ msgid "Output:" #~ msgstr "File in uscita:" @@ -14934,6 +15042,12 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "Send specific format to storage card B" #~ msgstr "Invia il formato specifico alla scheda di memoria A" +#~ msgid "Sent by email:" +#~ msgstr "Inviato per posta elettronica" + +#~ msgid "Attached is the" +#~ msgstr "Allegato c'é" + #~ msgid "TabWidget" #~ msgstr "Assistente per i TAB" @@ -14985,6 +15099,13 @@ msgstr "Non scaricare i fogli di stile CSS" #~ "%s\n" #~ "disponibile" +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Non dimenticate di immettere il vosto nome utente e password per gmail. É " +#~ "possibile creare un account gratis sul sito http://gmail.com" + #~ msgid "The author sort string" #~ msgstr "Stringa per ordinare gli autori" @@ -15103,6 +15224,13 @@ msgstr "Non scaricare i fogli di stile CSS" #~ "\"una\"), la punteggiatura, maiuscole, ecc. Corrispondenza Autore fa lo " #~ "stesso." +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "Contiene: la parola o frase corrispondenti ovunque nei metadati" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Uguale: la parola o frase deve corrispondere esattamente nei metadati" + #~ msgid "set in ui.py" #~ msgstr "posta in ui,py" @@ -15247,6 +15375,16 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "Books located at" #~ msgstr "Libri presenti in" +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Selezionare una destinazione per i libri. Quando verranno aggiunti libri a " +#~ "Calibre, questi saranno copiati qui:" + +#~ msgid "Finish gmail setup" +#~ msgstr "Configurazione di gmail completata" + #~ msgid "Lookup name" #~ msgstr "Parola chiave" @@ -15303,6 +15441,12 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "Failed to download metadata for the following:" #~ msgstr "Impossibile a scaricare i metadati per i seguenti:" +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Espressione regolare: l'espressione deve corrispondere in qualunque punto " +#~ "dei metadati" + #~ msgid "Connect to iTunes (EXPERIMENTAL)" #~ msgstr "Connetti ad iTunes (SPERIMENTALE)" @@ -15428,6 +15572,15 @@ msgstr "Non scaricare i fogli di stile CSS" #~ "I libri selezionati saranno <b>cancellati permanentemente</b> e i file " #~ "rimossi dal computer. Confermare?" +#~ 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 "" +#~ "Valore medio della lunghezza di linea per interrompere righe quando il " +#~ "codice HTML è generato da una precedente conversione parziale da un " +#~ "documento PDF. %default è il valore predefinito per disabilitare questa " +#~ "funzione." + #~ 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 " @@ -15440,6 +15593,23 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "Failed to download metadata:" #~ msgstr "Impossibile scaricare i metadati:" +#~ msgid "Failed to email the following books:" +#~ msgstr "Impossibile inviare via email i seguenti libri:" + +#~ msgid "Failed to email books" +#~ msgstr "Impossibile inviare via email i libri" + +#~ 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 "" +#~ "I libri indicati hanno formati elencati nel database che non sono " +#~ "disponibili. I riferimenti a tali formati sono stati rimossi. È consigliato " +#~ "controllarli manualmente. Questo problema può sorgere se i documenti nella " +#~ "cartella della biblioteca vengono modificati direttamente." + #~ msgid "" #~ "%s has been updated to version %s. See the <a href=\"http://calibre-" #~ "ebook.com/whats-new\">new features</a>. Visit the download page?" @@ -15473,6 +15643,17 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "&Restore to defaults" #~ msgstr "&Ripristina predefiniti" +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Inserire una lista di ISBN nell'area sulla sinistra, uno per linea. " +#~ "calibre creerà automaticamente gli elementi per i libri basandosi sull'ISBN " +#~ "scaricando i metadati e le copertine.<p>Tutti gli ISBN non validi verranno " +#~ "ignorati." + #~ msgid "" #~ "Values for the tweaks are shown below. Edit them to change the behavior of " #~ "calibre" diff --git a/src/calibre/translations/nb.po b/src/calibre/translations/nb.po index b36b35dbc8..791b8f90a3 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 <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-06 15:45+0000\n" -"PO-Revision-Date: 2010-11-06 01:42+0000\n" +"POT-Creation-Date: 2010-11-26 19:04+0000\n" +"PO-Revision-Date: 2010-11-26 21:39+0000\n" "Last-Translator: Kovid Goyal <Unknown>\n" "Language-Team: Norwegian Bokmal <nb@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-07 04:45+0000\n" +"X-Launchpad-Export-Date: 2010-11-27 04:49+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,11 +27,11 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -40,8 +40,8 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -55,7 +55,7 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -74,14 +74,14 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -89,7 +89,7 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -109,10 +109,10 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -121,15 +121,15 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -137,14 +137,14 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -185,14 +185,14 @@ msgstr "Handlinger for brukergrensesnitt" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Innstillinger" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -202,7 +202,7 @@ msgstr "" "lenkede filer. Dette programtillegget kjører hver gang du legger til en HTML " "fil til biblioteket." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -210,7 +210,7 @@ msgstr "" "Skrifttegnkoding for inndata av HTML filer. Vanlige valg inkluderer: cp1252, " "latin1, iso-8859-1 og utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -220,7 +220,7 @@ msgstr "" "pmlname_img eller images. Dette programtillegget kjører hver gang du legger " "til en PML-fil til biblioteket." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Ekstrakter omslagside fra tegneseriefiler" @@ -267,43 +267,43 @@ msgstr "Set metadata i %s filer" msgid "Set metadata from %s files" msgstr "Set metadata fra %s filer" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Utseende" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Brukergrensesnitt" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "Juster utseende for calibres brukergrensesnitt etter ditt ønske" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Atferd" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Endrer mÃ¥ten calibre oppfører seg" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Legg til dine egne kolonner" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Legg til /fjern dine egne kolonner i calibres bokliste" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Tilpass verktøylinjen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -311,58 +311,58 @@ msgstr "" "Tilpass verktøylinjen og kontekstmenyer. Endringer med handlinger er " "tilgjengelig i hver" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Valg for inndata" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "konvertering" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "Angi spesifikke konverteringsalternativer for hvert inndata-format" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Vanlige valg" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Angi felles konverteringsalternativer for alle formater" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Valg for utdata" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Angi spesifikke konverteringsalternativer for hvert utdata-format" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Legger til bøker" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Improter/Exporter" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Kontrollerer hvordan calibre leser metadata fra filer nÃ¥r den legger til " "bøker" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Lagrer bøker til disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -370,32 +370,32 @@ msgstr "" "Kontrollerer hvordan calibre eksporterer filer fra dens database til disken " "nÃ¥r \"lagre til disk\" benyttes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Sender bøker til enheter" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Kontrollerer hvordan calibre overfører filer til din e-bokleser" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Instrumenttavle for metadata" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Endre felt for metadata før lagring/sending" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Dele bøker ved e-post" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Deling" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -403,11 +403,11 @@ msgstr "" "Klargjør for deling av bøker via e-post. Kan brukes til automatisk sending " "av nedlastede nyheter til enhetene" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Deling over nettet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -415,33 +415,33 @@ msgstr "" "Klargjør calibre Innholdsserver som vil gi deg tilgang til calibres " "biblioteket fra hvor som helst, pÃ¥ enhver enhet, over Internett" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Programtillegg" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Avansert" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Legg til/fjern/tilpass varierende deler av calibres funksjonalitet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Tilpassning" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "Finjuster hvordan calibre oppfører seg under varierende situasjoner" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Diverse" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Diverse avanserte konfigurasjoner" @@ -486,7 +486,7 @@ msgstr "" "vet noe om dokumentets inndata." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -498,62 +498,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Denne profilen er ment for SONY PRS 300" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Denne profilen er ment for SONY PRS-900" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Denne profilen er ment for Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Denne profilen er ment for Mobipocket bøker." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Denne profilen er ment for Hanlin V3 og kloner av denne." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Denne profilen er ment for HAnlin V5 og dens kloner" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Denne profilen er ment for Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Denne profilen er ment for Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Denne profilen er ment for Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Denne profilen er ment for Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Denne profilen er ment for IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Denne profilen er ment for IRex Digital Reader 800" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Denne profilen er ment for B&N Nook." @@ -571,28 +571,28 @@ msgstr "" "Ã¥ lage et dokument som er ment til Ã¥ bli lest pÃ¥ en datamaskin eller andre " "dataprodukter." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "Benyttes for iPad og liknende enheter med en oppløsning pÃ¥ 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "Ment for generiske tablet enheter, endrer ikke billedstørrelser" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Denne profilen er tiltenkt Kobo Reader" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Denne profilen er ment for SONY PRS-300" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Denne profilen er ment for 5-inch JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -600,11 +600,15 @@ msgstr "" "Denne profilen er ment for SONY PRS serien. 500/505/700 osv, i " "landskapsmodus. Dette er hovedsakelig anvendelig for tegneserier." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Denne profilen er ment for Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Denne profilen er ment for Sandra Bambook." @@ -684,7 +688,7 @@ msgstr "SlÃ¥ av navngitte programtillegg" msgid "Communicate with Android phones." msgstr "Kommuniser med Android-telefoner." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -692,7 +696,7 @@ msgstr "" "Komma-delt liste av foldere som av e-bøker som sendes til enheten. Den " "første som eksisterer vil bli benyttet" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Kommuniser med S60 telefoner." @@ -769,18 +773,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Nyheter" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Katalog" @@ -806,6 +810,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Kommuniser med Cybook Gen3 / Opus eBook leser." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Kommuniser med Cybook Orizon eBook leser" + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Kommuniser med EB600 eBook-leser." @@ -818,6 +826,10 @@ msgstr "Kommuniser med Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Kommuniser med PocketBook 301 leser." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -878,8 +890,8 @@ msgstr "Kommuniser med Spring Design Alex eBook leser." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -968,26 +980,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Motta liste over bøker pÃ¥ enheten..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Fjern bøker fra enhetens metadatalister..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Legg bøker til enhetens metadatalister..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Ikke implementert" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1009,7 +1021,7 @@ msgstr "Kommuniser med Sweex MM300" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:79 msgid "Communicate with the Digma Q600" -msgstr "" +msgstr "Kommuniser med Digma Q600" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:88 msgid "Communicate with the Kogan" @@ -1028,6 +1040,10 @@ msgstr "Kommuniser med VelocityMicro" msgid "Communicate with the GM2000" msgstr "Kommuniser med GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Kommuniser med Nokia 770 internet enhet." @@ -1048,6 +1064,14 @@ msgstr "Nook" msgid "Communicate with the Nook eBook reader." msgstr "Kommuniser med Nook eBook leser" +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Kommuniser med Nook Color eBook leser." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Kommuniser med Nuut2 eBook-reader" @@ -2094,36 +2118,29 @@ msgstr "" "siden det kan resultere i varierende dÃ¥rlige sideeffekter i resten av " "konverteringsfølgerekken." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Gjennomsnittlig linjelengde for linjebryting dersom HTML filen er fra en " -"tidligere delvis konvertering fra en PDF fil. Standard er %default som slÃ¥r " -"av dette valget." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" -msgstr "" +msgstr "CSS fil brukt til utdata fremfor standardfil" #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:36 msgid "" "Template used for generation of the html index file instead of the default " "file" -msgstr "" +msgstr "Mal brukt til generering av html indekseringsfil fremfor standardfil" #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:39 msgid "" "Template used for the generation of the html contents of the book instead of " "the default file" -msgstr "" +msgstr "Mal brukt til generering av html-innhold i boken, fremfor sandardfil" #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:42 msgid "" "Extract the contents of the generated ZIP file to the specified directory. " "WARNING: The contents of the directory will be deleted." msgstr "" +"Ekstraherer innholdet av en generert ZIP-fil til den spesifiserte mappen. " +"ADVARSEL: Innholdet i mappen vil bli slettet." #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." @@ -2262,7 +2279,7 @@ msgid "Path to output file" msgstr "Filsti til utfil" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Informativ behandling" @@ -2443,8 +2460,8 @@ msgstr "Ja" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 @@ -2478,8 +2495,8 @@ msgstr "Produsent" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 @@ -2494,7 +2511,7 @@ msgstr "Sammendrag:" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Nøkkelord" @@ -2646,6 +2663,7 @@ msgid "No cover found" msgstr "Fant ikke omslag" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Last ned omslag" @@ -2715,19 +2733,19 @@ msgstr "beskrivelse/betraktninger" msgid "Download %s from %s" msgstr "Last ned %s fra %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" -msgstr "" +msgstr "Konverter kommentarer lasted ned fra %s til ordinær tekst" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Last ned metadata fra Google Bøker" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Last ned metadata fra isbnb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2735,15 +2753,15 @@ msgstr "" "For Ã¥ benytte isbnb.com mÃ¥ du først sette opp en %sgratis konto%s og legge " "inn tilgansnøkkelen under." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Last ned sosiale metadata fra amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Last ned serier/emneord/bedømningsinformasjon fra librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2768,23 +2786,24 @@ msgstr "" "konto hos isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "ISBN ID for boken du ønsker Ã¥ motta metadata til." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "Forfatteren til boken du søkeer etter." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "Tittelen til boken du søker etter." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "Forlaget til boken du søker etter." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " ikke funnet." @@ -2804,8 +2823,24 @@ msgstr "" "representerer et linjeskift. Begynn en ny linje i den tilsvarende posisjonen " "i oversettelsen.\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Omslagside" @@ -2844,74 +2879,74 @@ msgstr "Gi emneord til merket bok som skal lagres i Personlige Dokumenter" msgid "All articles" msgstr "Alle artikler" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Dette er en Amazon Topaz-bok. Den kan ikke koverteres." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Tittelside" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Innholdsfortegnelse" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Innhold" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Ordliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "PÃ¥skjønnelse" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Litteraturliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Opphavsrettighet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Tilegnet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Forord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Illustrasjonsliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Tabell-liste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Merknader" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Forord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Hovedtekst" @@ -2919,7 +2954,7 @@ msgstr "Hovedtekst" msgid "%s format books are not supported" msgstr "%s formaterte bøker er ikke støttet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Bok %s av %s" @@ -2930,7 +2965,7 @@ msgstr "HTML TOC genereringsvalg." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Rangering" @@ -2961,7 +2996,7 @@ msgstr "Fotnoter" msgid "Sidebar" msgstr "Sidepanel" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2971,7 +3006,7 @@ msgstr "" "Normalt behandler calibre blanke linjer som avsnittsmerker. Med dette valget " "vil istedet calibre forstÃ¥ at alle linjer representerer et avsnitt." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3282,7 +3317,7 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "Spesifiser tegnsettkodene for et utdatadokument. Standard er cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3513,7 +3548,7 @@ msgid "Disable UI animations" msgstr "SlÃ¥ av UI animeringer" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Kopiert" @@ -3525,7 +3560,7 @@ msgstr "Kopier" msgid "Copy to Clipboard" msgstr "Kopier til utklippstavlen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Velg filer" @@ -3579,89 +3614,89 @@ msgstr "Hvor mange tomme bøker?" msgid "How many empty books should be added?" msgstr "Hvor mange tomme bøker skal legges til?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Laster opp bøker til enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML-bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Topaz-bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Tekst bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF-bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Tegneserier" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Arkiver" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Støttede bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "SlÃ¥tt sammen noen bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Noen duplikater ble funnet og slÃ¥tt sammen til følgende eksisterende bøker:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Kunne ikke lese metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Kunne ikke lese metadata fra følgende" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Legg til i biblioteket" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3669,13 +3704,13 @@ msgstr "Legg til i biblioteket" msgid "No book selected" msgstr "Ingen bøker ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "De følgende bøkene er virituelle og kan ikke legges til calibre-biblioteket:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Ingen bokfiler ble funnet" @@ -3688,7 +3723,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Legg til bøker i ditt calibrebibliotek fra den tilsluttede enhenten" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Hent kommentarer (eksperimentell)" @@ -3785,7 +3820,7 @@ msgid "Checking database integrity" msgstr "Sjekker databasens integritet" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3801,19 +3836,15 @@ msgstr "Noen uoverensstemmelser ble funnet" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"De følgende bøkene hadde formater listet opp i databasen som ikke er faktisk " -"tilstede. Oppføringene for dette formatet har blitt fjernet. Du bør sjekke " -"dem manuelt. Dette kan skje dersom du har manipulert filene i " -"bibliotekfolderen direkte." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d bøker" @@ -3959,7 +3990,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Ikke tillatt" @@ -3991,6 +4022,10 @@ msgstr "Kan ikke konvertere" msgid "Starting conversion of %d book(s)" msgstr "Starter konvertering av %d bok (bøker)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Kopier til biblioteket" @@ -4025,9 +4060,9 @@ msgid "Could not copy books: " msgstr "Kunne ikke kopiere bøker: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:683 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Mislykket" @@ -4088,14 +4123,14 @@ msgid "Main memory" msgstr "Hovedminne" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Lagring Kort A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Lagring Kort B" @@ -4239,7 +4274,7 @@ msgid "covers" msgstr "Omslag" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadata" @@ -4268,6 +4303,10 @@ msgid "" "second and subsequently selected books will not be deleted or " "changed.<br><br>Please confirm you want to proceed." msgstr "" +"Bokformat og metadata fra de valgte bøkene vil bli lagt til den <b>første " +"valgte boken</b> (%s). ISBN vil <i>ikke</i> bli lagt til.<br><br> Den andre " +"og deretter valgte bøker vil ikke bli slettet eller " +"forandret..<br><br>Vennligst bekreft at du ønsker Ã¥ fortsette." #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 msgid "" @@ -4279,6 +4318,13 @@ msgid "" "books will be permanently <b>deleted</b> from your computer.<br><br> Are " "you <b>sure</b> you want to proceed?" msgstr "" +"Bokformater og metadata fra de valgte bøkene vil bli slÃ¥tt sammen med " +"<b>første valgte bok</b> (%s). ISBN vil <i>ikke</i> bli slÃ¥tt " +"sammen.<br><br>Etter Ã¥ ha slÃ¥tt sammen, vil den andre og de deretter valgte " +"bøker bli <b>slettet</b>. <br><br>Alle bokformater fra den første valgte " +"boken vil bli beholdt og alle duplikatformater i den andre og de deretter " +"valgte bøker vil bli permanent <b>slettet</b> fra datamaskinen din.<br><br> " +"Er du <b>sikker</b> pÃ¥ at du ønsker Ã¥ fortsette?" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 msgid "" @@ -4329,6 +4375,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Kjør velkomstveiviser" @@ -4417,7 +4464,7 @@ 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/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Vis bokdetaljer" @@ -4473,24 +4520,24 @@ msgstr "Bøker med de samme taggene" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:54 msgid "Tweak ePub" -msgstr "" +msgstr "Juster ePub" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:16 msgid "Make small changes to ePub format books" -msgstr "" +msgstr "Gjør mindre endringer i ePub-formaterte bøker" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:17 msgid "T" -msgstr "" +msgstr "T" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:39 msgid "Cannot tweak ePub" -msgstr "" +msgstr "Kan ikke justere ePub" #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:40 msgid "No ePub available. First convert the book to ePub." -msgstr "" +msgstr "Ingen ePub tilgjengelig. Konverter boken til ePub først." #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:24 msgid "V" @@ -4560,7 +4607,7 @@ msgid "The specified directory could not be processed." msgstr "Den spesifiserte mappen kunne ikke prosesseres" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Ingen bøker" @@ -4766,11 +4813,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 @@ -4779,10 +4826,10 @@ msgstr "Bane" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 @@ -4813,9 +4860,9 @@ msgstr "Klikk for Ã¥ Ã¥pne" msgid "None" msgstr "Ingen" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 msgid "Double-click to open Book Details window" -msgstr "" +msgstr "Dobbeltklikk for Ã¥ Ã¥pne vinduet for bokdetaljer" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 msgid "BibTeX Options" @@ -4858,7 +4905,7 @@ msgstr "utdata" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4901,7 +4948,7 @@ msgstr "utdata" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Form" @@ -4988,23 +5035,23 @@ msgstr "CSV/XML Valg" msgid "E-book options" msgstr "E-bok valg" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "'Ikke inkluder denne boken' merke:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "'Merk denne boken som lest' merke:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Tilleggsnotatsmerke:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 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:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5018,26 +5065,45 @@ msgstr "" "-Et regex-mønster av enestÃ¥ende punktum utelukker alle sjanger-emneord og " "genererer ingen sjanger-seksjoner" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Inkluder 'Tittel' omrÃ¥de" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Inkluder 'Nylig lagt til' omrÃ¥de" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Sorter tall som tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" -msgstr "" +msgstr "Inkluder 'Serier' seksjon" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Emneord for ønskeliste:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Tab mal for katalog.ui" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" +"Lokalisert i " +"/home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "Kursiv" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +msgstr "Understrek" + #: /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 " @@ -5048,11 +5114,11 @@ msgstr "" "verdiene som er lagret i en tidligere konvertering (om de finnes) i stedet " "for Ã¥ benytte standardspesifikasjonen under innstillinger." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Samlet konvertering" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Valg spesifikt til utdataformatet." @@ -5398,7 +5464,7 @@ msgstr "Behold &bindinger" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:147 msgid "Smarten &punctuation" -msgstr "" +msgstr "Forbedre & pynte" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" @@ -5526,7 +5592,7 @@ msgid "Change the title of this book" msgstr "Forandre bokens tittel" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Forfatter(e): " @@ -5544,7 +5610,7 @@ msgstr "" "adskilt av komma." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Forlegger: " @@ -5555,7 +5621,7 @@ msgid "Ta&gs: " msgstr "Ta&gger: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5565,15 +5631,16 @@ msgstr "" "<br><br>De kan være ethvert ord eller fraser, separert ved kommategn." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "&Serier:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5752,7 +5819,7 @@ msgid "Options specific to the input format." msgstr "Valg spesifisert til inndataformat." #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5768,19 +5835,19 @@ msgstr "Bruk &lagrede konverteringsinnstillinger for individuelle bøker" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:14 msgid "SNB Output" -msgstr "" +msgstr "SNB Utdata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:40 msgid "Hide chapter name" -msgstr "" +msgstr "Skjul kapittelnavn" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:41 msgid "Insert space before the first line for each paragraph" -msgstr "" +msgstr "Legg inn mellomrom før den første linjen av hvert avsnitt" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 msgid "Insert empty line between paragraphs" -msgstr "" +msgstr "Legg inn en tom linje mellom avsnitt" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" @@ -5854,7 +5921,7 @@ msgstr "Fjern T&opptekst" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:86 msgid "Line &un-wrap factor during preprocess:" -msgstr "" +msgstr "Linje &utpakkingsfaktor under forprosesser:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:87 msgid "&Preprocess input file to possibly improve structure detection" @@ -5946,8 +6013,8 @@ msgid "Force maximum line length" msgstr "Fremdriv maksimum linjelengde" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -6082,16 +6149,16 @@ msgstr " indeks:" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:493 msgid "Remove series" -msgstr "" +msgstr "Fjern serier" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:496 msgid "Automatically number books" -msgstr "" +msgstr "Nummerer bøker automatisk" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " -msgstr "" +msgstr "Tving tall til Ã¥ starte med " #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:562 msgid "Remove all tags" @@ -6105,97 +6172,103 @@ msgstr "emneord som skal legges til" msgid "tags to remove" msgstr "emneord som skal fjernes" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Ingen detaljer tilgjengelig." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "Enheten er ikke lenger koblet til." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "FÃ¥ informasjon om enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "FÃ¥ en liste over bøker pÃ¥ enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Motta kommentar fra enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Send metadata til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Overfør samlingene til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Last opp %d bøker til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Slett bøker fra enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Last ned bøker fra enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Se min bok pÃ¥ enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Sett stadart til send til enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Send til hovedminnet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Send til lagringskort A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Send til lagringskort B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Hovedminne" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" -msgstr "" +msgstr "Send spesifisert format til" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Overfør og slett fra biblioteket" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Koble fra enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Feil ved kommunikasjonen med enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Ingen passende formater" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Velg mappe som skal Ã¥pnes som enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Feil ved komminikasjonen med enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6203,124 +6276,59 @@ 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/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Enhet: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " Funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "Velg for Ã¥ sende" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Velg format for Ã¥ sende til enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Ingen enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Kan ikke sende: Ingen enhet er koblet til" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Ingen kort" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Kan ikke sende: Enheten har ikke noe lagringskort" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "E-bok" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "Vedlagt finner du e-boken" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "av" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "i %s format" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Sender e-post til" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Ingen passende formater" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "Autokonverter de følgende bøkene før du sender dem via e-post?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"Kunne ikke sende følgende bøker som e-post da ingen passende formater ble " -"funnet:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Kunne ikke sende bøker via e-post" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Kunne ikke sende de følgende bøkene via e-post:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Sent som e-post:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Nyheter:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Vedlagt følger" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Sent nyheter til" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "Autokonverter følgende bøker før du laster dem opp til enheten?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Sender kataloger til enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Sender nyheter til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Sender bøker til enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6329,11 +6337,11 @@ msgstr "" "ble funnet. Konverter boken/bøkene til et format som er støttet av din enhet " "først." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Ikke plass pÃ¥ enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6378,27 +6386,26 @@ msgstr "Legg til bøker med ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Skriv inn en liste med ISBN-nummer i boksen til venstre, ett nr.per " -"linje. Calibre vil automatisk opprette bokoppføringer basert pÃ¥ ISBN og " -"laste ned metadata, samt omslagsbilde for dem.<p>Ugyldige ISBN-numre i " -"listen vil bli ignorert." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Lim inn fra utkippstavlen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "Tilpass &omslagsbilde innenfor synsfelt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "&Forrige" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "&Neste" @@ -6435,42 +6442,45 @@ msgstr "katalogvalg" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:26 msgid "Check Library" -msgstr "" +msgstr "Undersøk bibliotek" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:35 msgid "&Run the check" -msgstr "" +msgstr "&Kjør undersøkelsen" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:38 msgid "Copy &to clipboard" -msgstr "" +msgstr "Kopier &til utklippstavlen" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:54 msgid "Names to ignore:" -msgstr "" +msgstr "Navn som skal ignoreres:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:59 msgid "" "Enter comma-separated standard file name wildcards, such as synctoy*.dat" msgstr "" +"Legg inn kommaseparert standard filnavn med stjernetegn, som synctoy*.dat" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 msgid "Extensions to ignore" -msgstr "" +msgstr "Utvidelser som skal ignoreres" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:67 msgid "" "Enter comma-separated extensions without a leading dot. Used only in book " "folders" msgstr "" +"Legg inn kommaseparert utvidelser uten et etterfølgende punktum. Benyttes " +"kun i bokmapper" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 msgid "Path from library" -msgstr "" +msgstr "Sti fra biblioteket" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Navn" @@ -6479,6 +6489,7 @@ msgid "" "The marked files and folders will be <b>permanently deleted</b>. Are you " "sure?" msgstr "" +"De merkede filene og mappene vil bli <b>slettet permanent</b>. Er du sikker?" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:45 msgid "Choose Format" @@ -6521,7 +6532,7 @@ msgid "No location selected" msgstr "Et omrÃ¥de ble ikke valgt" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "DÃ¥rlig omrÃ¥de" @@ -6562,6 +6573,7 @@ msgid "Set options for converting %s" msgstr "Sett valg for konvertering %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&Tittel:" @@ -6620,14 +6632,14 @@ msgid "Author sort" msgstr "Sortering blant forfattere" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" -msgstr "" +msgstr "Feil ved forfatternavn" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." -msgstr "" +msgstr "Forfatternavn kan ikke inneholde & tegn" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:71 msgid "Manage authors" @@ -6693,6 +6705,8 @@ msgid "" "No metadata found, try adjusting the title and author and/or removing the " "ISBN." msgstr "" +"Ingen metadata ble funnet. Forsøk Ã¥ justere tittel og forfatter og/eller " +"fjerne ISBN." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Fetch metadata" @@ -6758,78 +6772,82 @@ msgstr "Stopp &alle arbeidsoppgaver for ikkeenheter" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:26 msgid "Title/Author" -msgstr "" +msgstr "Tittel/Forfatter" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:27 msgid "Standard metadata" -msgstr "" +msgstr "Standard metadata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:28 msgid "Custom metadata" -msgstr "" +msgstr "Egendefinerte metadata" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:29 msgid "Search/Replace" -msgstr "" +msgstr "Søk/Erstatt" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:33 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:76 msgid "Working" msgstr "prossesserer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "SmÃ¥ bokstaver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Store bokstaver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Store eller smÃ¥ bokstaver i tittelen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" -msgstr "" +msgstr "Karaktertreff" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 -msgid "Replace field" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 -msgid "Prepend to field" -msgstr "" +msgstr "Vanlig uttrykk" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 -msgid "Append to field" -msgstr "" +msgid "Replace field" +msgstr "Erstatt felt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 +msgid "Prepend to field" +msgstr "Flyttes til felt" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 +msgid "Append to field" +msgstr "Legges til felt" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Rediger metainformasjon for <b>%d bøker</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" -msgstr "" +msgstr "Bok %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" +"<b>Biblioteket ditt kan ødelegges dersom du bruker denne egenskapen.</b> " +"Endringen er permanent. Det finnes ingen metode for Ã¥ gjøre om dette valget. " +"Du anbefales Ã¥ ta en sikkerhetskopi av biblioteket før du fortsetter.<p>Søk " +"og erstatt i tekstfelter benytter tegnsett som samsvarer med vanlige " +"uttrykk. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6838,8 +6856,15 @@ msgid "" "checked, the search text must match exactly. If it is unchecked, the search " "text will match both upper- and lower-case letters" msgstr "" +"I tegnmodus søkes det i teksten som er skrevet i søkefeltet. Teksten " +"erstattes med den spesifiserte erstatningsteksten over alt denne blir funnet " +"i det spesifiserte søkefeltet. Etter at erstatningen er gjennomført, kan " +"teksten endres til store eller smÃ¥ bokstaver eller til titteltekst. Dersom " +"den tegnsensitive avkryssningsboksen er merket av, mÃ¥ søketeksten stemme " +"overens, helt eksakt. Dersom den ikke er merket av vil søketeksten treffe " +"bÃ¥de store og smÃ¥ bokstaver." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6853,49 +6878,64 @@ msgid "" "information on python's regular expressions, and in particular the 'sub' " "function." msgstr "" +"I ordinær uttrykksmodus er søketeksten et vilkÃ¥rlig python-kompatibelt " +"uttrykk. Erstatningsteksten kan inneholde tilbakereferanser til " +"grunnutrykket i mønsteret. søket er ikke ankerfestet og kan samsvare og " +"erstatte flere ganger i samme streng. Modifiseringsfunksjonene (smÃ¥ " +"bokstaver osv.) legges til den samsvarende teksten, ikke til feltet som " +"helhet. Boksen for destinasjon spesifiserer feltet der resultatet etter " +"samsvarende teks er tildelt. Du kan erstatte teksten i feltet eller setter " +"du eller føyer til den samsvarende teksten. Se <a " +"href=\"http://docs.python.org/library/re.html\"> denne referansen</a> for " +"mer informasjon om pythons ordinære uttrykk, og spesielt 'underfunksjoner'." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" -msgstr "" +msgstr "Du mÃ¥ spesifisere destinasjonen nÃ¥r kilden er et sammensatt felt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" -msgstr "" +msgstr "Søk/erstatt ugyldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" +"Forfattere kan ikke legges inn i en tom streng. Boktittel %s er ikke " +"behandlet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" +"Tittel kan ikke legges inn i en tom streng. Boktittel %s er ikke behandlet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" -msgstr "" +msgstr "Søkemønsteret er ugyldig: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" +"Legger til endringer til %d bøker.\n" +"Phase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Rediger metainformasjon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "A&utomatisk forfattersortering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "Forfatter s&orter: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -6903,63 +6943,63 @@ 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:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Bedømning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "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:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Ingen endring" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " stjerner" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Legg til ta&gger: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Ã…pne Tagg-redigering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Fjern emneord:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 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:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Merk av denne boksen for Ã¥ fjerne alle emneord fra bøkene." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Fjern alle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -6967,37 +7007,37 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Automatisk nummererte bøker i denne serien" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Fjern &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Bytt mellom tittel og forfatter" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7007,73 +7047,73 @@ msgstr "" "\n" "Fremtidige konverteringsinnstillinger vil bruke standard innstillinger." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "Slett &lagrede konverteringsinnstillinger for de valgte bøkene" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "&Grunnleggende metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "&Brukervalgte metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7081,49 +7121,49 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 -msgid "&Search and replace (experimental)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -7395,20 +7435,21 @@ msgstr "Passord kreves" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&Brukernavn:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Passord:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Vis passord" @@ -7645,57 +7686,52 @@ msgstr "" msgid "Negate" msgstr "Opphev" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "Avansert søk" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "Finn oppføringer som har..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "&Alle disse ordene:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "Denne eksakte &frasen:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "&En eller flere av disse ordene:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "Men vis ikke oppføringer som har..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "Noen av disse &uønskede ordene:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "Hva slags samsvarstreff som skal benyttes:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "Inneholder: ord eller frase som samsvarer alle steder i metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -"Samsvarer med: ordet eller frasen mÃ¥ samsvare med hele metadatafeltet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "Vanlig uttrykk: utrykket mÃ¥ samsvare alle steder i metadata" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Finn oppføringer som har..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Alle disse ordene:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Denne eksakte &frasen:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "&En eller flere av disse ordene:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "Men vis ikke oppføringer som har..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "Noen av disse &uønskede ordene:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" @@ -7703,6 +7739,47 @@ msgstr "" "Se <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">Brukermanual</a> for mer hjelp" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "Velg formater" @@ -7839,12 +7916,12 @@ msgid "%s (was %s)" msgstr "%s (var %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "Inneholder ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" "Innholdet kan ikke stilles inn for Ã¥ gjøre ingenting. Slett det istedet." @@ -7928,7 +8005,7 @@ msgid "Discard changes" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Avbryt" @@ -8129,6 +8206,62 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Kildekode for nyhetskilde (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Nyheter:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "E-bok" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "Vedlagt finner du e-boken" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "av" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "i %s format" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Sender e-post til" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "Autokonverter de følgende bøkene før du sender dem via e-post?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Kunne ikke sende følgende bøker som e-post da ingen passende formater ble " +"funnet:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Sent nyheter til" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8325,23 +8458,23 @@ msgstr "Kan ikke stoppe oppgaven som kommuniserer med enheten" msgid "Job has already run" msgstr "Oppgaven har allerede blitt kjørt" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Ikke tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Oppgaver:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Klikk for Ã¥ se en liste over oppgaver" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Oppgave" @@ -8367,7 +8500,7 @@ msgid "Show books in the main memory of the device" msgstr "Viser bøker i hovedminne til enheten" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Kort A" @@ -8376,7 +8509,7 @@ msgid "Show books in storage card A" msgstr "Viser bøker i lagringskort A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Kort B" @@ -8394,11 +8527,15 @@ msgid "" msgstr "" "Bokvisning vil begrenses til dem som samsvarer med de valgte lagrede søkene" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "Avansert søk" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" @@ -8406,27 +8543,27 @@ msgstr "" "<p>Søk i listen over bøker etter tittel, forfatter, forlegger, emneord, " "kommentarer osv.<br><br>Ord delt med mellomrom forstÃ¥s som OG" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "Tilbakestill hurtigsøk" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "Kopier gjeldende søketekst (istedet for søkenavn)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "Lagre gjledende søk under navnet som viser i boksen" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "Slett gjeldende lagrete søk" @@ -8454,7 +8591,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "Søkenavnet er \"{0}\"" @@ -8483,47 +8620,47 @@ msgstr "Merket for sletting" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Dobbelklikk til <b>rediger</b> me<br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Skjul kolonne %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Sorter blant %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Stigende" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Synkende" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Forandre tekstjustering for %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Venstre" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Høyre" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Senter" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Vis kolonne" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Gjenopprett standard visning" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8556,7 +8693,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>Ingen treff</b> for søkefrasen <i>%s</i> ble funnet." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Ingen treff" @@ -8573,12 +8710,12 @@ msgid "LRF Viewer toolbar" msgstr "LRF Leser verktøylinje" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Neste side" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Forrige side" @@ -8622,7 +8759,7 @@ msgid "Do not check for updates" msgstr "Ikke søk etter oppdateringer" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Calibre-bibliotek" @@ -8757,37 +8894,37 @@ msgstr "Boken har verken tittel eller ISBN" msgid "No matches found for this book" msgstr "Ingen treff ble funnet for denne boken" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Fullført" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "" @@ -9333,27 +9470,27 @@ msgstr "Vis &tekst under ikoner:" msgid "&Split the toolbar into two toolbars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Bruk" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Gjenopprett &standard" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Lagre endringer" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Avbryt og gÃ¥ tilbake til oversikt" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "Gjenoppretter til standarder er ikke støttet av" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9361,7 +9498,7 @@ msgstr "" "Noen av endringene du har gjort krever en omstart. Vennligst avslutt og " "start opp calibre igjen sÃ¥ snart som mulig." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9370,7 +9507,7 @@ msgstr "" "umiddelbart. Du tillates ikke Ã¥ endre flere preferanser før omstart har " "blitt gjennomført." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Gjennomfør omstart" @@ -9704,7 +9841,7 @@ msgstr "" "preferanser->Avansert->Plugins" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Kunne ikke starte innholdsserveren" @@ -9922,7 +10059,7 @@ msgstr "&Gjeldende endringer" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Søk" @@ -10019,26 +10156,22 @@ msgstr "Tøm" msgid "&Alternate shortcut:" msgstr "&Veksle mellom snarveier" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Navneendring av '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Rediger sortering for '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Skjul kategorien %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Vis kategorier" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Vis alle kategorier" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10053,64 +10186,68 @@ msgstr "Administrere lagrede søk" msgid "Manage User Categories" msgstr "Administrere brukerkategorier" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Vis alle kategorier" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Søk" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Dupliser søkenavn" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "Det lagrede søkenavnet %s er allerede benyttet." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Sorter etter navn" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Sorter etter popularitet" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Sorter etter gjennomsnittsbedømning" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Sett sorteringsrekkefølge for oppføringer i emneordleseren" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Sammenlign alle" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Sammenlign hviklet som helst" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "NÃ¥r du velger flere oppføringer i emneordleseren, bruk noen eller alle av dem" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "Administrer &brukerkategorier" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Legg til dine egne kategorier til emneordleseren" @@ -10157,28 +10294,28 @@ msgstr "" "De følgende bøkene har allerede blitt konvertert til %s format. Ønsker du Ã¥ " "konvertere dem pÃ¥ nytt?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Gjenopprett" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Doner for Ã¥ støtte Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "&Avslutt tilkoblet enhet" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Calibre hurtigstart-guide" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Feil ved konverteringen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10187,15 +10324,15 @@ 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:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Beskrivelse Slettet" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Feilet</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10205,11 +10342,11 @@ msgstr "" "synes programmet er nyttig, kan du vurdere Ã¥ donere for Ã¥ støtte " "utviklingen. Din gave hjelper Ã¥ holde calibre-utviklingen gÃ¥ende." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 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:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10219,11 +10356,11 @@ msgstr "" " Ã… avslutte kan føre til feil pÃ¥ enheten.<br>\n" " Er du sikker pÃ¥ at du ønsker Ã¥ avslutte?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "ADVARSEL: Aktive oppgaver" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10399,17 +10536,17 @@ msgstr "&Tastatursnarveier" msgid "No results found for:" msgstr "Det ble ikke funnet noe resultat for:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Valgmuligheter for Ã¥ egendefinere e-bokleseren" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Husk sist brukte vindustørrelse" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10417,81 +10554,81 @@ msgstr "" "Sett inn brukers CSS stilsett. Dette kan brukes for Ã¥ egendefinere utseende " "pÃ¥ alle bøker." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Største bredde pÃ¥ leserens vindu, i piksler." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 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:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Bruk orddeling" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "StandardsprÃ¥k for orddelingsregler" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Valg av tegnsett" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "Serif tegnsettfamilien" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "Sans-serif tegnsettfamilien" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "Monospace tegnsettfamilien" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "Standard tegnsettstørrelse i piksler" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "Monospace fontstørrelse i piksler" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Standard tegnsetttype" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&SlÃ¥ opp i ordboken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "GÃ¥ til..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Neste Avsnitt" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Forrige Avsnitt" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Begynnelsen av dokumentet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Slutten av dokumentet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Begynnelsen av avsnitt" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Slutten av avsnittet" @@ -10560,86 +10697,86 @@ msgstr "" msgid "Search for text in book" msgstr "Søk etter tekst i boken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "ForhÃ¥ndsvisning av utskrift" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Kobler til dict.org for Ã¥ slÃ¥ opp:<b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Velg e-bok" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "E-bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Ingen treff ble funnet for: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Lastingsflyt..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Legger ut %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Bokmerke #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Legg til bokmerke" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Legg inn tittel for bokmerke:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Behandle bokmerker" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Laster e-bok..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM Feil" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Denne boken er beskyttet av <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Kunne ikke Ã¥pne e-boken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:691 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Valgmuligheter for Ã¥ kontrollere e-bokleseren" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Om spesifisert, vil leservinduet forsøke Ã¥ legge seg foran nÃ¥r den starter." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Skriv ut javascriptadvarsel og konsollmeldinger til konsollen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10757,7 +10894,7 @@ msgstr "Skjul" msgid "Toggle" msgstr "Veksle" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -10767,14 +10904,14 @@ msgstr "" "kan du koble opp din calibre boksamling direkte til enheten. For Ã¥ gjøre " "dette mÃ¥ du slÃ¥ pÃ¥ innholds-serveren." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "" "Husk Ã¥ la calibre kjøre, da serveren kun kjører sÃ¥ lenge calibre kjører." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -10784,20 +10921,20 @@ msgstr "" "WordPlayer. Mitt vertskapsnavn mÃ¥ være det fullt kvalifiserte vertsnavnet " "eller IP-adressen til datamaskinen som calibre kjører pÃ¥." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Flytter bibliotek..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Kunne ikke flytte bibliotek" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Ugyldig database" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -10805,20 +10942,20 @@ msgstr "" "<p>Et ugyldig bibliotek finnes allerede pÃ¥ %s. Slett dette før du forsøker Ã¥ " "flytte det gjeldende biblioteket.<br>Feil:%s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Kunne ikke flytte bibliotek" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Velg lokalisasjon for bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "Velkommen-veiviser" @@ -10903,11 +11040,9 @@ msgstr "Velg sprÃ¥k" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Velg en lokalisering for dine bøker. NÃ¥r du legger til bøker i calibre, sÃ¥ " -"vil de bli kopiert dit:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -10923,48 +11058,71 @@ msgstr "" "nye lokaliseringen. Dersom calibre-biblioteket allerede finnes ved den nye " "lokaliseringen, sÃ¥ vil calibre bytte til dette." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Bruk: %s:%s@%s:%s og %s kryptering" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Sender..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "E-posten har blitt sent" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Fullfør gmail oppsett" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Ikke glem Ã¥ legge inn ditt gmail brukernavn og passord. Du kan registrere en " -"gratis gmail-konto ved http://gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Ugyldig konfigurering" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Du mÃ¥ legge inn Fra e-postadresse" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "Du mÃ¥ legge inn brukernavn og passord for e-post serveren." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Send e-post &fra:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -10972,7 +11130,7 @@ msgstr "" "<p>Dette er hva som vil bli presentert i Fra: felt for e-post sent fra " "calibre.<br> Benytt din e-postadresse" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -10980,49 +11138,49 @@ msgstr "" "<p>En e-postserver er hendig dersom den du sender e-post til kun aksepterer " "e-post fra kjente e-postleverandører." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "E-post&server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "calibre kan <b>valgfritt</b> benytte en server for Ã¥ sende e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Vertsnavn" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "Vertsnavnet til din e-postserver. For eksempel smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "Porten din e-postserver lytter etter koblinger gjennom: Standard er 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "Ditt brukernavn for e-postserveren" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "Ditt passord for e-postserveren" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Vis" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Kryptering:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11030,23 +11188,35 @@ msgstr "" "Bruk TLS kryptering nÃ¥r du kobler opp mot e-postserveren. Dette er det " "vanligste valget." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Benytt SSL kryptering nÃ¥r du kobler opp e-postserveren." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Benytt Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Test e-post" @@ -11112,7 +11282,7 @@ msgstr "tom" msgid "empty" msgstr "tom" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11126,7 +11296,7 @@ msgstr "" "Standard: '%%standard'\n" "Gjelder: CSC, XML utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11139,7 +11309,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: CSV, XML utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11153,7 +11323,7 @@ msgstr "" "Standard: '%%default'\n" "Brukes for: BIBTEX utdata-format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11166,7 +11336,7 @@ msgstr "" "Standard: '%default'\n" "Grukes til: BIBTEX utdataformat." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11178,7 +11348,7 @@ msgstr "" "Standard: '%default'\n" "Brukes til BIBTEX utdataformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11192,7 +11362,7 @@ msgstr "" "Standard: '%%default'\n" "Brukes til: BIBTEX utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11204,7 +11374,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: BibTeX utdataformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11216,7 +11386,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: BibTeX utdataformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11228,7 +11398,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: BibTeX utdataformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11238,7 +11408,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: ePub, MOBI utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11252,7 +11422,7 @@ msgstr "" "Standard: '%default'Ingen\n" "Gjelder: ePub, MOBI utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11262,7 +11432,7 @@ msgstr "" "Standard: '%default' utelater emneord i braketter, f.eks. '[<temneord>]'\n" "Gjelder: ePub, MOBI utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11277,7 +11447,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11287,7 +11457,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11297,7 +11467,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: Epub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11307,7 +11477,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11318,7 +11488,7 @@ msgstr "" "Standard; '%default'\n" "Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11331,7 +11501,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11347,7 +11517,7 @@ msgstr "" "Standard: '%default'\n" "Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11357,6 +11527,13 @@ msgstr "" "Standard; '%default'\n" "Gjelder: ePub, MOBI utdataformater" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "" @@ -12029,35 +12206,35 @@ msgstr "" "Merkelappen kan kun inneholde smÃ¥ bokstaver, tall eller understrek, samt at " "den mÃ¥ starte med en bosktav" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sGjennomsnittlig vurdering er %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Hovedvalg" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "<p> Migrerer gammel database til e-bokbiblioteket i %s<br><senter>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Kopierer <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Komprimerer databasen" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Sjekker for SQL integritet..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Sjekker etter savnede filer." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "Sjekker ID" @@ -12281,128 +12458,129 @@ msgid "" "from Apache/nginx/etc." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -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/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Nyeste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "" @@ -12723,7 +12901,7 @@ msgstr "Kunne ikke klarere SSH sesjonen: " msgid "Failed to authenticate with server: %s" msgstr "Kunne ikke verifisere med server: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Kontroller e-postlevering" @@ -13610,6 +13788,18 @@ msgstr "Ikke last ned CSS stilsett" #~ msgid "Send specific format to main memory" #~ msgstr "Send spesifisert format til hovedminnet" +#~ msgid "Failed to email the following books:" +#~ msgstr "Kunne ikke sende de følgende bøkene via e-post:" + +#~ msgid "Failed to email books" +#~ msgstr "Kunne ikke sende bøker via e-post" + +#~ msgid "Attached is the" +#~ msgstr "Vedlagt følger" + +#~ msgid "Sent by email:" +#~ msgstr "Sent som e-post:" + #~ msgid "and delete from library" #~ msgstr "og slett fra biblioteket" @@ -13651,6 +13841,17 @@ msgstr "Ikke last ned CSS stilsett" #~ 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" +#~ 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 "" +#~ "De følgende bøkene hadde formater listet opp i databasen som ikke er faktisk " +#~ "tilstede. Oppføringene for dette formatet har blitt fjernet. Du bør sjekke " +#~ "dem manuelt. Dette kan skje dersom du har manipulert filene i " +#~ "bibliotekfolderen direkte." + #~ msgid "Invalid database location.<br>Cannot write to " #~ msgstr "Ugyldig lokalisering av databasen.<br>Kan ikke skrive til " @@ -13916,6 +14117,13 @@ msgstr "Ikke last ned CSS stilsett" #~ "%d\n" #~ "bøker" +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Velg en lokalisering for dine bøker. NÃ¥r du legger til bøker i calibre, sÃ¥ " +#~ "vil de bli kopiert dit:" + #~ msgid "" #~ "<h2>Demo videos</h2>Videos demonstrating the various features of calibre are " #~ "available <a " @@ -13932,6 +14140,16 @@ msgstr "Ikke last ned CSS stilsett" #~ "<h2>Brukermanual</h2>En brukermanual er ogsÃ¥ tilgjengelig <a " #~ "href=\"http://calibre.kovidgoyal.net/user_manual\">online</a>." +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Ikke glem Ã¥ legge inn ditt gmail brukernavn og passord. Du kan registrere en " +#~ "gratis gmail-konto ved http://gmail.com" + +#~ msgid "Finish gmail setup" +#~ msgstr "Fullfør gmail oppsett" + #~ msgid "" #~ "The format in which to output the data. Available choices: %s. Defaults is " #~ "text." @@ -13960,6 +14178,9 @@ msgstr "Ikke last ned CSS stilsett" #~ "\n" #~ "Start Calibres innholdserver." +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "Passord for tilgang til ditt Calibrebibliotek. Brukernavn er " + #~ msgid "Catalan" #~ msgstr "katalansk" @@ -14108,6 +14329,14 @@ msgstr "Ikke last ned CSS stilsett" #~ msgid "Edit meta information" #~ msgstr "Rediger metadata" +#~ 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 "" +#~ "Gjennomsnittlig linjelengde for linjebryting dersom HTML filen er fra en " +#~ "tidligere delvis konvertering fra en PDF fil. Standard er %default som slÃ¥r " +#~ "av dette valget." + #~ msgid "" #~ "<p>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 " @@ -14213,6 +14442,9 @@ msgstr "Ikke last ned CSS stilsett" #~ "Standard: %default\n" #~ "Gjelder: CSV, XML utdataformater" +#~ msgid " " +#~ msgstr " " + #~ msgid "Set font delta" #~ msgstr "Sett tegnsett delta" @@ -14244,6 +14476,17 @@ msgstr "Ikke last ned CSS stilsett" #~ "- Et regex-mønster av et enslig punktum ekskluderer alle genre av emneord, " #~ "ved Ã¥ utelate Genre OmrÃ¥de" +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "Vanlig uttrykk: utrykket mÃ¥ samsvare alle steder i metadata" + +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "Inneholder: ord eller frase som samsvarer alle steder i metadata" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Samsvarer med: ordet eller frasen mÃ¥ samsvare med hele metadatafeltet" + #~ msgid "Communicate with the Teclast K3 reader." #~ msgstr "Kommuniser med Teclast K3 leser" @@ -14466,6 +14709,17 @@ msgstr "Ikke last ned CSS stilsett" #~ msgid "You cannot change libraries when a device is connected." #~ msgstr "Du kan ikke endre biblioteket nÃ¥r en enhet er tilkoblet." +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Skriv inn en liste med ISBN-nummer i boksen til venstre, ett nr.per " +#~ "linje. Calibre vil automatisk opprette bokoppføringer basert pÃ¥ ISBN og " +#~ "laste ned metadata, samt omslagsbilde for dem.<p>Ugyldige ISBN-numre i " +#~ "listen vil bli ignorert." + #~ msgid "Applying changes to %d books. This may take a while." #~ msgstr "Utfører endringer pÃ¥ %d bøker. Dette kan ta litt tid." diff --git a/src/calibre/translations/nl.po b/src/calibre/translations/nl.po index 52aa7600c5..e8d6d93ce2 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 <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-06 15:45+0000\n" -"PO-Revision-Date: 2010-11-07 18:33+0000\n" -"Last-Translator: Mar2zz <Unknown>\n" +"POT-Creation-Date: 2010-11-26 19:04+0000\n" +"PO-Revision-Date: 2010-11-26 21:36+0000\n" +"Last-Translator: Kovid Goyal <Unknown>\n" "Language-Team: Dutch <nl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-08 05:09+0000\n" +"X-Launchpad-Export-Date: 2010-11-27 04:48+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: NETHERLANDS\n" "X-Poedit-Language: Dutch\n" @@ -33,11 +33,11 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -46,8 +46,8 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -61,7 +61,7 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -80,14 +80,14 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -95,7 +95,7 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -115,10 +115,10 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -127,15 +127,15 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -143,14 +143,14 @@ msgstr "Doet helemaal niets" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -191,14 +191,14 @@ msgstr "Actie gebruikers interface" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Voorkeuren" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -208,7 +208,7 @@ msgstr "" "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:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -216,7 +216,7 @@ msgstr "" "Karaktercodering voor de invoer HTML-bestanden. Standaard keuzes zijn: " "cp1252, latin1, iso-8859-1 en utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -226,7 +226,7 @@ msgstr "" "of images bevat. Deze plug-in wordt steeds uitgevoerd als een PML-bestand " "aan de bibliotheek wordt toegevoegd." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Haal de omslag uit bestanden met stripverhalen" @@ -269,44 +269,44 @@ msgstr "Lees metagegevens van eboeken in ZIP-archieven" msgid "Set metadata in %s files" msgstr "Stel metagegevens van %s bestanden in" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Uiterlijk en Vormgeving" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interface" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" "Pas het uiterlijk en gedrag van de calibre interface aan naar je smaak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Gedrag" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Verander de manier waarop calibre zich gedraagt" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Voeg je eigen kolommen toe" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Voeg/Verwijder je eigen kolommen toe aan de calibre boekenlijst" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Werkbalk aanpassen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -314,58 +314,58 @@ msgstr "" "Pas de werkbalken en contextmenu's aan en verander daarmee de beschikbare " "actie's in beide." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Invoeropties" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Conversie" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "" "Configureer de conversie-instellingen specifiek voor ieder invoerformaat" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Algemene opties" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Configureer de conversieopties die alle formaten gemeen hebben" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Uitvoeropties" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Set de conversieopties specifiek voor ieder uitvoerformaat" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Boeken toevoegen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Importeren/Exporteren" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Bepaal hoe calibre metadata uit bestanden leest als boeken worden toegevoegd" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Boeken bewaren op schijf" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -373,32 +373,32 @@ msgstr "" "Bepaal hoe calibre bestanden uit zijn database op schijf bewaard als je " "Bewaar op schijf gebruikt" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Stuur boeken naar apparaten" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Bepaal hoe calibre bestanden naar je ebook reader overplaats" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "Invoegtoepassing voor metagegevens" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" -msgstr "Verander de velden met metagegevens voordat het opslaan/versturen" +msgstr "Verander velden met metagegevens voor het opslaan/versturen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Deel boeken via email" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Delen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -406,11 +406,11 @@ msgstr "" "Configureer het delen van boeken via email. Dit kan gebruikt worden om " "automatisch gedownload nieuws naar je apparaten te sturen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Delen over het net" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -418,35 +418,35 @@ msgstr "" "Configureer de calibre Content Server, die je toegang tot je calibre " "bibliotheek geeft van overal, op elk apparaat, via het internet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Plugins" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Geavanceerd" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "" "Voeg toe/verwijder/customize de verschillende delen van de calibre " "functionaliteit" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Tweaks" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "Stem af hoe calibre zich gedraagt in bepaalde situaties" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Diversen" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Diverse geavanceerde instellingen" @@ -492,7 +492,7 @@ msgstr "" "niets over het invoer document weet." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -503,62 +503,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Dit profiel is bedoeld voor de SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Dit profiel is bedoeld voor de SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Dit profiel is bedoeld voor de Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Dit profiel is bedoeld voor de Mobipocket boeken." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Dit profiel is bedoeld voor de Hanlin V3 en zijn afgeleiden." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Dit profiel is bedoeld voor de Hanlin V5 en zijn afgeleiden." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Dit profiel is bedoeld voor de Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Dit profiel is bedoeld voor de Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Dit profiel is bedoeld voor de Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Dit profiel is bedoeld voor de Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Dit profiel is bedoeld voor de IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Dit profiel is bestemd voor de IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Dit profiel is bedoeld voor de B&N Nook." @@ -575,30 +575,30 @@ msgstr "" "Dit profiel probeert zinnige instellingen te gebruiken, en is handig om een " "document te maken dat op een computer of meedere apparaten gelezen wordt." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Bedoeld voor de iPad en soortgelijke apparaten met een resolutie van 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" "Bedoeld voor normale tablets, doet geen aanpassingen aan afbeeldingen." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Dit profiel is bedoeld voor de Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Dit profiel is bedoeld voor de SONY PRS-300" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Dit profiel is bedoeld voor de 5-inch JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -606,11 +606,15 @@ msgstr "" "Dit profiel is bedoeld voor de SONY PRS reeks. De 300/600 etc, in " "horizontale schermmodus. Vooral handig voor stripboeken." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Dit profiel is bedoeld voor de Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Dit profiel is voor de B&N Nook Color" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Dit profiel is bedoeld voor het Sanda Bamboek." @@ -690,15 +694,15 @@ msgstr "Deactiveer de genoemde plugin" msgid "Communicate with Android phones." msgstr "Communiceer met Android telefoons." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" msgstr "" -"Komma-gescheiden lijst van folders om e-boeken naar toe te sturen op het " +"Komma-gescheiden lijst van mappen om e-boeken naar toe te sturen op het " "apparaat. De eerste die wordt gevonden zal worden gebruikt." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Communiceert met S60 telefoons" @@ -775,18 +779,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Nieuws" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Catalogus" @@ -812,6 +816,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Communiceer met de Cybook Gen 3 / Opus eboek lezer." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Communiceer met de Cybook Orizon eBook reader." + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Communiceer met de EB600 e-boek lezer." @@ -824,6 +832,10 @@ msgstr "Verbinden met Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Verbinden met PocketBook 301 reader." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -884,8 +896,8 @@ msgstr "Communiceert met de SpringDesign Alex eBook reader." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -974,26 +986,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Bezig met het ophalen van boeken van het apparaat..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Verwijderen boeken van apparaat metagegevens lijst..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Toevoegen boeken aan apparaat metagegevens lijst..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Niet geïmplementeerd" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1035,6 +1047,10 @@ msgstr "Communiceer met de VelocityMicro" msgid "Communicate with the GM2000" msgstr "Communiceer met de GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Communiceer met Nokia 770 internet tablet." @@ -1055,6 +1071,14 @@ msgstr "De Nook" msgid "Communicate with the Nook eBook reader." msgstr "Communiceer met de Nook eBook lezer." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Communiceer met de Nook Color eBook lezer." + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Communiceer met de Nuut2 eBook lezer." @@ -1681,7 +1705,7 @@ msgid "" "paragraphs (<p> or <div> tags)." msgstr "" "Verwijder witregels tussen paragrafen. Zet ook een indentatie van 1.5em op " -"paragraden. witregel verwijdering werkt niet als het invoer bestand geen " +"paragrafen. Witregels verwijderen werkt niet als het invoerbestand geen " "paragrafen gebruikt (<p> of <div> tags)." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:327 @@ -2123,15 +2147,6 @@ msgstr "" "doet, omdat het kan resulteren in verscheidene rommelige effecten met de " "rest van het conversie systeem" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Gemiddelde regel lengte voor afbreken van regels als de HTML afkomstig is " -"van een oudere gedeeltelijke conversie van een PDF bestand. Standaard is " -"%default , wat dit uitschakeld." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "" @@ -2299,7 +2314,7 @@ msgid "Path to output file" msgstr "Pad naar doel bestand" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "uitgebreide verwerking" @@ -2480,8 +2495,8 @@ msgstr "Ja" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 @@ -2515,8 +2530,8 @@ msgstr "Producent" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 @@ -2531,7 +2546,7 @@ msgstr "Opmerkingen" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Labels" @@ -2687,6 +2702,7 @@ msgid "No cover found" msgstr "Geen omslag gevonden" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Boek omslag download" @@ -2754,19 +2770,19 @@ msgstr "Omschrijving/Beoordelingen" msgid "Download %s from %s" msgstr "Download %s van %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Converteer gedownload commentaar van %s naar normale tekst." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Download metagegevens van Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Download metagegevens van isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2774,15 +2790,15 @@ msgstr "" "Om isbndb.com te gebruiken moet je je opgeven voor een %sgratis account%s, " "en je toegangs sleutel hieronder invoeren." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Download sociale metadata (labels, waarderingen, etc) van amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Download series/labels/waardering-informatie van librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2807,23 +2823,24 @@ msgstr "" "een gratis account op isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "Het ISBN Nr van het boek waarvoor je de metagegevens wilt." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "De auteur van het boek om naar te zoeken." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "De titel van het boek om naar te zoeken." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "De uitgever van het boek om naar te zoeken." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " niet gevonden." @@ -2841,8 +2858,24 @@ msgstr "" "Haal een boek afbeelding / sociale metagegevens (labels, waarderingen, etc) " "voor het boek aangeduid met ISBN van LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Download metagegevens van de franse Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Download omslagen van de franse Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "Nicebooks time out. Probeer later opnieuw." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "Er is een fout ontstaan met het ophalen van Nicebooks omslagen" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Omslag" @@ -2881,74 +2914,74 @@ msgstr "" msgid "All articles" msgstr "Alle artikelen" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Dit is een Amazon Topaz boek. Het kan niet worden verwerkt." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Titelpagina" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Inhoudsopgave" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Verklarende woordenlijst" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Erkenning" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Colofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Auteursrecht" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Opgedragen aan" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraaf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Voorwoord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Lijst met afbeeldingen" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Lijst met tabellen" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Aantekeningen" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Voorwoord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Hoofd Tekst" @@ -2956,7 +2989,7 @@ msgstr "Hoofd Tekst" msgid "%s format books are not supported" msgstr "%s formaat boeken worden niet ondersteund" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Boek %s van %s" @@ -2967,7 +3000,7 @@ msgstr "HTML inhoudsopgave generatie opties" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Waardering" @@ -3000,17 +3033,17 @@ msgstr "Voetnoten" msgid "Sidebar" msgstr "Zijpaneel" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" "Normally calibre treats blank lines as paragraph markers. With this option " "it will assume that every line represents a paragraph instead." msgstr "" -"Normaal gesproken behandeld calibre blanco regels als paragraaf markering. " +"Normaal gesproken behandelt calibre blanco regels als paragraaf markering. " "Met deze optie zal het aannemen dat iedere regel een paragraaf representeert." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3019,11 +3052,10 @@ msgid "" "spaces) represents a paragraph. Paragraphs end when the next line that " "starts with an indent is reached." msgstr "" -"Normaal gesproken behandeld calibre blanco regels als paragraaf markering. " -"Met deze optie zal het aanemen dat iedere regel die begint met een " +"Normaal gesproken behandelt calibre blanco regels als paragraaf markering. " +"Met deze optie zal het aannemen dat iedere regel die begint met een " "indentatie (een tab, of twee of meer spaties) een paragraaf voorstelt. " -"Paragrafen eindigeren wanneer de volgende lijn met een indentatie word " -"bereikt." +"Paragrafen eindigen wanneer de volgende lijn met een indentatie word bereikt." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 msgid "Format to use inside the pdb container. Choices are:" @@ -3328,7 +3360,7 @@ msgstr "" "Specificeer de karakter codering van het uitvoer document. Standaard is " "cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3570,7 +3602,7 @@ msgid "Disable UI animations" msgstr "Blokkeer GI animaties" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Gekopieerd" @@ -3582,7 +3614,7 @@ msgstr "Kopieer" msgid "Copy to Clipboard" msgstr "Kopieer naar het Klembord" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Kies bestanden" @@ -3608,16 +3640,16 @@ 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 "" -"Voeg boeken toe uit folders, inclusief sub-folders (Een boek per folder, " -"neemt aan dat ieder eboek bestand hetzelfde boek in een ander formaat bevat)" +"Voeg boeken toe uit mappen, inclusief submappen (Een boek per map, neemt aan " +"dat ieder e-boek bestand hetzelfde boek in een ander formaat bevat)" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:39 msgid "" "Add books from directories, including sub directories (Multiple books per " "directory, assumes every ebook file is a different book)" msgstr "" -"Voeg boeken toe uit folders, inclusief sub-folders (Meerdere boeken per " -"folder, neemt aan dat ieder eboek bestand een ander boek bevat)" +"Voeg boeken toe uit mappen, inclusief submappen (Meerdere boeken per map, " +"neemt aan dat ieder e-boek bestand een ander boek bevat)" #: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:43 msgid "Add Empty book. (Book entry with no formats)" @@ -3635,89 +3667,89 @@ msgstr "Hoeveel lege boeken?" msgid "How many empty books should be added?" msgstr "Hoeveel lege boeken moeten worden toegevoegd?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Boeken worden geupload naar de lezer." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB Boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF Boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML Boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT Boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI Boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Topaz boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Text boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF Boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB Boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Stripverhalen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Archief" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Ondersteunde boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Enkele boeken zijn samengevoegd" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "Er zijn duplicaten gevonden en samengevoegd met de volgende bestande boeken:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "De metagegevens konden niet gelezen worden" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Metagegevens konden niet worden gelezen van de volgende" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Aan collectie toevoegen" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3725,14 +3757,14 @@ msgstr "Aan collectie toevoegen" msgid "No book selected" msgstr "Geen boek geselecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" "De volgende boeken zijn virtueel en kunnen niet toegevoegd worden aan de " "Calibre bibliotheek:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Geen boek bestanden gevonden" @@ -3746,7 +3778,7 @@ msgstr "" "Voeg boeken op je aangesloten apparaat toe aan de Calibre bibliotheek" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Haal annoties op (experimenteel)" @@ -3845,7 +3877,7 @@ msgid "Checking database integrity" msgstr "Verifieren database integriteit" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3861,19 +3893,19 @@ msgstr "Inconsistente data gevonden" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"De volgende boeken hadden formaten in de database die niet beschikbaar zijn. " -"De ingangen voor deze formaten zijn verwijderd. Je zult deze handmatig " -"moeten checken. Dit kan gebeuren als je de bestanden in de folders direct " -"hebt gemanipuleerd." +"Deze boeken hadden formaten of omslagen opgeslagen in de database die niet " +"echt beschikbaar zijn. De ingangen voor de formaten/omslagen zijn " +"verwijderd. Je zou ze handmatig moeten controleren. Dit kan ontstaan als je " +"bestanden wijzigt in de mappen zelf." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d boeken" @@ -4023,7 +4055,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Niet toegestaan" @@ -4056,6 +4088,11 @@ msgstr "Kan niet converteren" msgid "Starting conversion of %d book(s)" msgstr "Start conversie van %d boek(en)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" +"Leeg uitvoerbestand, waarschijnlijk is het conversieproces fout gegaan" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Kopieer naar bibliotheek" @@ -4090,9 +4127,9 @@ msgid "Could not copy books: " msgstr "Kan boeken niet kopieren: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:683 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Mislukt" @@ -4154,14 +4191,14 @@ msgid "Main memory" msgstr "|Hoofdgeheugen" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Geheugenkaart A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Geheugenkaart B" @@ -4307,7 +4344,7 @@ msgid "covers" msgstr "Omslag afbeeldingen" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metagegevens" @@ -4338,7 +4375,7 @@ msgid "" "changed.<br><br>Please confirm you want to proceed." msgstr "" "Boekformaten en metagegevens van de selectie zullen toegevoegd worden aan " -"het <b>eerst geselecteerde boek</b>. ISBN zal <i>niet</i> samengevoegd " +"het <b>eerst geselecteerde boek</b> (%s). ISBN zal <i>niet</i> samengevoegd " "worden.<br><br>De geselecteerde boeken zullen niet verwijderd of aangepast " "worden.<br><br>Bevestig als je wilt doorgaan." @@ -4353,7 +4390,7 @@ msgid "" "you <b>sure</b> you want to proceed?" msgstr "" "Boekformaten en metagegevens van de selectie zullen toegevoegd worden aan " -"het <b>eerst geselecteerde boek</b>. ISBN zal <i>niet</i> samengevoegd " +"het <b>eerst geselecteerde boek</b> (%s). ISBN zal <i>niet</i> samengevoegd " "worden.<br><br>Na samenvoeging zullen de geselecteerde boeken van je " "computer <b>verwijderd</b> worden.<br><br>Weet je zeker dat je door wilt " "gaan?" @@ -4407,6 +4444,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Start de welkom wizard" @@ -4495,7 +4533,7 @@ msgid "Click the show details button to see which ones." msgstr "Klik de 'laat details zien' knop om te zien welke" #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Laat boek details zien" @@ -4626,7 +4664,7 @@ msgstr "Toevoegen..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:211 msgid "Searching in all sub-directories..." -msgstr "Zoeken in alle subfolders..." +msgstr "Zoekend in alle submappen..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:224 msgid "Path error" @@ -4637,7 +4675,7 @@ msgid "The specified directory could not be processed." msgstr "De geselecteerde folder kan niet worden bewerkt." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Geen boeken" @@ -4684,7 +4722,7 @@ msgstr "Opgeslagen" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:57 msgid "Searching for sub-folders" -msgstr "Zoeken naar sub-folders" +msgstr "Zoekend naar submappen" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/__init__.py:62 msgid "Searching for books" @@ -4748,13 +4786,13 @@ msgid "" "not</b> under the root folder you choose.</p>" msgstr "" "<p>calibre kan automatisch uw computer op bestaande boeken doorzoeken. Deze " -"boeken zullen dan aan de calibre colllectie toegevoegd (=<b>gekopieerd</b>) " -"worden. Deze wizard zal u helpen bij het scannen, aanpassen en importeren " -"van uw bestaande collectie boeken.</p>\n" -"<p>Kies een start folder. Er zal alleen in deze en onderliggende folders " -"naar boeken gezocht worden.</p>\n" -"<p>Verzeker u ervan dat de folder waar calibre uw collectie bewaard zich " -"<b>niet</b> in dit pad bevind.</p>" +"boeken zullen dan naar de calibre bibliotheek (=<b>gekopieerd</b>) worden. " +"Deze wizard zal u helpen bij het scannen, aanpassen en importeren van uw " +"bestaande collectie boeken.</p>\n" +"<p>Kies een beginmap. Er zal alleen in deze en onderliggende mappen naar " +"boeken gezocht worden.</p>\n" +"<p>Verzeker u ervan dat de map waar calibre uw collectie bewaart zich " +"<b>niet</b> in dit pad bevindt.</p>" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:68 msgid "&Root folder:" @@ -4765,8 +4803,8 @@ msgid "" "This folder and its sub-folders will be scanned for books to import into " "calibre's library" msgstr "" -"Deze map en de sub-mappen worden gescand op te importeren boeken voor " -"calibre's library" +"Deze map en de submappen worden gescand op te importeren boeken voor " +"calibre's bibliotheek" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:57 @@ -4843,11 +4881,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 @@ -4856,10 +4894,10 @@ msgstr "Pad" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 @@ -4890,7 +4928,7 @@ msgstr "Klik om te openen" msgid "None" msgstr "Geen" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 msgid "Double-click to open Book Details window" msgstr "Dubbelklikken om de boekdetails te zien" @@ -4935,7 +4973,7 @@ msgstr "uitvoer" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4978,7 +5016,7 @@ msgstr "uitvoer" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Formulier" @@ -5065,23 +5103,23 @@ msgstr "CSV/XML Opties" msgid "E-book options" msgstr "E-Boek opties" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "'Gebruik dit boek niet' label:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "'Markeer dit boek als gelezen' label:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Overige notities label prefix:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "RegEx tag-patroon om genres uit te sluiten:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5095,26 +5133,43 @@ msgstr "" "- Een regex met één . sluit alle genre tags uit, en genereert geen Genre " "Sectie" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "Voeg 'Titel' sectie toe" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "Voeg 'Onlangs Toegevoegd' sectie toe" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Sorteer getallen als tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "Voeg 'Series\" gedeelte toe" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Wenslijst tag:" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Tab sjabloon voor catalog.ui" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "Vet" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "Cursief" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +msgstr "Onderstreept" + #: /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 " @@ -5126,11 +5181,11 @@ msgstr "" "(indien deze bestaan) in plaats van de standaard waarden die zijn opgegeven " "onder de voorkeursinstellingen." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Massa conversie" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opties specifiek voor het uitvoer formaat." @@ -5603,7 +5658,7 @@ msgid "Change the title of this book" msgstr "Verander de titel van dit boek" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Auteur(s) " @@ -5621,7 +5676,7 @@ msgstr "" "van elkaar worden gescheiden." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Uitgeverij " @@ -5632,7 +5687,7 @@ msgid "Ta&gs: " msgstr "Ta&gs " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5643,15 +5698,16 @@ msgstr "" "komma's." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "&Series:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5830,7 +5886,7 @@ msgid "Options specific to the input format." msgstr "Op[ties specifiek voor het invoer formaat." #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5858,7 +5914,7 @@ msgstr "Voeg een spatie toe voor de eerste regel van een paragraaf" #: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 msgid "Insert empty line between paragraphs" -msgstr "Voeg lege regelst toe tussen paragrafen" +msgstr "Voeg lege regels toe tussen paragrafen" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" @@ -6026,8 +6082,8 @@ msgid "Force maximum line length" msgstr "Forceer maximale regellengte" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -6169,7 +6225,7 @@ msgid "Automatically number books" msgstr "Nummer boeken automatisch" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Laat de nummering beginnen bij : " @@ -6185,97 +6241,103 @@ msgstr "toe te voegen labels" msgid "tags to remove" msgstr "te verwijderen labels" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Geen details beschikbaar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "Apparaat niet meer verbonden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Lees apparaat informatie" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Lees boeken lijst van apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Haal annotaties uit apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Verstuur metagegevens naar apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "Stuur de collectie(s) naar apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Upload %d boeken naar apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Verwijder boeken van apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Download boeken van apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Bekijk boek op apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Stel standaard stuur naar apparaat actie in" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Stuur naar hoofdgeheugen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Zend naar opslag kaart A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Zend naar opslag kaart B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Hoofdgeheugen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "Zend specifiek formaat naar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "Verzend en verwijder uit de bibliotheek" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "Verbreek apparaat verbinding" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Fout bij communicatie met lezer" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Geen geschikte formaten" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Selecteer de \"als apparaat\" te openen map" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Fout bij communicatie met lezer" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6283,126 +6345,60 @@ msgstr "" "Er is een tijdelijke fout opgetreden tijdens de communicatie met de lezer. " "verwijzer de lezer en plug hem opnieuw in, of herstart." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Apparaat: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " gedetecteerd" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "Geselecteerd om te versturen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Kies formaat om naar apparaat te versturen" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Geen apparaat" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Kan niet zenden: geen apparaat beschikbaar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Geen kaart aanwezig" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Kan niet versturen: Apparaat heeft geen opslag kaart" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "E-Boek:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "In de bijlage vind je het e-boek." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "door" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "in het %s formaat" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Versturen van email naar" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Geen geschikte formaten" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"Auto-converteer de volgende boeken alvorens ze via email te versturen?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"De volgende boeken konden niet worden ge-emailed omdat geen beschikbare " -"formaten zijn gevonden:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Boeken konden niet worden ge-emailed." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "De volgende boeken konden niet worden ge-emailed:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Verstuurd via email:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Nieuws:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "Bijgevoegd is de" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Nieuws verzonden naar" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Auto-converteer de volgende boeken alvorens ze te uploaden naar het appraat?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Verstuur catalogus naar apparaat." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Versturen van nieuws naar apparaat." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Boeken worden naar de lezer verzonden." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6411,11 +6407,11 @@ msgstr "" "er geen geschikte bestandsformaten konden worden gevonden. Converteer " "boek(en) eerst naar een formaat dat word ondersteund door je lezer." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Geen schijfruimte op de lezer." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6442,7 +6438,7 @@ msgstr "Selecteer beschikbare formaten en hun ranglijst voor dit apparaat" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:87 msgid "Use sub directories" -msgstr "Gebruik sub-folders" +msgstr "Gebruik submappen" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:88 msgid "Use author sort for author" @@ -6460,27 +6456,26 @@ msgstr "Voeg boeken toe met behulp van ISBN" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>Schrijf een lijst van ISBN codes in het linkervak, 1 code per regel. " -"Calibre zal automatisch records creëren voor de boeken aan de hand van de " -"ISBN codes en de gedownloade metadata en omslagen. <p>Ongeldige ISBN codes " -"worden genegeerd." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Plak van klembord" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "Pas de &omslag in het overzicht" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "Vo&rige" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "&Volgende" @@ -6555,7 +6550,7 @@ msgstr "Pad naar bibliotheek" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Naam" @@ -6608,7 +6603,7 @@ msgid "No location selected" msgstr "Geen locatie geselecteerd" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Ongeldige locatie geselecteerd" @@ -6649,6 +6644,7 @@ msgid "Set options for converting %s" msgstr "Zet opties voor conversie %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&Titel:" @@ -6707,12 +6703,12 @@ msgid "Author sort" msgstr "auteur sortering" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Ongeldige auteursnaam" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Auteursnamen kunnen geen &-teken bevatten" @@ -6871,64 +6867,62 @@ msgstr "Zoek/Vervang" msgid "Working" msgstr "Bezig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Kleine letters" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Hoofdletters" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Elk Woord Met Hoofdletter" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Karakter match" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Reguliere Expressie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Vervang veld" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Plaats na veld" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Plaats voor veld" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Bewerk van <b>%d boeken</b de meta gegevens" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Boek %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -"<b>Je kunt je bibliotheek met deze functie kapot maken.</b> Veranderingen " -"zijn permanent. Je kunt niet ongedaan maken. Deze functie is experimenteel " -"en er kunnen fouten optreden. Je wordt sterk aangeraden eerst een backup van " -"je bibliotheek te maken voor je verder gaat.<p>Zoek en vervang in " -"tekstvelden met karaktercombinaties of reguliere expressies. " +"<b>Je kunt je bibliotheek hiermee vernietigen.</b> Veranderingen zijn " +"permanent. Je kunt niet ongedaan maken. Je wordt sterk aangeraden om je " +"Bibliotheek-backup te maken voordat je verder gaat.<p>Zoek en vervang in " +"tekstvelden met karaktermatching of reguliere expressies. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6945,7 +6939,7 @@ msgstr "" "overeenkomen. Als je deze niet kiest dan zal alle tekst, kleine en grote " "letters, overeenkomen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6970,30 +6964,30 @@ msgstr "" "informatie van python's reguliere expressies en dan vooral de 'sub' " "(ingebedde) functie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "Je moet een doel opgeven als de bron een opgemaakt veld is" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Zoek/vervang ongeldig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "Auteurs kunnen niet opgenomen worden. Boek titel %s niet aangepast." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "Titel kan niet opgenomen worden. Boek titel %s niet aangepast." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Zoekpatroon is ongeldig: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -7001,19 +6995,19 @@ msgstr "" "Veranderingen opslaan voor %d boeken.\n" "Fase {0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Verander Meta informatie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "Sorteer A&utomatisch op auteur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "Auteur s&ortering: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -7021,64 +7015,64 @@ msgstr "" "Geef aan hoe de auteur(s) van dit boeken dienen te worden gesorteerd. " "Bijvoorbeeld: Charles Dickens moet worden gesorteerd als: Dickens, Charles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Rangschikking" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Rangschikking van dit boek. 0-5 sterren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Geen wijzigingen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " sterren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Voeg tags toe: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Open Tag Editor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Verwijder tags:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Lijst van tags die moeten worden verwijderd, gescheiden met komma's. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Aanvinken om alle tags uit de boeken te verwijderen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Alles verwijderen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Aangevinkt, de serie wordt verwijderd" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "Verwijder serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7089,11 +7083,11 @@ msgstr "" "worden. Als deze wel aangevinkt is dan zullen de boeken automatisch\n" "worden genummerd in de volgorde van de selectie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Nummer de boeken in deze serie automatisch" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7103,15 +7097,15 @@ msgstr "" "in de database. Vink dit aan om Calibre te laten nummeren vanaf de \n" "opgegeven waarde" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Verwijder &formaat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "Verwi&ssel titel en auteur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7122,11 +7116,11 @@ msgstr "" "titel en auteur samen aangevinkt zijn is eerst de wissel en daarna de " "hoofdletters" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Verander titel naar hoofdletters" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7137,34 +7131,34 @@ msgstr "" "Toekomstige conversies van deze boeken zullen de standaard instellingen " "gebruiken." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" "Verwijder voor de geselecteerde boeken de opge&slagen conversie instellingen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "&Basis metagegevens" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "&Aangepaste metagegevens" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Zoek&functie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "De naam van het veld dat je wilt zoeken" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "Zoekmodus:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7172,11 +7166,11 @@ msgstr "" "Kies voor normale tekst vergelijking of geavanceerde reguliere expressie " "vergelijking" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Zoeken naar:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" @@ -7184,7 +7178,7 @@ msgstr "" "Geef op wat je wilt zoeken, gewoon tekst of een reguliere expressie, " "afhankelijk van de modus." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -7192,15 +7186,15 @@ msgstr "" "Aanvinken als de zoekterm exact overeen moet komen met hoofd- en kleine " "letters. Niet aanvinken om dit te negeren." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Hoofdlettergevoelig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "&Vervangen door:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" @@ -7208,11 +7202,11 @@ msgstr "" "De vervangende tekst. De overeenkomende tekst zal vervangen worden met deze " "tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Functie toepassen na vervanging:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7223,11 +7217,11 @@ msgstr "" "karaktermodus wordt het volledige\n" "veld verwerkt. In expressiemodus wordt alleen de geraakte tekst verwerkt." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "&Doelveld:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7235,15 +7229,15 @@ msgstr "" "Het veld waar de tekst na de verandering wordt ingezet. Als deze blanco is " "dan wordt het bronveld gebruikt." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "Modus:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Geef op hoe de tekst naar het doel gekopieerd moet worden." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7253,25 +7247,25 @@ msgstr "" "comma of niets\n" "tussen de originele tekst of nieuwe tekst moet worden gezet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "Gebruik komma" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "Test &tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Testre&sultaat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "Jouw test:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 -msgid "&Search and replace (experimental)" -msgstr "Zoek tek&st en vervang (experimenteel)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" +msgstr "Zoek tek&st en vervang" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 msgid "Last modified: %s" @@ -7563,20 +7557,21 @@ msgstr "Wachtwoord Noodzakelijk" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "Gebr&uikersnaam:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "W&achtwoord:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Geef wachtwoord weer" @@ -7819,60 +7814,56 @@ msgstr "" msgid "Negate" msgstr "omdraaien" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "Geavanceerde zoekopdracht" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "Zoek inzendingen die..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "&al deze woorden:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "Deze exacte &uitdrukking:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "&Een of meer vam deze woorden:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "Maar laat geen inzendingen zien die..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "Deze &ongewenste woorden bevat:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "Welke vergelijking gebruiken:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -"Bevat: het woord of de uitdrukking komt ergens in de metagegevens voor" +"Bevat: Het woord of de zin kan overal in het metagegevensveld matchen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" msgstr "" -"Gelijk aan: het woord of de zin komt overeen met een compleet veld in de " -"metagegevens" +"Gelijke: Het woord of de zin moet matchen met het hele metagegevensveld." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -"Reguliere expressie: de expressie moet ergens in de metagegevens voorkomen" +"Reguliere expressie: de expressie moet overal in het metagegevensveld " +"matchen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Zoek inzendingen die..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&al deze woorden:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Deze exacte &uitdrukking:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "&Een of meer vam deze woorden:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "Maar laat geen inzendingen zien die..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "Deze &ongewenste woorden bevat:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" @@ -7880,6 +7871,48 @@ msgstr "" "Zie het <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">Gebruikers Handboek</a> voor meer informatie" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "Geavanceer&d Zoeken" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "Geef de titel op." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "&Auteur:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "Ta&gs:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "Geef een auteursnaam op. Er kan 1 auteur gebruikt worden." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" +"Geef een serienaam op, zonder index. Er kan 1 serienaam gebruikt worden." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "Geef de tags op gescheiden met spaties" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "&Wis" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "Zoek in specifieke velden:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "Tite&l/Auteur/Series ..." + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "Kies formaten" @@ -7907,7 +7940,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:158 msgid "User Categories Editor" -msgstr "Gebruiker categorien opmaakprogramma" +msgstr "Gebruikerscategorieën opmaakprogramma" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:159 msgid "A&vailable items" @@ -7940,8 +7973,7 @@ msgstr "Verwijder de geselecteerde labelcategory" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:169 msgid "Enter a new category name. Select the kind before adding it." msgstr "" -"Geef een nieuwe categorienaam in. Selecteer het type voor dat u de naam " -"toevoegd." +"Geef een nieuwe categorienaam op. Selecteer het type voor het toevoegen." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories_ui.py:170 msgid "Add the new category" @@ -8018,12 +8050,12 @@ msgid "%s (was %s)" msgstr "%s (was %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "Veld is leeg" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "Een veld kan niet leeg zijn. U dient het te verwijderen." @@ -8107,7 +8139,7 @@ msgid "Discard changes" msgstr "Verwerp veranderingen" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Annuleer" @@ -8314,6 +8346,63 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Recept bron code (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "Email %s to %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Nieuws:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "E-Boek:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "In de bijlage vind je het e-boek." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "door" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "in het %s formaat" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Versturen van email naar" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"Auto-converteer de volgende boeken alvorens ze via email te versturen?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"De volgende boeken konden niet worden ge-emailed omdat geen beschikbare " +"formaten zijn gevonden:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Nieuws verzonden naar" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8357,7 +8446,7 @@ msgstr "" "right:0px; -qt-block-indent:0; text-indent:0px;\">Gebruik de <span style=\" " "font-weight:600;\">Test</span> functionaliteit hieronder om de reguliere " "expressie uit te proberen op een aantal test bestandsnamen. De groepnamen " -"voor de diverse metadata velden zin gedocumenteerd onder " +"voor de diverse metadata velden zijn gedocumenteerd onder " "tooltips.</p></body></html>" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 @@ -8512,23 +8601,23 @@ msgstr "" msgid "Job has already run" msgstr "Taak is al uitgevoerd" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Niet beschikbaar" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Opdrachten" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Klik om een takenlijst te zien" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Taken" @@ -8554,7 +8643,7 @@ msgid "Show books in the main memory of the device" msgstr "Geef de boeken in de het hoofdgeheugen van het apparaat weer" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Geheugenkaart A" @@ -8563,7 +8652,7 @@ msgid "Show books in storage card A" msgstr "Geef de boeken weer die op geheugenkaart A staan" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Geheugenkaart B" @@ -8582,11 +8671,15 @@ msgstr "" "De weergave van boeken zal beperkt worden tot de criteria die aan de " "geselecteerde zoekopdracht voldoen" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "Shift+Ctrl+F" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "Geavanceerde Zoekopdracht" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" @@ -8594,27 +8687,27 @@ msgstr "" "<p>Zoek door de boekenlijst gesorteerd op titel, auteur, uitgever, labels, " "commentaar, enz.<br><br>Woorden gescheiden door spaties worden samengevoegd" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" msgstr "&Ga!" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" msgstr "Ga snelzoeken (je kunt ook Enter drukken)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "Snelzoeken wissen" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "Kopieer de huidige zoektekst (in plaats van zoeknaam)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "Bewaar de huidige zoekopdracht onder de naam getoond in de box" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "Verwijder de huidige bewaarde zoekopdracht" @@ -8642,7 +8735,7 @@ msgstr "Boek %s van %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "De zoekopdracht is \"{0}\"" @@ -8671,47 +8764,47 @@ msgstr "Gemarkeerd voor wissen" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Dubbel-klik om me te <b>wijzigen</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Verberg kolom %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Sorteer op %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Oplopend" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Aflopend" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Verander de uitlijning van de text voor %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Links" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Rechts" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Midden" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Geef kolom weer" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Herstel standaard layout" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8745,7 +8838,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>Geen Resultaten</b> voor de zoekterm <i>%s</i> gevonden." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Geen resultaten gevonden" @@ -8762,12 +8855,12 @@ msgid "LRF Viewer toolbar" msgstr "LRF viewer werkbalk" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Volgende Pagina" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Vorige Pagina" @@ -8811,7 +8904,7 @@ msgid "Do not check for updates" msgstr "Check niet voor updates" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Calibre Bibliotheek" @@ -8949,37 +9042,37 @@ msgstr "Boek heeft geen titel en geen ISBN" msgid "No matches found for this book" msgstr "Geen overeenkomsten gevonden voor dit boek" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "Metagegevens downloaden mislukt" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Gedownload" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "Verkrijgen mislukt" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s van: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Voltooid" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "Metagegevens downloaden succesvol voor %d van %d boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Details" @@ -9528,27 +9621,27 @@ msgstr "Geef &tekst onder de iconen weer:" msgid "&Split the toolbar into two toolbars" msgstr "&Splits de werkbalk in twee werkbalken" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "Toep&assen" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Stan&daard terugzetten" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "Bewaar veranderingen" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Annuleer en terug naar overzicht" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "Terugzetten naar standaard niet ondersteund voor" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9556,7 +9649,7 @@ msgstr "" "Voor sommige van de veranderingen is een herstart nodig. Herstart Calibre zo " "snel mogelijk." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9564,7 +9657,7 @@ msgstr "" "Voor de veranderingen die je hebt gemaakt moet Calibre onmiddelijk " "herstarten. Je kunt geen instellingen meer aanpassen tot je herstart." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Herstart nodig" @@ -9653,8 +9746,8 @@ msgid "" "users might do to force it to use the ';' that the kindle requires. A third " "would be to specify the language." msgstr "" -"Her kun je de metagegevens die calibre gebruikt om een boek te updaten " -"wanneer je deze opslaat of naar een apparaat stuurt.\n" +"Hier kun je de metagegevens aanpassen die calibre gebruikt om een boek te " +"updaten wanneer je deze opslaat of naar een apparaat stuurt.\n" "\n" "Gebuik dit om een 'pluginset' te maken voor een formaat (of alle formaten) " "en een apparaat (of alle apparaten). De pluginset geeft aan welke template " @@ -9664,8 +9757,8 @@ msgstr "" "hoeft niet. Je kunt elke template gebruiken in een bronveld die je elders in " "calibre kunt gebruiken. \n" "\n" -"Een mogelijk gebruik van een pluginset is het veranderen van de titel om " -"serie informatie te bevatten. Een andere kan auteursortering wijzigen, iets " +"Een mogelijk gebruik van een pluginset is het veranderen van de titel zodat " +"deze serie informatie bevat. Een andere kan auteursortering wijzigen, iets " "dat mobi-gebruikers zouden kunnen doen om ; te gebruiken, dat bij een kindle " "verplicht is." @@ -9815,11 +9908,11 @@ msgid "" "particular book does not have some metadata, the variable will be replaced " "by the empty string." msgstr "" -"Door het volgende sjabloon aan te passen, kun je beinvloeden in welke " -"folders de bestanden worden opgeslagen, en met welke namen. Je kunt het '/' " -"karakter gebruiken om subfolders aan te geven. Beschikbare metagegevens " -"variabelen worden hieronder omschreven. Als een specifiek boek sommige " -"metagegevens mist, dan zal de variabele een lege regel bevatten." +"Door het volgende sjabloon aan te passen, kun je beïnvloeden in welke mappen " +"de bestanden worden opgeslagen en met welke namen. Je kunt het '/' karakter " +"gebruiken om submappen aan te geven. Beschikbare metagegevens variabelen " +"worden hieronder beschreven. Als een specifiek boek sommige metagegevens " +"mist, dan zal de variabele een lege regel bevatten." #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template_ui.py:49 msgid "Available variables:" @@ -9917,7 +10010,7 @@ msgstr "" ">Geavanceerd->Plugins" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Content server kon niet worden gestart" @@ -10137,7 +10230,7 @@ msgstr "&Huidige aanpassingen" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Zoeken" @@ -10238,26 +10331,22 @@ msgstr "Wissen" msgid "&Alternate shortcut:" msgstr "&Alternative snelkoppeling" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Hernoem '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Bewerk sorteeropdracht voor '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Verberg categorie %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Toon categorie" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Bekijk alle categorieën" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10272,58 +10361,62 @@ msgstr "Beheer opgeslagen zoekopdrachten" msgid "Manage User Categories" msgstr "Beheer gebruikerscategorïen" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Bekijk alle categorieën" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" "Het veranderen van auteurs voor deze boeken kan even duren. Weet je het " "zeker?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "Het veranderen van metagegevens voor zoveel boeken kan lang duren. Weet je " "het zeker?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Zoekopdrachten" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Dupliceer naam zoekopdracht" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "De opgeslagen zoekopdracht %s is reeds in gebruik" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Sorteer op naam" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Sorteer op populariteit" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Sorteer op gemiddelde score" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Leg de sorteervolgorde vast voor de items in de labelbrowser" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Match alle" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Match iedere" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" @@ -10331,11 +10424,11 @@ msgstr "" "items die aan alle criteria voldoen, of selecteer items die aan één van deze " "criteria voldoen" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" -msgstr "Beheer &door de gebruiker gecreëerde categorien" +msgstr "Beheer &gebruikerscategorieën" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Voeg je eigen categorïen to aan de labelbrowser" @@ -10382,28 +10475,28 @@ msgstr "" "De volgende boeken waren al geconverteerd naar %s formaat. Wil je dit " "nogmaals doen?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "He&rstellen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "Ondersteun calibre met een &Donatie" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "Aangesloten apparaat ontkoppelen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Calibre snelstart handboek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Converteer Fout" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10411,15 +10504,15 @@ msgstr "" "<p>Kon %s niet converteren.<p>Het is een eboek met <A HREF=\"%s\">DRM</a>. " "Je moet eerst de DRM verwijderen met externe programma's." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Recept uitgeschakeld" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Mislukt</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10430,12 +10523,12 @@ msgstr "" "van het programma te steunen. Jouw donatie helpt om de ontwikkeling voort te " "zetten." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" "Er zijn actieve werk opdrachten. Weet je zeker dat je af wilt sluiten?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10446,11 +10539,11 @@ msgstr "" "apparaat.<br>\n" " Weet je zeker dat je af wilt sluiten?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "Waarschuwing: actieve werk opdrachten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10629,17 +10722,17 @@ msgstr "&Keyboard snelkoppeling" msgid "No results found for:" msgstr "Geen resultaten gevonden voor:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Opties om de eboek viewer te verpersoonlijken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "onthoudt de laatst gebruikte venster grootte" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10647,80 +10740,80 @@ msgstr "" "Definieer de gebruiker CSS stylesheet. Dit kan worden gebruikt om het " "uiterlijk van alle boeken te verpersoonlijken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Maximale breedte van het viewer venster, in pixels." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "Herschaal afbeeldingen groter van viewer scherm zodat deze passen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "afbreekstreep in tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Standaard taal voor regelafbreek afhandeling" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Lettertype Opties" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "De Schreef (Serif) lettertype familie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "De Schreefloze (Sans-Serif) lettertype familie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "De niet-proportionele (monospace) lettertype familie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "De standaard lettergrootte in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "De niet-proportionele lettergrootte in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Het Standaard lettertype" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&Zoek in woordenboek" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Ga naar..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Volgende sectie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Vorige sectie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "Begin van document" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Einde van document" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "Begin van sectie" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Einde van sectie" @@ -10790,89 +10883,89 @@ msgstr "" msgid "Search for text in book" msgstr "Zoek naar tekst in boek" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Afdrukvoorbeeld" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Verbinden met dict.org om op te zoeken: <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Kies eboek" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Eboeken" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Geen zoekterm gevonden voor: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "Bezig met het laden van de omslagbrowser..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Opbaren %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Bladwijzer #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Bladwijzer toevoegen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Geef titel voor bladwijzer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Beheer Bladwijzers" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "Eboek wordt geladen..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM foutmelding" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Dit boek wordt beschermd door <A HREF=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "EBoek kan niet worden geopend" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:691 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Opties voor de eboek viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Indien gespecificeerd, dan zal het viewer venster proberen naar voren te " "komen na het opstarten." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Als dit is opgegeven zal het leesvenster proberen om volledig scherm te " "openen." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Print javascript waarschuwingen en console berichten op de console" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10990,7 +11083,7 @@ msgstr "Verberg" msgid "Toggle" msgstr "Omschakelen" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -11000,7 +11093,7 @@ msgstr "" "kun je de calibre boek collectie direct op je telefoon bekijken. Om dit te " "doen zul je de content server moeten inschakelen." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -11008,7 +11101,7 @@ msgstr "" "Denk er aan om calibre open te laten, aangezien de server alleen werkt " "zolang calibre draait" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -11018,20 +11111,20 @@ msgstr "" "bibliotheek. myhostname is de volledige hostname of het IP address van de " "computer waar calibre op draait." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "Verplaatsen bibliotheek..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Bibliotheek kon niet worden verplaatst" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "ongeldige database" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -11039,21 +11132,21 @@ msgstr "" "<p>Een ongeldige bibliotheek bestaat at in %s, verwijder deze alvorens " "nogmaals te proberen de bestaande bibliotheek te verplaatsen.<br>Fout: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Bibliotheek kon niet worden verplaatst" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Selecteer de locatie voor boeken" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "Je moet een lege map kiezen voor de calibre bibliotheek. %s is niet leeg." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "Welkom Wizard" @@ -11138,11 +11231,12 @@ msgstr "Kies je &taal:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Kies een locatie voor je boeken. Wanneer je boeken toevoegt aan Calibre, dan " -"zullen ze hier naar toe worden gekopieerd:" +"<p>Kies een locatie voor je boeken. Als je boeken toevoegt aan calibre " +"zullen ze hierheen gekopieerd worden. Gebruik een <b>lege map</b> voor een " +"nieuwe calibre bibliotheek." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11158,48 +11252,78 @@ msgstr "" "locatie worden gecopieerd. Als er al een bestaande bibliotheek is in de " "nieuwe locatie, dan zal calibre hier naar overschakelen." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Gebruik: %s:%s@%s:%s en %s versleuteling" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Bezig met versturen..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "Email succesvol" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Beëindig gmail installatie" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Vergeet je gmail gebruikersnaam en wachtwoord niet. Je kunt een gratis gmail " -"account verkrijgen op http://gmail.com" +"Als je een nieuw hotmail account aanmaakt, moet je een keer inloggen voor je " +"er emails mee kunt verzenden." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"Je kunt je opgeven voor een gratis {name} email account bij <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "Je %s &email adres:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "Je %s gebr&uikersnaam" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "Je %s &wachtwoord" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"Als je email wilt gebruiken om boeken naar je Kindle te zenden, onhou dan " +"dat je je %s email adres bij de toegestane email adressen moet toevoegen op " +"de Amazon.com Kindle management pagina." + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "Instellen" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Ongeldige configuratie" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Voer het adres van de email zender in" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "Voer de gebruikernaam en wachtwoord voor de mailserver in" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Verstuur email &van:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11207,7 +11331,7 @@ msgstr "" "<p>Dit is wat wordt gebruikt in het from: (verzender) veld van emails die " "worden verstuurd door calibre.<br> Voer hier je email adres in" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11215,51 +11339,51 @@ msgstr "" "<p>Een mailserver is handig als de service waar je email naar toe stuurt " "alleen email accepteerd van bekende email services." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "Mail &Server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "Calibre kan <b>optioneel</b> een server gebruiken om mail te versturen" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Hostnaam:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "De hostnaam van je mail server, bijvoorbeeld: smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Poort:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "De poort waarop je mail server luistert naar connecties. Standaard is poort " "25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "Je gebruikersnaam op de mailserver" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "Je wachtwoord op de mailserver" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "Weerge&ven" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "V&ersleuteling:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11267,23 +11391,35 @@ msgstr "" "Gebruik TLS versleuteling voor de verbinding met de mailserver. Dit is de " "meest gebruikelijke." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Gebruik SSL versleuteling voor de verbinding met de mailserver." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Gebruik GMail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Gebruik Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Test email" @@ -11350,7 +11486,7 @@ msgstr "leeg" msgid "empty" msgstr "leeg" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11364,7 +11500,7 @@ msgstr "" "Standaard: '%%default'\n" "Betrekking tot: CSV, XML uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11376,7 +11512,7 @@ msgstr "" "Standaard: '%default'\n" "Betrekking op: CSV, XML uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11390,7 +11526,7 @@ msgstr "" "Standaard: '%%default'\n" "Van toepassing voor: BIBTEX weergave formaat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11402,7 +11538,7 @@ msgstr "" "Standaard: '%default'\n" "Van toepassing voor: BIBTEX weergave formaat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11414,7 +11550,7 @@ msgstr "" "Standaard: '%default'\n" "Van toepassing voor: BIBTEX weergave formaat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11429,7 +11565,7 @@ msgstr "" "Standaard: '%%default'\n" "Van toepassing voor: BIBTEX weergave formaat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11441,7 +11577,7 @@ msgstr "" "Standaard: '%default'\n" "Van toepassing op: BIBTEX weergave formaat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11453,7 +11589,7 @@ msgstr "" "Standaard: '%default'\n" "Van toepassing op: BIBTEX weergave formaat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11465,7 +11601,7 @@ msgstr "" "Standaard: '%default'\n" "Van toepassing op: BIBTEX weergave formaat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11476,7 +11612,7 @@ msgstr "" "Standaard: '%default'\n" "Betrekking tot: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11490,7 +11626,7 @@ msgstr "" "Standaard: '%default'None\n" "Betrekking tot: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11500,7 +11636,7 @@ msgstr "" "Standaard: '%default' uitgezonderd labels in haken, b.v. '[<label>]'\n" "Betrekking tot: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11515,7 +11651,7 @@ msgstr "" "Standaard: '%default'\n" "Is van toepassing op: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11525,7 +11661,7 @@ msgstr "" "Standaardwaarde: '%default'\n" "Van toepassing voor: ePub, MOBI uitvoerformaten." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11535,7 +11671,7 @@ msgstr "" "Standaard: '%default'\n" "Geldt voor: ePub, MOBI uitvoerformaten." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11545,7 +11681,7 @@ msgstr "" "Standaardwaarde: '%default'\n" "Van toepassing voor: ePub, MOBI uitvoerformaten." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11556,7 +11692,7 @@ msgstr "" "Standaard: '%default'\n" "Betrekking tot: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11570,7 +11706,7 @@ msgstr "" "Standaardwaarde: '%default'\n" "Van toepassing voor: ePub, MOBI uitvoerformaten." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11586,7 +11722,7 @@ msgstr "" "Standaard: '%default'\n" "Betrekking tot: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11596,6 +11732,16 @@ msgstr "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Tag waarmee een boek wordt weergegeven als wenslijst item.\n" +"Standaard: '%default'\n" +"Geldt voor: ePub, Mobi uitvoerformaten" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Ongeldige titels" @@ -11732,9 +11878,9 @@ msgid "" msgstr "" "%prog add [opties] bestand1 bestand2 bestand3 ...\n" "\n" -"Voeg de opgegeven bestanden toe als boeken in de database. Folders kunnen " -"ook worden\n" -"opgegeven, zie de folder gerelateerde opties hier onder.\n" +"Voeg de opgegeven bestanden toe als boeken in de database. Mappen kunnen ook " +"worden\n" +"opgegeven, zie de map gerelateerde opties hier onder.\n" #: /home/kovid/work/calibre/src/calibre/library/cli.py:279 msgid "" @@ -11747,7 +11893,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:281 msgid "Process directories recursively" -msgstr "Bewerk folders recursief" +msgstr "Bewerk mappen recursief" #: /home/kovid/work/calibre/src/calibre/library/cli.py:283 msgid "" @@ -12228,7 +12374,7 @@ msgstr "" "corrupt is.\n" "\n" "WAARSCHUWING: Dit zal je database compleet herbouwen. Je raakt alle\n" -"bewaarde zoektermen, gebruikerscategorien, pluginsets, " +"bewaarde zoektermen, gebruikerscategorieën, pluginsets, " "conversieinstellingen\n" "en recepten kwijt. Herstelde metagegevens zullen net zo accuraat zijn als " "wat er\n" @@ -12326,35 +12472,35 @@ msgstr "" "Het label mag alleen bestaan uit kleine letters, cijfers en underscores, en " "moet beginnen met een letter." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sGemiddelde waardering is %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Algemeen" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "<p>Migreer oude database naar eboek bibliotheek in %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Kopiëren van <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Comprimeren database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Verifiëren SQL integriteit..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Zoeken naar verloren bestanden" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "id gecontroleerd" @@ -12474,10 +12620,10 @@ msgid "" "subdirectory with filenames containing title and author. Available controls " "are: {%s}" msgstr "" -"Het sjabloon dat de bestandsnaam en folder structuur bepaalt voor de " -"opgeslagen bestanden. Standaard is \"%s\", en dit slaat boeken op in per-" -"auteur folders met daarin bestandsnamen met de titel en auteur. Beschikbare " -"opties zijn: {%s}" +"Het sjabloon dat de bestandsnaam en mapstructuur bepaalt voor de opgeslagen " +"bestanden. Standaard is \"%s\", en dit slaat boeken op in per-auteur mappen " +"met daarin bestandsnamen met de titel en auteur. Beschikbare opties zijn: " +"{%s}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:79 msgid "" @@ -12486,10 +12632,10 @@ msgid "" "directory with filenames containing title and author. Available controls " "are: {%s}" msgstr "" -"Het sjabloon om de bestands en folder namen te definieren van de bestanden " -"die naar het appraat worden gestuurd. Standaard is \"%s\", wat boeken " -"opslaat in folders per auteur, met bestandsnamen die zowel de titel an " -"auteur bevatten. BEschikbare instellingein zijn: {%s}" +"Het sjabloon om de bestands- en mapnamen te definiëren van de bestanden die " +"naar het apparaat worden gestuurd. Standaard is \"%s\", wat boeken opslaat " +"in folders per auteur, met bestandsnamen die zowel de titel an auteur " +"bevatten. Beschikbare instellingen zijn: {%s}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:86 msgid "" @@ -12498,9 +12644,9 @@ msgid "" "experience errors when saving, depending on how well the filesystem you are " "saving to supports unicode." msgstr "" -"Normaal gesproken zal calibre alle niet-Engelse karaters automatisch in de " +"Normaal gesproken zal calibre alle niet-Engelse karakters automatisch in de " "Engelse equivalenten converteren voor bestandsnamen. WAARSCHUWING: als je " -"dit uitschakeld dan kun je fouten krijgen tijdens het opslaan, afhankelijk " +"dit uitschakelt dan kun je fouten krijgen tijdens het opslaan, afhankelijk " "van hoe goed je bestandssysteem unicode ondersteund." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:92 @@ -12514,7 +12660,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:98 msgid "Convert paths to lowercase." -msgstr "Converteer folders naar kleine letters" +msgstr "Converteer mappen naar kleine letters." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:100 msgid "Replace whitespace with underscores." @@ -12581,130 +12727,129 @@ msgstr "" "Voorvoegsel voor URL's. Handig voor reverseproxying van deze server vanaf " "Apache/nginx/etc." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "" -"Wachtwoord om toegang te verkrijgen tot je calibre bibliotheek. " -"Gebruikersnaam is " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "Laden, wachten aub" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "Ga naar" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Eerste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Laatste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Vorige" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Volgende" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "Verken %d boeken" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "Gemiddelde waardering" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f sterren" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d sterren" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Populariteit" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Sorteren met" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "bibliotheek" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "thuis" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Nieuwste" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Alle boeken" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Verken boeken met" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Kies een categorie om mee te verkennen" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Verkennen met" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Omhoog" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "in" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Boeken in" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Andere formaten" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "Lees %s in het %s formaat" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Verkrijg" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Permalink" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "Een permanente koppeling naar dit boek" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Dit boek is verwijderd" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "zoekende" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Boeken vergelijken" @@ -13041,7 +13186,7 @@ msgstr "SSH sessie kon niet tot stand worden gebracht: " msgid "Failed to authenticate with server: %s" msgstr "Authenticatie met server mislukt: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Wijzig email verzending" @@ -14475,6 +14620,14 @@ msgstr "Download geen CSS stylesheets" #~ msgid "Communicate with the Nokia 810 internet tablet." #~ msgstr "Communiceer met het Nokia 810 internet tablet." +#~ 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 "" +#~ "Gemiddelde regel lengte voor afbreken van regels als de HTML afkomstig is " +#~ "van een oudere gedeeltelijke conversie van een PDF bestand. Standaard is " +#~ "%default , wat dit uitschakeld." + #~ 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 " @@ -14552,6 +14705,15 @@ msgstr "Download geen CSS stylesheets" #~ msgid "Send specific format to main memory" #~ msgstr "Zend specifiek formaat naar hoofdgeheugen" +#~ msgid "Sent by email:" +#~ msgstr "Verstuurd via email:" + +#~ msgid "Failed to email the following books:" +#~ msgstr "De volgende boeken konden niet worden ge-emailed:" + +#~ msgid "Failed to email books" +#~ msgstr "Boeken konden niet worden ge-emailed." + #~ msgid "" #~ "Content\n" #~ "Server" @@ -14643,6 +14805,9 @@ msgstr "Download geen CSS stylesheets" #~ "wereld. Als je het nuttig vind, overweeg dan svp te doneren om de " #~ "ontwikkeling te ondersteunen." +#~ msgid "Attached is the" +#~ msgstr "Bijgevoegd is de" + #~ msgid "Double click to change a keyborad shortcut" #~ msgstr "Dubbel klik om een keyboard snelkoppeling te wijzigen" @@ -14697,6 +14862,16 @@ msgstr "Download geen CSS stylesheets" #~ msgid "Click to see the books on storage card A in your reader" #~ msgstr "Klik hier om de boeken te zien op opslagkaart A in je lezer" +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Vergeet je gmail gebruikersnaam en wachtwoord niet. Je kunt een gratis gmail " +#~ "account verkrijgen op http://gmail.com" + +#~ msgid "Finish gmail setup" +#~ msgstr "Beëindig gmail installatie" + #~ msgid "The author sort string" #~ msgstr "De auteur sorteer sleutel" @@ -14726,6 +14901,11 @@ msgstr "Download geen CSS stylesheets" #~ "\n" #~ "Start de calibre content server" +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "" +#~ "Wachtwoord om toegang te verkrijgen tot je calibre bibliotheek. " +#~ "Gebruikersnaam is " + #~ msgid "English (TH)" #~ msgstr "Engels (TH)" @@ -14795,6 +14975,9 @@ msgstr "Download geen CSS stylesheets" #~ msgid "Tags to exclude as genres (regex):" #~ msgstr "Labels te vermeiden als genres (reguliere expressie):" +#~ msgid " " +#~ msgstr " " + #~ msgid "Communicate with the Teclast K3 reader." #~ msgstr "Communicatie met Telecast K3 Reader" @@ -15015,6 +15198,20 @@ msgstr "Download geen CSS stylesheets" #~ "Geen metagegevens gevonden, probeer een andere titel en auteur of een ander " #~ "ISBN nummer." +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "" +#~ "Bevat: het woord of de uitdrukking komt ergens in de metagegevens voor" + +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Reguliere expressie: de expressie moet ergens in de metagegevens voorkomen" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Gelijk aan: het woord of de zin komt overeen met een compleet veld in de " +#~ "metagegevens" + #~ msgid "Preserve all collections even if not in library metadata." #~ msgstr "" #~ "Onthoud alle collecties zelfs als deze zich niet in de metagegevens van de " @@ -15081,12 +15278,60 @@ msgstr "Download geen CSS stylesheets" #~ msgid "&Restore to defaults" #~ msgstr "&Reset naar standaardwaarden" +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Schrijf een lijst van ISBN codes in het linkervak, 1 code per regel. " +#~ "Calibre zal automatisch records creëren voor de boeken aan de hand van de " +#~ "ISBN codes en de gedownloade metadata en omslagen. <p>Ongeldige ISBN codes " +#~ "worden genegeerd." + #~ msgid "Applying changes to %d books. This may take a while." #~ msgstr "Wijzigingen toepassen op %d boeken. Dit kan geruime tijd duren." +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Kies een locatie voor je boeken. Wanneer je boeken toevoegt aan Calibre, dan " +#~ "zullen ze hier naar toe worden gekopieerd:" + #~ msgid "You cannot change libraries when a device is connected." #~ msgstr "" #~ "Je kunt niet van bibliotheek wisselen wanneer het apparaat is aangesloten" #~ msgid "Toolbars/Context menus" #~ msgstr "Knoppenbalken/Context menu's" + +#~ msgid "" +#~ "<b>You can destroy your library using this feature.</b> Changes are " +#~ "permanent. There is no undo function. This feature is experimental, and " +#~ "there may be bugs. You are strongly encouraged to back up your library " +#~ "before proceeding.<p>Search and replace in text fields using character " +#~ "matching or regular expressions. " +#~ msgstr "" +#~ "<b>Je kunt je bibliotheek met deze functie kapot maken.</b> Veranderingen " +#~ "zijn permanent. Je kunt niet ongedaan maken. Deze functie is experimenteel " +#~ "en er kunnen fouten optreden. Je wordt sterk aangeraden eerst een backup van " +#~ "je bibliotheek te maken voor je verder gaat.<p>Zoek en vervang in " +#~ "tekstvelden met karaktercombinaties of reguliere expressies. " + +#~ msgid "&Search and replace (experimental)" +#~ msgstr "Zoek tek&st en vervang (experimenteel)" + +#~ 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 "" +#~ "De volgende boeken hadden formaten in de database die niet beschikbaar zijn. " +#~ "De opgaves voor deze formaten zijn verwijderd. Je zult deze handmatig moeten " +#~ "nakijken. Dit kan gebeuren als je de bestanden in de mappen zelf hebt " +#~ "aangepast." + +#~ msgid "No details available" +#~ msgstr "Geen details beschikbaar" diff --git a/src/calibre/translations/pl.po b/src/calibre/translations/pl.po index ed88f7be29..222c189949 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 <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-06 15:45+0000\n" -"PO-Revision-Date: 2010-11-07 14:27+0000\n" +"POT-Creation-Date: 2010-11-12 23:11+0000\n" +"PO-Revision-Date: 2010-11-12 22:43+0000\n" "Last-Translator: B.J. Stobiecki <bjfs84@gmail.com>\n" "Language-Team: Polish <pl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-08 05:10+0000\n" +"X-Launchpad-Export-Date: 2010-11-13 04:53+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -31,7 +31,7 @@ msgstr "Ta opcja zupeÅ‚nie nic nie zmienia" #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:650 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -74,14 +74,14 @@ msgstr "Ta opcja zupeÅ‚nie nic nie zmienia" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:620 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:826 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:828 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -123,8 +123,8 @@ msgstr "Ta opcja zupeÅ‚nie nic nie zmienia" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1249 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1252 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 @@ -192,7 +192,7 @@ msgstr "Akcja interfejsu użytkownika." msgid "Preferences" msgstr "Preferencje" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -202,7 +202,7 @@ msgstr "" "zawierajÄ…cy wszystkie podlinkowane pliki. Ta wtyczka jest uruchamiana za " "każdym razem, gdy dodasz plik HTML do biblioteki." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -210,7 +210,7 @@ msgstr "" "Kodowanie znaków dla źródÅ‚owych plików HTML. Popularne wybory to: cp1252, " "latin1, iso-8859-1 i utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -220,7 +220,7 @@ msgstr "" "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:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "WyodrÄ™bnij okÅ‚adki z plików komiksów" @@ -267,43 +267,43 @@ msgstr "Ustaw metadane w %s plikach" msgid "Set metadata from %s files" msgstr "Pobierz metadane z %s plików" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712 msgid "Look and Feel" msgstr "WyglÄ…d" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:726 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748 msgid "Interface" msgstr "Interfejs" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "Dostosowanie wyglÄ…du interfejsu Calibre do indywidualnych upodobaÅ„" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724 msgid "Behavior" msgstr "DziaÅ‚anie" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:730 msgid "Change the way calibre behaves" msgstr "ZmieÅ„ zachowanie programu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Dodaj wÅ‚asne kolumny" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:741 msgid "Add/remove your own columns to the calibre book list" msgstr "Dodaj/usuÅ„ swoje kolumny do/z listy książek" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Customize the toolbar" msgstr "Dopasuj pasek narzÄ™dziowy" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -311,129 +311,129 @@ msgstr "" "Dopasuj paski narzÄ™dzi i menu kontekstowe, zmieniajÄ…c czynnoÅ›ci, jakie sÄ… im " "przypisane" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758 msgid "Input Options" msgstr "Opcje wejÅ›cia" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:760 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:771 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782 msgid "Conversion" msgstr "Konwersja" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:764 msgid "Set conversion options specific to each input format" msgstr "ZmieÅ„ ustawienia konwersji specyficzne dla każdego formatu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Common Options" msgstr "Opcje wspólne" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:775 msgid "Set conversion options common to all formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Output Options" msgstr "Opce WyjÅ›ciowe" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:786 msgid "Set conversion options specific to each output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Adding books" msgstr "Dodawanie książek" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:793 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:805 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 msgid "Import/Export" msgstr "Importuj/Eksportuj" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797 msgid "Control how calibre reads metadata from files when adding books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:803 msgid "Saving books to disk" msgstr "Zapisuje książki na dysku" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:815 msgid "Sending books to devices" msgstr "PrzesyÅ‚anie książek na urzÄ…dzenie" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:821 msgid "Control how calibre transfers files to your ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:827 msgid "Metadata plugboards" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:833 msgid "Change metadata fields before saving/sending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Sharing books by email" msgstr "Dzielenie siÄ™ książkami poprzez email" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:840 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852 msgid "Sharing" msgstr "UdostÄ™pnianie" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:850 msgid "Sharing over the net" msgstr "Współdzielenie poprzez sieć" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:856 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:863 msgid "Plugins" msgstr "Wtyczki" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:877 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:888 msgid "Advanced" msgstr "Zaawansowane" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:869 msgid "Add/remove/customize various bits of calibre functionality" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875 msgid "Tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:881 msgid "Fine tune how calibre behaves in various contexts" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Miscellaneous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:892 msgid "Miscellaneous advanced configuration" msgstr "" @@ -479,7 +479,7 @@ msgstr "" "jeÅ›li nie wiesz nic o dokumencie wejÅ›ciowym." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -491,63 +491,63 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia SONY PRS-300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Ten profil przeznaczony jest dla programu Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Ten profil przeznaczony jest dla urzÄ…dzeÅ„ Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Hanlin V3 i jego klonów." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Hanlin V5 i jego klonów." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "" "Ten profil przeznaczony jest dla urzÄ…dzenia IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia IRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia B&N Nook." @@ -565,29 +565,29 @@ msgstr "" "jeÅ›li chcesz stworzyć dokument przeznaczony do odczytu na komputerze lub " "wiÄ™kszej liczbie urzÄ…dzeÅ„." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Przeznaczone dla iPada i podobnych urzÄ…dzeÅ„ z rozdzielczoÅ›ciÄ… 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Ten profil przeznaczony jest dla 5 calowego urzÄ…dzenia JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -595,11 +595,11 @@ msgstr "" "Ten profil przeznaczony jest dla urzÄ…dzeÅ„ z linii SONY PRS w trybie " "panoramicznym. Np. 500/505/700 itd. Głównie użyteczny przy komiksach." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Ten profil przeznaczony jest dla urzÄ…dzenia Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:686 msgid "This profile is intended for the Sanda Bambook." msgstr "" @@ -676,7 +676,7 @@ msgstr "Wyłącz wtyczkÄ™" msgid "Communicate with Android phones." msgstr "Umożliwia komunikacjÄ™ z telefonami z Androidem." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -684,7 +684,7 @@ msgstr "" "Oddzielona przecinkami lista katalogów na urzÄ…dzeniu, do których majÄ… być " "wysyÅ‚ane książki. Zostanie użyty pierwszy istniejÄ…cy katalog." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Umożliwia komunikacjÄ™ z telefonami S60." @@ -1034,6 +1034,14 @@ msgstr "Nook" msgid "Communicate with the Nook eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Umożliwia komunikacjÄ™ z czytnikiem książek Nuut2." @@ -2354,8 +2362,8 @@ msgstr "Tak" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 @@ -2389,8 +2397,8 @@ msgstr "Producent" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 @@ -2680,7 +2688,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "OkÅ‚adka" @@ -2717,75 +2725,75 @@ msgstr "" msgid "All articles" msgstr "Wszystkie artykuÅ‚y" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" "To jest książka z czytnika Amazon Topaz. Nie może ona zostać przetworzona." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Strona tytuÅ‚owa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Spis treÅ›ci" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Spis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "SÅ‚owniczek" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "PodziÄ™kowania" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Prawa autorskie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dedykacja" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "PrzedsÅ‚owie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Lista ilustracji" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Lista tabel" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Notatki" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "WstÄ™p" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Tekst główny" @@ -3755,7 +3763,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Niedozwolone" @@ -3822,7 +3830,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:683 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 msgid "Failed" msgstr "Nie udaÅ‚o siÄ™" @@ -4541,11 +4549,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 @@ -4554,10 +4562,10 @@ msgstr "Åšcieżka" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 @@ -4588,7 +4596,7 @@ msgstr "Kliknij, aby otworzyć" msgid "None" msgstr "Brak" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 msgid "Double-click to open Book Details window" msgstr "" @@ -4801,6 +4809,19 @@ msgstr "" msgid "Tab template for catalog.ui" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 " @@ -4808,11 +4829,11 @@ msgid "" "specified in the Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Masowa konwersja" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opcje specyficzne dla formatu wyjÅ›ciowego." @@ -5299,6 +5320,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "&Cykl:" @@ -5485,7 +5507,7 @@ msgid "Options specific to the input format." msgstr "Opcje dotyczÄ…ce formatu źródÅ‚owego." #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5676,8 +5698,8 @@ msgid "Force maximum line length" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -5983,10 +6005,10 @@ msgstr "WysyÅ‚anie wiadomoÅ›ci do" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1174 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1301 msgid "No suitable formats" msgstr "Brak odpowiednich formatów" @@ -6015,49 +6037,49 @@ msgstr "PrzesÅ‚anie nastÄ™pujÄ…cych książek poprzez email nie powiodÅ‚o siÄ™:" msgid "Sent by email:" msgstr "PreÅ›lij poprzez email:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1048 msgid "News:" msgstr "AktualnoÅ›ci:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1049 msgid "Attached is the" msgstr "Załączony jest" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1060 msgid "Sent news to" msgstr "WysyÅ‚aj aktualnoÅ›ci do" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1175 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1294 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Dokonać automatycznej konwersji nastÄ™pujÄ…cych książek przed przesÅ‚aniem ich " "na urzÄ…dzenie?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1120 msgid "Sending catalogs to device." msgstr "Trwa wysyÅ‚anie katalogów do urzÄ…dzenia" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207 msgid "Sending news to device." msgstr "PrzesyÅ‚anie aktualnoÅ›ci na urzÄ…dzenie." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1260 msgid "Sending books to device." msgstr "WysyÅ‚anie książek do urzÄ…dzenia." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1302 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:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1366 msgid "No space on device" msgstr "Brak miejsca na urzÄ…dzeniu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1367 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6109,15 +6131,15 @@ msgstr "" msgid "&Paste from clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "&Poprzednia" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "&NastÄ™pna" @@ -6281,6 +6303,7 @@ msgid "Set options for converting %s" msgstr "Ustaw opcje dla konwersji %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&TytuÅ‚:" @@ -6542,13 +6565,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6558,7 +6580,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6573,30 +6595,30 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6837,7 +6859,7 @@ msgid "Your test:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 -msgid "&Search and replace (experimental)" +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -7365,58 +7387,52 @@ msgstr "" msgid "Negate" msgstr "Zaneguj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "Wyszukiwanie zaawansowane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "Znajdź wpisy zawierajÄ…ce..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "&Wszystkie te sÅ‚owa:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "DokÅ‚adnie tÄ™ &frazÄ™:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "&Jedno lub wiÄ™cej z tych słów:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "Ale nie pokazuj wpisów zawierajÄ…cych..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "Którekolwiek z &niechcianych słów:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "Jaki rodzaj porównywania ma być używany:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "Zawieranie: sÅ‚owo lub fraza wystÄ™puje gdziekolwiek w metadanych" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -"Równość: sÅ‚owo lub fraza musi w caÅ‚oÅ›ci pasować do wpisu w metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -"Wyrażenie regularne: wyrażenie musi pasować gdziekolwiek w metadanych" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Znajdź wpisy zawierajÄ…ce..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Wszystkie te sÅ‚owa:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "DokÅ‚adnie tÄ™ &frazÄ™:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "&Jedno lub wiÄ™cej z tych słów:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "Ale nie pokazuj wpisów zawierajÄ…cych..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "Którekolwiek z &niechcianych słów:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" @@ -7424,6 +7440,47 @@ msgstr "" "Zerknij do <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-" "search-interface\">PodrÄ™cznika Użytkownika</a>, aby uzyskać wiÄ™cej informacji" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "Wybierz formaty" @@ -8080,37 +8137,41 @@ msgstr "" "WyÅ›wietlane książki bÄ™dÄ… zawężone do pozycji z wybranego zapisanego " "wyszukania" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "Wyszukiwanie zaawansowane" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "Wyczyść pasek wyszukiwania" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "Skopiuj aktualny tekst wyszukiwania (zamiast nazwy wyszukiwania)" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "Zapisz aktualne wyszukanie pod nazwÄ… pokazanÄ… w polu" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "UsuÅ„ aktualne zapisane wyszukanie" @@ -8167,47 +8228,47 @@ msgstr "Oznaczone do usuniÄ™cia" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Kliknij dwa razy, aby rozpocząć <b>edycjÄ™</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Ukryj kolumnÄ™ %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Posortuj po kolumnie %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "RosnÄ…co" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "MalejÄ…co" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "ZmieÅ„ wyrównanie tekstu dla %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Do lewej" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Do prawej" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "WyÅ›rodkuj" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Pokaż kolumnÄ™" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Przywróć domyÅ›lny ukÅ‚ad" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -10012,7 +10073,7 @@ msgid "Options to customize the ebook viewer" msgstr "Opcje odpowiedzialne za personalizacje przeglÄ…darki książek" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "Remember last used window size" msgstr "ZapamiÄ™taj ostatnio użyty rozmiar okienka" @@ -10188,65 +10249,65 @@ msgstr "E-booki" msgid "No matches found for: %s" msgstr "Nie znalezniono wyników dla: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 msgid "Add bookmark" msgstr "Dodaj zakÅ‚adkÄ™" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 msgid "Enter title for bookmark:" msgstr "Dodaj tytuÅ‚ zakÅ‚adki" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 msgid "Manage Bookmarks" msgstr "ZarzÄ…dzaj zakÅ‚adkami" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 msgid "Loading ebook..." msgstr "Åadowanie książki..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 msgid "DRM Error" msgstr "Błąd DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Ta książka jest chroniona przez <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 msgid "Could not open ebook" msgstr "Nie można otworzyć książki" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:691 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 msgid "Options to control the ebook viewer" msgstr "Opcje odpowiadajÄ…ce za kontolÄ™ nad przeglÄ…darkÄ… książek" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 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:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 msgid "Print javascript alert and console messages to the console" msgstr "WyÅ›wietlaj uwagi javascript'u i widomoÅ›ci konsolowe w konsoli" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 msgid "" "%prog [options] file\n" "\n" @@ -13382,6 +13443,9 @@ msgstr "Nie pobieraj arkuszy styli CSS." #~ msgid "calibre can send your books to you (or your reader) by email" #~ msgstr "calibre może wysÅ‚ać książki do Ciebie (lub czytelnika) przez e-mail" +#~ msgid " " +#~ msgstr " " + #~ msgid "<p>For help see the: <a href=\"%s\">User Manual</a><br>" #~ msgstr "" #~ "<p>Aby uzyskać pomoc otwórz: <a href=\"%s\">PodrÄ™cznik Uzytkownika</a><br>" @@ -13423,6 +13487,18 @@ msgstr "Nie pobieraj arkuszy styli CSS." #~ msgid "Sending to &device" #~ msgstr "PrzesyÅ‚anie na &urzÄ…dzenie" +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "Zawieranie: sÅ‚owo lub fraza wystÄ™puje gdziekolwiek w metadanych" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "" +#~ "Równość: sÅ‚owo lub fraza musi w caÅ‚oÅ›ci pasować do wpisu w metadanych" + +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "" +#~ "Wyrażenie regularne: wyrażenie musi pasować gdziekolwiek w metadanych" + #~ msgid "Configure calibre" #~ msgstr "Konfiguruj calibre" diff --git a/src/calibre/translations/pt.po b/src/calibre/translations/pt.po index 10cf9e8521..b3ca76fd31 100644 --- a/src/calibre/translations/pt.po +++ b/src/calibre/translations/pt.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-10-08 21:12+0000\n" -"PO-Revision-Date: 2010-10-08 20:45+0000\n" +"POT-Creation-Date: 2010-11-26 19:04+0000\n" +"PO-Revision-Date: 2010-11-26 21:57+0000\n" "Last-Translator: Kovid Goyal <Unknown>\n" "Language-Team: Portuguese <pt@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-10-09 12:10+0000\n" +"X-Launchpad-Export-Date: 2010-11-27 04:49+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,20 +27,21 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:413 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:526 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:399 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/metadata.py:56 #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:407 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:72 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:336 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:339 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -53,34 +54,34 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:333 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:65 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:126 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1017 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1129 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1022 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1134 #: /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/snb.py:16 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:65 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:909 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:914 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:980 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -88,7 +89,7 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -108,52 +109,52 @@ msgstr "Não faz absolutamente nada" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:277 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:280 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:909 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:918 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1202 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1205 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:381 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:400 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:919 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1112 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:396 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:408 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1269 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1373 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2147 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2149 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2281 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:219 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 -#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:76 +#: /home/kovid/work/calibre/src/calibre/library/server/xml.py:78 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:118 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:64 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:78 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:47 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:50 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:55 msgid "Unknown" msgstr "Desconhecido(a)" @@ -184,14 +185,14 @@ msgstr "Ação de interface do usuário" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "Preferências" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -201,7 +202,7 @@ msgstr "" "contendo todos os ficheiros dos atalhos. Este extra é executado, todas as " "vezes que adiciona um ficheiro HTML à biblioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -209,7 +210,7 @@ msgstr "" "Codificação de caracteres para os ficheiros HTML de origem. As escolhas " "comuns incluem: cp1252, latin1, iso-8859-1 e utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -219,7 +220,7 @@ msgstr "" "directório pmlname_img ou imagens. Este plugin, é executado, todas as vezes " "que você adicionar um arquivo PML à bibilioteca." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Extrai a capa dos ficheiros de banda desenhada" @@ -240,7 +241,8 @@ msgstr "Extrai a capa dos ficheiros de banda desenhada" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:279 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:290 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:300 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:310 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:311 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321 msgid "Read metadata from %s files" msgstr "Lê os metadados dos ficheiros %s" @@ -248,61 +250,61 @@ msgstr "Lê os metadados dos ficheiros %s" msgid "Read metadata from ebooks in RAR archives" msgstr "Lê os metadados dos livros digitais, contidos nos arquivos RAR" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:321 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:332 msgid "Read metadata from ebooks in ZIP archives" msgstr "Lê os metadados dos livros digitais, contidos nos arquivos ZIP" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:334 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:344 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:354 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:345 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:355 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:387 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:397 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:398 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:408 msgid "Set metadata in %s files" msgstr "Define os metadados nos ficheiros %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:365 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:376 msgid "Set metadata from %s files" msgstr "Define os metadados a partir dos ficheiros %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:691 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Aparência e Tacto" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:693 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:705 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:716 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:727 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interface" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:697 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "Ajuste o interface de utilizador do Calibre às suas necessidades" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:703 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "Comportamento" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:709 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Altere o comportamento do Calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Adicione as suas próprias colunas" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "" "Adicione/remova as suas próprias colunas à lista de livros do Calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Personalize a barra de ferramentas" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -310,56 +312,58 @@ msgstr "" "Personalize as barras de ferramentas e menus de contexto, alterando as " "acções que estão disponíveis em cada um" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Opções de entrada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:739 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:750 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:761 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Conversão" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:743 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "Defina opções especifícas para cada formato de entrada" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "Opções Comuns" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Defina opções comuns a todos os formatos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Defina opções específicas para cada formato de saída" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "A adicionar livros" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:772 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:784 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Importar/Exportar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" +"Controlar a forma como o Calibre revê metadados dos ficheiros ao adicionar " +"livros" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "A gravar livros para o disco" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:788 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -367,82 +371,87 @@ msgstr "" "Controle a forma como o Calibre exporta ficheiro da sua base de dados quando " "grava para o disco" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:794 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Enviar livros para os dispositivos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:800 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "Controle a forma como o Calibre transfere livros para o seu e-reader" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:806 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" -msgstr "" +msgstr "Módulos de extensão de metadados" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:812 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" -msgstr "" +msgstr "Alterar os metadados antes de gravar/enviar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Partilhar livros por e-mail" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:819 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:831 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Partilhar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" msgstr "" +"Configurar partilha de livros através de correio electrónico. É possível " +"enviar automaticamente as notícias transferidas para os seus dispositivos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" -msgstr "" +msgstr "Partilha através da Internet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:835 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" msgstr "" +"Configurar o servidor de conteúdos do Calibre para permitir o acesso à sua " +"biblioteca Calibre através da Internet, independentemente do dispositivo ou " +"sítio" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:842 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Extras" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:856 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:867 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Avançadas" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:848 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" -msgstr "" +msgstr "Adicionar/remover/personalizar as funcionalidades do Calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:854 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" -msgstr "" +msgstr "Ajustes" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:860 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" -msgstr "" +msgstr "Ajustar o comportamento do Calibre em vários contextos" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" -msgstr "" +msgstr "Outras Opções" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:871 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" -msgstr "" +msgstr "Outras opções de configuração" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "Origem da conversão" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:129 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:134 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -454,11 +463,11 @@ msgstr "" "documento. Particularmente útil em documentos que não declaram uma " "codificação ou que têm declarações de codificação erradas." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:241 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:246 msgid "Conversion Output" msgstr "Ficheiro de destino da conversão" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:255 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:260 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." @@ -467,11 +476,11 @@ msgstr "" "mais próximo possível da leitura humana. Pode não ter nenhum efeito para " "alguns extras de destino." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:46 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:47 msgid "Input profile" msgstr "Perfil de origem" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:50 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:51 msgid "" "This profile tries to provide sane defaults and is useful if you know " "nothing about the input document." @@ -479,82 +488,82 @@ msgstr "" "Este perfil tenta fornecer predefinições correctas e é útil se não sabe nada " "sobre o documento de origem." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:58 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:425 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" "Este perfil funciona com a linha SONY PRS. Modelos 500/505/600/700 etc." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:70 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:71 msgid "This profile is intended for the SONY PRS 300." msgstr "Este perfil funciona com o SONY PRS 300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:79 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Este perfil funciona com o SONY SONY PRS-900." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:87 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:492 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Este perfil é destinado ao Microsoft Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:98 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:503 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Este perfil é destinado aos livros Mobipocket." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:111 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:516 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Este perfil é destinado ao Hanlin V3 e aos seus clones." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:123 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:528 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Este perfil funciona com o Hanlin V5 e clones." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:133 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Este perfil é destinado ao Cybook G3." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:146 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Este perfil é destinado ao Cybook Opus." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:158 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:560 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Este perfil é destinado ao Amazon Kindle." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:170 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:600 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Este perfil é destinado ao Irex Illiad." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:182 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:613 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Este perfil é destinado ao IRex Digital Reader 1000." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:195 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:627 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Este perfil funciona com o IRex Digital Reader 800." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:207 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:641 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Este perfil funciona com o B&N Nook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:229 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:230 msgid "Output profile" msgstr "Perfil de destino" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:233 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:234 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 " @@ -563,24 +572,28 @@ msgstr "" "Este perfil tenta fornecer predefinições correctas e é útil se quiser criar " "um documento que possa ser lido no computador ou em vários aparelhos." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:269 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "Funciona com o iPad e aparelhos similares com resolução de 768x1024." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:440 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 +msgid "Intended for generic tablet devices, does no resizing of images" +msgstr "Destinado a dispositivos genéricos de tablet" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Este perfil funciona com o Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:453 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." -msgstr "" +msgstr "Este perfil destina-se ao Sony PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:471 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Este perfil é destinado ao JetBook de 5 polegadas." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:480 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -588,10 +601,18 @@ msgstr "" "Este perfil é destinado à linha SONY PRS. A 500/505/700, etc, em modo " "paisagem. Principalmente útil para banda desenhada." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:581 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Este perfil é destinado ao Amazon Kindle DX." +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 +msgid "This profile is intended for the Sanda Bambook." +msgstr "Este perfil destina-se ao Sanda Bambook." + #: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Installed plugins" msgstr "Extras instalados" @@ -610,7 +631,7 @@ msgstr "Extras desactivados" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:38 msgid "Enabled plugins" -msgstr "" +msgstr "Módulos de extensão activados" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:93 msgid "No valid plugin found in " @@ -667,57 +688,65 @@ msgstr "Desactivar o extra mencionado" msgid "Communicate with Android phones." msgstr "Comunica com telefones Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:52 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" msgstr "" +"Lista de directorias separada por vírgulas para enviar e-books para o " +"dispositivo (a primeira existente será usada)" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:94 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." -msgstr "" +msgstr "Comunicação com telefones S60" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:89 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:90 msgid "Apple device" -msgstr "" +msgstr "Dispositivo Apple" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:91 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:92 msgid "Communicate with iTunes/iBooks." -msgstr "" +msgstr "Comunicar com iTunes/iBooks" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:97 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:98 msgid "Apple device detected, launching iTunes, please wait ..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:256 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:259 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:100 +msgid "" +"Cannot copy books directly from iDevice. Drag from iTunes Library to " +"desktop, then add to calibre's Library window." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:260 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:263 msgid "Updating device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:335 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:374 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:943 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:983 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2945 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2985 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:339 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:378 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:947 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:987 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2956 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2996 msgid "%d of %d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:381 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:988 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2991 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:385 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:992 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3002 msgid "finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:556 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:560 msgid "Use Series as Category in iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:558 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:562 msgid "Cache covers from iTunes/iBooks" msgstr "Capas em 'cache' do iTunes/iBooks" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:570 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:574 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" @@ -727,7 +756,7 @@ msgstr "" "Apague-os utilizando a aplicação iBooks.\n" "Carregue em 'Mostrar Detalhes' para obter a lista." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:907 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:911 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." @@ -735,27 +764,29 @@ msgstr "" "Algumas capas não puderam ser convertidas.\n" "Carregue em 'Mostrar Detalhes' para obter a lista." -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2542 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:823 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:853 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:248 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:209 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:222 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2007 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:135 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2553 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:467 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:882 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Notícias" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2543 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1970 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1988 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Catálogo" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2849 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2860 msgid "Communicate with iTunes." msgstr "Comunicar com iTunes." @@ -777,6 +808,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Comunicar com o leitor Cybook Gen 3 / Opus." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Comunica com o leitor EB600." @@ -789,6 +824,10 @@ msgstr "Comunicar com o Astak Mentor EB600" msgid "Communicate with the PocketBook 301 reader." msgstr "Comunicar com o leitor PocketBook 301" +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -847,10 +886,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:248 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:280 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:254 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:272 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." msgstr "A remover os livros do aparelho..." @@ -872,6 +911,10 @@ msgstr "Comunica com o leitor IRex Iliad." msgid "John Schember" msgstr "John Schember" +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:44 +msgid "Cannot get files from this device" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "Comunica com o leitor IRex Digital Reader 1000." @@ -912,16 +955,16 @@ msgstr "" msgid "Communicate with the Kobo Reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:47 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:49 msgid "" "The Kobo supports only one collection currently: the \"Im_Reading\" list. " "Create a tag called \"Im_Reading\" " msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:63 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:66 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:69 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:188 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:65 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:68 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:204 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 @@ -931,26 +974,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "A ir buscar a lista dos livros no aparelho..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:284 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:291 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:279 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:284 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "A apagar os livros da listagem de metadados do aparelho..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:331 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:217 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:248 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "A adicionar os livros à listagem de metadados do aparelho..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:393 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:253 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Não Implementado" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:394 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -969,28 +1012,36 @@ msgid "Communicate with the Sweex MM300" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:79 +msgid "Communicate with the Digma Q600" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:88 msgid "Communicate with the Kogan" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:87 -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:114 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:96 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:123 msgid "Communicate with the Pandigital Novel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:124 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:142 msgid "Communicate with the VelocityMicro" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:142 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:160 msgid "Communicate with the GM2000" msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +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." +msgid "Communicate with the Nokia 810/900 internet tablet." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74 @@ -1005,6 +1056,14 @@ msgstr "" msgid "Communicate with the Nook eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Comunica com o leitor Nuut2." @@ -1023,7 +1082,7 @@ msgid "" "device. Possibilities include: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:149 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:190 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" msgstr "Sem nome" @@ -1040,31 +1099,35 @@ msgstr "" msgid "Communicate with the Newsmy reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:47 +msgid "Communicate with the Pico reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:57 msgid "Communicate with the iPapyrus reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:59 +#: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:68 msgid "Communicate with the Sovos reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:255 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:258 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "Incapaz de detectar o disco %s. Tente reiniciar" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:435 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:438 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:500 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:503 msgid "Unable to detect the %s disk drive." msgstr "Incapaz de detectar o disco %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:593 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:596 msgid "Could not find mount helper: %s." msgstr "É impossível encontrar o ajudante de montagem: %s." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:605 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:608 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -1072,25 +1135,31 @@ msgstr "" "É impossível detectar o disco %s. O seu kernel está provavelmente a exportar " "uma versão obsoleta do SYSFS." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:613 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:616 msgid "Unable to mount main memory (Error code: %d)" msgstr "Incapaz de montar a memória principal (Código de erro: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:750 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:752 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:667 +msgid "" +"The main memory of %s is read only. This usually happens because of file " +"system errors." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:815 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 msgid "The reader has no storage card in this slot." msgstr "O leitor não tem nenhum cartão de memória nesta ranhura." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:754 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:819 msgid "Selected slot: %s is not supported." msgstr "Ranhura seleccionada: %s não é suportado." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:783 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:848 msgid "There is insufficient free space in main memory" msgstr "O espaço livre na memória principal é insuficiente" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:785 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:787 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:850 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:852 msgid "There is insufficient free space on the storage card" msgstr "O espaço livre no cartão de memória é insuficiente" @@ -1136,101 +1205,15 @@ msgstr "Comunica com um leitor de livros." msgid "Get device information..." msgstr "A ir buscar informação sobre o aparelho..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:194 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:196 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:195 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:197 msgid "Transferring books to device..." msgstr "A transferir o(s) livro(s) para o aparelho..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:314 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:316 msgid "Sending metadata to device..." msgstr "A enviar os metadados para o aparelho..." -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:41 -msgid "%prog [options] mybook.chm" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:42 -msgid "Output directory. Defaults to current directory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:45 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 -msgid "Set the book title" -msgstr "Definir o título do livro" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:47 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 -msgid "Set sort key for the title" -msgstr "Definir a chave de ordenação para o título" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:49 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 -msgid "Set the author" -msgstr "Definir o autor" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 -msgid "Set sort key for the author" -msgstr "Definir a chave de ordenação para o(s) autor(es)" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:53 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 -msgid "The category this book belongs to. E.g.: History" -msgstr "A categoria a que pertence este livro. Ex.: História" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:56 -#: /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 "" -"Caminho para a imagem que vai ser definida como miniatura para este ficheiro" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:59 -msgid "Path to a txt file containing a comment." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:62 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 -msgid "Extract thumbnail from LRF file" -msgstr "Extrair a miniatura do ficheiro LRF" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:63 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 -msgid "Set the publisher" -msgstr "Definir a editora" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:64 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 -msgid "Set the book classification" -msgstr "Definir a classificação do livro" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:65 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 -msgid "Set the book creator" -msgstr "Definir o criador do livro" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:66 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 -msgid "Set the book producer" -msgstr "Definir o produtor do livro" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:68 -#: /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 "" -"Extrair a capa do ficheiro LRF. Tenha em conta que o formato LRF não tem " -"capa definida, portanto usam-se heurísticas para adivinhar a capa." - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:70 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 -msgid "Set book ID" -msgstr "Definir o ID do livro" - -#: /home/kovid/work/calibre/src/calibre/ebooks/chm/reader.py:72 -msgid "Set font delta" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:182 msgid "Rendered %s" msgstr "%s representado" @@ -1444,12 +1427,12 @@ msgstr "Listar as receitas integradas" msgid "Output saved to" msgstr "Ficheiro de destino guardado em" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:95 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" "Nível de indicações. Especificar múltiplas vezes para mais indicações." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:106 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 " @@ -1459,7 +1442,7 @@ msgstr "" "especificada. Útil se não tem a certeza em que etapa do processo de " "conversão é que está a ocorrer o erro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:111 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:115 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -1471,7 +1454,7 @@ msgstr "" "oriem. Por exemplo comprimento dependente da resolução (i. e. comprimento em " "pixels). Escolhas disponíveis:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:126 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -1484,7 +1467,7 @@ msgstr "" "funcionem num aparelho. Por exemplo EPUB no leitor SONY. Escolhas " "disponíveis:" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:133 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:137 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 " @@ -1497,7 +1480,7 @@ msgstr "" "destino serão maiores e vice versa. Por predefinição o tamanho do tipo de " "letra padrão é escolhido baseado no perfil de destino que escolheu." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:143 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:147 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-" @@ -1513,11 +1496,11 @@ msgstr "" "tipos de letra. A predefinição é usar a estrutura baseada no perfil de " "destino que escolheu." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 msgid "Disable all rescaling of font sizes." msgstr "Desactivar a alteração proporcional do tamanho dos tipos de letra." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:162 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:166 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." @@ -1526,7 +1509,7 @@ msgstr "" "de texto. Por predefinição não é efectuada qualquer manipulação na altura da " "linha." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:170 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:174 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 " @@ -1538,7 +1521,7 @@ msgstr "" "que sai para fora da página e outros problemas. Esta opção extrai o conteúdo " "das tabelas e apresenta-o de uma forma linear." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:180 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:184 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 " @@ -1548,7 +1531,7 @@ msgstr "" "ao Ãndice com o nível 1. Se isto for especificado assume prevalência sobre " "outras formas de detecção automática." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:189 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:193 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 " @@ -1558,7 +1541,7 @@ msgstr "" "ao Ãndice com o nível 2. Cada entrada é acrescentada abaixo da entrada " "anterior com o nível 1." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:197 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:201 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 " @@ -1568,7 +1551,7 @@ msgstr "" "ao Ãndice com o nível 3. Cada entrada é acrescentada abaixo da entrada " "anterior com o nível 2." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:209 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 " @@ -1578,11 +1561,11 @@ msgstr "" "vez do gerado automaticamente. Com esta opção o gerado automaticamente é " "sempre utilizado." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:213 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "Não adicionar ao Ãndice os capítulos detectados automaticamente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" @@ -1590,7 +1573,7 @@ msgstr "" "Se forem detectados menos capítulos do que este número, os atalhos serão " "adicionados ao Ãndice. A predefinição é: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:227 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:231 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 " @@ -1600,7 +1583,7 @@ msgstr "" "predefinição é: %default. Os atalhos só são adicionados ao Ãndice se forem " "detectados menos que o limite de capítulos." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:235 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:239 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." @@ -1609,7 +1592,7 @@ msgstr "" "especificada. As entradas correspondentes e as suas dependentes são " "removidas." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:246 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:250 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "<h1> or <h2> tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -1626,7 +1609,7 @@ msgstr "" "expressão \"/\". Ver o Tutorial XPath no Manual do Utilizador do calibre " "para mais ajuda em como usar esta funcionalidade." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:260 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:264 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 " @@ -1639,7 +1622,7 @@ msgstr "" "desactivar a marcação de capítulos e um valor \"ambos\" irá usar tanto " "quebras de página como linhas para marcar os capítulos." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:270 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:274 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 " @@ -1649,42 +1632,42 @@ msgstr "" "adicionado às regras de estilo do ficheiro de origem de modo a ser usado " "para se sobrepor a essas regras." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:279 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:283 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" "Uma expressão XPath. As quebras de página são inseridas antes dos elementos " "especificados." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:289 msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Definir a margem superior em pts. A predefinição é %default. Nota: 72 pts é " "igual a 1 polegada" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:294 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Definir a margem inferior em pts. A predefinição é %default. Nota: 72 pts é " "igual a 1 polegada" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:295 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:299 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Definir a margem esquerda em pts. A predefinição é %default. Nota: 72 pts é " "igual a 1 polegada" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:304 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" "Definir a margem direita em pts. A predefinição é %default. Nota: 72 pts é " "igual a 1 polegada" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:306 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:310 msgid "" "Change text justification. A value of \"left\" converts all justified text " "in the source to left aligned (i.e. unjustified) text. A value of " @@ -1693,7 +1676,7 @@ msgid "" "Note that only some output formats support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:320 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 " @@ -1703,21 +1686,21 @@ msgstr "" "parágrafos de 1.5em. A remoção do espaçamento não funciona se o ficheiro de " "origem não usar parágrafos (etiquetas <p> ou <div>)." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:327 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:330 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:334 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." msgstr "" "Usar a capa detectada no ficheiro de origem em vez da capa especificada." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:340 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (<p> or <div> tags)." @@ -1725,7 +1708,7 @@ msgstr "" "Inserir uma linha em branco entre os parágrafos. Não funciona se o ficheiro " "de origem não usar parágrafos (etiquetas <p> ou <div>)." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:347 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." @@ -1733,7 +1716,7 @@ msgstr "" "Remover a primeira imagem do livro de origem. Útil se a primeira imagem do " "ficheiro de origem é a capa e se está a especificar uma capa externa." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:355 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." @@ -1741,7 +1724,7 @@ msgstr "" "Inserir os metadados do livro no seu início. Isto é útil se o seu leitor não " "suporta apresentar/procurar os metadados directamente." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:363 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." @@ -1749,7 +1732,7 @@ msgstr "" "Tentar detectar e corrigir as quebras de página e outros problemas no " "ficheiro de origem. Pode piorar as coisas, por isso use com cuidado." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:371 msgid "" "Scale used to determine the length at which a line should be unwrapped if " "preprocess is enabled. Valid values are a decimal between 0 and 1. The " @@ -1758,29 +1741,29 @@ msgid "" "variable." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:376 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 msgid "" "Convert plain quotes, dashes and ellipsis to their typographically correct " "equivalents. For details, see http://daringfireball.net/projects/smartypants" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:384 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:388 msgid "Use a regular expression to try and remove the header." msgstr "Usar a expressão regular para tentar remover o cabeçalho." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:391 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:395 msgid "The regular expression to use to remove the header." msgstr "A expressão regular a usar para remover o cabeçalho." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:397 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 msgid "Use a regular expression to try and remove the footer." msgstr "Usar a expressão regular para tentar remover o rodapé." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:404 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:408 msgid "The regular expression to use to remove the footer." msgstr "A expressão regular a usar para remover o rodapé." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:411 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:415 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." @@ -1788,7 +1771,7 @@ msgstr "" "Ler os metadados do ficheiro OPF especificado. Os metadados lidos deste " "ficheiro vão sobrepor-se aos metadados no ficheiro de origem." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1804,7 +1787,7 @@ msgstr "" "Chinês e o Japonês por exemplo) a representação usada pelo maior número de " "pessoas será usada (Chinês no exemplo anterior)." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:433 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 msgid "" "Preserve ligatures present in the input document. A ligature is a special " "rendering of a pair of characters like ff, fi, fl et cetera. Most readers do " @@ -1814,103 +1797,103 @@ msgid "" "instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:38 msgid "Set the title." msgstr "Definir o título." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "Definir os autores. Múltiplos autores devem ser separados por &." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 msgid "The version of the title to be used for sorting. " msgstr "A versão do título a ser usada para a ordenação. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 msgid "String to be used when sorting by author. " msgstr "Expressão a ser usada quando ordenar por autor. " -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:466 msgid "Set the cover to the specified file or URL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:466 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:54 msgid "Set the ebook description." msgstr "Definir a descrição do livro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:470 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:56 msgid "Set the ebook publisher." msgstr "Definir a editora do livro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:474 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:60 msgid "Set the series this ebook belongs to." msgstr "Definir a série a que este livro pertence." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:478 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." msgstr "Definir o índice do livro nesta série." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 msgid "Set the rating. Should be a number between 1 and 5." msgstr "Definir a avaliação. Deve ser um algarismo entre 1 e 5." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:66 msgid "Set the ISBN of the book." msgstr "Definir o ISBN do livro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:490 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:68 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" "Definir as etiquetas do livro. Deve ser uma lista separada por vírgulas." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:494 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:70 msgid "Set the book producer." msgstr "Definir o produtor do livro." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:498 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:72 msgid "Set the language." msgstr "Definir a linguagem." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:502 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:506 msgid "Set the publication date." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:506 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:510 msgid "Set the book timestamp (used by the date column in calibre)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:606 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:610 msgid "Could not find an ebook inside the archive" msgstr "Foi impossível localizar um livro dentro do arquivo" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:664 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:668 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" "Os valores do índice da série e da avaliação devem ser algarismos. A ignorar" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:671 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:675 msgid "Failed to parse date/time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:826 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:830 msgid "Converting input to HTML..." msgstr "A converter o ficheiro de origem para HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:853 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:858 msgid "Running transforms on ebook..." msgstr "A executar as transformações no livro..." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:940 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:945 msgid "Creating" msgstr "A criar" @@ -2023,7 +2006,8 @@ msgid "" "option the image may be slightly distorted, but there will be no borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:169 +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:170 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:203 msgid "Start" msgstr "" @@ -2082,13 +2066,27 @@ msgstr "" "fazer porque pode resultar em vários efeitos colaterais nefastos no resto da " "cadeia de conversão." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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." +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 +msgid "CSS file used for the output instead of the default file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:36 +msgid "" +"Template used for generation of the html index file instead of the default " +"file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:39 +msgid "" +"Template used for the generation of the html contents of the book instead of " +"the default file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:42 +msgid "" +"Extract the contents of the generated ZIP file to the specified directory. " +"WARNING: The contents of the directory will be deleted." msgstr "" -"Tamanho médio da linha a quebrar se o HTML é de uma conversão parcial " -"anterior de um ficheiro PDF. A predefinição é: %default que desactiva isto." #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." @@ -2228,7 +2226,7 @@ msgid "Path to output file" msgstr "Caminho para o ficheiro de destino" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Processamento com mais indicações" @@ -2254,6 +2252,31 @@ msgstr "" "Mostrar/editar os metadados num ficheiro LRF.\n" "\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 +msgid "Set the book title" +msgstr "Definir o título do livro" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 +msgid "Set sort key for the title" +msgstr "Definir a chave de ordenação para o título" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 +msgid "Set the author" +msgstr "Definir o autor" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 +msgid "Set sort key for the author" +msgstr "Definir a chave de ordenação para o(s) autor(es)" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 +msgid "The category this book belongs to. E.g.: History" +msgstr "A categoria a que pertence este livro. Ex.: História" + +#: /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 "" +"Caminho para a imagem que vai ser definida como miniatura para este ficheiro" + #: /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." @@ -2261,6 +2284,38 @@ msgstr "" "Caminho para um ficheiro TXTcontendo o comentário a ser guardado no ficheiro " "LRF." +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 +msgid "Extract thumbnail from LRF file" +msgstr "Extrair a miniatura do ficheiro LRF" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 +msgid "Set the publisher" +msgstr "Definir a editora" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 +msgid "Set the book classification" +msgstr "Definir a classificação do livro" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 +msgid "Set the book creator" +msgstr "Definir o criador do livro" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 +msgid "Set the book producer" +msgstr "Definir o produtor do livro" + +#: /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 "" +"Extrair a capa do ficheiro LRF. Tenha em conta que o formato LRF não tem " +"capa definida, portanto usam-se heurísticas para adivinhar a capa." + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +msgid "Set book ID" +msgstr "Definir o ID do livro" + #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 msgid "Enable autorotation of images that are wider than the screen width." msgstr "" @@ -2328,10 +2383,6 @@ msgstr "Família de tipos de letra monospace a integrar" msgid "Comic" msgstr "Banda Desenhada" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:85 -msgid "EDITORIAL REVIEW" -msgstr "REVISÃO EDITORIAL" - #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:41 msgid "" "Extract common e-book formats from archives (zip/rar) files. Also try to " @@ -2344,33 +2395,35 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:533 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 msgid "No" msgstr "Não" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:533 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 msgid "Yes" msgstr "Sim" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:289 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:923 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:303 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:570 msgid "Title" msgstr "Título" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924 msgid "Author(s)" msgstr "Autor(es)" @@ -2386,36 +2439,37 @@ msgid "Producer" msgstr "Produtor" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:609 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:212 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:332 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1132 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 msgid "Comments" msgstr "Comentários" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1128 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Etiquetas" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:613 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:337 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1137 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:108 msgid "Series" msgstr "Série" @@ -2424,15 +2478,15 @@ msgid "Language" msgstr "Linguagem" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 msgid "Timestamp" msgstr "Data e Hora" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:151 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:157 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:244 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:258 msgid "Published" msgstr "Editado" @@ -2556,6 +2610,7 @@ msgid "No cover found" msgstr "Não foi encontrada nenhuma capa" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "" @@ -2604,49 +2659,53 @@ msgstr "" msgid "Downloads metadata from Douban.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:57 msgid "Metadata download" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "tags" msgstr "etiquetas" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:142 msgid "description/reviews" msgstr "descrições/revisões" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:130 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:143 msgid "Download %s from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 +msgid "Convert comments downloaded from %s to plain text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 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:211 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2670,23 +2729,24 @@ msgstr "" "grátis em isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "O ISBN do livro para o qual quer os metadados." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "O autor do livro que procura." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "O título do livro que procura." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "A editora do livro que procura." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " não encontrado." @@ -2699,8 +2759,24 @@ msgid "" "LibraryThing.com\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1303 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1397 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Capa" @@ -2734,78 +2810,78 @@ msgstr "Desactivar a compressão do conteúdo do ficheiro." msgid "Tag marking book to be filed with Personal Docs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:108 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:107 msgid "All articles" msgstr "Todos os artigos" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Isto é um livro Amazon Topaz. Não pode ser processado." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1398 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Página de Título" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Ãndice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Ãndice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Glossário" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Agradecimentos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Marca Tipográfica" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Direitos de Autor" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Dedicatória" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epígrafe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Prefácio" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Lista de Ilustrações" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Lista de Tabelas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Notas" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Prefácio" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Texto Principal" @@ -2813,7 +2889,7 @@ msgstr "Texto Principal" msgid "%s format books are not supported" msgstr "Os livros no formato %s não são suportados" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "" @@ -2822,8 +2898,9 @@ msgstr "" msgid "HTML TOC generation options." msgstr "Opções de geração do Ãndice em HTML." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:153 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Avaliação" @@ -2857,7 +2934,7 @@ msgstr "Notas de rodapé" msgid "Sidebar" msgstr "Barra lateral" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2868,7 +2945,7 @@ msgstr "" "parágrafos. Com esta opção, em vez disso, vai assumir que cada linha " "representa um parágrafo." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3180,13 +3257,14 @@ msgstr "" "Especifique a codificação de caracteres para o documento de destino. A " "predefinição é cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 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/snb/output.py:25 #: /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." @@ -3194,6 +3272,50 @@ msgstr "" "Especifique a codificação de caracteres para o documento de destino. A " "predefinição é utf-8." +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:29 +#: /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 "" +"O número máximo de caracteres por linha. A divisão é feita no primeiro " +"espaço antes do valor especificado. Se não for encontrado nenhum espaço a " +"linha será dividida no espaço após o valor especificado e irá excedê-lo. O " +"valor mínimo é de 25 caracteres. Use 0 para desactivar a divisão de linhas." + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:36 +msgid "" +"Specify whether or not to insert an empty line between two paragraphs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:40 +msgid "" +"Specify whether or not to insert two space characters to indent the first " +"line of each paragraph." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:44 +msgid "" +"Specify whether or not to hide the chapter title for each chapter. Useful " +"for image-only output (eg. comics)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:122 +msgid "Start Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:132 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:134 +msgid "Cover Pages" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:147 +#: /home/kovid/work/calibre/src/calibre/ebooks/snb/output.py:150 +msgid " (Preface)" +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 " @@ -3241,18 +3363,6 @@ msgstr "" "Especifique a codificação de caracteres para o documento de destino. A " "predefinição é utf-8. Nota: Esta opção não é cumprida por todos os formatos." -#: /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 "" -"O número máximo de caracteres por linha. A divisão é feita no primeiro " -"espaço antes do valor especificado. Se não for encontrado nenhum espaço a " -"linha será dividida no espaço após o valor especificado e irá excedê-lo. O " -"valor mínimo é de 25 caracteres. Use 0 para desactivar a divisão de linhas." - #: /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 " @@ -3380,7 +3490,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Copiado" @@ -3446,96 +3556,101 @@ msgstr "" msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "A carregar os livros para o aparelho." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Livros" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "Livros em formato EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "Livros em formato LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "Livros em formato HTML" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "Livros em formato LIT" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "Livros em formato MOBI" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Livros em formato texto" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "Livros em formato PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 +msgid "SNB Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Banda desenhada" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Arquivos" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Falha ao ler os metadados" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Falha ao ler os metadados do(s) seguinte(s)" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "No book selected" msgstr "Nenhum livro seleccionado" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "" @@ -3548,7 +3663,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "" @@ -3643,7 +3758,7 @@ msgid "Checking database integrity" msgstr "A verificar a integridade da base de dados" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3659,18 +3774,15 @@ msgstr "Foram encontradas algumas inconsistências" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"Os livros seguintes têm formatos listados na base de dados que na realidade " -"não estão disponíveis. As entradas para os formatos foram removidas. Deve " -"verificá-los manualmente. Isto pode acontecer se manipular os ficheiros " -"directamente nas pastas da biblioteca." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "" @@ -3806,7 +3918,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Não permitido" @@ -3838,6 +3950,10 @@ msgstr "É impossível converter" msgid "Starting conversion of %d book(s)" msgstr "Iniciar a conversão de %d livro(s)" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "" @@ -3872,9 +3988,9 @@ msgid "Could not copy books: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:708 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:675 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "" @@ -3935,14 +4051,14 @@ msgid "Main memory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "" @@ -4083,7 +4199,7 @@ msgid "covers" msgstr "capas" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metadados" @@ -4105,44 +4221,44 @@ msgstr "" msgid "At least two books must be selected for merging" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:197 msgid "" "Book formats and metadata from the selected books will be added to the " -"<b>first selected book.</b> ISBN will <i>not</i> be merged.<br><br> The " +"<b>first selected book</b> (%s). ISBN will <i>not</i> be merged.<br><br> The " "second and subsequently selected books will not be deleted or " "changed.<br><br>Please confirm you want to proceed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 msgid "" "Book formats and metadata from the selected books will be merged into the " -"<b>first selected book</b>. ISBN will <i>not</i> be merged.<br><br>After " -"merger the second and subsequently selected books will be <b>deleted</b>. " -"<br><br>All book formats of the first selected book will be kept and any " -"duplicate formats in the second and subsequently selected books will be " -"permanently <b>deleted</b> from your computer.<br><br> Are you <b>sure</b> " -"you want to proceed?" +"<b>first selected book</b> (%s). ISBN will <i>not</i> be " +"merged.<br><br>After merger the second and subsequently selected books will " +"be <b>deleted</b>. <br><br>All book formats of the first selected book will " +"be kept and any duplicate formats in the second and subsequently selected " +"books will be permanently <b>deleted</b> from your computer.<br><br> Are " +"you <b>sure</b> you want to proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 msgid "" "You are about to merge more than 5 books. Are you <b>sure</b> you want to " "proceed?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:17 msgid "F" msgstr "F" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:17 msgid "Fetch news" msgstr "Recolher notícias" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:52 msgid "Fetching news from " msgstr "Recolher notícias de " -#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/fetch_news.py:66 msgid " fetched." msgstr " recolhida." @@ -4171,6 +4287,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Executar o assistente de boas vindas" @@ -4256,6 +4373,7 @@ msgid "Click the show details button to see which ones." msgstr "Clique no botão ver detalhes para ver quais." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Mostrar os detalhes do livro" @@ -4342,21 +4460,21 @@ msgstr "Ver" msgid "View specific format" msgstr "Ver o formato específico" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:158 msgid "Cannot view" msgstr "É impossível ver" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "Escolher o formato para ver" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 msgid "Multiple Books Selected" msgstr "Múltiplos livros seleccionados" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 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 " @@ -4367,11 +4485,11 @@ msgstr "" "e ter um efeito negativo na reacção do seu computador. Uma vez começado o " "processo não pode ser parado até estar completo. Deseja continuar?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:118 msgid "Cannot open folder" msgstr "É impossível abrir a pasta" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:159 msgid "%s has no available formats." msgstr "%s não tem formatos disponíveis." @@ -4396,7 +4514,7 @@ msgid "The specified directory could not be processed." msgstr "É impossível processar a pasta especificada." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:851 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Nenhuns livros" @@ -4470,20 +4588,20 @@ msgstr "" msgid "Add books to calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:41 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "WizardPage" msgstr "Página do Assistente" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:22 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:27 msgid "Scanning root folder for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/scan_ui.py:28 msgid "This may take a few minutes" msgstr "" @@ -4520,7 +4638,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add_wizard/welcome_ui.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:84 @@ -4586,49 +4704,49 @@ msgid "" "&Multiple books per folder, assumes every ebook file is a different book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:327 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1118 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 msgid "Path" msgstr "Caminho" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:326 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:103 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 msgid "Formats" msgstr "Formatos" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:928 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1121 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:927 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120 msgid "Collections" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:60 msgid "Click to open" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1130 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 @@ -4636,8 +4754,8 @@ msgstr "" msgid "None" msgstr "Nenhum" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:312 -msgid "Click to open Book Details window" +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 +msgid "Double-click to open Book Details window" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 @@ -4658,6 +4776,7 @@ msgstr "" #: /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/snb_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" @@ -4673,37 +4792,39 @@ msgstr "Opções específicas a" #: /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/snb_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 msgid "output" msgstr "Ficheiro de destino" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:81 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 -#: /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:88 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:48 -#: /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:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:66 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 -#: /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:42 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:82 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:40 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/adding_ui.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior_ui.py:136 @@ -4721,68 +4842,68 @@ msgstr "Ficheiro de destino" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Formulário" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 msgid "Bib file encoding:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:83 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:43 msgid "Fields to include in output:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 msgid "ascii/LaTeX" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 msgid "Encoding configuration (change if you have errors) :" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 msgid "strict" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 msgid "replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 msgid "ignore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 msgid "backslashreplace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 msgid "BibTeX entry type:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 msgid "mixed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:97 msgid "misc" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:98 msgid "book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:99 msgid "Create a citation tag?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:100 msgid "Expression to form the BibTeX citation tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:101 msgid "" "Some explanation about this template:\n" " -The fields availables are 'author_sort', 'authors', 'id',\n" @@ -4801,23 +4922,23 @@ msgstr "" msgid "E-book options" msgstr "Opções de E-book" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -4826,26 +4947,43 @@ msgid "" "Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 " @@ -4853,11 +4991,11 @@ msgid "" "specified in the Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Converter a granel" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opções específicas ao formato de destino." @@ -4874,66 +5012,66 @@ msgstr "Banda Desenhada de origem" msgid "input" msgstr "ficheiro de origem" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Number of Colors:" msgstr "Número de &cores:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "Disable &normalize" msgstr "Desactivar nor&malizar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 msgid "Keep &aspect ratio" msgstr "Manter a &relação de aspecto" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "Disable &Sharpening" msgstr "Desactivar &nitidez" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:109 msgid "Disable &Trimming" msgstr "Desactivar &aparar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:108 msgid "&Wide" msgstr "&Largo" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 msgid "&Landscape" msgstr "Paisa&gem" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:106 msgid "&Right to left" msgstr "&Direita para a esquerda" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:102 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:105 msgid "Don't so&rt" msgstr "Não &ordenar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:103 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:107 msgid "De&speckle" msgstr "Limpar &irregularidades" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:104 msgid "&Disable comic processing" msgstr "Desactivar o &processamento de banda desenhada" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:105 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:120 msgid "&Output format:" msgstr "Formato de &destino:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:106 msgid "Disable conversion of images to &black and white" msgstr "" @@ -4985,27 +5123,27 @@ msgstr "" msgid "EPUB Output" msgstr "Ficheiro de destino EPUB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 msgid "Do not &split on page breaks" msgstr "Não dividir nas &quebras de página" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:55 msgid "No default &cover" msgstr "Nenhuma &capa predefinida" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:56 msgid "No &SVG cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:57 msgid "Preserve cover &aspect ratio" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:58 msgid "Split files &larger than:" msgstr "Dividir os ficheiros &maiores que:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:59 msgid " KB" msgstr " KB" @@ -5013,7 +5151,7 @@ msgstr " KB" msgid "FB2 Input" msgstr "Ficheiro de origem FB2" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:34 msgid "Do not insert a &Table of Contents at the beginning of the book." msgstr "Não inserir um &Ãndice no início do livro." @@ -5021,14 +5159,14 @@ msgstr "Não inserir um &Ãndice no início do livro." msgid "FB2 Output" msgstr "Ficheiro de destino FB2" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:32 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:52 msgid "&Inline TOC" msgstr "Ãndice em &linha" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:38 msgid "Sectionize Chapters (Use with care!)" msgstr "" @@ -5062,22 +5200,22 @@ msgid "&Base font size:" msgstr "&Tamanho do tipo de letra padrão:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 msgid "Font size &key:" msgstr "C&have do tamanho do tipo de letra:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 -#: /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/look_and_feel_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 #: /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:121 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:132 msgid " pt" msgstr " pt" @@ -5121,71 +5259,71 @@ msgstr "" msgid "Justify text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "&Disable font size rescaling" msgstr "&Desactivar a alteração proporcional do tamanho do tipo de letra" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Base &font size:" msgstr "Tamanho do tipo de letra &padrão:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid "Wizard to help you choose an appropriate font size key" msgstr "" "Assistente para ajudar a escolher uma chave de tamanho de letra apropriada" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "Line &height:" msgstr "&Altura da linha:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "Input character &encoding:" msgstr "&Codificação de caracteres de origem:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 msgid "Remove &spacing between paragraphs" msgstr "Remover o &espaçamento entre parágrafos" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 msgid "Indent size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:139 msgid "" "<p>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:135 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:140 msgid " em" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:141 msgid "Text justification:" msgstr "Justificação do texto:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:142 msgid "&Linearize tables" msgstr "&Linearizar as tabelas" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:143 msgid "Extra &CSS" msgstr "CSS e&xtra" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:144 msgid "&Transliterate unicode characters to ASCII" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:145 msgid "Insert &blank line" msgstr "Inserir uma linha em &branco" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:146 msgid "Keep &ligatures" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:147 msgid "Smarten &punctuation" msgstr "" @@ -5193,52 +5331,52 @@ msgstr "" msgid "LRF Output" msgstr "Ficheiro de destino LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 msgid "Enable &autorotation of wide images" msgstr "Activar a &rotação automática de imagens amplas" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 msgid "&Wordspace:" msgstr "&Espaço entre palavras:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 msgid "Minimum para. &indent:" msgstr "A&vanço min. do parágrafo:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 msgid "Render &tables as images" msgstr "Representar as &tabelas como imagens" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 msgid "Text size multiplier for text in rendered tables:" msgstr "" "Multiplicador do tamanho do texto para o texto nas tabelas representadas:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 msgid "Add &header" msgstr "Adicionar o &cabeçalho" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 msgid "Header &separation:" msgstr "Separação &do cabeçalho:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:131 msgid "Header &format:" msgstr "&Formato do cabeçalho:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:132 msgid "&Embed fonts" msgstr "Tipos de letra &integrados" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:133 msgid "&Serif font family:" msgstr "Família de tipos de letra &Serif:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:134 msgid "S&ans-serif font family:" msgstr "Família de tipos de letra S&ans-serif:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:135 msgid "&Monospaced font family:" msgstr "Família de tipos de letra &Monospace:" @@ -5316,7 +5454,7 @@ msgid "Change the title of this book" msgstr "Alterar o título deste livro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Autor(es): " @@ -5334,7 +5472,7 @@ msgstr "" "vírgula" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&Editora: " @@ -5345,7 +5483,7 @@ msgid "Ta&gs: " msgstr "Eti&quetas: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:326 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5355,15 +5493,16 @@ msgstr "" "<br><br>Podem ser quaisquer palavras ou frases, separadas por vírgulas." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "&Série:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5382,35 +5521,35 @@ msgstr "Ficheiro de destino MOBI" msgid "Default" msgstr "Predefinição" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:72 msgid "&Title for Table of Contents:" msgstr "&Título para o Ãndice:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:73 msgid "Rescale images for &Palm devices" msgstr "Alterar o tamanho das imagens proporcionalmente para &aparelhos Palm" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 msgid "Use author &sort for author" msgstr "Usar a &ordenação de autor para o autor" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:75 msgid "Disable compression of the file contents" msgstr "Desactivar a compressão do conteúdo do ficheiro" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:76 msgid "Do not add Table of Contents to book" msgstr "Não inserir um Ãndice no livro" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:77 msgid "Kindle options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:78 msgid "Periodical masthead font:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:79 msgid "Personal Doc tag:" msgstr "" @@ -5418,35 +5557,35 @@ msgstr "" msgid "Page Setup" msgstr "Configuração da Página" -#: /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:121 msgid "&Output profile:" msgstr "Perfil do ficheiro de &destino:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 msgid "Profile description" msgstr "Descrição do perfil" -#: /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:123 msgid "&Input profile:" msgstr "Perfil do ficheiro de &origem:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 msgid "Margins" msgstr "Margens" -#: /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:125 msgid "&Left:" msgstr "&Esquerda:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:127 msgid "&Top:" msgstr "&Superior:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:129 msgid "&Right:" msgstr "Di&reita:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:131 msgid "&Bottom:" msgstr "&Inferior" @@ -5454,13 +5593,13 @@ msgstr "&Inferior" msgid "PDB Input" msgstr "Ficheiro de origem 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:47 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52 msgid "Treat each &line as a paragraph" msgstr "Tratar cada &linha como um parágrafo" -#: /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:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:53 msgid "Assume print formatting" msgstr "Assumir o formato de impressão" @@ -5468,7 +5607,7 @@ msgstr "Assumir o formato de impressão" msgid "PDB Output" msgstr "Ficheiro de destino PDB" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:41 msgid "&Format:" msgstr "&Formato:" @@ -5476,11 +5615,11 @@ msgstr "&Formato:" msgid "PDF Input" msgstr "Ficheiro de origem PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:44 msgid "Line &Un-Wrapping Factor:" msgstr "&Factor de separação da linha:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:45 msgid "No &Images" msgstr "Nenhuma &imagem" @@ -5488,15 +5627,15 @@ msgstr "Nenhuma &imagem" msgid "PDF Output" msgstr "Ficheiro de destino PDF" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:48 msgid "&Paper Size:" msgstr "&Tamanho do papel:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:49 msgid "&Orientation:" msgstr "&Orientação:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:50 msgid "Preserve &aspect ratio of cover" msgstr "" @@ -5518,19 +5657,19 @@ msgstr "" msgid "Open book" msgstr "Abrir livro" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:57 msgid "Regex Builder" msgstr "Construtor Regex" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:58 msgid "Preview" msgstr "Pré-visualizar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:59 msgid "Regex:" msgstr "Regex:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Test" msgstr "Teste" @@ -5544,7 +5683,7 @@ msgid "Options specific to the input format." msgstr "Opções específicas ao formato de origem." #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5558,6 +5697,22 @@ msgstr "Formato de &origem:" msgid "Use &saved conversion settings for individual books" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output.py:14 +msgid "SNB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:40 +msgid "Hide chapter name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:41 +msgid "Insert space before the first line for each paragraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/snb_output_ui.py:42 +msgid "Insert empty line between paragraphs" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -5662,23 +5817,23 @@ msgstr "Ãndice de nível &2 (Expressão XPath):" msgid "Level &3 TOC (XPath expression):" msgstr "Ãndice de nível &3 (Expressão XPath):" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:68 msgid "Do not add &detected chapters to the Table of Contents" msgstr "Não adicionar os &capítulos detectados ao Ãndice" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:69 msgid "Number of &links to add to Table of Contents" msgstr "&Número de atalhos a adicionar ao Ãndice:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:70 msgid "Chapter &threshold" msgstr "&Limite de capítulos:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:71 msgid "&Force use of auto-generated Table of Contents" msgstr "&Forçar a utilização de Ãndices gerados automaticamente" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:72 msgid "TOC &Filter:" msgstr "Filtro do &Ãndice:" @@ -5686,11 +5841,11 @@ msgstr "Filtro do &Ãndice:" msgid "TXT Input" msgstr "Ficheiro de origem TXT" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:54 msgid "Process using markdown" msgstr "Processar usando markdown" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:55 msgid "" "<p>Markdown is a simple markup language for text files, that allows for " "advanced formatting. To learn more visit <a " @@ -5700,11 +5855,11 @@ msgstr "" "permite uma formatação avançada. Para aprender mais visite <a " "href=\"http://daringfireball.net/projects/markdown\">markdown</a>." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:56 msgid "Do not insert Table of Contents into output text when using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:57 msgid "Preserve &spaces" msgstr "" @@ -5712,21 +5867,21 @@ msgstr "" msgid "TXT Output" msgstr "Ficheiro de destino TXT" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51 msgid "&Line ending style:" msgstr "Estilo de fim de &linha:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:53 msgid "&Maximum line length:" msgstr "Comprimento &máximo da linha:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:54 msgid "Force maximum line length" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -5739,71 +5894,71 @@ msgstr "Rótulo do Texto" msgid "Use a wizard to help construct the XPath expression" msgstr "Use um assistente para ajudar a construir a expressão XPath" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 msgid "Match HTML &tags with tag name:" msgstr "Corresponder as &etiquetas HTML com o nome da etiqueta:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 msgid "*" msgstr "*" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 msgid "a" msgstr "a" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 msgid "br" msgstr "br" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 msgid "div" msgstr "div" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 msgid "h1" msgstr "h1" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 msgid "h2" msgstr "h2" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 msgid "h3" msgstr "h3" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 msgid "h4" msgstr "h4" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 msgid "h5" msgstr "h5" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 msgid "h6" msgstr "h6" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 msgid "hr" msgstr "hr" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:85 msgid "span" msgstr "span" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:86 msgid "Having the &attribute:" msgstr "Que tenham o &atributo:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:87 msgid "With &value:" msgstr "Com o &valor:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:88 msgid "(A regular expression)" msgstr "(Uma expressão regular)" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:89 msgid "" "<p>For example, to match all h2 tags that have class=\"chapter\", set tag to " "<i>h2</i>, attribute to <i>class</i> and value to " @@ -5827,6 +5982,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:145 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:448 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:111 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:131 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:206 @@ -5851,122 +6007,128 @@ msgstr "" msgid " index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:493 msgid "Remove series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:496 msgid "Automatically number books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:468 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:562 msgid "Remove all tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:583 msgid "tags to add" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:588 msgid "tags to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Nenhuns detalhes disponíveis." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "O aparelho já não está ligado." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Ir buscar informação sobre o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Listar os livros presentes no aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "Enviar os metadados para o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Carregar %d livro(s) para o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "Apagar os livros do aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Descarregar os livros do aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Ver o livro no aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Definir a acção predefinida Enviar para o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "Enviar para a memória principal" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "Enviar para o cartão de memória A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "Enviar para o cartão de memória B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +msgid "Send specific format to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 -msgid "Send specific format" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "Erro ao comunicar com o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:667 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Nenhuns formatos suportados" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "Erro ao comunicar com o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:715 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -5974,127 +6136,61 @@ msgstr "" "Houve um erro temporário ao comunicar com o aparelho. Por favor desligue e " "volte a ligar o aparelho ou reinicie." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "Aparelho: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:760 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " detectado." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:852 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "seleccionado para enviar" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Escolher o formato a enviar para o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:866 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Nenhum aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:867 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "É impossível enviar: O aparelho não está ligado" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Nenhum cartão" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:871 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "É impossível enviar: O aparelho não tem cartão de memória" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:916 -msgid "E-book:" -msgstr "Livro:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:919 -msgid "Attached, you will find the e-book" -msgstr "Anexado, vai encontrar o livro" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:920 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "por" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:921 -msgid "in the %s format." -msgstr "no formato %s." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "Sending email to" -msgstr "A enviar o email para" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:964 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:972 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1065 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1127 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 -msgid "No suitable formats" -msgstr "Nenhuns formatos suportados" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:965 -msgid "Auto convert the following books before sending via email?" -msgstr "" -"Converter automaticamente os seguintes livros antes de enviar via email?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:973 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"É impossível enviar os livros seguintes por email poque não foram " -"encontrados formatos adequados:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "Failed to email books" -msgstr "Falha no envio dos livros" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:992 -msgid "Failed to email the following books:" -msgstr "Falha no envio dos seguintes livros:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:996 -msgid "Sent by email:" -msgstr "Enviado por email:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1024 -msgid "News:" -msgstr "Notícias:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1025 -msgid "Attached is the" -msgstr "Anexado está o" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1036 -msgid "Sent news to" -msgstr "Enviar as notícias para" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1066 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1247 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Converter automaticamente os seguintes livros antes de os carregar para o " "aparelho?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1096 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "A enviar catálogos para o dispositivo" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1160 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Enviar notícias para o aparelho." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1213 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "A enviar livros para o aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1255 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6103,11 +6199,11 @@ msgstr "" "encontrados formatos adequados. Converta o(s) livro(s) para um formato " "suportado pelo seu aparelho primeiro." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Sem espaço no aparelho" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1320 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6153,23 +6249,26 @@ msgstr "" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "&Anterior" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "&Seguinte" @@ -6177,66 +6276,79 @@ msgstr "&Seguinte" msgid "My Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:304 msgid "Generate catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:75 msgid "Generate catalog for {0} books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:76 msgid "Catalog &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:77 msgid "" "Catalog &title (existing catalog with the same title will be replaced):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:78 msgid "&Send catalog to device automatically" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:79 msgid "Catalog options" msgstr "Opções do catálogo" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:26 msgid "Check Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:29 -msgid "Run the check" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:35 +msgid "&Run the check" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:32 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205 -msgid "Copy to clipboard" -msgstr "Copiar para a Ãrea de Transferência" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:48 -msgid "Names to ignore:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:38 +msgid "Copy &to clipboard" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:54 +msgid "Names to ignore:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:59 +msgid "" +"Enter comma-separated standard file name wildcards, such as synctoy*.dat" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 msgid "Extensions to ignore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:106 -msgid "Additional Information" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:67 +msgid "" +"Enter comma-separated extensions without a leading dot. Used only in book " +"folders" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 msgid "Path from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Nome" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:136 +msgid "" +"The marked files and folders will be <b>permanently deleted</b>. Are you " +"sure?" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:45 msgid "Choose Format" msgstr "Escolher o formato" @@ -6278,7 +6390,7 @@ msgid "No location selected" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "" @@ -6321,6 +6433,7 @@ msgid "Set options for converting %s" msgstr "Definir as opções para converter %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&Título" @@ -6332,7 +6445,7 @@ msgstr "&Autor(es):" msgid "&Profile:" msgstr "&Perfil:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog_ui.py:46 msgid "Edit Comments" msgstr "" @@ -6356,19 +6469,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:280 -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:588 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:294 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Date" msgstr "Data" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1116 msgid "Format" msgstr "Formato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device_ui.py:55 msgid "Delete from device" msgstr "" @@ -6377,35 +6490,35 @@ msgid "Author sort" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:616 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:71 msgid "Manage authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:72 msgid "Sort by author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:73 msgid "Sort by author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:74 msgid "" "Reset all the author sort values to a value automatically generated from the " "author. Exactly how this value is automatically generated can be controlled " "via Preferences->Advanced->Tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog_ui.py:75 msgid "Recalculate all author sort values" msgstr "" @@ -6443,10 +6556,9 @@ msgstr "Não foram encontrados metadados" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:192 msgid "" -"No metadata found, try adjusting the title and author or the ISBN key." +"No metadata found, try adjusting the title and author and/or removing the " +"ISBN." msgstr "" -"Não foram encontrados metadados, experimente ajustar o título e o autor ou a " -"chave ISBN." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Fetch metadata" @@ -6509,80 +6621,79 @@ msgstr "Mostrar os &detalhes do processo" msgid "Stop &all non device jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:26 msgid "Title/Author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:27 msgid "Standard metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:28 msgid "Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:29 msgid "Search/Replace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:33 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:76 msgid "Working" msgstr "A trabalhar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:180 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Minúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Maiúsculas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "Capitalização de Título" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:255 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6592,7 +6703,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6607,48 +6718,48 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:432 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:524 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:623 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Editar os metadados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:316 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "Definir a&utomaticamente a ordenação do(s) autor(es)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:317 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "&Ordenação de autor: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -6656,63 +6767,63 @@ msgstr "" "Especificar como é que o(s) autor(es) deste livro deve(m) ser ordenado(s). " "Por exemplo: Charles Dickens deve ser ordenado como Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "A&valiação:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:320 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Avaliação deste livro. 0-5 estrelas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:322 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:323 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " estrelas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Adicionar eti&quetas: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:327 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Abrir o Editor de Etiquetas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:329 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&Remover etiquetas:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "Lista de etiquetas separadas por vírgulas a remover dos livros. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:331 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -6720,110 +6831,110 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Remover &formatos:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 -msgid "Change title to title case" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +msgid "Change title to title case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -6831,49 +6942,49 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 -msgid "&Search and replace (experimental)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -6956,74 +7067,76 @@ msgid "This ISBN number is invalid" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:611 -msgid "Cannot use tag editor" +msgid "Tags changed" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 -msgid "The tags editor cannot be used if you have modified the tags" +msgid "" +"You have changed the tags. In order to use the tags editor, you must either " +"discard or apply these changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:639 msgid "Downloading cover..." msgstr "A descarregar a capa..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:644 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:649 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:655 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:651 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:667 msgid "Cannot fetch cover" msgstr "É impossível recolher a capa" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:645 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:656 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:652 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:663 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:668 msgid "<b>Could not fetch cover.</b><br/>" msgstr "<b>É impossível recolher a capa.</b><br/>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:653 msgid "The download timed out." msgstr "O descarregamento está a demorar demasiado tempo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:657 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "É impossível encontrar a capa para este livro. Tente especificar o ISBN " "primeiro." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:669 msgid "" "For the error message from each cover source, click Show details below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:676 msgid "Bad cover" msgstr "Capa com erros" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:670 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:677 msgid "The cover is not a valid picture" msgstr "A capa não é uma imagem válida" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:710 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:711 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:733 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:742 msgid "Cannot fetch metadata" msgstr "É impossível recolher os metadados" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:734 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:743 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Deve especificar pelo menos um de ISBN, Título, Autores ou Editora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:833 msgid "Permission denied" msgstr "Permissão negada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:834 msgid "Could not open %s. Is it being used by another program?" msgstr "É impossível abrir %s. Está a ser usado por outro programa?" @@ -7143,20 +7256,21 @@ msgstr "É necessário a sua palavra-passe" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&Utilizador:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "Pala&vra-passe:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Mostrar a palavra-passe" @@ -7197,50 +7311,62 @@ msgstr "" msgid "Change the contents of the saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:126 msgid "Need username and password" msgstr "É necessário utilizador e palavra-passe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:127 msgid "You must provide a username and/or password to use this news source." msgstr "" "Deve fornecer um utilizador e/ou uma palavra-passe para usar esta fonte de " "notícias." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:166 +msgid "Account" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:167 +msgid "(optional)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:168 +msgid "(required)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:185 msgid "Created by: " msgstr "Criado por: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:192 msgid "Last downloaded: never" msgstr "Último descarregamento: nunca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:207 msgid "%d days, %d hours and %d minutes ago" msgstr "à %d dias, %d horas e %d minutos" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209 msgid "Last downloaded" msgstr "Último descarregamento" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:233 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 msgid "Schedule news download" msgstr "Programar o descarregamento de notícias" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:236 msgid "Add a custom news source" msgstr "Adicionar uma fonte de notícias personalizada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:241 msgid "Download all scheduled new sources" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:341 msgid "No internet connection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:342 msgid "Cannot download news as no internet connection is active" msgstr "" @@ -7360,15 +7486,15 @@ msgstr "" msgid "Delete downloaded news older than " msgstr "Apagar as notícias mais antigas que " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:41 msgid "contains" msgstr "contém" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:42 msgid "The text to search for. It is interpreted as a regular expression." msgstr "O texto a procurar. É interpretado como uma expressão regular." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:43 msgid "" "<p>Negate this match. That is, only return results that <b>do not</b> match " "this query." @@ -7376,76 +7502,113 @@ msgstr "" "<p>Negar esta correspondência. Isto é, só mostrar os resultados que " "<b>não</b> corresponderem a esta pesquisa." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:44 msgid "Negate" msgstr "Negar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "Procura Avançada" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "Encontrar as entradas que têm..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "&Todas estas palavras:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "Esta &frase exacta:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "&Uma ou mais destas palavras:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "Mas não mostrar as entradas que têm..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "Alguma destas palavras &indesejadas:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Encontrar as entradas que têm..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Todas estas palavras:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Esta &frase exacta:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "&Uma ou mais destas palavras:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "Mas não mostrar as entradas que têm..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "Alguma destas palavras &indesejadas:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +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_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:83 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:97 msgid "Authors" msgstr "Autor(es)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:114 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:128 msgid "Publishers" msgstr "Editoras" @@ -7569,12 +7732,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "" @@ -7655,7 +7818,7 @@ msgid "Discard changes" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "" @@ -7854,6 +8017,63 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Código fonte da receita (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Notícias:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "Livro:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "Anexado, vai encontrar o livro" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "por" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "no formato %s." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "A enviar o email para" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "" +"Converter automaticamente os seguintes livros antes de enviar via email?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"É impossível enviar os livros seguintes por email poque não foram " +"encontrados formatos adequados:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Enviar as notícias para" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8050,23 +8270,23 @@ msgstr "É impossível parar os processos que comunicam com o aparelho" msgid "Job has already run" msgstr "O processo já executou" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Indisponível" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Processos:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Processos" @@ -8092,7 +8312,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:841 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "" @@ -8101,7 +8321,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:843 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "" @@ -8113,20 +8333,20 @@ msgstr "" msgid "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:159 msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "Procura Avançada" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 -msgid "&Search:" -msgstr "&Procura:" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" @@ -8135,19 +8355,27 @@ msgstr "" "comentários, etc.<br><br>Nas palavras separadas por espaços os espaços são " "substituidos por AND" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 +msgid "&Go!" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 +msgid "Do Quick Search (you can also press the Enter key)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "Reiniciar a Procura Rápida" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "" @@ -8160,88 +8388,91 @@ msgid "Y" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:226 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:240 msgid "On Device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:68 -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:271 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:285 msgid "Size (MB)" msgstr "Tamanho (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1137 -msgid "Book <font face=\"serif\">%s</font> of %s." -msgstr "Livro <font face=\"serif\">%s</font> de %s." +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 +msgid "Book %s of %s." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:698 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1237 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:704 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1239 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1238 msgid "This book's UUID is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:923 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 msgid "In Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:927 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 msgid "Size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 +msgid "Book <font face=\"serif\">%s</font> of %s." +msgstr "Livro <font face=\"serif\">%s</font> de %s." + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 msgid "Marked for deletion" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1220 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1219 msgid "Double click to <b>edit</b> me<br><br>" msgstr "Duplo clique para <b>me</b> editar<br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8276,52 +8507,52 @@ msgstr "" "<i>%s</i> ." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:441 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "Não foram encontradas correspondências" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128 msgid "LRF Viewer" msgstr "Visualizador de ficheiros LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:129 msgid "Parsing LRF file" msgstr "A analisar o ficheiro LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:130 msgid "LRF Viewer toolbar" msgstr "Barra de ferramentas do Visualizador de ficheiros LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Página Seguinte" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Página Anterior" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Back" msgstr "Para trás" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 msgid "Forward" msgstr "Para a frente" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:135 msgid "Next match" msgstr "Correspondência seguinte" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201 msgid "Open ebook" msgstr "Abrir um livro" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 msgid "Configure" msgstr "Configurar" @@ -8342,7 +8573,7 @@ msgid "Do not check for updates" msgstr "Não verificar por actualizações" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Biblioteca do calibre" @@ -8472,36 +8703,37 @@ msgstr "O livro não tem nem título nem ISBN" msgid "No matches found for this book" msgstr "Nenhuma correspondência encontrada para este livro" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "" @@ -9010,39 +9242,39 @@ msgstr "" msgid "&Split the toolbar into two toolbars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "" @@ -9361,7 +9593,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Falha em iniciar o servidor de conteúdos" @@ -9452,7 +9684,7 @@ msgid "View &server logs" msgstr "Ver o registo do &servidor" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:51 msgid "" "<p>Remember to leave calibre running as the server only runs as long as " "calibre is running.\n" @@ -9568,25 +9800,26 @@ msgstr "" msgid "&Current tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:261 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Procurar" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:322 msgid "The selected search will be <b>permanently deleted</b>. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:364 msgid "Search (For Advanced Search click the button to the left)" msgstr "Procura (Para a Procura Avançada clique no botão da esquerda)" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:406 msgid "Saved Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:414 msgid "Choose saved search or enter name for new saved search" msgstr "" @@ -9667,97 +9900,97 @@ msgstr "" msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 +msgid "Rename '%s'" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 +msgid "Edit sort for '%s'" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 +msgid "Hide category %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 +msgid "Show category" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 +msgid "Manage %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:230 +msgid "Manage Saved Searches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:241 +msgid "Manage User Categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:295 -msgid "Rename '%s'" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:299 -msgid "Edit sort for '%s'" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:304 -msgid "Hide category %s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:307 -msgid "Show category" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:311 -msgid "Show all categories" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:318 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:322 -msgid "Manage %s" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:325 -msgid "Manage Saved Searches" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:332 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:336 -msgid "Manage User Categories" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:537 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:317 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:620 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:621 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:889 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:898 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Corresponder todos" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:898 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Corresponder algum" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:903 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:907 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:910 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "" @@ -9804,28 +10037,28 @@ msgstr "" "Os seguintes livros já foram convertidos para o formato %s. Deseja voltar a " "convertê-los?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "&Restaurar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "&Faça um donativo para ajudar o calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:435 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "Erro de conversão" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -9834,26 +10067,26 @@ msgstr "" "(Digital Rights Management)</a>. Primeiro deve remover o DRM usando " "ferramentas de terceiros." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Falha</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Existem processos activos. Tem a certeza que quer sair?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -9863,11 +10096,11 @@ msgstr "" " Sair pode causar corrupção no aparelho.<br>\n" " Tem a certeza que quer sair?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "AVISO: Processos activos" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -9917,31 +10150,31 @@ msgstr "Importar Marcadores" msgid "Pickled Bookmarks (*.pickle)" msgstr "Marcadores Guardados (*.pickle)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 msgid "Bookmark Manager" msgstr "Gestor de Marcadores" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 msgid "Actions" msgstr "Acções" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:63 msgid "Edit" msgstr "Editar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:64 msgid "Delete" msgstr "Apagar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:65 msgid "Reset" msgstr "Restaurar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:66 msgid "Export" msgstr "Exportar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:67 msgid "Import" msgstr "Importar" @@ -10044,17 +10277,17 @@ msgstr "" msgid "No results found for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Opções para personalizar o Visualizador de livros" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Lembrar o tamanho da última janela utilizada" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10062,80 +10295,80 @@ msgstr "" "Definir a folha de estilos CSS. Pode ser usada para personalizar a aparência " "de todos os livros." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Largura máxima da janela do Visualizador, em pixels." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Translinear o texto" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "A linguagem predefinida a usar para as regras de translineação" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Opções do tipo de letra" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "A família do tipo de letra serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "A família do tipo de letra sans-serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "A família do tipo de letra monospace" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "O tamanho do tipo de letra padrão em px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "O tamanho do tipo de letra monospace padrão em px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "O tipo de letra padrão" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:453 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Ir para..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "" @@ -10205,82 +10438,87 @@ msgstr "" msgid "Search for text in book" msgstr "Procurar neste livro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Pré-visualizar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Escolher o livro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "Livros" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Nenhuma correspondência encontrada para: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "A carregar o fluxo..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "A representar %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Adicionar marcador" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Introduzir o título para o marcador" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Gerir Marcadores" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "A carregar o livro..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "Erro de DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Este livro está protegido por <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "É impossível abrir o livro" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:689 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Opções para controlar o Visualizador de livros" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:696 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Se especificado a janela do Visualizador vai tentar vir para a frente quando " "iniciada." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +msgid "" +"If specified, viewer window will try to open full screen when started." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Imprimir alertas javascript e mensagens da consola na consola" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:707 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10330,6 +10568,10 @@ msgstr "" msgid "F3" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205 +msgid "Copy to clipboard" +msgstr "Copiar para a Ãrea de Transferência" + #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207 msgid "Reference Mode" msgstr "Modo de Referência" @@ -10370,31 +10612,31 @@ msgstr "" msgid "Paste Image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:384 msgid "Change Case" msgstr "Alterar a Capitalização" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:387 msgid "Swap Case" msgstr "Alterar a Capitalização" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:857 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:858 msgid "Drag to resize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:893 msgid "Show" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:899 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:900 msgid "Hide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:936 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:937 msgid "Toggle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -10404,7 +10646,7 @@ msgstr "" "colecção de livros do calibre directamente no aparelho. Para fazer isto tem " "de ligar o servidor de conteúdos do calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." @@ -10412,7 +10654,7 @@ msgstr "" "Lembre-se de deixar o calibre a executar porque o servidor só trabalha " "enquanto o calibre estiver a executar." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -10422,20 +10664,20 @@ msgstr "" "no WordPlayer. Aqui myhostname deve ser o domínio ou o endereço IP do " "computador onde o calibre está a executar." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:461 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "A mover a biblioteca..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Falha ao mover a biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Base de dados inválida" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -10443,37 +10685,37 @@ msgstr "" "<p>Já existe uma biblioteca inválida em %s, apague-a antes de tentar mover a " "biblioteca existente.<br>Erro: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "É impossível mover a biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:615 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Seleccione a localização dos livros" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "assistente de boas vindas" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:54 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:42 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:47 msgid "Welcome to calibre" msgstr "Bem vindo ao calibre" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:55 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:43 -#: /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 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:48 msgid "The one stop solution to all your e-book needs." msgstr "" "A solução centralizada para todas as suas necessidades no que diz respeito a " @@ -10495,7 +10737,7 @@ msgstr "&Fabricantes" msgid "&Devices" msgstr "&Aparelhos" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 msgid "" "<h2>Congratulations!</h2> You have successfully setup calibre. Press the %s " "button to apply your settings." @@ -10503,19 +10745,19 @@ msgstr "" "<h2>Parabéns!</h2> Configurou o calibre com sucesso. Carregue no botão %s " "para aplicar as suas definições." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 msgid "" "<h2>Demo videos</h2>Videos demonstrating the various features of calibre are " "available <a href=\"http://calibre-ebook.com/demo\">online</a>." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:51 msgid "" "<h2>User Manual</h2>A User Manual is also available <a href=\"http://calibre-" "ebook.com/user_manual\">online</a>." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:49 msgid "" "<p>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 " @@ -10529,27 +10771,25 @@ msgstr "" "grátis e clicar no botão Usar o gmail abaixo. Também tem de registar o seu " "endereço do gmail na sua conta da Amazon." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:50 msgid "&Kindle email:" msgstr "email do &Kindle:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:57 msgid "Choose your &language:" msgstr "Defina a sua &linguagem" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Escolha a localização dos seus livros. Quando adicionar livros ao calibre " -"eles serão copiados para aqui:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" msgstr "&Alterar" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:60 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 " @@ -10559,49 +10799,72 @@ msgstr "" "localização. Se uma biblioteca do calibre já existir na nova localização " "então o calibre usará essa." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "A usar: %s:%s@%s:%s e encriptação %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "A enviar..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "Email enviado com sucesso" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "Terminar a configuração do gmail" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Não se esqueça de introduzir o seu utilizador e palavra-passe do gmail. Pode " -"registar-se para uma conta gmail grátis em http://gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "Má configuração" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Deve definir o endereço do remetente" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "" "Deve definir o utilizador e a palavra-passe para o servidor de email." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "Enviar email &de:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -10609,7 +10872,7 @@ msgstr "" "<p>Isto é o que será apresentado no campo De: nos emails enviados pelo " "calibre.<br> Defina-o com o seu endereço de email." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -10617,78 +10880,90 @@ msgstr "" "<p>Um servidor de email é útil se o aparelho para onde está a enviar o email " "só aceita email de serviços de email conhecidos." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "&Servidor de email" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "o calibre pode <b>opcionalmente</b> usar um servidor para enviar email" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Domínio:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "O domínio do seu servidor de email. Por exemplo smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Porta:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "A porta que o seu servidor de email utiliza para as ligações. A predefinição " "é 25." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "O seu utilizador no servidor de email" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "A sua palavra-passe no servidor de email" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Mostrar" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "&Encriptação:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." msgstr "" "Usar encriptação TLS quando ligar ao servidor de email. Isto é o mais comum." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Usar encriptação SSL quando ligar ao servidor de email." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Usar o Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Testar o email" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:49 msgid "" "<p>If you use the <a href=\"http://www.lexcycle.com/download\">Stanza</a> e-" "book app on your iPhone/iTouch, you can access your calibre book collection " @@ -10700,7 +10975,7 @@ msgstr "" "pode aceder à sua colecção de livros do calibre directamente no aparelho. " "Para fazer isto tem de ligar o servidor de conteúdos do calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:50 msgid "Turn on the &content server" msgstr "Ligar o servidor de &conteúdos" @@ -10751,7 +11026,7 @@ msgstr "" msgid "empty" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10760,7 +11035,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10768,7 +11043,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10777,7 +11052,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10785,7 +11060,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -10793,7 +11068,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -10802,7 +11077,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -10810,7 +11085,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -10818,7 +11093,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -10826,14 +11101,14 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 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:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -10842,14 +11117,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -10858,35 +11133,35 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 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:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -10895,7 +11170,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -10905,13 +11180,20 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 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:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "" @@ -11293,7 +11575,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:665 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:505 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:499 msgid "Show detailed output information. Useful for debugging" msgstr "Mostrar informação detalhada. Útil para depurar." @@ -11531,53 +11813,53 @@ msgid "" "start with a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:81 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:839 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2307 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" "<p>A migrar a base de dados antiga para a biblioteca de livros em " "%s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2336 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "A copiar <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2353 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "A compactar a base de dados" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2446 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "A verificar a integridade do SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2485 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "A verificar ficheiros desaparecidos." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2507 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "ID verificado" -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:125 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:139 msgid "Ratings" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:262 +#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:276 msgid "Title Sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/restore.py:117 +#: /home/kovid/work/calibre/src/calibre/library/restore.py:125 msgid "Processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/restore.py:182 +#: /home/kovid/work/calibre/src/calibre/library/restore.py:191 msgid "creating custom column " msgstr "" @@ -11716,7 +11998,7 @@ msgstr "Converter os caminhos para minúsculas." msgid "Replace whitespace with underscores." msgstr "Substituir espaços por underscores" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:331 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:335 msgid "Requested formats not available" msgstr "Os formatos pedidos não estão disponíveis" @@ -11767,34 +12049,171 @@ msgid "" "disable grouping." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:94 -msgid "Password to access your calibre library. Username is " -msgstr "Palavra-passe para aceder à sua biblioteca calibre. Utilizador é " +#: /home/kovid/work/calibre/src/calibre/library/server/__init__.py:48 +msgid "" +"Prefix to prepend to all URLs. Useful for reverseproxying to this server " +"from Apache/nginx/etc." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:28 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 +msgid "Loading, please wait" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 +msgid "First" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 +msgid "Last" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 +msgid "Previous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 +msgid "Next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 +msgid "Browsing %d books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 +msgid "Average rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 +msgid "%s: %.1f stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 +msgid "%d stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +msgid "Popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 +msgid "Sort by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 +msgid "library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 +msgid "home" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 +#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 +msgid "Newest" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 +msgid "All books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 +msgid "Browse books by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 +msgid "Choose a category to browse by:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 +msgid "Browsing by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 +msgid "Up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 +msgid "in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 +msgid "Books in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 +msgid "Other formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +msgid "Read %s in the %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 +msgid "Get" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 +msgid "Permalink" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 +msgid "A permanent link to this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 +msgid "This book has been deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 +msgid "in search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 +msgid "Matching books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:39 msgid "" "[options]\n" "\n" -"Start the calibre content server." -msgstr "" -"[options]\n" +"Start the calibre content server. The calibre content server\n" +"exposes your calibre library over the internet. The default interface\n" +"allows you to browse you calibre library by categories. You can also\n" +"access an interface optimized for mobile browsers at /mobile and an\n" +"OPDS based interface for use with reading applications at /opds.\n" "\n" -"Iniciar o servidor de conteúdos do calibre." +"The OPDS interface is advertised via BonJour automatically.\n" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:30 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:52 msgid "Path to the library folder to serve with the content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:32 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:54 msgid "Write process PID to the specified file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/main.py:36 +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:58 msgid "" "Specifies a restriction to be used for this invocation. This option " "overrides any per-library settings specified in the GUI" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:62 +msgid "" +"Auto reload server when source code changes. May not work in all " +"environments." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d book" msgstr "" @@ -11827,10 +12246,6 @@ msgstr "" msgid "Books sorted by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:588 -msgid "Newest" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/utils/config.py:32 msgid "%sUsage%s: %s\n" msgstr "%sUtilização%s: %s\n" @@ -11911,6 +12326,14 @@ msgstr "" msgid "How and when calibre updates metadata on the device." msgstr "" +#: /home/kovid/work/calibre/src/calibre/utils/formatter.py:33 +msgid "lookup requires either 2 or an odd number of arguments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/formatter.py:56 +msgid "switch requires an odd number of arguments" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." msgstr "À espera..." @@ -12073,7 +12496,7 @@ msgstr "Falha ao negociar a sessão SSH: " msgid "Failed to authenticate with server: %s" msgstr "Falha na autenticação com o servidor: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:230 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Controlar a entrega do email" @@ -12123,93 +12546,93 @@ msgstr "" msgid "Unknown News Source" msgstr "Fonte de Notícias desconhecida" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:612 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:628 msgid "The \"%s\" recipe needs a username and password." msgstr "A receita \"%s\" necessita de um utilizador e palavra-passe." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:711 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:727 msgid "Download finished" msgstr "Descarregamento terminado" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:713 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:729 msgid "Failed to download the following articles:" msgstr "Falha no descarregamento dos seguintes artigos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:719 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:735 msgid "Failed to download parts of the following articles:" msgstr "Falha no descarregamento de partes dos seguintes artigos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:721 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:737 msgid " from " msgstr " de " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:723 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 msgid "\tFailed links:" msgstr "\tAtalhos falhados:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:812 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:834 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "É impossível recolher o artigo. Execute com -vv para ver a razão." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:833 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:855 msgid "Fetching feeds..." msgstr "A recolher as fontes..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:838 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:860 msgid "Got feeds from index page" msgstr "Tirar as fontes da página de índice" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:844 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:869 msgid "Trying to download cover..." msgstr "A tentar descarregar a capa..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:846 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:871 msgid "Generating masthead..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:927 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:952 msgid "Starting download [%d thread(s)]..." msgstr "A iniciar o descarregamento [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:943 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:968 msgid "Feeds downloaded to %s" msgstr "Fontes descarregadas para %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:952 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:977 msgid "Could not download cover: %s" msgstr "É impossível descarregar a capa: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:959 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:986 msgid "Downloading cover from %s" msgstr "A descarregar a capa de %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1004 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1032 msgid "Masthead image downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1172 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1200 msgid "Untitled Article" msgstr "Artigo Sem Título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1243 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Article downloaded: %s" msgstr "Artigo descarregado: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1254 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1282 msgid "Article download failed: %s" msgstr "Falha no descarregamento do artigo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1299 msgid "Fetching feed" msgstr "A recolher a fonte" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1418 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1446 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1433 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1461 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." @@ -12230,7 +12653,7 @@ msgstr "Programado" msgid "Custom" msgstr "Personalizar" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 msgid "" "%prog URL\n" "\n" @@ -12240,11 +12663,11 @@ msgstr "" "\n" "Onde o URL é por exemplo http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "Base directory into which URL is saved. Default is %default" msgstr "Pasta padrão onde o URL é guardado. A predefinição é %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -12252,7 +12675,7 @@ msgstr "" "O tempo de espera em segundos para esperar uma resposta do servidor. A " "predefinição é: %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:491 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -12260,7 +12683,7 @@ msgstr "" "O número máximo de níveis a seguir recursivamente, i.e. a profundidade de " "atalhos a seguir. A predefinição é %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 msgid "" "The maximum number of files to download. This only applies to files from <a " "href> tags. Default is %default" @@ -12268,7 +12691,7 @@ msgstr "" "O número máximo de ficheiros para descarregar. Isto só se aplica a ficheiros " "com etiquetas <a href>. A predefinição é %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:490 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -12276,7 +12699,7 @@ msgstr "" "Intervalo mínimo em segundos entre recolhas consecutivas. A predefinição é " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:492 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -12284,7 +12707,7 @@ msgstr "" "A codificação de caracteres para os sítios que está a tentar descarregar. A " "predefinição é tentar descobrir a codificação." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:500 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 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 " @@ -12295,7 +12718,7 @@ msgstr "" "um atalho corresponder a alguma expressão regular, ele será seguido. A " "predefinição é seguir todas os atalhos." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:502 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 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 " @@ -12309,7 +12732,7 @@ msgstr "" "predefinição é não ignorar nenhum atalho. Se ambos --filter-regexp e --match-" "regexp forem especificados, então --filter-regexp é aplicado primeiro." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:504 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 msgid "Do not download CSS stylesheets." msgstr "Não descarregar folhas de estilos CSS." @@ -12984,6 +13407,12 @@ msgstr "Não descarregar folhas de estilos CSS." #~ msgid "Update available" #~ msgstr "Actualização disponível" +#~ msgid "" +#~ "No metadata found, try adjusting the title and author or the ISBN key." +#~ msgstr "" +#~ "Não foram encontrados metadados, experimente ajustar o título e o autor ou a " +#~ "chave ISBN." + #~ msgid "Change the publisher of this book" #~ msgstr "Alterar a editora deste livro" @@ -13087,6 +13516,9 @@ msgstr "Não descarregar folhas de estilos CSS." #~ "Se desactivar esta definição os metadados são adivinhados a partir do nome " #~ "do ficheiro. Isto pode ser configurado na secção Avançadas" +#~ msgid "&Search:" +#~ msgstr "&Procura:" + #~ msgid "Browse for the new database location" #~ msgstr "Navegar para a nova localização da base de dados" @@ -14239,6 +14671,15 @@ msgstr "Não descarregar folhas de estilos CSS." #~ msgid "Send specific format to main memory" #~ msgstr "Enviar o formato específico para a memória principal" +#~ msgid "Failed to email the following books:" +#~ msgstr "Falha no envio dos seguintes livros:" + +#~ msgid "Failed to email books" +#~ msgstr "Falha no envio dos livros" + +#~ msgid "Sent by email:" +#~ msgstr "Enviado por email:" + #~ msgid "" #~ "Email\n" #~ "Delivery" @@ -14246,6 +14687,9 @@ msgstr "Não descarregar folhas de estilos CSS." #~ "Entrega\n" #~ "de Email" +#~ msgid "Attached is the" +#~ msgstr "Anexado está o" + #~ msgid "Communicate with the BeBook eBook reader." #~ msgstr "Comunica com o leitor BeBook." @@ -14322,6 +14766,18 @@ msgstr "Não descarregar folhas de estilos CSS." #~ msgid "Configure calibre" #~ msgstr "Configurar o calibre" +#~ msgid "" +#~ "[options]\n" +#~ "\n" +#~ "Start the calibre content server." +#~ msgstr "" +#~ "[options]\n" +#~ "\n" +#~ "Iniciar o servidor de conteúdos do calibre." + +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "Palavra-passe para aceder à sua biblioteca calibre. Utilizador é " + #~ msgid "Options to control e-book conversion." #~ msgstr "Opções para controlar a conversão de livros." @@ -14392,6 +14848,13 @@ msgstr "Não descarregar folhas de estilos CSS." #~ msgid "Starting conversion of %d books" #~ msgstr "A começar a conversão de %d livro(s)" +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Não se esqueça de introduzir o seu utilizador e palavra-passe do gmail. Pode " +#~ "registar-se para uma conta gmail grátis em http://gmail.com" + #~ msgid "" #~ "This RTF file has a feature calibre does not support. Convert it to HTML " #~ "first and then try it." @@ -14430,6 +14893,17 @@ msgstr "Não descarregar folhas de estilos CSS." #~ msgid "&Check database integrity" #~ msgstr "&Verificar a integridade da base de dados" +#~ 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 "" +#~ "Os livros seguintes têm formatos listados na base de dados que na realidade " +#~ "não estão disponíveis. As entradas para os formatos foram removidas. Deve " +#~ "verificá-los manualmente. Isto pode acontecer se manipular os ficheiros " +#~ "directamente nas pastas da biblioteca." + #~ msgid "" #~ "<h2>Demo videos</h2>Videos demonstrating the various features of calibre are " #~ "available <a " @@ -14502,6 +14976,16 @@ msgstr "Não descarregar folhas de estilos CSS." #~ msgid "Vietnamese" #~ msgstr "Vietnamita" +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Escolha a localização dos seus livros. Quando adicionar livros ao calibre " +#~ "eles serão copiados para aqui:" + +#~ msgid "Finish gmail setup" +#~ msgstr "Terminar a configuração do gmail" + #~ msgid "Add/Save" #~ msgstr "Adicionar/Guardar" @@ -14548,6 +15032,13 @@ msgstr "Não descarregar folhas de estilos CSS." #~ msgid "Communicate with the Sony PRS-300/505 eBook reader." #~ msgstr "Comunica com o leitor Sony PRS-300/505." +#~ 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 "" +#~ "Tamanho médio da linha a quebrar se o HTML é de uma conversão parcial " +#~ "anterior de um ficheiro PDF. A predefinição é: %default que desactiva isto." + #~ msgid "Add a tab at the beginning of each paragraph." #~ msgstr "Adiciona uma tabulação no início de cada parágrafo." @@ -14600,6 +15091,12 @@ msgstr "Não descarregar folhas de estilos CSS." #~ msgid "English (IND)" #~ msgstr "English (India)" +#~ msgid " " +#~ msgstr " " + +#~ msgid "EDITORIAL REVIEW" +#~ msgstr "REVISÃO EDITORIAL" + #~ msgid "justify" #~ msgstr "justificar" diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index 05bb3c5307..39b69ad874 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-11-06 15:45+0000\n" -"PO-Revision-Date: 2010-11-08 14:28+0000\n" -"Last-Translator: RedFox <Unknown>\n" +"POT-Creation-Date: 2010-11-12 23:11+0000\n" +"PO-Revision-Date: 2010-11-12 22:07+0000\n" +"Last-Translator: Kovid Goyal <Unknown>\n" "Language-Team: American English <kde-i18n-doc@lists.kde.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-09 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-11-13 04:53+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" @@ -35,7 +35,7 @@ msgstr "Ðичего не делает" #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:650 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -78,14 +78,14 @@ msgstr "Ðичего не делает" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:620 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:826 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:828 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -127,8 +127,8 @@ msgstr "Ðичего не делает" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1249 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1252 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 @@ -196,7 +196,7 @@ msgstr "ДейÑтвие ПользовательÑкого ИнтерфейÑа msgid "Preferences" msgstr "Параметры" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -206,7 +206,7 @@ msgstr "" "Ñодержащий вÑе ÑвÑзанные файлы. Этот модуль запуÑкаетÑÑ ÐºÐ°Ð¶Ð´Ñ‹Ð¹ раз, когда вы " "добавлÑете HTML файл в библиотеку." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -214,7 +214,7 @@ msgstr "" "Кодировка Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñщих HTML файлов. Ðаиболее популÑрные: cp1251, latin1, iso-" "8859-1 и utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -224,7 +224,7 @@ msgstr "" "pmlname_img либо images. Этот плагин запуÑкаетÑÑ ÐºÐ°Ð¶Ð´Ñ‹Ð¹ раз когда в " "библиотеку добавлÑетÑÑ PML-файл." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Извлечь обложку из файлов комикÑа" @@ -271,43 +271,43 @@ msgstr "ВнеÑти метаданные в файлы %s" msgid "Set metadata from %s files" msgstr "ВнеÑти метаданные из файлов %s" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712 msgid "Look and Feel" msgstr "Оформление" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:726 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748 msgid "Interface" msgstr "ИнтерфейÑ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "ÐаÑтройте внешний вид calibre по-Ñвоему вкуÑу" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724 msgid "Behavior" msgstr "Поведение" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:730 msgid "Change the way calibre behaves" msgstr "ÐаÑтройка Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Добавьте Ñвои Ñтолбцы" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:741 msgid "Add/remove your own columns to the calibre book list" msgstr "Добавьте/удалите ваши ÑобÑтвенные Ñтолбцы в ÑпиÑок книг Calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Customize the toolbar" msgstr "ÐаÑтройка панели инÑтрументов" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -315,59 +315,59 @@ msgstr "" "ÐаÑтройте панель инÑтрументов и контекÑтное меню, выбрав то, какие дейÑÑ‚Ð²Ð¸Ñ " "будут доÑтупны Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ и другого." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758 msgid "Input Options" msgstr "ÐаÑтройки ввода" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:760 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:771 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782 msgid "Conversion" msgstr "КонвертациÑ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:764 msgid "Set conversion options specific to each input format" msgstr "Задайте параметры конвертации, характерные Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ формата ввода" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Common Options" msgstr "Общие наÑтройки" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:775 msgid "Set conversion options common to all formats" msgstr "УÑтановка общих Ð´Ð»Ñ Ð²Ñех форматов параметров конвертации" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Output Options" msgstr "ÐаÑтройки вывода" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:786 msgid "Set conversion options specific to each output format" msgstr "" "Задайте параметры конвертации, характерные Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ формата вывода" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Adding books" msgstr "Добавление книг" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:793 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:805 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 msgid "Import/Export" msgstr "Импорт/ЭкÑпорт" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Управление тем, как Calibre Ñчитывает метаданные из файлов при добавлении " "книг" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:803 msgid "Saving books to disk" msgstr "ЗапиÑÑŒ книг на диÑк" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -375,32 +375,32 @@ msgstr "" "Управление тем, как Calibre ÑкÑпортирует файлы из Ñвоей базы данных на диÑк " "при иÑпользовании запиÑи на диÑк" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:815 msgid "Sending books to devices" msgstr "Передача книг на уÑтройÑтва" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:821 msgid "Control how calibre transfers files to your ebook reader" msgstr "Контроль передачи книжек на уÑтройÑтво" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:827 msgid "Metadata plugboards" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:833 msgid "Change metadata fields before saving/sending" msgstr "ИзменÑть Ð¿Ð¾Ð»Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… до ÑохранениÑ/отправки" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Sharing books by email" msgstr "Отправить книжку по e-mail" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:840 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852 msgid "Sharing" msgstr "Общий доÑтуп к файлам" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -408,11 +408,11 @@ msgstr "" "ÐаÑтройка раÑÑылки книг по e-mail. Может быть иÑпользована Ð´Ð»Ñ " "автоматичеÑкой доÑтавки загруженных новоÑтных лент на уÑтройÑтво" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:850 msgid "Sharing over the net" msgstr "Сетевой доÑтуп" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:856 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -420,33 +420,33 @@ msgstr "" "ÐаÑтройка http-Ñервера calibre, предоÑтавлÑющего доÑтуп к библиотеке Ñ " "любого уÑтройÑтва, подключенного к Ñети интернет" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:863 msgid "Plugins" msgstr "Модули" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:877 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:888 msgid "Advanced" msgstr "РаÑширенный" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:869 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Добавить/удалить/изменить различные чаÑти функциональноÑти calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875 msgid "Tweaks" msgstr "РаÑширенные наÑтройки" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:881 msgid "Fine tune how calibre behaves in various contexts" msgstr "Ð¢Ð¾Ð½ÐºÐ°Ñ Ð½Ð°Ñтройка Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ calibre при различных контекÑтах" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Miscellaneous" msgstr "Разное" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:892 msgid "Miscellaneous advanced configuration" msgstr "Ð Ð°Ð·Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð½ÑƒÑ‚Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ" @@ -491,7 +491,7 @@ msgstr "" "полезен, еÑли вы ничего не знаете о входном документе." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "Профиль Ð´Ð»Ñ Ð´Ð»Ñ Ð»Ð¸Ð½ÐµÐ¹ÐºÐ¸ моделей SONY PRS. 500/505/600/700 и других" @@ -501,62 +501,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Профиль Ð´Ð»Ñ SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Профиль Ð´Ð»Ñ SONY PRS 900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Профиль Ð´Ð»Ñ Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Профиль Ð´Ð»Ñ ÐºÐ½Ð¸Ð³ Mobipocket" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Профиль Ð´Ð»Ñ Hanlin V3 и её клонов." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Профиль Ð´Ð»Ñ Hanlin V5 и её клонов." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Профиль Ð´Ð»Ñ Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Профиль Ð´Ð»Ñ Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Профиль Ð´Ð»Ñ Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Профиль Ð´Ð»Ñ iRex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 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:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Профиль Ð´Ð»Ñ iRex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Профиль Ð´Ð»Ñ B&N Nook." @@ -574,29 +574,29 @@ msgstr "" "полезным, еÑли вы хотите подготовить документ, предназначенный Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð½Ð° " "компьютере или на неÑкольких различных уÑтройÑтвах." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "Предназначено Ð´Ð»Ñ iPad и аналогичных уÑтройÑтв Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Профиль Ð´Ð»Ñ Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Профиль Ð´Ð»Ñ SONY PRS-300" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Профиль Ð´Ð»Ñ 5-дюймовой JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -604,11 +604,11 @@ msgstr "" "Профиль Ð´Ð»Ñ Ð»Ð¸Ð½ÐµÐ¹ÐºÐ¸ SONY PRS: 500/505/700 - в ландшафтном режиме. Полезен " "Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¸ÐºÑов." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Профиль Ð´Ð»Ñ Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:686 msgid "This profile is intended for the Sanda Bambook." msgstr "Этот профиль предназначен Ð´Ð»Ñ Sanda Bambook." @@ -683,7 +683,7 @@ msgstr "Отключить указанный плагин" msgid "Communicate with Android phones." msgstr "СоединитьÑÑ Ñ Android." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -691,7 +691,7 @@ msgstr "" "Разделённый запÑтаÑми ÑпиÑок директории Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ e-books на Ñто " "уÑтройÑтво. Будет иÑпользовано первое в ÑпиÑке уÑтройÑтво" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "СоединитьÑÑ Ñ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð¾Ð¼ S60" @@ -1044,6 +1044,14 @@ msgstr "The Nook" msgid "Communicate with the Nook eBook reader." msgstr "СоединитьÑÑ Ñ Nook" +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "СоединитьÑÑ Ñ Nuut2." @@ -2425,8 +2433,8 @@ msgstr "Да" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 @@ -2460,8 +2468,8 @@ msgstr "СпонÑор" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 @@ -2780,7 +2788,7 @@ msgstr "" "LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Обложка" @@ -2817,74 +2825,74 @@ msgstr "Тег маркировки книги Ñ Ð»Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ докумен msgid "All articles" msgstr "Ð’Ñе Ñтатьи" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Это книга Amazon Topaz. Она не может быть прочитана." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Ð¢Ð¸Ñ‚ÑƒÐ»ÑŒÐ½Ð°Ñ Ñтраница" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Содержание" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "ИндекÑ" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "ГлоÑÑарий" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "ПодтверждениÑ" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "БиблиографиÑ" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Ñмблема издательÑтва" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Копирайт" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "ПоÑвÑщение" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Эпиграф" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "ПредиÑловие" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "СпиÑок иллюÑтраций" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Оглавление" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Заметки" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Введение" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "ОÑновной текÑÑ‚" @@ -3920,7 +3928,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Запрещено" @@ -3987,7 +3995,7 @@ msgstr "Ðевозможно Ñкопировать книги: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:683 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 msgid "Failed" msgstr "ÐеудалоÑÑŒ" @@ -4719,11 +4727,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 @@ -4732,10 +4740,10 @@ msgstr "Путь" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 @@ -4766,7 +4774,7 @@ msgstr "Щелкните, чтобы открыть" msgid "None" msgstr "Ðичего" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 msgid "Double-click to open Book Details window" msgstr "" @@ -4988,6 +4996,19 @@ msgstr "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ñекцию 'Серии'" msgid "Tab template for catalog.ui" msgstr "Шаблон вкладки Ð´Ð»Ñ catalog.ui" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 " @@ -4998,11 +5019,11 @@ msgstr "" "Ñохраненные во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ¹ конвертиции (еÑли таковые еÑть) вмеÑто " "значений по умолчанию указанных в оÑновном окне наÑтроек." -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "МаÑÑовое конвертирование" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Параметры Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð¾Ð³Ð¾ формата вывода." @@ -5503,6 +5524,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "СериÑ:" @@ -5690,7 +5712,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5879,8 +5901,8 @@ msgid "Force maximum line length" msgstr "Ограничить макÑимальную длину Ñтроки" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -6193,10 +6215,10 @@ msgstr "Отправка Ñлектронной почты" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1174 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1301 msgid "No suitable formats" msgstr "Ðет подходÑщего формата" @@ -6221,37 +6243,37 @@ msgstr "Ðе отправлена ÑÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð° Ñо Ñле msgid "Sent by email:" msgstr "Отправлена ÑÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð°:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1048 msgid "News:" msgstr "ÐовоÑти:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1049 msgid "Attached is the" msgstr "Прикреплено" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1060 msgid "Sent news to" msgstr "ОтоÑлать новоÑти" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1175 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1294 msgid "Auto convert the following books before uploading to the device?" msgstr "ÐвтоматичеÑки конвертировать книги до загрузки в уÑтройÑтво?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1120 msgid "Sending catalogs to device." msgstr "ОтправлÑем каталоги в уÑтройÑтво." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207 msgid "Sending news to device." msgstr "ОтправлÑÑŽÑ‚ÑÑ Ð½Ð¾Ð²Ð¾Ñти на уÑтройÑтво." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1260 msgid "Sending books to device." msgstr "Отправка книги в уÑтройÑтво" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1302 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." @@ -6260,11 +6282,11 @@ msgstr "" "формата. Переконвертируйте книгу(и) в формат поддерживаемый вашим " "уÑтройÑтвом." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1366 msgid "No space on device" msgstr "Ðет меÑта на уÑтройÑтве" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1367 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6316,15 +6338,15 @@ msgstr "" msgid "&Paste from clipboard" msgstr "Ð’Ñтавить из буфера обмена" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "&Предыдущий" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "&Следующий" @@ -6489,6 +6511,7 @@ msgid "Set options for converting %s" msgstr "УÑтановить опции конвертации %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&Ðазвание:" @@ -6743,13 +6766,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6759,7 +6781,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6774,30 +6796,30 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -7040,7 +7062,7 @@ msgid "Your test:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 -msgid "&Search and replace (experimental)" +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -7558,56 +7580,52 @@ msgstr "" msgid "Negate" msgstr "ИÑключить" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "РаÑширенный поиÑк" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "ИщетÑÑ Ð²Ð²ÐµÐ´ÐµÐ½Ð¾Ðµ значение..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "Ð’Ñе Ñти Ñлова:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "ТребуетÑÑ Ñ„Ñ€Ð°Ð·Ð°:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "Одно или более из Ñлов:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "Ðо не показывать введеные данные..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "Любые из Ñтих найденных Ñлов:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "ИщетÑÑ Ð²Ð²ÐµÐ´ÐµÐ½Ð¾Ðµ значение..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "Ð’Ñе Ñти Ñлова:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "ТребуетÑÑ Ñ„Ñ€Ð°Ð·Ð°:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "Одно или более из Ñлов:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "Ðо не показывать введеные данные..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "Любые из Ñтих найденных Ñлов:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" @@ -7615,6 +7633,47 @@ msgstr "" "Смотри <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">ПользовательÑкий мануал</a> Ð´Ð»Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰Ð¸" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "Выберите форматы" @@ -8275,37 +8334,41 @@ msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "РаÑширенный поиÑк" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð±Ñ‹Ñтрого поиÑка" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "" @@ -8362,47 +8425,47 @@ msgstr "" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Дважды кликните по <b>редактировать</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "ВозраÑтание" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Убывание" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -10209,7 +10272,7 @@ msgid "Options to customize the ebook viewer" msgstr "Опции наÑтроек ebook вьювера" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "Remember last used window size" msgstr "" @@ -10383,66 +10446,66 @@ msgstr "Ð­Ð»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°" msgid "No matches found for: %s" msgstr "Ðет ÑоответÑтвий длÑ: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 msgid "Loading flow..." msgstr "Загрузить поток..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 msgid "Laying out %s" msgstr "Разметка %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 msgid "Add bookmark" msgstr "Добавить закладку" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 msgid "Enter title for bookmark:" msgstr "Введите название закладки" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 msgid "Manage Bookmarks" msgstr "Управление закладками" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 msgid "Loading ebook..." msgstr "ЗагружаетÑÑ ÑÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ ÐºÐ½Ð¸Ð³Ð°..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 msgid "DRM Error" msgstr "Ошибка DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Книга защищена <a href=\"%s\">DRM</a>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 msgid "Could not open ebook" msgstr "Ðе могу открыть Ñлектронную книгу" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:691 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 msgid "Options to control the ebook viewer" msgstr "Опции ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ebook вьювером" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 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:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 msgid "" "%prog [options] file\n" "\n" @@ -14749,6 +14812,9 @@ msgstr "Ðе Ñкачивать файлы Ñтилей CSS." #~ msgid "Communicate with the Sony PRS-600/700/900 eBook reader." #~ msgstr "СоединÑтьÑÑ Ñ Sony PRS-600/700/900" +#~ msgid " " +#~ msgstr " " + #~ msgid "" #~ "\n" #~ " <p>The database of books on the reader is corrupted. Try the " diff --git a/src/calibre/translations/sl.po b/src/calibre/translations/sl.po index 5d2ef297d6..0100b5da54 100644 --- a/src/calibre/translations/sl.po +++ b/src/calibre/translations/sl.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.17\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-11-06 15:45+0000\n" -"PO-Revision-Date: 2010-11-06 13:35+0000\n" +"POT-Creation-Date: 2010-11-12 23:11+0000\n" +"PO-Revision-Date: 2010-11-12 22:19+0000\n" "Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n" "Language-Team: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-07 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-11-13 04:54+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -31,7 +31,7 @@ msgstr "Ne stori niÄesar" #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:650 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -74,14 +74,14 @@ msgstr "Ne stori niÄesar" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:620 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:826 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:828 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -123,8 +123,8 @@ msgstr "Ne stori niÄesar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1249 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1252 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 @@ -192,14 +192,14 @@ msgstr "Dejanje uporabniÅ¡kega vmesnika" msgid "Preferences" msgstr "Nastavitve" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -207,14 +207,14 @@ msgstr "" "Kodiranje znakov za vhodne datoteke HTML. NajpogostejÅ¡e izbire: cp1250, " "latin2, iso-8859-2 in utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Pridobi naslovno stran iz stripa" @@ -261,171 +261,171 @@ msgstr "" msgid "Set metadata from %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712 msgid "Look and Feel" msgstr "Videz in obÄutek" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:726 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748 msgid "Interface" msgstr "Vmesnik" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724 msgid "Behavior" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:730 msgid "Change the way calibre behaves" msgstr "Spremenite odzivanje programa calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Dodajte lastne stolpce" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:741 msgid "Add/remove your own columns to the calibre book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Customize the toolbar" msgstr "Prikroji orodno vrstico" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758 msgid "Input Options" msgstr "Možnosti vnosa" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:760 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:771 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782 msgid "Conversion" msgstr "Pretvorba" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:764 msgid "Set conversion options specific to each input format" msgstr "DoloÄite možnosti pretvorbe za posamezne zapise" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Common Options" msgstr "SploÅ¡ne možnosti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:775 msgid "Set conversion options common to all formats" msgstr "DoloÄite možnosti pretvorbe, skupne vsem zapisom" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Output Options" msgstr "Izhodne možnosti" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:786 msgid "Set conversion options specific to each output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Adding books" msgstr "Dodajanje knjig" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:793 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:805 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 msgid "Import/Export" msgstr "Uvozi/izvozi" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797 msgid "Control how calibre reads metadata from files when adding books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:803 msgid "Saving books to disk" msgstr "Shranjevanje knjig na disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:815 msgid "Sending books to devices" msgstr "PoÅ¡iljanje knjig na naprave" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:821 msgid "Control how calibre transfers files to your ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:827 msgid "Metadata plugboards" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:833 msgid "Change metadata fields before saving/sending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Sharing books by email" msgstr "Skupna raba knjig prek e-poÅ¡te" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:840 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852 msgid "Sharing" msgstr "Skupna raba" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:850 msgid "Sharing over the net" msgstr "Skupna raba prek spleta" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:856 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:863 msgid "Plugins" msgstr "Vstavki" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:877 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:888 msgid "Advanced" msgstr "Napredno" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:869 msgid "Add/remove/customize various bits of calibre functionality" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875 msgid "Tweaks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:881 msgid "Fine tune how calibre behaves in various contexts" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Miscellaneous" msgstr "Razno" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:892 msgid "Miscellaneous advanced configuration" msgstr "Razne naprednejÅ¡e nastavitve" @@ -462,7 +462,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "Ta profil je namenjen izdelkom SONY PRS (500/505/600/700 itn.)." @@ -472,62 +472,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Ta profil je namenjen izdelku SONY PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Ta profil je namenjen izdelku SONY PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Ta profil je namenjen programu Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Ta profil je namenjen knjigam Mobipocket." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Ta profil je namenjen izdelku Hanlin V5 in njegovim klonom." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Ta profil je namenjen izdelku Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Ta profil je namenjen izdelku Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Ta profil je namenjen izdelku Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Ta profil je namenjen izdelku Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Ta profil je namenjen izdelku Irex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Ta profil je namenjen izdelku Irex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Ta profil je namenjen izdelku Barnes&Noble Nook." @@ -542,38 +542,38 @@ msgid "" "devices." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Ta profil je namenjen izdelku Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Ta profil je namenjen izdelku Sony PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Ta profil je namenjen 5-palÄnemu bralniku JetBook." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 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:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Ta profil je namenjen izdelku Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:686 msgid "This profile is intended for the Sanda Bambook." msgstr "Ta profil je namenjen izdelku Sanda Bambook." @@ -643,13 +643,13 @@ msgstr "" msgid "Communicate with Android phones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 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/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "" @@ -992,6 +992,14 @@ msgstr "Nook" msgid "Communicate with the Nook eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "" @@ -2171,8 +2179,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 @@ -2206,8 +2214,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 @@ -2489,7 +2497,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "" @@ -2524,74 +2532,74 @@ msgstr "" msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "" @@ -3523,7 +3531,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "" @@ -3590,7 +3598,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:683 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 msgid "Failed" msgstr "" @@ -4299,11 +4307,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 @@ -4312,10 +4320,10 @@ msgstr "Pot" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 @@ -4346,7 +4354,7 @@ msgstr "" msgid "None" msgstr "NiÄ" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 msgid "Double-click to open Book Details window" msgstr "" @@ -4559,6 +4567,19 @@ msgstr "" msgid "Tab template for catalog.ui" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 " @@ -4566,11 +4587,11 @@ msgid "" "specified in the Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "" @@ -5057,6 +5078,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "&Serije:" @@ -5242,7 +5264,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5429,8 +5451,8 @@ msgid "Force maximum line length" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -5736,10 +5758,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1174 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1301 msgid "No suitable formats" msgstr "Ni ustreznih formatov" @@ -5764,47 +5786,47 @@ msgstr "" msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1048 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1049 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1060 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1175 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1294 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1120 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1260 msgid "Sending books to device." msgstr "PoÅ¡lji knjige v napravo." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1302 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:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1366 msgid "No space on device" msgstr "Na napravi ni veÄ prostora" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1367 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -5856,15 +5878,15 @@ msgstr "" msgid "&Paste from clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "" @@ -6027,6 +6049,7 @@ msgid "Set options for converting %s" msgstr "Nastavi nastavitve za pretvorbo %s" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "&Naslov:" @@ -6278,13 +6301,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6294,7 +6316,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6309,30 +6331,30 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6575,7 +6597,7 @@ msgid "Your test:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 -msgid "&Search and replace (experimental)" +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -7087,61 +7109,98 @@ msgstr "" msgid "Negate" msgstr "Negiraj" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "Napredno iskanje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "" @@ -7791,37 +7850,41 @@ msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "Napredno iskanje" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "Resetiraj Hitro Iskanje" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "" @@ -7878,47 +7941,47 @@ msgstr "" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Dvoklikni me da me <b>urediÅ¡</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -9668,7 +9731,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "Remember last used window size" msgstr "" @@ -9840,65 +9903,65 @@ msgstr "" msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:691 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 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:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 msgid "" "%prog [options] file\n" "\n" @@ -12984,3 +13047,6 @@ msgstr "Ne prenesi CSS oblikovnih informacij." #~ msgid "Print generated NCX file to stdout" #~ msgstr "IzpiÅ¡i ustvarjeno NCX datoteko na standardni izhod" + +#~ msgid " " +#~ msgstr " " diff --git a/src/calibre/translations/sr.po b/src/calibre/translations/sr.po index ba212a3a1b..24eb885f14 100644 --- a/src/calibre/translations/sr.po +++ b/src/calibre/translations/sr.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 17:40+0000\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-27 10:24+0000\n" "Last-Translator: Vladimir Oka <Unknown>\n" "Language-Team: Serbian <sr@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-11 04:41+0000\n" +"X-Launchpad-Export-Date: 2010-11-28 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -27,11 +27,11 @@ msgstr "Ne radi baÅ¡ niÅ¡ta" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -40,8 +40,8 @@ msgstr "Ne radi baÅ¡ niÅ¡ta" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -55,7 +55,7 @@ msgstr "Ne radi baÅ¡ niÅ¡ta" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:354 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -74,14 +74,14 @@ msgstr "Ne radi baÅ¡ niÅ¡ta" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -89,7 +89,7 @@ msgstr "Ne radi baÅ¡ niÅ¡ta" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -109,10 +109,10 @@ msgstr "Ne radi baÅ¡ niÅ¡ta" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -121,15 +121,15 @@ msgstr "Ne radi baÅ¡ niÅ¡ta" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 @@ -137,14 +137,14 @@ msgstr "Ne radi baÅ¡ niÅ¡ta" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -185,14 +185,14 @@ msgstr "Akcije korisniÄkog interfejsa" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "PodeÅ¡avanja" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -202,7 +202,7 @@ msgstr "" "fajlove. Ovaj dodatak se pokreće svaki put kada dodate HTML fajl u " "biblioteku." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -210,7 +210,7 @@ msgstr "" "Kodni raspored za ulazne HTML fajlove. NajÄešće korišćeni kodni rasporedi " "su: Windows-1252 (CP1252), Latin-1, ISO-8859 i UTF-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -220,7 +220,7 @@ msgstr "" "plmname_img i images. Ovaj dodatak se pokreće svaki put kada dodate PML fajl " "u biblioteku." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Uzmi omot iz fajla sa stripom" @@ -267,43 +267,43 @@ msgstr "UpiÅ¡i metapodatke u %s fajlova" msgid "Set metadata from %s files" msgstr "UÄitaj metapodatke iz %s fajlova" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "Izgled i ponaÅ¡anje" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "Interfejs" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "Prilagodite izgled i ponaÅ¡anje calibrea da odgovara vaÅ¡em ukusu" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "PonaÅ¡anje" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "Promenite naÄin ponaÅ¡anja calibrea" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Dodajte sopstvene kolone" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "Dodajte/uklonite sopstvene kolone za calibre spisak knjiga" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "Prilagodite traku sa alatima" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -311,57 +311,57 @@ msgstr "" "Prilagodite traku sa alatima i kontekstno osetljive menije menjajući akcije " "koje su na raspolaganju u svakom od njih" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "Ulazna podeÅ¡avanja" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "Konverzija" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "Postavite opcije za konverziju za svaki od ulaznih formata" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "UobiÄajene opcije" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "Postavite opcije za konverziju za sve formate" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "Izlazne opcije" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "Postavite opcije za konverziju specifiÄne za svaki izlazni format" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "Dodajem knjige" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "Uvoz/izvoz" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "KontroliÅ¡ite kako calibre Äita metapodatke iz fajlova kada dodaje knjige" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "Snimam kjige na disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -369,32 +369,32 @@ msgstr "" "KontroliÅ¡ite kako calibre izvozi fajlove iz baze podataka na disk kada se " "koristi opcija Snimi na disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "Å aljem knjige na ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "KontroliÅ¡ite kako calibre Å¡alje fajlove na vaÅ¡ ÄitaÄ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "PrikljuÄci za metapodatke" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "Izmeni metapodatke pre snimanja/slanja" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "Å aljem knjige elektronskom poÅ¡tom" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "Razmena" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -402,11 +402,11 @@ msgstr "" "Podesite razmenu knjiga elektronskom poÅ¡tom. Ovo se može koristiti i za " "automatsko slanje preuzetih vesti na vaÅ¡ ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "Razmena preko Interneta" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -414,33 +414,33 @@ msgstr "" "Podesite calibre server sadržaja koji će omogućiti pristup vaÅ¡oj calibre " "biblioteci s bilo koje lokacije, bilo kog ureÄ‘aja, a preko Interneta" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "Dodaci" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "Napredno" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Dodaj/ukloni/podesi razliÄite elemente ponaÅ¡anja calibrea" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "Fina podeÅ¡avanja" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "Fino podesite kako se calibre ponaÅ¡a u razliÄitim situacijama" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "Razno" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "Razna napredna podeÅ¡avanja" @@ -485,7 +485,7 @@ msgstr "" "je ako ne znate niÅ¡ta o ulaznom dokumentu." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -496,62 +496,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Ovaj profil je namenjen za SONY PRS 300 ÄitaÄe." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Ovaj profil je namenjen za SONY PRS-900 ÄitaÄe." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Ovaj profil je namenjen za Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Ovaj profil je namenjen za Mobipocket knjige." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Ovaj profil je namenjen za Hanlin V3 ÄitaÄe i klonove." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Ovaj profil je namenjen za Hanlin V5 ÄitaÄe i klonove." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Ovaj profil je namenjen za Cybook G3 ÄitaÄe." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Ovaj profil je namenjen za Cybook Opus ÄitaÄe." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Ovaj profil je namenjen za Amazon Kindle ÄitaÄe." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Ovaj profil je namenjen za Irex Illiad ÄitaÄe." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Ovaj profil je namenjen za IRex Digital Reader 1000 ÄitaÄe." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Ovaj profil je namenjen za IRex Digital Reader 800 ÄitaÄe." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Ovaj profil je namenjen za B&N Nook ÄitaÄe." @@ -569,28 +569,28 @@ msgstr "" "je ako želite da proizvedete dokument koji može da se Äita kako na raÄunaru, " "tako i na raznim drugim ureÄ‘ajima." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "Namenjeno za iPad i sliÄne ureÄ‘aje s rezolucijom 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "Namenjeno generiÄkim tablet ureÄ‘ajima, ne menja veliÄinu slika" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Ovaj profil je namenjen za Kobo ÄitaÄe" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Ovaj profil je namenjen za SONY PRS-300 ÄitaÄe." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Ovaj profil je namenjen za 5-inÄne JetBook ÄitaÄe." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -598,11 +598,15 @@ msgstr "" "Ovaj profil je namenjen SONY PRS liniji ÄitaÄa, za modele 500/505/700 itd, u " "horizontalnom položaju. Uglavnom je koristan za stripove." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Ovaj profil je namenjen za Amazon Kindle DX ÄitaÄe." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "Ovaj profil je namenjen B&N Nook Color ÄitaÄu." + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "Ovaj profil je namenjen Sanda Bambook ÄitaÄu." @@ -678,7 +682,7 @@ msgstr "IskljuÄi navedeni dodatak" msgid "Communicate with Android phones." msgstr "Uspastavi vezu sa Android telefonima." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -686,7 +690,7 @@ msgstr "" "Zarezima razdvojen spisak direktorijuma na ureÄ‘aju u koje će se slati " "knjige. Koristiće se prvi postojeći." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Uspostavi vezu sa S60 telefonima." @@ -763,18 +767,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "Vesti" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "Katalog" @@ -800,6 +804,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "Uspostavi vezu s Cybook Gen 3/Opus ÄitaÄem." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "Uspostavi vezu s Cybook Orizon ÄitaÄem" + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Uspostavi vezu sa EB600 ÄitaÄem." @@ -812,6 +820,10 @@ msgstr "Uspostavi vezu sa Astak Mentor EB600 ÄitaÄem." msgid "Communicate with the PocketBook 301 reader." msgstr "Uspstavi vezu s PocketBook 301 ÄitaÄem." +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "Uspostavi vezu s PocketBook 602 ÄitaÄem" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -872,8 +884,8 @@ msgstr "Uspostavi vezu sa SpringDesign Alex ÄitaÄem." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -962,26 +974,26 @@ msgstr "" msgid "Getting list of books on device..." msgstr "Preuzimam spisak knjiga sa ureÄ‘aja..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "Uklanjam knjiga sa spiska metapodataka na ureÄ‘aju..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "Dodajem knjige na spisak metapodataka na ureÄ‘aju..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "Nije dovrÅ¡eno" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -1022,6 +1034,10 @@ msgstr "Uspostavi vezu s VelocityMicro ÄitaÄem" msgid "Communicate with the GM2000" msgstr "Uspostavi komunikaciju s GM2000" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "Uspostavi vezu sa Acer Lumiread ÄitaÄem" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "Uspostavi vezu s Nokia 770 ureÄ‘ajem." @@ -1042,6 +1058,14 @@ msgstr "Nook" msgid "Communicate with the Nook eBook reader." msgstr "Uspostavi vezu s Nook ÄitaÄem." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "Uspostavi vezu s Nook Color ÄitaÄem" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Uspostavi vezu s Nuut2 ÄitaÄem." @@ -2089,14 +2113,6 @@ msgstr "" "hijerarhiju direktorijuma. Koristite ovu opciju samo ako znate Å¡ta radite, " "jer može proizvesti brojne neženjene efekte u nastavku konverzije." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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 "" -"Srednja dužina reda za prelom ako je HTML fajl rezultat prethodne konverzije " -"iz PDF fajla. Podrazumeva se %default i ta vrednost iskljuÄuje ovu opciju." - #: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "Korišćen je CSS umesto podrazumevanog fajla za kreiranje izlaza" @@ -2258,7 +2274,7 @@ msgid "Path to output file" msgstr "Putanja do izlaznog fajla" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "Detaljni izveÅ¡taj o obradi" @@ -2489,7 +2505,7 @@ msgstr "Komentari" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "Etikete" @@ -2638,6 +2654,7 @@ msgid "No cover found" msgstr "Nije naÄ‘ena nijedna naslovna strana" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "Omot preuzet" @@ -2705,19 +2722,19 @@ msgstr "opis/prikazi" msgid "Download %s from %s" msgstr "Preuzmi %s sa %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:149 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 msgid "Convert comments downloaded from %s to plain text" msgstr "Pretvori komentare preuzete sa %s u obiÄan tekst" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:175 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "Preuzmi metapodatke s Google Books" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:192 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "Preuzmi metapodatke s isbndb.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:220 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." @@ -2725,15 +2742,15 @@ msgstr "" "Da biste koristili isbndb.com morate se prijaviti za %sbesplatan nalog%s i " "uneti vaÅ¡ pristupni kljuÄ." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "Preuzmi druÅ¡tvene metapodatke s amazon.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "Preuzima informacije o seriji/etiketi/oceni sa librarything.com" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2757,23 +2774,24 @@ msgstr "" "besplatan nalog na isbndb.com.\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "ISBN broj knjige za koju želite metapodatke." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "Autor Äije knjige želite da pronaÄ‘ete." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "Naslov knjige koju želite da pronaÄ‘ete." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "IzdavaÄ knjige koju želite da pronaÄ‘ete." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " nije pronaÄ‘en(a)." @@ -2791,8 +2809,24 @@ msgstr "" "Preuzmi omot i metapodatke za knjigu identifikovanu ISBN brojem sa " "LibraryThing.com\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "Preuzima metapodatke s francuskog Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "Preuzima naslovne strane s francuskog Nicebooks" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "Nicebooks nije odgovorio na vreme. Molim vas probajte kasnije." + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "GreÅ¡ka u preuzimanju naslovnih strana s Nicebooks" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Naslovna strana" @@ -2835,70 +2869,70 @@ msgstr "Svi Älanci" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Ovo je Amazon Topaz knjiga. Nju nije moguće obraditi." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Naslovna strana" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "Sadržaj" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Indeks" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Pojmovnik" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Zahvalnosti" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Bibliografija" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Impresum" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Autorska prava" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Posveta" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Predgovor" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Spisak ilustracija" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Spisak tabela" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "BeleÅ¡ke" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Predgovor" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Glavni tekst" @@ -2906,7 +2940,7 @@ msgstr "Glavni tekst" msgid "%s format books are not supported" msgstr "Knjige u formatu %s nisu podržane" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "Knjiga %s od %s" @@ -2917,7 +2951,7 @@ msgstr "Opcije za generisanje HTML Sadržaja" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "Ocena" @@ -2948,7 +2982,7 @@ msgstr "Fusnote" msgid "Sidebar" msgstr "BoÄna traka" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2958,7 +2992,7 @@ msgstr "" "Calibre obiÄno tretira prazne redove kao granicu pasusa. UkljuÄivanjem ove " "opcije podrazumevaće se da svaki red predstavlja jedan pasus." -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -3278,7 +3312,7 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "Navedi kodni raspored za izlazni dokument. Podrazumeva se cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3507,7 +3541,7 @@ msgid "Disable UI animations" msgstr "Onemogući animacije u korisniÄkom interfejsu" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "Kopirano" @@ -3519,7 +3553,7 @@ msgstr "Kopiraj" msgid "Copy to Clipboard" msgstr "Kopiraj u memoriju" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "Izaberi fajlove" @@ -3572,89 +3606,89 @@ msgstr "Koliko praznih knjiga?" msgid "How many empty books should be added?" msgstr "Koliko praznih knjiga treba da se doda?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "Prenosim knjige na ureÄ‘aj." -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "Knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Topaz knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "Knijge u tekst formatu" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "Stripovi" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "Arhive" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "Podržane knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "Dodao sam neke knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "" "PronaÄ‘eni su neki duplikati i dodati sledećim već postojećim knjigama:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "Nisam uspeo da proÄitam metapodatke" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "Nisam upseo da proÄitam metapodatke iz" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "Dodaj u biblioteku" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 @@ -3662,12 +3696,12 @@ msgstr "Dodaj u biblioteku" msgid "No book selected" msgstr "Nije izabrana nijedna knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "Ove knjige su virtuelne i ne mogu biti dodate u calibre biblioteku:" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "Nisu pronaÄ‘eni fajlovi s knjigama" @@ -3680,7 +3714,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "Dodaj knjige u calibre biblioteku s prikljuÄenog ureÄ‘aja" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "Preuzmi beleÅ¡ke (eksperimentalno)" @@ -3777,7 +3811,7 @@ msgid "Checking database integrity" msgstr "Proveravam integritet baze podataka" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3793,19 +3827,19 @@ msgstr "PronaÄ‘ene su neke nedoslednosti" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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." +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers have been " +"removed. You should check them manually. This can happen if you manipulate " +"the files in the library folder directly." msgstr "" -"Sledeće knjige imaju formate navedene u bazi podataka koji u stvari ne " -"postoje. Informacije o ovim formatima su uklonjene. PreporuÄujem da ove " -"formate proverite i ruÄno. Do ove greÅ¡ke može doći ako ruÄno baratate " -"direktorijumom koji sadrži vaÅ¡u biblioteku." +"Sledeće knjige su imale formate ili naslovne strane navedene u bazi podataka " +"koje u stvari nisu bile dostupne. Stavke za formate/naslovne strane su " +"uklonjene. Molim vas da ih ruÄno proverite. Ovo može da se dogodi ako je " +"bilo direktne manipulacije fajlovima u direktorijumima biblioteke." #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d knjiga" @@ -3954,7 +3988,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Nije dozvoljeno" @@ -3986,6 +4020,10 @@ msgstr "Ne mogu da konvertujem" msgid "Starting conversion of %d book(s)" msgstr "PoÄinjem konverziju %d knjiga." +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "Prazan izlazni fajl - proces konverzije verovatno nije uspeo" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "Kopiraj u biblioteku" @@ -4020,9 +4058,9 @@ msgid "Could not copy books: " msgstr "Nisam uspeo da prekopiram knjige: " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:685 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "Nije uspelo" @@ -4083,14 +4121,14 @@ msgid "Main memory" msgstr "Osnovna memorija" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "Memorijska kartica A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "Memorijska kartica B" @@ -4235,7 +4273,7 @@ msgid "covers" msgstr "naslovne strane" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "metapodaci" @@ -4335,6 +4373,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "Pokrenite Äarobnjaka za dobrodoÅ¡licu" @@ -4423,7 +4462,7 @@ msgid "Click the show details button to see which ones." msgstr "Kliknite na dugme za viÅ¡e detalja da vidite koje." #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "Prikaži detalje o knjizi" @@ -4567,7 +4606,7 @@ msgid "The specified directory could not be processed." msgstr "Nisam mogao da obradim navedeni direktorijum" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "Nema knjiga" @@ -4864,7 +4903,7 @@ msgstr "izlaz" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4907,7 +4946,7 @@ msgstr "izlaz" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "Obrazac" @@ -4994,24 +5033,24 @@ msgstr "CSV/XML opcije" msgid "E-book options" msgstr "Opcije za e-knjigu" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "Etiketa 'ne ukljuÄuj ovu knjigu':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "Etiketa 'obeleži ovu knjigu kao proÄitanu':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "Dodatni prefiks za etiketu 'beleÅ¡ka':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" "Regularni izraz koji opisuje etikete koje će biti ignorisane kao žanrovi:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -5025,22 +5064,26 @@ msgstr "" "- Regularni izraz koji je samo jedna taÄka iskljuÄuje sve etikete za žanr i " "ne generiÅ¡e Sekciju žanrova" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "UkljuÄi odeljak 'Naslovi'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "UkljuÄi odeljak 'Nedavno dodato'" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "Sortiraj brojeve kao da su napisani slovima" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "UkljuÄi odeljak \"Serija\"" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "Etiketa za spisak želja:" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "Specifikacija tabulatora za catalog.ui" @@ -5068,11 +5111,11 @@ msgstr "" "saÄuvane od prethodne konverzije (ako postoje), umesto korišćenja " "podrazumevanih vrednosti u PodeÅ¡avanjima" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Masovna konverzija" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Opcije koje zavise od izlaznog formata." @@ -5545,7 +5588,7 @@ msgid "Change the title of this book" msgstr "Promeni naslov ove knjige" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "&Autor: " @@ -5562,7 +5605,7 @@ msgstr "" "Promeni autore za ovu knjigu. Ako autora ima viÅ¡e razdvojte imena zarezima" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "&IzdavaÄ: " @@ -5573,7 +5616,7 @@ msgid "Ta&gs: " msgstr "&Etikete: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5583,7 +5626,7 @@ msgstr "" "pretraživanja. <br><br>One mogu biti reÄi ili fraze, razdvojene zarezima." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" @@ -5591,8 +5634,8 @@ msgstr "&Serija:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -6110,7 +6153,7 @@ msgid "Automatically number books" msgstr "Automatski numeriÅ¡i knjige" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "Brojanje mora poÄeti od " @@ -6126,97 +6169,103 @@ msgstr "etikete za dodavanje" msgid "tags to remove" msgstr "etikete za uklanjanje" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "Nema detaljnih podataka." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "UreÄ‘aj viÅ¡e nije prikljuÄen." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "Prikupi informacije o ureÄ‘aju" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "Preuzmi spisak knjiga sa ureÄ‘aja" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "Preuzmi beleÅ¡ke sa ureÄ‘aja" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "PoÅ¡alji metapodatke na ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "PoÅ¡alji kolekciju na ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "Prenesi %d knjiga na ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "IzbriÅ¡i kjnige sa ureÄ‘aja" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "Preuzmi knjige sa ureÄ‘aja" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "Pregledaj knjige na ureÄ‘aju" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "Postavi podrazumevanu akciju pri prenoÅ¡enju na ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "PoÅ¡alji u osnovnu memoriju" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "PoÅ¡alji na memorijsku karticu A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "PoÅ¡alji na memorijsku karticu B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "Osnovna memorija" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "PoÅ¡alji odreÄ‘eni format na" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 msgid "Send and delete from library" msgstr "PoÅ¡alji i izbriÅ¡i iz biblioteke" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "IskljuÄi ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "GreÅ¡ka u komunikaciji sa ureÄ‘ajem" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "Nema odgovarajućih formata" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "Izaberite direktorijum koji će biti korišćen kao ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "GreÅ¡ka u komunikaciji sa ureÄ‘ajem" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6224,123 +6273,59 @@ msgstr "" "DoÅ¡lo je do privremene greÅ¡ke u komunikaciji sa ureÄ‘ajem. Molim vas da " "iskljuÄite ureÄ‘aj i/ili ponovo pokrenete raÄunar." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "UreÄ‘aj: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " detektovan." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "izabrane za slanje" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "Izaberi format za slanje na ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "Nema ureÄ‘aja" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "Ne mogu da poÅ¡aljem: Nije prikljuÄen nijedan ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "Nema memorijske kartice" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "Ne mogu da poÅ¡aljem: UreÄ‘aj nema memorijsku karticu" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 -msgid "E-book:" -msgstr "E-knjiga:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 -msgid "Attached, you will find the e-book" -msgstr "E-knjigu ćete pronaći prikljuÄenu uz ovu poruku" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "od" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 -msgid "in the %s format." -msgstr "u formatu %s." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 -msgid "Sending email to" -msgstr "Å aljem poruku za" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "Nema odgovarajućih formata" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 -msgid "Auto convert the following books before sending via email?" -msgstr "Automatski konvertuj ove knjige pre slanja elektronskom poÅ¡tom?" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "" -"Nisam uspeo da poÅ¡aljem ove knjige, jer nisu pronaÄ‘eni odgovarajući formati:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 -msgid "Failed to email books" -msgstr "Nisam uspeo da poÅ¡aljem knjige" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 -msgid "Failed to email the following books:" -msgstr "Nisam uspeo da poÅ¡aljem sledeće knjige:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 -msgid "Sent by email:" -msgstr "Poslato elektronskom poÅ¡tom:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "News:" -msgstr "Vesti:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 -msgid "Attached is the" -msgstr "PrikljuÄeno je" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 -msgid "Sent news to" -msgstr "Poslao vesti za" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 msgid "Auto convert the following books before uploading to the device?" msgstr "Automatski konvertuj sledeće knjige pre slanja na ureÄ‘aj?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "Å aljem katalog na ureÄ‘aj." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "Å aljem vesti na ureÄ‘aj." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "Å aljem knjige na ureÄ‘aj." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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." @@ -6349,11 +6334,11 @@ msgstr "" "odgovarajući formati. Morate prvo konvertovati knjige u format koji vaÅ¡ " "ureÄ‘aj podržava." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "Na ureÄ‘aju nema dovoljno mesta" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -6397,15 +6382,22 @@ msgstr "Dodaj knjige po ISBNu" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" "<p>Unesite listu ISBN brojeva u polje s leve strane, jedan broj po redu. " -"calibre će automatski kreirati stavke za knjige na osnovu ovih ISBN brojeva " -"i za njih preuzeti metapodatke i omote. <p>Svi nevažeći ISBn brojevi će biti " -"ignorisani." +"calibre će automatski napraviti stavke za knjige zasnovane na ovim ISBN " +"brojevima i za njih preuzeti metapodatke i naslovne strane.</p>\n" +"<p>Neispravni ISBN brojevi će biti ignorisani.</p>\n" +"<p>Možete navesti i fajl koji će se prikljuÄiti svakom ISBN broju. Da biste " +"ovo uradili dodajte punu putanju do fajla iza <code>>></code>. Na " +"primer:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "&Prenesi iz memorije" @@ -6493,7 +6485,7 @@ msgstr "Putanja iz biblioteke" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "Ime" @@ -6547,7 +6539,7 @@ msgid "No location selected" msgstr "Nije izabrana nijedna lokacija" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "Neispravna lokacija" @@ -6648,12 +6640,12 @@ msgid "Author sort" msgstr "Sortiranje po autoru" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "Neispravno ime autora" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "Imena autora ne mogu sadržati znak &." @@ -6807,50 +6799,50 @@ msgstr "Traži/Zameni" msgid "Working" msgstr "Radim" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "Mala slova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "Velika slova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "VeliÄina slova za naslov" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "Odgovarajući znaci" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "Regularni izraz" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "Polje za izmenu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "Dodaj na poÄetak polja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "Dodaj na kraj polja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "Promeni meta informacije za <b>%d knjiga</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "Knjiga %d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " "permanent. There is no undo function. You are strongly encouraged to back up " @@ -6863,7 +6855,7 @@ msgstr "" "i zamena u tekstualnim poljima korišćenjem regularnih izraza, ili prostog " "poreÄ‘enja. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6879,7 +6871,7 @@ msgstr "" "pronaÄ‘eni tekst mora biti identiÄani po veliÄini slova. Ako ovba opcija nije " "izabrana tekst će biti pronaÄ‘en bez obzira na veliÄinu slova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6904,30 +6896,30 @@ msgstr "" "izrazima u programskom jeziku python, a posebno informacije o funkciji 'sub' " "vidite <a href=\"http://docs.python.org/library/re.html\">ovo uputstvo</a>." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "Morate navesti i ciljno polje ako je izvor složeno polje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:530 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:538 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "Neispravna pretraga/zamena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "Autori ne mogu da budu prayni. Knjiga s naslovom %s nije obraÄ‘ena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "Naslov ne može biti prazan. Knjiga s naslovom %s nije obraÄ‘ena" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "Neispravan izraz za pretraživanje: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:671 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6935,19 +6927,19 @@ msgstr "" "Primenjujem izmene na %d knjiga.\n" "Faza{0} {1}%%." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "Popravi metapodatke" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "A&utomatski izaberi polje za sortiranje po imenu autora" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "S&ortiranje po imenu autora: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -6955,64 +6947,64 @@ msgstr "" "Odredi kako će imena autora ove knjige biti korišćena za sortiranje. Na " "primer, Vuk Karadžić će biti sortiran kao Karadžić, Vuk." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "&Ocena:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "Ocena za ovu knjigu. 0-5 zvezdica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "Bez promene" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " zvezdica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "Dodaj &etikete: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "Otvori ureÄ‘ivaÄ za etikete" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "&IzbriÅ¡i etikete" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Lista etiketa razdvojenih zarezima koja će biti uklonjena sa knjiga. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "Izaberite ovu opciju da uklonite sve etikete s knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "Ukloni sve" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "Ako je oznaÄeno, serija će biti izbrisana" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "IzbriÅ¡i seriju" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -7025,11 +7017,11 @@ msgstr "" "kojim ste ih izabrali. Tako, ako izaberete Knjigu A, a zatim Knjigu B,\n" "Knjiga A će imati broj 1 u seriji, a Knjiga B broj 2." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "Automatski odredi brojeve knjiga u ovoj seriji" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" @@ -7039,15 +7031,15 @@ msgstr "" "u bazi podataka. Ako izaberete ovu opciju calibre će numerisanje\n" "poÄeti od broja navedenog u ovom polju" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "Ukloni &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "&Zameni mesta imenima autora i naslovu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" @@ -7058,11 +7050,11 @@ msgstr "" "da se izmene mesta autoru i naslovu, veliÄina slova će biti promenjena posle " "izmene." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "Promeni svako poÄetno slovo u veliko" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" @@ -7072,33 +7064,33 @@ msgstr "" "\n" "Naredne konverzije ovih knjiga će koristiti podrazumevane vrednosti." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "Ukloni &saÄuvana podeÅ¡avanja za konverziju izabranih knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "&Osnovni metapodaci" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "&KorisniÄki metapodaci" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "Pretraži po&lje:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "Naziv polja koje želite da pretražujete" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "NaÄin pretraživanja:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" @@ -7106,11 +7098,11 @@ msgstr "" "Izaberite da li ćete koristiti jednostavno traženje teksta, ili regularne " "izraze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "&Traži:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" @@ -7118,7 +7110,7 @@ msgstr "" "Unesite izraz za pretražiavnje, bilo obiÄan tekst bilo regularni izraz, u " "zavisnosti od izabranog naÄina pretraživanja" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" @@ -7126,25 +7118,25 @@ msgstr "" "Izaberite ovu opciju ako tekst za pretraživanje mora odgovarati i po " "veliÄini slova. Ako opcija nije izabrana veliÄina slova neće biti bitna" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "Razlikuj veliÄinu slova" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "&Zameni sa:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "Tekst za zaemnu. PronaÄ‘eni tekst će biti zamenjen ovim" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "Primeni sledeću funkciju posle zamene:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -7156,11 +7148,11 @@ msgstr "" "biće obraÄ‘eno celo polje. U naÄinu rada s regularnim izrazima biće obraÄ‘en " "samo pronaÄ‘eni tekst." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "&Ciljno polje:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." @@ -7168,15 +7160,15 @@ msgstr "" "Polje u koje će tekst biti smeÅ¡ten posle zamene. Ako je prazno biće " "korišćeno izvorno polje." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "NaÄin rada:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "Odredi kako će tekst biti kopiran u ciljno polje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" @@ -7185,23 +7177,23 @@ msgstr "" "Ako je naÄin izmene dodavanje ispred, ili iza, ovo polje oznaÄava da li će " "izmeÄ‘u originalnog i umetnutog teksta biti ubaÄen zarez, ili niÅ¡ta" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "koristi zarez" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "Test &tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "Test re&zultat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "VaÅ¡ test:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 msgid "&Search and replace" msgstr "&Traži i zameni" @@ -7490,20 +7482,21 @@ msgstr "Potrebna je lozinka" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "&KorisniÄko ime:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "&Lozinka:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "&Prikaži lozinku" @@ -7745,45 +7738,48 @@ msgid "Advanced Search" msgstr "Napredna pretraga" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "PronaÄ‘i stavke koje sadrže..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "&Sve ove reÄi:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "Ovu &frazu:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "&Jednu ili viÅ¡e ovih reÄi:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "Ali ne prikazuj stavke koje sadrže..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "Bilo koje od ovih &neželjenih reÄi:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "Koju vrstu pogodaka da koristim:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" +msgstr "Sadrži: reÄ, ili fraza se nalaze bilo gde u polju s metapodacima" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" +"Jednako: reÄ, ili fraza moraju odgovarati kompletnom sadržaju polja s " +"metapodacima" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" +"Regularni izraz: izraz mora odgovarati bilo kom delu polja s metapodacima" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "PronaÄ‘i stavke koje sadrže..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Sve ove reÄi:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Ovu &frazu:" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "Sadrži: reÄi ili fraze bilo gde meÄ‘u metapodacima" +msgid "&One or more of these words:" +msgstr "&Jednu ili viÅ¡e ovih reÄi:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "Jednaki: reÄima ili frazama koje odgovaraju celom polju metapodataka" +msgid "But dont show entries that have..." +msgstr "Ali ne prikazuj stavke koje sadrže..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "Regularni izraz: izraz mora biti pronaÄ‘en bilo gde meÄ‘u metapodacima" +msgid "Any of these &unwanted words:" +msgstr "Bilo koje od ovih &neželjenih reÄi:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -7973,12 +7969,12 @@ msgid "%s (was %s)" msgstr "%s (bilo %s)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "Ova stavka je prazna" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "Stavka ne može da bude prazna. IzbriÅ¡ite je." @@ -8061,7 +8057,7 @@ msgid "Discard changes" msgstr "Odbaci izmene" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "&Odustani" @@ -8269,6 +8265,61 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Izvorni kod recepta (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "PoÅ¡alji %s na %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "Vesti:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "PrikljuÄen je magazin %s koji je calibre preuzeo za vas." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "E-knjiga:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "E-knjigu ćete pronaći prikljuÄenu uz ovu poruku" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "od" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "u formatu %s." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "Å aljem poruku za" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "Automatski konvertuj ove knjige pre slanja elektronskom poÅ¡tom?" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" +"Nisam uspeo da poÅ¡aljem ove knjige, jer nisu pronaÄ‘eni odgovarajući formati:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "Nisam uspeo da poÅ¡aljem knjigu elektronskom poÅ¡tom" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "poslato" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "Poslao vesti za" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -8465,23 +8516,23 @@ msgstr "Ne mogu da prekinem posao koji komunicira sa ureÄ‘ajem" msgid "Job has already run" msgstr "Posao je već zavrÅ¡en" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "Nedostupan" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "Poslovi:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "Kliknite da vidite spisak poslova" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - Poslova" @@ -8507,7 +8558,7 @@ msgid "Show books in the main memory of the device" msgstr "Prikaži knjige u osnovnoj memoriji ureÄ‘aja" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "Kartica A" @@ -8516,7 +8567,7 @@ msgid "Show books in storage card A" msgstr "Prikaži knjige na memorijskoj kartici A" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "Kartica B" @@ -8598,7 +8649,7 @@ msgstr "Knjiga %s od %s." #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "Ime za pretragu je \"{0}\"" @@ -8627,47 +8678,47 @@ msgstr "Izabrano za brisanje" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Kliknite dva puta da me <b>promenite</b><br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Sakrij kolonu %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Sortiraj po koloni %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Rastući redosled" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Opadajući redosled" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Promeni poravnanje za %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Levo" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "Desno" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centrirano" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Prikaži kolonu" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Vrati podrazumevani izgled" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8701,7 +8752,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>NiÅ¡ta nije pronaÄ‘eno</b> za upit <i>%s</i>." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "NiÅ¡ta nije pronaÄ‘eno" @@ -8718,12 +8769,12 @@ msgid "LRF Viewer toolbar" msgstr "Traka sa alatkama za LRF ÄitaÄ" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "Sledeća strana" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "Prethodna strana" @@ -8767,7 +8818,7 @@ msgid "Do not check for updates" msgstr "Ne proveravaj postojanje novije verzije" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Calibre biblioteka" @@ -8904,37 +8955,37 @@ msgstr "Knjiga nema ni naslov ni ISBN broj" msgid "No matches found for this book" msgstr "Nema rezultata za ovu knjigu" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "Nisam uspeo da preuzmem metapodatke" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "omot" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "Preuzeto" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "Nisam uspeo da preuzmem" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "%s %s za: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "Gotovo" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "UspeÅ¡no preuzeo metapodatke za %d od %d knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "Detalji" @@ -9481,27 +9532,27 @@ msgstr "Prikaži &tekst ispod ikona:" msgid "&Split the toolbar into two toolbars" msgstr "Podeli traku &sa alatima na dve" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "&Primeni" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "Vrati po&drazumevane vrednosti" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "SaÄuvaj izmene" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "Odustani i vrati se na pregled" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "Vraćanje na podrazumevane vrednosti nije podržano za" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." @@ -9509,7 +9560,7 @@ msgstr "" "Neke od izmena koje ste napravili zahtevaju ponovo pokretanje programa. " "Molim vas da Å¡to pre ponovo pokrenete calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." @@ -9517,7 +9568,7 @@ msgstr "" "Izmene koje ste uneli zahtevaju da odmah ponovo pokrenete calibre. Dok to ne " "uradite neće biti moguće menjati ostala podeÅ¡avanja." -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "Potrebno je ponovno pokretanje" @@ -9872,7 +9923,7 @@ msgstr "" "ureÄ‘aje podeÅ¡avanjem dodatka za ureÄ‘aj u meniju PodeÅ¡avanja->Napredna->Dodaci" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "Nisam uspeo da pokrenem server sadržaja" @@ -10091,7 +10142,7 @@ msgstr "&Trenutno aktivna podeÅ¡avanja" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "Traži" @@ -10188,26 +10239,22 @@ msgstr "ObriÅ¡i" msgid "&Alternate shortcut:" msgstr "&Alternativna preÄica:" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "Preimenuj '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "Izmeni naÄin sortiranja za '%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "Sakrij kategoriju %s" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "Prikaži kategoriju" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "Prikaži sve kategorije" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -10222,65 +10269,69 @@ msgstr "Uredi saÄuvane pretrage" msgid "Manage User Categories" msgstr "Uredi korisniÄke kategorije" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "Prikaži sve kategorije" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "Promena autora za viÅ¡e knjiga može potrajati. Da li ste sigurni?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" "Izmena metapodataka za ovoliko knjiga može potrajati. Da li ste sigurni?" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "Pretrage" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "Naziv pretrage već postoji" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "Naziv saÄuvane pretrage %s je već u upotrebi." -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "Sortiraj po imenu" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "Sortiraj po popularnosti" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "Sortiraj po srednjoj oceni" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "Odredite naÄin sortiranja u Izlogu etiketa" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "Moraju odgovarati svi" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "Odgovara bilo koji od" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:886 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" "Kada je u Izlogu etiketa izabrano viÅ¡e stavki traži bilo koju od njih" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:890 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "&Uredi korisniÄke kategorije" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "Dodajte sopstvene kategorije u Izlog etiketa" @@ -10327,28 +10378,28 @@ msgstr "" "Ove knjige su već konvertovane u format %s. Da li želite da ih ponovo " "konvertujete?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "V&rati na ekran" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "PoÅ¡aljite &donaciju da podržite razvoj calibre programa" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "IskljuÄi pov&ezani ureÄ‘aj" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Kratko uputstvo za Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "GreÅ¡ka u konverziji" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." @@ -10356,15 +10407,15 @@ msgstr "" "<p>Nisam uspeo da konvertujem: %s<p>Knjiga je zaÅ¡tićena <a " "href=\"%s\">DRM</a>om. Prvo morate ukloniti DRM nezavisnim alatima." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "Recept je iskljuÄen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>Neuspelo</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " @@ -10374,12 +10425,12 @@ msgstr "" "koristi molim vas da razmislite o mogućnosti da napravite donaciju u korist " "daljeg razvoja. VaÅ¡e donacije pomažu da se razvoj calibrea nastavi." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" "JoÅ¡ uvek ima aktivnih poslova. Da li ste sigurni da želite da prekinete rad?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -10390,11 +10441,11 @@ msgstr "" "ureÄ‘aju.<br>\n" " Da li ste sigurni da želite da prekinete rad?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "UPOZORENJE: Aktivni poslovi" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -10573,17 +10624,17 @@ msgstr "&PreÄice" msgid "No results found for:" msgstr "NiÅ¡ta nije pronaÄ‘eno za:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "Opcije za podeÅ¡avanje ÄitaÄa e-knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "Zapamti poslednje korišćenu veliÄinu prozora" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -10591,80 +10642,80 @@ msgstr "" "Postavi korisniÄki CSS stil. Ovu opciju možete koristiti da podesite izgled " "svih knjiga." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "Maksimalna Å¡irina prozora, u pikselima." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "Smanji velike slike kako bi stale u prozor" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "Hifeniraj tekst" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "Podrazumevani jezik za hifenaciona pravila" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "Opcije za vrstu slova" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "Familija serifnih slova" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "Familija bez-serifnih slova" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "Familija Å¡tampanih slova" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "Standardna veliÄina slova u px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "VeliÄina Å¡tampanih slova u px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "Standardna vrsta slova" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "&PronaÄ‘i u reÄniku" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Idi na..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "Sledeći odeljak" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "Prethodni odeljak" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "PoÄetak dokumenta" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "Kraj dokumenta" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "PoÄetak odeljka" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "Kraj odeljka" @@ -10734,88 +10785,88 @@ msgstr "" msgid "Search for text in book" msgstr "Traži tekst u knjizi" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "Pregled pred Å¡tampanje" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "Poveži se sa dict.org da pronaÄ‘eÅ¡: <b>%s</b>…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "Izaberi e-knjigu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "E-knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "Nije pronaÄ‘eno niÅ¡ta za: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "UÄitavam izlog..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "Predstavljam %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "Oznaka #%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "Dodaj oznaku" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "Unesi naziv za oznaku" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "Uredi oznake" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "UÄitavam e-knjigu..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM greÅ¡ka" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>Ova knjiga je zaÅ¡tićena<a href=\"%s\">DRM</a>om" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "Nisam uspeo da otvorim e-knjigu" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "Opcije za kontrolu ÄitaÄa e-knjiga" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "Ako je naveden, prozor ÄitaÄa će pokuÅ¡ati da pri pokretanju doÄ‘e u prvi plan." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" "Ako je navedeno, prozor za Äitanje će se pri pokretanju otvoriti preko celog " "ekrana." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "Prikaži javascript upozorenja i poruke na konzoli" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10933,7 +10984,7 @@ msgstr "Sakrij" msgid "Toggle" msgstr "Prebaci" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -10943,14 +10994,14 @@ msgstr "" "telefonu, možete pristupiti vaÅ¡oj calibre biblioteci direktno na ureÄ‘aju. Da " "biste ovo postigli morate ukljuÄiti server sadržaja." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "" "Ne zaboravite da ostavite calibre pokrenut, jer server inaÄe neće raditi." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -10960,20 +11011,20 @@ msgstr "" "WordPlayeru. Ovde mojhost treba da bude puno ime, ili IP adresa raÄunara na " "kome ste pokrenuli calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "PremeÅ¡tam biblioteku..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "Nisam uspeo da premestim biblioteku" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "Neispravna baza podataka" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" @@ -10981,21 +11032,21 @@ msgstr "" "<p>U %s već postoji jedna neispravna biblioteka. IzbriÅ¡ite je pre nego Å¡to " "premestite ovu biblioteku.<br>GreÅ¡ka: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "Nisam uspeo da premestim biblioteku" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "Izaberite putanju za knjige" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" "Morate izabrati prazan direktorijum za calibre biblioteku. %s nije prazan." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "Äarobnjak za dobrodoÅ¡licu" @@ -11081,11 +11132,12 @@ msgstr "Izaberite &jezik:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" msgstr "" -"Izaberite mesto za vaÅ¡e knjige. Kada budete dodavali knjige u calibre one će " -"biti kopirane ovde:" +"<p>Izaberite lokaciju za vaÅ¡e knjige. Kada budete dodavali knjige u calibre " +"one će biti smeÅ¡tene ovde. Izaberite <b>prazan direktorijum</b> za novu " +"calibre biblioteku:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -11100,49 +11152,79 @@ msgstr "" "Ako već imate calibre biblioteku ona će biti kopirana na novo mesto. Ako " "tamo već postoji biblioteka calibre će nastaviti da je koristi." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "Koristim: %s:%s@%s:%s i %s naÄin Å¡ifrovanja" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "Å aljem..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "PoÅ¡ta je uspeÅ¡no poslata" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "ZavrÅ¡i podeÅ¡avanje gmaila" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -"Ne zaboravite da unesete gmail korisniÄko ime i lozinku. Besplatan gmail " -"nalog možete otvoriti na http://gmail.com" +"Ako podeÅ¡avate novi Hotmail nalog morate se prvo prijaviti na njega bar " +"jednom pre nego Å¡to s njega možete da Å¡aljete poÅ¡tu." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" +"Možete se projaviti za besplatan {name} nalog na <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "VaÅ¡a %s &elektronska adresa" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "VaÅ¡e %s &korisniÄko ime:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "VaÅ¡a %s &lozinka:" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" +"Ako nameravate da korisite elektronsku poÅ¡tu da Å¡aljete knjige na vaÅ¡ " +"Kindle, ne zaboravite da dodate vaÅ¡u %s elektronsku adresu na vaÅ¡oj Amazon " +"Kindle internet stranici" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "PodeÅ¡avanje" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "LoÅ¡a konfiguracija" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "Morate postaviti elektronsku adresu poÅ¡iljaoca" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 msgid "You must set the username and password for the mail server." msgstr "" "Morate postaviti korisniÄko ime i lozinku za server elektronske poÅ¡te." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "&PoÅ¡iljalac:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" @@ -11150,7 +11232,7 @@ msgstr "" "<p>Ovo će se naći u From: polju poruka koje će calibre slati.<br> Ovde " "navedite svoju elektronsku adresu" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." @@ -11158,50 +11240,50 @@ msgstr "" "<p>Server za elektronsku poÅ¡tu je koristan ako onaj kome Å¡aljete poÅ¡tu " "prihvata poruke samo sa dobro poznatih servisa elektronske poÅ¡te." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "&Server elektronske poÅ¡te" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" "calibre može <b>opciono</b> da koristi server za slanje elektronskih poruka" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "&Server" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "Naziv vaÅ¡eg servera elektronske poÅ¡te. Na primer smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "&Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "" "Port na kome vaÅ¡ server elektronske poÅ¡te oÄekuje poruke. Podrazumeva se 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "VaÅ¡e korisniÄko ime na serveru elektronske poÅ¡te" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "VaÅ¡a lozinka na serveru elektronske poÅ¡te" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "&Prikaži" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "Å i&frovanje:" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." @@ -11209,23 +11291,35 @@ msgstr "" "Koristi TLS Å¡ifrovanje u komunikaciji sa serverom elektronske poÅ¡te. Ovo je " "najuobiÄajenija opcija." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "Koristi SSL Å¡ifrovanje u komunikaciji sa serverom elektronske poÅ¡te." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "UPOZORENJE: Nekorišćenje enkripcije je veoma nebezbedno" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "&Nijedna" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "Koristi Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "Koristi Hotmail" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "&Probna poruka" @@ -11292,7 +11386,7 @@ msgstr "prazno" msgid "empty" msgstr "prazno" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11306,7 +11400,7 @@ msgstr "" "Podrazumeva se: '%%default'\n" "Važi za: CSV, XML izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11318,7 +11412,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: CSV, XML izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -11332,7 +11426,7 @@ msgstr "" "Podrazumeva se: '%%default'\n" "Važi za: BIBTEX izlazni format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -11344,7 +11438,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: BIBTEX izlazni format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -11356,7 +11450,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: BIBTEX izlazni format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -11370,7 +11464,7 @@ msgstr "" "Podrazumeva se: '%%default'\n" "Važi za: BIBTEX izlazni format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -11382,7 +11476,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: BIBTEX izlazni format" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -11394,7 +11488,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: BIBTEX izlazni form" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -11406,7 +11500,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: BIBTEX izlazni form" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -11416,7 +11510,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -11429,7 +11523,7 @@ msgstr "" "Podrazumeva se: '%default'None\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" @@ -11440,7 +11534,7 @@ msgstr "" "'[<etiketa>]'\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -11453,7 +11547,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" @@ -11463,7 +11557,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" @@ -11473,7 +11567,7 @@ msgstr "" "Podrazumava se: '%default'\n" "Odnosi se na: ePub i MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" @@ -11483,7 +11577,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -11493,7 +11587,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -11507,7 +11601,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -11522,7 +11616,7 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: ePub, MOBI izlazne formate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -11532,6 +11626,16 @@ msgstr "" "Podrazumeva se: '%default'\n" "Važi za: ePub, MOBI izlazne formate" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etiketa koja odreÄ‘uje knjigu koja će biti prikazana u spisku želja.\n" +"Podrazumeva se: '%default'\n" +"Važi za: ePub i MOBI izlazne formate" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "Neispravni naslovi" @@ -12241,36 +12345,36 @@ msgstr "" "Etiketa sme sadržati samo mala slova, cifre i donje crte, i mora poÄeti " "slovom." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sSrednja ocena je %3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "Osnovna" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" "<p>Prevodim staru bazu podataka u biblioteku e-knjiga u %s<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "Kopiram <b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "Sažimam bazu podataka" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "Proveravam ispravnost SQLa..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "Tražim nepostojeće fajlove." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "Proverio identifikator" @@ -12495,128 +12599,129 @@ msgstr "" "Prefiks koji će biti dodat svim URLovima. Korisno za reverseproxying ka ovom " "serveru iz Apache/nginx/itd." -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "Lozinka za pristup vaÅ¡oj calibre biblioteci. KorisniÄko ime je " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "UÄitavam. Molim saÄekajte." -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "Idi na" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "Prvi" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "Poslednji" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "Prethodni" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "Sledeći" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "Pregled %d knjiga" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "ProseÄna ocena" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "%s: %.1f zvezdica" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "%d zvezdica" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "Popularnost" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "Sortiraj po" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "biblioteka" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "poÄetna" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "Najnovije" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "Sve knjige" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "Pregledaj knjige po" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "Izaberi kategoriju po kojoj će se pregledati:" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "Pregled po" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "Gore" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "u" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "Knjige u" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "Drugi formati" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "ÄŒitaj %s u formatu %s" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "Preuzmi" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "Trajni link" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "Trajni link ka ovoj knjizi" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "Ova knjiga je obrisana" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "u pretrazi" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "Odgovarajuće knjige" @@ -12957,7 +13062,7 @@ msgstr "Nisam uspeo da dogovorim SSH sesiju: " msgid "Failed to authenticate with server: %s" msgstr "Nije uspelo prijavljivanje na server: %s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "Kontrola dostave elektronske poÅ¡te" @@ -13213,6 +13318,13 @@ msgstr "Ne preuzimaj CSS stilove." #~ msgid "Communicate with the Teclast K3 reader." #~ msgstr "Uspostavi komunikaciju s Teclast K3 ÄitaÄem." +#~ 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 "" +#~ "Srednja dužina reda za prelom ako je HTML fajl rezultat prethodne konverzije " +#~ "iz PDF fajla. Podrazumeva se %default i ta vrednost iskljuÄuje ovu opciju." + #~ msgid "EDITORIAL REVIEW" #~ msgstr "REÄŒ UREDNIKA" @@ -13266,6 +13378,12 @@ msgstr "Ne preuzimaj CSS stilove." #~ msgid "Send specific format to main memory" #~ msgstr "PoÅ¡alji odreÄ‘eni format u osnovnu memoriju" +#~ msgid "Failed to email the following books:" +#~ msgstr "Nisam uspeo da poÅ¡aljem sledeće knjige:" + +#~ msgid "Failed to email books" +#~ msgstr "Nisam uspeo da poÅ¡aljem knjige" + #~ msgid "Fit &cover to view" #~ msgstr "Prilagodi veliÄinu &naslovne strane" @@ -13368,6 +13486,13 @@ msgstr "Ne preuzimaj CSS stilove." #~ msgid "Download &cover" #~ msgstr "Preuzmi &naslovnu stranu" +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "Sadrži: reÄi ili fraze bilo gde meÄ‘u metapodacima" + +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "Regularni izraz: izraz mora biti pronaÄ‘en bilo gde meÄ‘u metapodacima" + #~ msgid "" #~ "For help with writing advanced news recipes, please visit <a " #~ "href=\"http://calibre.kovidgoyal.net/user_manual/news.html\">User Recipes</a>" @@ -13517,6 +13642,16 @@ msgstr "Ne preuzimaj CSS stilove." #~ "%d\n" #~ "knjiga" +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "" +#~ "Ne zaboravite da unesete gmail korisniÄko ime i lozinku. Besplatan gmail " +#~ "nalog možete otvoriti na http://gmail.com" + +#~ msgid "Finish gmail setup" +#~ msgstr "ZavrÅ¡i podeÅ¡avanje gmaila" + #~ msgid "" #~ "The format in which to output the data. Available choices: %s. Defaults is " #~ "text." @@ -13535,6 +13670,9 @@ msgstr "Ne preuzimaj CSS stilove." #~ "Zarezima razdvojena lista formata u kojima će knjiga biti snimljena. " #~ "Podrazumeva se da će biti snimljeni svi raspoloživi formati." +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "Lozinka za pristup vaÅ¡oj calibre biblioteci. KorisniÄko ime je " + #~ msgid "" #~ "[options]\n" #~ "\n" @@ -13572,6 +13710,26 @@ msgstr "Ne preuzimaj CSS stilove." #~ msgid "Masthead font:" #~ msgstr "Vrsta slova za Impresum:" +#~ msgid "Sent by email:" +#~ msgstr "Poslato elektronskom poÅ¡tom:" + +#~ msgid "Attached is the" +#~ msgstr "PrikljuÄeno je" + +#~ 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 "" +#~ "Sledeće knjige imaju formate navedene u bazi podataka koji u stvari ne " +#~ "postoje. Informacije o ovim formatima su uklonjene. PreporuÄujem da ove " +#~ "formate proverite i ruÄno. Do ove greÅ¡ke može doći ako ruÄno baratate " +#~ "direktorijumom koji sadrži vaÅ¡u biblioteku." + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "Jednaki: reÄima ili frazama koje odgovaraju celom polju metapodataka" + #~ msgid "Click to turn off Cover Browsing" #~ msgstr "Kliknite da iskljuÄite traženje u Izlogu naslovnih strana" @@ -13585,6 +13743,13 @@ msgstr "Ne preuzimaj CSS stilove." #~ msgid "Click to browse books by tags" #~ msgstr "Kliknite da tražite knjige po etiketama" +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "" +#~ "Izaberite mesto za vaÅ¡e knjige. Kada budete dodavali knjige u calibre one će " +#~ "biti kopirane ovde:" + #~ msgid "" #~ "\n" #~ " <p>The database of books on the reader is corrupted. Try the " @@ -13976,6 +14141,17 @@ msgstr "Ne preuzimaj CSS stilove." #~ msgid "Switch to library..." #~ msgstr "PreÄ‘i na bibilioteku..." +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>Unesite listu ISBN brojeva u polje s leve strane, jedan broj po redu. " +#~ "calibre će automatski kreirati stavke za knjige na osnovu ovih ISBN brojeva " +#~ "i za njih preuzeti metapodatke i omote. <p>Svi nevažeći ISBn brojevi će biti " +#~ "ignorisani." + #~ msgid "You cannot change libraries when a device is connected." #~ msgstr "Ne možete da promenite biblioteku kada je ureÄ‘aj već prikljuÄen." @@ -14152,3 +14328,6 @@ msgstr "Ne preuzimaj CSS stilove." #~ " UPOZORENJE: Ovo kreira potpuno novu bazu podataka. Izgubićete\n" #~ " sve korisniÄke recepte i podeÅ¡avanja konverzije za pojedanÄne knjige.\n" #~ " " + +#~ msgid "No details available" +#~ msgstr "Detalji nisu dostupni" diff --git a/src/calibre/translations/sv.po b/src/calibre/translations/sv.po index d549ea5393..1c57c9a0c1 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 <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-10 14:27+0000\n" -"PO-Revision-Date: 2010-11-10 21:45+0000\n" -"Last-Translator: Merarom <Unknown>\n" +"POT-Creation-Date: 2010-11-12 23:11+0000\n" +"PO-Revision-Date: 2010-11-12 23:04+0000\n" +"Last-Translator: Kovid Goyal <Unknown>\n" "Language-Team: Swedish <sv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-11 04:42+0000\n" +"X-Launchpad-Export-Date: 2010-11-14 05:05+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: SWEDEN\n" "X-Poedit-Language: Swedish\n" @@ -33,7 +33,7 @@ msgstr "Gör absolut ingenting" #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:650 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -76,14 +76,14 @@ msgstr "Gör absolut ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:616 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:822 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:824 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:620 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:826 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:828 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -125,8 +125,8 @@ msgstr "Gör absolut ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1249 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1252 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 @@ -194,7 +194,7 @@ msgstr "AnvändargränssnittsÃ¥tgärd" msgid "Preferences" msgstr "Inställningar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -204,7 +204,7 @@ msgstr "" "alla länkade filer. Detta tillägg körs varje gÃ¥ng du lägger till en HTML-fil " "till biblioteket." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -212,7 +212,7 @@ msgstr "" "Teckenkodning för indata i HTML. Vanliga alternativ är: cp1252, latin1, iso-" "8859-1 och utf-8." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -222,7 +222,7 @@ msgstr "" "pmlname_img eller bilder. Detta tillägg körs varje gÃ¥ng du lägger till en " "PML-fil till biblioteket." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "Extrahera omslag frÃ¥n serietidningsfiler" @@ -269,45 +269,45 @@ msgstr "Ställ in metadata i %s-filer" msgid "Set metadata from %s files" msgstr "Ställ in metadata utifrÃ¥n %s-filer" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:712 msgid "Look and Feel" msgstr "Utseende och beteende" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:726 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748 msgid "Interface" msgstr "Gränssnitt" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:718 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "" "Justera utseendet och beteendet av Calibre-gränssnittet sÃ¥ det passar din " "smak" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:724 msgid "Behavior" msgstr "Beteende" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:730 msgid "Change the way calibre behaves" msgstr "Ändra Calibres beteende" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:208 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "Lägg till dina egna kolumner" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:741 msgid "Add/remove your own columns to the calibre book list" msgstr "Lägga till / ta bort dina egna kolumner till Calibres boklista" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Customize the toolbar" msgstr "Anpassa verktygsfältet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:752 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -315,57 +315,57 @@ msgstr "" "Anpassa verktygsfält och menyer, genom att ändra vilka Ã¥tgärder som finns i " "varje" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:758 msgid "Input Options" msgstr "Inmatningsalternativ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:760 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:771 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782 msgid "Conversion" msgstr "Konvertera" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:764 msgid "Set conversion options specific to each input format" msgstr "Ange konverteringsalternativ specifika för varje indataformat" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Common Options" msgstr "Vanliga alternativ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:775 msgid "Set conversion options common to all formats" msgstr "Ange konverteringsalternativ gemensamma för alla format" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Output Options" msgstr "Alternativ för utdata" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:786 msgid "Set conversion options specific to each output format" msgstr "Ange konvertering specifika för varje utdataformat" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Adding books" msgstr "Lägga till böcker" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:793 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:805 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 msgid "Import/Export" msgstr "Import / Export" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:797 msgid "Control how calibre reads metadata from files when adding books" msgstr "" "Kontrollera hur Calibre läser metadata frÃ¥n filer när du lägger till böcker" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:803 msgid "Saving books to disk" msgstr "Spara böcker till disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:809 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" @@ -373,32 +373,32 @@ msgstr "" "Kontrollera hur Calibre exporterar filer frÃ¥n databasen till hÃ¥rddisken när " "du använder Spara till disk" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:815 msgid "Sending books to devices" msgstr "Skickar böcker till enheter" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:821 msgid "Control how calibre transfers files to your ebook reader" msgstr "Kontrollera hur Calibre överför filer till din läsplatta" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:827 msgid "Metadata plugboards" msgstr "Kontrollpanel för metadata" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:833 msgid "Change metadata fields before saving/sending" msgstr "Ändra metadatafält innan du sparar / skickar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Sharing books by email" msgstr "Dela böcker via e-post" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:840 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852 msgid "Sharing" msgstr "Delar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:844 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -406,11 +406,11 @@ msgstr "" "Ställ in delning av böcker via e-post. Kan användas för automatisk sändning " "av nedladdade nyheter till dina enheter" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:850 msgid "Sharing over the net" msgstr "Dela pÃ¥ nätet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:856 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -418,33 +418,33 @@ msgstr "" "Ställ in Calibre innehÃ¥llsserver som ger dig tillgÃ¥ng till din Calibre-" "bibliotek frÃ¥n nÃ¥gonstans, pÃ¥ nÃ¥gon enhet pÃ¥ Internet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:863 msgid "Plugins" msgstr "Tillägg" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:877 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:888 msgid "Advanced" msgstr "Avancerat" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:869 msgid "Add/remove/customize various bits of calibre functionality" msgstr "Lägg till / ta bort / anpassa olika bitar av Calibre-funktionalitet" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:875 msgid "Tweaks" msgstr "Justeringar" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:881 msgid "Fine tune how calibre behaves in various contexts" msgstr "Finjustera hur Calibre beter sig i olika sammanhang" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Miscellaneous" msgstr "Diverse" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:892 msgid "Miscellaneous advanced configuration" msgstr "Diverse avancerad konfiguration" @@ -489,7 +489,7 @@ msgstr "" "du inte vet nÃ¥got om ingÃ¥ngsdokumentet." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "Denna profil är avsedd för Sonys PRS-linje: 500/505/600/700 m.fl." @@ -499,62 +499,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "Denna profil är avsedd för Sony PRS-300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "Denna profil är avsedd för Sony PRS-900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "Denna profil är avsedd för Microsoft Reader." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "Denna profil är avsedd för Mobipocket-böcker." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "Denna profil är avsedd för Hanlin V3 och dess varianter." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "Denna profil är avsedd för Hanlin V5 och dess varianter." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "Denna profil är avsedd för Cybook G3." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "Denna profil är avsedd för Cybook Opus." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "Denna profil är avsedd för Amazon Kindle." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "Denna profil är avsedd för Irex Illiad." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "Denna profil är avsedd för IRex Digital Reader 1000." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "Denna profil är avsedd för Irex Digital Reader 800." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "Denna profil är avsedd för B&N Nook." @@ -572,28 +572,28 @@ msgstr "" "om du vill skapa en handling som skall läsas pÃ¥ en dator eller pÃ¥ en rad " "olika enheter." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "Avsedd för iPad och liknande enheter med en upplösningen 768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "Avsedd för allmänna surfplattor - bilder skalas ej om." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "Denna profil är avsedd för Kobo Reader." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "Denna profil är avsedd för SONY PRS-300." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "Denna profil är avsedd för JetBook (5 tum)." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -601,11 +601,11 @@ msgstr "" "Denna profil är avsedd för Sonys PRS-linje, 500/505/700 m.fl, i liggande " "format. Används främst för serietidningar." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "Denna profil är avsedd för Amazon Kindle DX." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:686 msgid "This profile is intended for the Sanda Bambook." msgstr "Denna profil är avsedd för Sanda Bambook." @@ -684,7 +684,7 @@ msgstr "Inaktivera namngivet tillägg" msgid "Communicate with Android phones." msgstr "Kommunicera med Android-telefoner." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -692,7 +692,7 @@ msgstr "" "Kommaseparerad lista av kataloger pÃ¥ enheten dit e-böckerna skall skickas. " "Den första katalog som finns kommer att användas" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "Kommunicera med S60-telefoner" @@ -1048,6 +1048,14 @@ msgstr "Nook" msgid "Communicate with the Nook eBook reader." msgstr "Kommunicera med läsplattan Nook." +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "Kommunicera med läsplattan Nuut2." @@ -2798,7 +2806,7 @@ msgstr "" "LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "Omslag" @@ -2840,70 +2848,70 @@ msgstr "Alla artiklar" msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "Det här är en Amazon Topaz-bok. Den kan inte hanteras." -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "Titelsida" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "InnehÃ¥llsförteckning" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "Översikt" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "Ordförklaringar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "Tack till" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "Litteraturförteckning" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "Upphovsrätt" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "Tillägnan" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "Förord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "Illustrationslista" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "Tabellista" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "Anteckningar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "Förord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "Huvudtext" @@ -3961,7 +3969,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "Tillåẗs ej" @@ -5074,11 +5082,11 @@ msgstr "" "som sparats i en tidigare konvertering (om den finns) i stället för att " "använda de standardvärden som anges i Inställningar" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "Masskonvertering" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "Alternativ specifika för utdataformatet." @@ -6284,10 +6292,10 @@ msgstr "Skickar e-post till" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1174 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1301 msgid "No suitable formats" msgstr "Inga lämpliga format" @@ -6313,38 +6321,38 @@ msgstr "Kunde inte skicka följande böcker:" msgid "Sent by email:" msgstr "Skickat via e-post:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1048 msgid "News:" msgstr "Nyheter:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1049 msgid "Attached is the" msgstr "Bifogat är" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1060 msgid "Sent news to" msgstr "Skickat nyheter till" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1175 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1294 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Skall följande böcker konverteras automatiskt innan de skickas till enheten?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1120 msgid "Sending catalogs to device." msgstr "Skickar kataloger till enhet." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1207 msgid "Sending news to device." msgstr "Skickar nyheter till enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1260 msgid "Sending books to device." msgstr "Skickar böcker till enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1302 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." @@ -6353,11 +6361,11 @@ msgstr "" "format hittades. Konvertera boken/böckerna till ett format som stöds av " "enheten först." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1366 msgid "No space on device" msgstr "Inget ledigt utrymme pÃ¥ enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1367 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -7744,45 +7752,45 @@ msgid "Advanced Search" msgstr "Avancerad sökning" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 -msgid "Find entries that have..." -msgstr "Hitta poster som ..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 -msgid "&All these words:" -msgstr "&Alla dessa ord:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 -msgid "This exact &phrase:" -msgstr "Exakt denna fras:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 -msgid "&One or more of these words:" -msgstr "Ett eller flera av dessa &ord:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 -msgid "But dont show entries that have..." -msgstr "Men visa inte poster som har ..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 -msgid "Any of these &unwanted words:" -msgstr "NÃ¥got av dessa oönskade ord:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 msgid "What kind of match to use:" msgstr "Vilket slags matchning skall användas:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 +msgid "" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "Hitta poster som ..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "&Alla dessa ord:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "Exakt denna fras:" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "InnehÃ¥ller: ordet eller frasen matcher nÃ¥gonstans i metadata" +msgid "&One or more of these words:" +msgstr "Ett eller flera av dessa &ord:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "Betydelse: ordet eller frasen som mÃ¥ste matcha ett helt metadatafält" +msgid "But dont show entries that have..." +msgstr "Men visa inte poster som har ..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 -msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "Reguljärt uttryck: uttrycket mÃ¥ste passa in nÃ¥gonstans i metadata" +msgid "Any of these &unwanted words:" +msgstr "NÃ¥got av dessa oönskade ord:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" @@ -8622,47 +8630,47 @@ msgstr "Markerat för borttagning" msgid "Double click to <b>edit</b> me<br><br>" msgstr "Dubbelklicka för att <b>redigera</b> mig<br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "Dölj kolumn %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "Sortera pÃ¥ %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "Stigande" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "Fallande" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "Ändra textjustering för %s" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "Vänster" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "till höger" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "Centrera" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "Visa kolumn" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "Ã…terställ standardutformning" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -13624,6 +13632,16 @@ msgstr "Hämta inte CSS-stilmallar." #~ "Automatically create the author sort entry based on the current author entry" #~ msgstr "Gissa hur författaren skall sorteras utifrÃ¥n dess namn" +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "InnehÃ¥ller: ordet eller frasen matcher nÃ¥gonstans i metadata" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "Betydelse: ordet eller frasen som mÃ¥ste matcha ett helt metadatafält" + +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "Reguljärt uttryck: uttrycket mÃ¥ste passa in nÃ¥gonstans i metadata" + #~ msgid "" #~ "For help with writing advanced news recipes, please visit <a " #~ "href=\"http://calibre.kovidgoyal.net/user_manual/news.html\">User Recipes</a>" diff --git a/src/calibre/translations/th.po b/src/calibre/translations/th.po index 817a2a8e08..50ff10c893 100644 --- a/src/calibre/translations/th.po +++ b/src/calibre/translations/th.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-11-06 15:45+0000\n" -"PO-Revision-Date: 2010-11-06 00:56+0000\n" +"POT-Creation-Date: 2010-11-19 21:23+0000\n" +"PO-Revision-Date: 2010-11-19 23:44+0000\n" "Last-Translator: sksy <songkit@gmail.com>\n" "Language-Team: Thai <th@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-11-07 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-11-21 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:345 @@ -40,7 +40,7 @@ msgstr "ไม่มีอะไรเลย" #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -49,8 +49,8 @@ msgstr "ไม่มีอะไรเลย" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:343 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -83,14 +83,14 @@ msgstr "ไม่มีอะไรเลย" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:620 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:826 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:828 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -118,10 +118,10 @@ msgstr "ไม่มีอะไรเลย" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 @@ -130,10 +130,10 @@ msgstr "ไม่มีอะไรเลย" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:936 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:945 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1252 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1255 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 @@ -146,14 +146,14 @@ msgstr "ไม่มีอะไรเลย" #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:374 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:386 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1255 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1359 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2145 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2147 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2279 #: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 @@ -201,7 +201,7 @@ msgstr "à¸à¸²à¸£à¸—ำงานของส่วนติดต่อผู้ msgid "Preferences" msgstr "ปรับà¹à¸•่ง" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 " @@ -211,14 +211,14 @@ msgstr "" "à¹à¸¥à¸°à¸ªà¸³à¹€à¸™à¸²à¹„ฟล์เหล่านั้นไว้เพื่อนำมาสร้างเป็นไฟล์ ZIP " "ปลั้à¸à¸­à¸´à¸™à¸™à¸µà¹‰à¸ˆà¸°à¸—ำงานทุà¸à¸„รั้งที่คุณเพิ่มไฟล์ HTML เข้าไปในไลเบอรลี่" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." msgstr "" "รหัสตัวอัà¸à¸©à¸£à¸—ี่ใช้โดยทั่วไป ได้à¹à¸à¹ˆ cp1252, latin1, iso-8859-1 à¹à¸¥à¸° utf-8" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -227,7 +227,7 @@ msgstr "" "สร้างชุดเอà¸à¸ªà¸²à¸£ PMLZ ซึ่งประà¸à¸­à¸šà¸”้วยไฟล์ PML à¹à¸¥à¸°à¸£à¸¹à¸›à¸—ั้งหมดที่อยู่ในไดเรคตอรี่ " "pmlname_img หรือ images" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "à¹à¸¢à¸à¸›à¸à¸­à¸­à¸à¸ˆà¸²à¸à¸«à¸™à¸±à¸‡à¸ªà¸·à¸­" @@ -265,43 +265,43 @@ msgstr "อ่านข้อมูลจาà¸à¸«à¸™à¸±à¸‡à¸ªà¸·à¸­à¹ƒà¸™à¹„ฟ msgid "Set metadata from %s files" msgstr "ตั้งค่าข้อมูลจาภ%s ไฟล์" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:711 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 msgid "Look and Feel" msgstr "รูปลัà¸à¸©à¸“์" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:713 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:715 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:727 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:738 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:749 msgid "Interface" msgstr "ส่วนติดต่อ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "ปรับเปลี่ยนรูปลัà¸à¸©à¸“์ให้เหมาะà¸à¸±à¸šà¸£à¸ªà¸™à¸´à¸¢à¸¡à¹ƒà¸™à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸‚องคุณเอง" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:725 msgid "Behavior" msgstr "พฤติà¸à¸£à¸£à¸¡" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 msgid "Change the way calibre behaves" msgstr "เปลี่ยนà¹à¸›à¸¥à¸‡à¸žà¸¤à¸•ิà¸à¸£à¸£à¸¡à¹ƒà¸™à¸à¸²à¸£à¸—ำงานของ calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:734 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:736 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "เพิ่มคอลัมน์ของคุณเอง" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 msgid "Add/remove your own columns to the calibre book list" msgstr "เพิ่ม/ลดคอลัมน์ของคุณเองในรายà¸à¸²à¸£à¸«à¸™à¸±à¸‡à¸ªà¸·à¸­à¸‚อง calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:745 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:747 msgid "Customize the toolbar" msgstr "ปรับเปลี่ยนทูลบาร์" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" @@ -309,87 +309,87 @@ msgstr "" "ปรับเปลี่ยนทูลบาร์à¹à¸¥à¸°à¹€à¸¡à¸™à¸¹à¹€à¸™à¸·à¹‰à¸­à¸«à¸² " "โดยà¸à¸³à¸«à¸™à¸”à¸à¸²à¸£à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹à¸•่ละเมนูà¹à¸¥à¸°à¸—ูลบาร์" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 msgid "Input Options" msgstr "ตัวเลือà¸à¸­à¸´à¸™à¸žà¸¸à¸—" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:759 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:761 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:772 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:783 msgid "Conversion" msgstr "à¹à¸›à¸¥à¸‡à¹„ฟล์" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 msgid "Set conversion options specific to each input format" msgstr "à¸à¸³à¸«à¸™à¸”ตัวเลือà¸à¹ƒà¸™à¸à¸²à¸£à¹à¸›à¸¥à¸‡à¹„ฟล์ให้เฉพาะเจาะจงà¸à¸±à¸šà¸£à¸¹à¸›à¹à¸šà¸šà¸­à¸´à¸™à¸žà¸¸à¸—" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:768 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:770 msgid "Common Options" msgstr "ตัวเลือà¸à¸—ั่วไป" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 msgid "Set conversion options common to all formats" msgstr "à¸à¸³à¸«à¸™à¸”ตัวเลือà¸à¹ƒà¸™à¸à¸²à¸£à¹à¸›à¸¥à¸‡à¹„ฟล์ให้ใช้à¸à¸±à¸šà¸—ุà¸à¸£à¸¹à¸›à¹à¸šà¸š" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:779 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:781 msgid "Output Options" msgstr "ตัวเลือà¸à¹€à¸­à¸²à¸—์พุท" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Set conversion options specific to each output format" msgstr "à¸à¸³à¸«à¸™à¸”ตัวเลือà¸à¹ƒà¸™à¸à¸²à¸£à¹à¸›à¸¥à¸‡à¹„ฟล์ให้เฉพาะเจาะจงà¸à¸±à¸šà¸£à¸¹à¸›à¹à¸šà¸šà¹€à¸­à¸²à¸—์พุท" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:790 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 msgid "Adding books" msgstr "เพิ่มหนังสือ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:792 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:794 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:806 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:818 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:830 msgid "Import/Export" msgstr "นำเข้า/ส่งออà¸" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 msgid "Control how calibre reads metadata from files when adding books" msgstr "ควบคุมให้ calibre อ่านชุดข้อมูลจาà¸à¹„ฟล์ในเวลาที่เพิ่มหนังสือ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:804 msgid "Saving books to disk" msgstr "บันทึà¸à¸«à¸™à¸±à¸‡à¸ªà¸·à¸­à¸¥à¸‡à¸”ิสà¸à¹Œ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" msgstr "ควบคุมให้ calibre ส่งออà¸à¹„ฟล์จาà¸à¸à¸²à¸™à¸‚้อมูลลงดิสà¸à¹Œà¹€à¸§à¸¥à¸²à¸ªà¸±à¹ˆà¸‡à¸šà¸±à¸™à¸—ึà¸" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:816 msgid "Sending books to devices" msgstr "ส่งหนังสือไปยังอุปà¸à¸£à¸“์ปลายทาง" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 msgid "Control how calibre transfers files to your ebook reader" msgstr "ควบคุมให้ calibre ส่งถ่ายไฟล์ลงในอีบุคส์รีดเดอร์" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:828 msgid "Metadata plugboards" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Change metadata fields before saving/sending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:837 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 msgid "Sharing books by email" msgstr "à¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¸—างอีเมลล์" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:839 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:841 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:853 msgid "Sharing" msgstr "à¹à¸šà¹ˆà¸‡à¸›à¸±à¸™" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" @@ -397,11 +397,11 @@ msgstr "" "à¸à¸²à¸£à¸•ั้งค่าà¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¸—างอีเมลล์สามารถใช้เป็นช่องทางในà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸‚้่าวสารà¸à¸²à¸£à¹€à¸”าน์โหลดโด" "ยอัตโนมัติไปยังอุปà¸à¸£à¸“์ปลายทางของท่านได้" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:851 msgid "Sharing over the net" msgstr "à¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¸œà¹ˆà¸²à¸™à¹€à¸™à¹‡à¸—" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" @@ -409,33 +409,33 @@ msgstr "" "ตั้งค่าให้ calibre เป็นเซิฟเวอร์จะทำให้คุณสามารถเข้ามายังห้องสมุด calibre " "ของคุณจาภณ ที่à¹à¸«à¹ˆà¸‡à¹ƒà¸”à¸à¹‡à¹„ด้ จาà¸à¸­à¸¸à¸›à¸à¸£à¸“์สื่อสารใดà¸à¹‡à¹„ด้ผ่านอินเตอร์เน็ท" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:862 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 msgid "Plugins" msgstr "ปลั๊à¸à¸­à¸´à¸™" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:864 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:866 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:878 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:889 msgid "Advanced" msgstr "เชี่ยวชาà¸" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 msgid "Add/remove/customize various bits of calibre functionality" msgstr "เพิ่ม/ลด/ปรับà¹à¸•่ง ฟังà¸à¹Œà¸Šà¸±à¹ˆà¸™à¸•่างๆของ calibre" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:876 msgid "Tweaks" msgstr "ปรับà¹à¸•่ง" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 msgid "Fine tune how calibre behaves in various contexts" msgstr "ปรับพฤติà¸à¸£à¸£à¸¡à¸‚อง calibre ที่จะตอบสนองà¸à¸±à¸šà¸ªà¹ˆà¸§à¸™à¸•่างๆอย่างละเอียด" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:885 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:887 msgid "Miscellaneous" msgstr "อื่นๆ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Miscellaneous advanced configuration" msgstr "à¸à¸²à¸£à¸›à¸£à¸±à¸šà¹à¸•่งค่าตั้งต้นอื่นๆ" @@ -480,7 +480,7 @@ msgstr "" "งมาà¸à¸«à¸²à¸à¸„ุณไม่รู้อะไรเลยเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹€à¸­à¸à¸ªà¸²à¸£à¸—ี่จะนำเข้า" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:436 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" @@ -492,62 +492,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ SONY PRS 300 โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:476 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ SONY PRS-900 โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:506 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Microsoft Reader โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:517 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Mobipocket books โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:530 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Hanlin V3 à¹à¸¥à¸°à¸£à¸¸à¹ˆà¸™à¸—ี่ลอà¸à¹à¸šà¸š โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:542 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Hanlin V5 à¹à¸¥à¸°à¸£à¸¸à¹ˆà¸™à¸¥à¸­à¸à¹à¸šà¸š โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:550 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Cybook G3 โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:563 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Cybook Opus โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:576 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Amazon Kindle โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:617 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Irex Illiad โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:630 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 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:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ IRex Digital Reader 800 โดยเฉพาะ" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ B&N Nook โดยเฉพาะ" @@ -565,30 +565,30 @@ msgstr "" "ซึ่งจะเหมาะà¸à¸±à¸šà¹€à¸­à¸à¸ªà¸²à¸£à¸—ี่คุณผลิตà¹à¸¥à¹‰à¸§à¸•้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¸­à¹ˆà¸²à¸™à¸šà¸™à¸„อมพิวเตอร์ " "หรืออุปà¸à¸£à¸“์มาตรà¸à¸²à¸™à¸à¸¥à¸¸à¹ˆà¸¡à¸«à¸™à¸¶à¹ˆà¸‡" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:273 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "" "เจาะจงสำหรับ iPad à¹à¸¥à¸°à¸­à¸¸à¸›à¸à¸£à¸“์ที่มีลัà¸à¸©à¸“ะเดียวà¸à¸±à¸™à¸‹à¸¶à¹ˆà¸‡à¸¡à¸µà¸„่ารีโซลูชั่นเท่าà¸à¸±à¸š " "768x1024" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:427 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:454 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Kobo Reader โดยเฉพาะ" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:467 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ SONY PRS-300 โดยเฉพาะ" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:485 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ JetBook ขนาด 5 นิ้ว โดยเฉพาะ" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:494 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -596,13 +596,13 @@ msgstr "" "ชุดข้อมูลนี้ทำมาสำหรับบรรทัดใน SONY PRS โดยเฉพาะรุ่น 500/505/700 " "เป็นต้นในโหมดของà¹à¸™à¸§à¸‚วาง ซึ่งเหมาะà¸à¸±à¸šà¸žà¸§à¸à¸«à¸™à¸±à¸‡à¸ªà¸·à¸­à¸à¸²à¸£à¹Œà¸•ูน" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:597 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "ชุดข้อมูลนี้ทำมาสำหรับ Amazon Kindle DX โดยเฉพาะ" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:686 msgid "This profile is intended for the Sanda Bambook." -msgstr "" +msgstr "ชุดข้อมูลนี้ใช้สำหรับ à¹à¸‹à¸™à¸”้า à¹à¸šà¸¡à¸šà¸¸à¸„" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Installed plugins" @@ -670,7 +670,7 @@ msgstr "พัà¸à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹€à¸™à¸¡à¸›à¸¥à¸±à¹‰à¸à¸­à¸´à¸™" msgid "Communicate with Android phones." msgstr "ติดต่อà¸à¸±à¸šà¹‚ทรศัพท์à¹à¸­à¸™à¸”รอยด์" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -678,7 +678,7 @@ msgstr "" "รายà¸à¸²à¸£à¹„ดเรคตอรี่ที่คั่นด้วยคอมม่าเพื่อส่งอีบุคส์ไปยังอุปà¸à¸£à¸“์ปลายทางซึ่งจะใช้ช" "ื่อที่พบครั้งà¹à¸£à¸à¸à¹ˆà¸­à¸™" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "ติดต่อà¸à¸±à¸šà¹‚ทรศัพท์ S60" @@ -757,18 +757,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "ข่าว" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:558 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1968 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1986 msgid "Catalog" msgstr "บัà¸à¸Šà¸µà¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­" @@ -794,6 +794,10 @@ msgstr "โà¸à¸§à¸´à¸— เà¸à¸²à¸°à¸¢à¸²à¸‡(kidding)" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "ติดต่อà¸à¸±à¸š Cybook Gen 3 / Opus eBook reader" +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "ติดต่อà¸à¸±à¸š EB600 eBook reader" @@ -999,7 +1003,7 @@ msgstr "ติดต่อà¸à¸±à¸š Sweex MM300" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:79 msgid "Communicate with the Digma Q600" -msgstr "" +msgstr "ติดต่อà¸à¸±à¸š ดิ๊à¸à¸¡à¹ˆà¸² คิว 600" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:88 msgid "Communicate with the Kogan" @@ -1038,6 +1042,14 @@ msgstr "The Nook" msgid "Communicate with the Nook eBook reader." msgstr "ติดต่อà¸à¸±à¸š The Nook eBook reader" +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "นุ๊à¸à¸„ัลเลอร์" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "ติดต่อà¸à¸±à¸šà¹€à¸„รื่องอ่านอีบุ๊คนุ๊à¸à¸„ัลเลอร์" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "ติดต่อà¸à¸±à¸š Nuut2 eBook reader" @@ -1077,7 +1089,7 @@ msgstr "ติดต่อà¸à¸±à¸š Newsmy reader" #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:47 msgid "Communicate with the Pico reader." -msgstr "" +msgstr "ติดต่อà¸à¸±à¸šà¹€à¸„รื่องอ่านพิคโà¸" #: /home/kovid/work/calibre/src/calibre/devices/teclast/driver.py:57 msgid "Communicate with the iPapyrus reader." @@ -1119,6 +1131,7 @@ msgid "" "The main memory of %s is read only. This usually happens because of file " "system errors." msgstr "" +"หน่วยความจำหลัà¸à¸‚อง %s อยู่ในสถานะอ่านอย่างเดียวส่วนใหà¸à¹ˆà¹€à¸à¸´à¸”จาà¸à¸£à¸°à¸šà¸šà¹„ฟล์มีปัà¸à¸«à¸²" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:815 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:817 @@ -1127,7 +1140,7 @@ msgstr "ตัวเครื่องไม่มี สดอเรจ à¸à¸² #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:819 msgid "Selected slot: %s is not supported." -msgstr "" +msgstr "สลอทที่เลือภ:%s ยังไม่มีโปรà¹à¸à¸£à¸¡à¸ªà¸™à¸±à¸šà¸ªà¸™à¸¸à¸™" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:848 msgid "There is insufficient free space in main memory" @@ -1210,6 +1223,9 @@ msgid "" "of less than 256 may result in blurred text on your device if you are " "creating your comics in EPUB format." msgstr "" +"จำนวนสีของà¸à¸²à¸£à¹à¸›à¸¥à¸‡à¸ à¸²à¸žà¹ƒà¸«à¹‰à¹€à¸›à¹‡à¸™à¸‚าวดำ ค่าเริ่มต้น:%default ตั้งค่าต่ำà¸à¸§à¹ˆà¸² 256 " +"สีจะทำให้ตัวอัà¸à¸©à¸£à¸šà¸™à¹€à¸„รื่องของท่านไม่ชัดในà¸à¸£à¸“ีที่à¹à¸›à¸¥à¸‡à¹„ฟล์หนังสือà¸à¸²à¸£à¹Œà¸•ูนเป็นà¹à¸šà¸š" +" EPUB" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:262 msgid "" @@ -1564,21 +1580,29 @@ msgstr "" msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" +"ตั้งค่าà¸à¸±à¹‰à¸™à¸«à¸™à¹‰à¸²à¸”้านบนเป็นหน่วยพอยท์ ค่าเริ่มต้นคือ %default หมายเหตุ 72 " +"พอยท์เท่าà¸à¸±à¸š 1 นิ้ว" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:294 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" +"ตั้งค่าà¸à¸±à¹‰à¸™à¸«à¸™à¹‰à¸²à¸”้านล่างเป็นหน่วยพอยท์ ค่าเริ่มต้นคือ %default หมายเหตุ 72 " +"พอยท์เท่าà¸à¸±à¸š 1 นิ้ว" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:299 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" +"ตั้งค่าà¸à¸±à¹‰à¸™à¸«à¸™à¹‰à¸²à¸”้านซ้ายเป็นหน่วยพอยท์ ค่าเริ่มต้นคือ %default หมายเหตุ 72 " +"พอยท์เท่าà¸à¸±à¸š 1 นิ้ว" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:304 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" +"ตั้งค่าà¸à¸±à¹‰à¸™à¸«à¸™à¹‰à¸²à¸”้านขวาเป็นหน่วยพอยท์ ค่าเริ่มต้นคือ %default หมายเหตุ 72 " +"พอยท์เท่าà¸à¸±à¸š 1 นิ้ว" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:310 msgid "" @@ -1595,6 +1619,9 @@ msgid "" "1.5em. Spacing removal will not work if the source file does not use " "paragraphs (<p> or <div> tags)." msgstr "" +"ขจัดช่องว่างระหว่างพาราà¸à¸£à¸²à¸Ÿà¸­à¸­à¸à¸ˆà¸°à¸—ำให้ระยะห่างอยู่ที่ 1.5em " +"à¹à¸•่ฟังà¸à¹Œà¸Šà¸±à¹ˆà¸™à¸™à¸µà¹‰à¸ˆà¸°à¹ƒà¸Šà¹‰à¹„ม่ได้à¸à¸±à¸šà¹„ฟล์ต้นฉบับที่ไม่มีà¸à¸²à¸£à¹ƒà¸Šà¹‰à¹à¸—รคพาราà¸à¸£à¸²à¸Ÿ (à¹à¸—รค <p> " +"หรือ <div> )" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:327 msgid "" @@ -1602,6 +1629,9 @@ msgid "" "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:334 msgid "" @@ -1614,6 +1644,8 @@ msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (<p> or <div> tags)." msgstr "" +"à¹à¸—รà¸à¸šà¸£à¸£à¸—ัดว่างระหว่างพาราà¸à¸£à¸²à¸Ÿà¸‹à¸¶à¹ˆà¸‡à¸ˆà¸°à¹„ม่ทำงานถ้าหาà¸à¹„ฟล์ต้นฉบับไม่มีà¸à¸²à¸£à¹ƒà¸Šà¹‰à¹à¸—รคพา" +"ราà¸à¸£à¸²à¸Ÿ ( à¹à¸—รค <p> หรือ <div> )" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:347 msgid "" @@ -1714,7 +1746,7 @@ msgstr "à¸à¸³à¸«à¸™à¸”ชื่อผู้à¹à¸•่ง ถ้ามีหล #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 msgid "The version of the title to be used for sorting. " -msgstr "" +msgstr "ใช้เลขจำนวนครั้งในà¸à¸²à¸£à¸žà¸´à¸¡à¸žà¹Œà¹€à¸›à¹‡à¸™à¸”ัชนีในà¸à¸²à¸£à¹€à¸£à¸µà¸¢à¸‡à¸¥à¸³à¸”ับ " #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 msgid "String to be used when sorting by author. " @@ -1742,7 +1774,7 @@ msgstr "ตั้งค่าชุดหนังสือของอีบุ #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:482 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:62 msgid "Set the index of the book in this series." -msgstr "" +msgstr "ตั้งค่าดัชนีหนังสือในชุด" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:486 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:64 @@ -1775,11 +1807,11 @@ msgstr "à¸à¸³à¸«à¸™à¸”วันที่พิมพ์" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:510 msgid "Set the book timestamp (used by the date column in calibre)." -msgstr "" +msgstr "ตั้งค่าเวลาของหนังสือ (จะถูà¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¸„อลัมวันที่ในโปรà¹à¸à¸£à¸¡à¸„าริเบอร์)" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:610 msgid "Could not find an ebook inside the archive" -msgstr "" +msgstr "ไม่พบอีบุคส์ในที่เà¸à¹‡à¸šà¹„ฟล์" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:668 msgid "Values of series index and rating must be numbers. Ignoring" @@ -1787,7 +1819,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:675 msgid "Failed to parse date/time" -msgstr "" +msgstr "ไม่สามารถใส่วันเวลาลงไปได้" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:830 msgid "Converting input to HTML..." @@ -1795,7 +1827,7 @@ msgstr "à¹à¸›à¸¥à¸‡à¸­à¸´à¸™à¸žà¸¸à¸—เป็น HTML" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:858 msgid "Running transforms on ebook..." -msgstr "" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸—ำà¸à¸²à¸£à¹à¸›à¸¥à¸‡à¸­à¸µà¸šà¸¸à¹Šà¸„" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:945 msgid "Creating" @@ -1900,6 +1932,9 @@ msgid "" "JetBook Lite. Without this option, such devices will display the cover as a " "blank page." msgstr "" +"ห้ามใช้ภาพในรูปà¹à¸šà¸š SVG เป็นปà¸à¸«à¸™à¸±à¸‡à¸ªà¸·à¸­ ใช้อ๊อฟชั่นนี้ถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰ ไฟล์ EPUB " +"ของท่านสามารถใช้à¸à¸±à¸š ไอโฟน หรือ เจ็ทบุคได้ " +"เพราะถ้าไม่ใช้อ๊อฟชั่นนี้จะทำให้รูปหน้าปà¸à¹à¸ªà¸”งเป็นหน้าว่างๆ" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:94 msgid "" @@ -1963,12 +1998,6 @@ msgid "" "pipeline." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 -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/html/output.py:33 msgid "CSS file used for the output instead of the default file" msgstr "" @@ -2280,8 +2309,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 @@ -2315,8 +2344,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 @@ -2331,7 +2360,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:645 msgid "Tags" msgstr "" @@ -2596,7 +2625,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "" @@ -2631,74 +2660,74 @@ msgstr "" msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "" @@ -2706,7 +2735,7 @@ msgstr "" msgid "%s format books are not supported" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "" @@ -2717,7 +2746,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:621 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:643 msgid "Rating" msgstr "" @@ -3002,7 +3031,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:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3208,7 +3237,7 @@ msgid "Disable UI animations" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 msgid "Copied" msgstr "" @@ -3220,7 +3249,7 @@ msgstr "" msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "" @@ -3375,7 +3404,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:547 msgid "Fetch annotations (experimental)" msgstr "" @@ -3470,7 +3499,7 @@ msgid "Checking database integrity" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:656 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3494,7 +3523,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:140 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "" @@ -3630,7 +3659,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:739 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "" @@ -3696,9 +3725,9 @@ msgid "Could not copy books: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:683 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:729 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "" @@ -3759,14 +3788,14 @@ msgid "Main memory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:481 msgid "Storage Card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:483 msgid "Storage Card B" msgstr "" @@ -3907,7 +3936,7 @@ msgid "covers" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "" @@ -4080,7 +4109,7 @@ msgid "Click the show details button to see which ones." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:628 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:650 msgid "Show book details" msgstr "" @@ -4218,7 +4247,7 @@ msgid "The specified directory could not be processed." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:878 msgid "No books" msgstr "" @@ -4406,11 +4435,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:403 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 @@ -4419,10 +4448,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 @@ -4453,7 +4482,7 @@ msgstr "" msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 msgid "Double-click to open Book Details window" msgstr "" @@ -4498,7 +4527,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4541,7 +4570,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 msgid "Form" msgstr "" @@ -4621,23 +4650,23 @@ msgstr "" msgid "E-book options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -4646,26 +4675,43 @@ msgid "" "Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 " @@ -4673,11 +4719,11 @@ msgid "" "specified in the Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "" @@ -5124,7 +5170,7 @@ msgid "Change the title of this book" 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:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "" @@ -5140,7 +5186,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "" @@ -5151,7 +5197,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5159,15 +5205,16 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5346,7 +5393,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5533,8 +5580,8 @@ msgid "Force maximum line length" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -5669,7 +5716,7 @@ msgid "Automatically number books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "" @@ -5685,228 +5732,225 @@ msgstr "" msgid "tags to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:49 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:188 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:306 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:317 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:327 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:344 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:379 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:394 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:411 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:421 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:455 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:461 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:463 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:479 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 msgid "Send specific format to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:535 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1302 +msgid "No suitable formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:688 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:726 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:727 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:736 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/device.py:770 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:779 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:772 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:781 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:879 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:875 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:894 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:897 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:901 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:898 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:902 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:943 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:946 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:947 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:939 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:948 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:952 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:961 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:982 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:990 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1168 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1287 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1295 -msgid "No suitable formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:983 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:991 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:998 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1009 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1016 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1010 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1017 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1014 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1021 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1055 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1043 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1056 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1067 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1084 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1169 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1288 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1096 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1179 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1114 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1125 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1210 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1254 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1263 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1296 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1303 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:1360 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1367 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1361 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1368 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "" @@ -5957,15 +6001,15 @@ msgstr "" msgid "&Paste from clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "" @@ -6036,7 +6080,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "" @@ -6087,7 +6131,7 @@ msgid "No location selected" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:640 msgid "Bad location" msgstr "" @@ -6128,6 +6172,7 @@ msgid "Set options for converting %s" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "" @@ -6332,59 +6377,58 @@ msgstr "" msgid "Working" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6394,7 +6438,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6409,110 +6453,110 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 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:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -6520,110 +6564,110 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -6631,49 +6675,49 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 -msgid "&Search and replace (experimental)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 @@ -6942,20 +6986,21 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "&Username:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "&Password:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "" @@ -7183,61 +7228,98 @@ msgstr "" msgid "Negate" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" +"Regular expression: the expression must match anywhere in the metadata field" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "" @@ -7857,7 +7939,7 @@ msgid "Show books in the main memory of the device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:823 msgid "Card A" msgstr "" @@ -7866,7 +7948,7 @@ msgid "Show books in storage card A" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:825 msgid "Card B" msgstr "" @@ -7883,37 +7965,41 @@ msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 msgid "&Go!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 msgid "Do Quick Search (you can also press the Enter key)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "" @@ -7970,47 +8056,47 @@ msgstr "" msgid "Double click to <b>edit</b> me<br><br>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8058,12 +8144,12 @@ msgid "LRF Viewer toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Next Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:496 msgid "Previous Page" msgstr "" @@ -8107,7 +8193,7 @@ msgid "Do not check for updates" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:648 msgid "Calibre Library" msgstr "" @@ -8234,37 +8320,37 @@ msgstr "" msgid "No matches found for this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:649 msgid "Details" msgstr "" @@ -9098,7 +9184,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:329 msgid "Failed to start content server" msgstr "" @@ -9294,7 +9380,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:250 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "" @@ -9436,7 +9522,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:295 msgid "Searches" msgstr "" @@ -9524,15 +9610,15 @@ msgid "" "reconvert them?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:169 msgid "&Restore" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Donate to support calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:175 msgid "&Eject connected device" msgstr "" @@ -9540,48 +9626,48 @@ msgstr "" msgid "Calibre Quick Start Guide" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:448 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:478 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:449 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:463 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:479 msgid "<b>Failed</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:515 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:541 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:544 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:548 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:626 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -9758,7 +9844,7 @@ msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:704 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "Remember last used window size" msgstr "" @@ -9813,36 +9899,36 @@ msgstr "" msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:471 msgid "&Lookup in dictionary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:474 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:486 msgid "Next Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 msgid "Previous Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:489 msgid "Document Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:490 msgid "Document End" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:492 msgid "Section Start" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:493 msgid "Section End" msgstr "" @@ -9930,65 +10016,65 @@ msgstr "" msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:485 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:521 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 msgid "Bookmark #%d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:556 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:557 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:563 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:567 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:600 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:604 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:609 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:691 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:695 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:702 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:701 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:710 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:712 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:716 msgid "" "%prog [options] file\n" "\n" @@ -10103,59 +10189,59 @@ msgstr "" msgid "Toggle" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:390 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:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:394 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:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:396 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:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:473 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:489 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:490 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:544 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:545 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:556 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:627 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:715 msgid "welcome wizard" msgstr "" @@ -10242,121 +10328,150 @@ msgid "" "will switch to using it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 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:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 msgid "Send email &from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "" "<p>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:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Mail &Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "&Hostname:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 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:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "&Port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 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:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "Your username on the mail server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "Your password on the mail server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "&Show" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Encryption:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 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:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&TLS" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "Use SSL encryption when connecting to the mail server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "&SSL" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "Use Gmail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&Test email" msgstr "" @@ -10419,7 +10534,7 @@ msgstr "" msgid "empty" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10428,7 +10543,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10436,7 +10551,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10445,7 +10560,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10453,7 +10568,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -10461,7 +10576,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -10470,7 +10585,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -10478,7 +10593,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -10486,7 +10601,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -10494,14 +10609,14 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:538 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:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:545 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 " @@ -10510,14 +10625,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:555 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:561 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -10526,35 +10641,35 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:569 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:576 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:583 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:590 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:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:597 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -10563,7 +10678,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:604 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -10573,13 +10688,20 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:611 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:617 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "" @@ -11121,35 +11243,35 @@ msgid "" "start with a letter" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:821 msgid "Main" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2305 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2334 msgid "Copying <b>%s</b>" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2351 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2444 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2483 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2505 msgid "Checked id" msgstr "" @@ -11339,128 +11461,129 @@ msgid "" "from Apache/nginx/etc." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:150 -msgid "Password to access your calibre library. Username is " -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:405 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:427 msgid "Loading, please wait" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:133 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:226 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:245 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 msgid "library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:249 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 msgid "home" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:310 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:516 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:538 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:311 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:517 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:539 msgid "All books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:344 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:349 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:425 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:447 msgid "Browsing by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:426 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:448 msgid "Up" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:547 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:569 msgid "in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:550 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:572 msgid "Books in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:602 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:624 msgid "Other formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:631 msgid "Read %s in the %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:614 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:636 msgid "Get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:629 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:651 msgid "Permalink" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:630 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:652 msgid "A permanent link to this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:663 msgid "This book has been deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:725 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:747 msgid "in search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:727 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:749 msgid "Matching books" msgstr "" @@ -11777,7 +11900,7 @@ msgstr "" msgid "Failed to authenticate with server: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:238 msgid "Control email delivery" msgstr "" @@ -11989,6 +12112,9 @@ msgstr "" msgid "Do not download CSS stylesheets." msgstr "" +#~ msgid " " +#~ msgstr " " + #~ msgid "Communicate with the Nokia 810 internet tablet." #~ msgstr "ติดต่อà¸à¸±à¸š Nokia 810 internet tablet" diff --git a/src/calibre/translations/zh_CN.po b/src/calibre/translations/zh_CN.po index 4149726b30..3100aa4ecf 100644 --- a/src/calibre/translations/zh_CN.po +++ b/src/calibre/translations/zh_CN.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2010-10-29 19:59+0000\n" -"PO-Revision-Date: 2010-10-29 19:52+0000\n" -"Last-Translator: Kovid Goyal <Unknown>\n" +"POT-Creation-Date: 2010-11-27 20:21+0000\n" +"PO-Revision-Date: 2010-11-30 01:34+0000\n" +"Last-Translator: kesalin <Unknown>\n" "Language-Team: Simplified Chinese <wanglihao@gmail.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-10-30 05:04+0000\n" +"X-Launchpad-Export-Date: 2010-12-01 04:56+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: CHINA\n" "X-Poedit-Language: Chinese\n" @@ -29,11 +29,11 @@ msgstr "ä¸åšä»»ä½•处ç†" #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:74 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 #: /home/kovid/work/calibre/src/calibre/devices/kobo/books.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:444 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:448 #: /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/sony_cache.py:643 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:657 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:401 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/chm/input.py:100 @@ -42,8 +42,8 @@ msgstr "ä¸åšä»»ä½•处ç†" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/periodical.py:124 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:93 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:95 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:336 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:339 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:338 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:341 #: /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 @@ -57,7 +57,7 @@ msgstr "ä¸åšä»»ä½•处ç†" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:61 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:50 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:333 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:357 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:66 @@ -76,14 +76,14 @@ msgstr "ä¸åšä»»ä½•处ç†" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:78 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:119 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:153 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:817 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:819 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:627 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:833 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:835 #: /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:911 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:916 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:982 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:913 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:918 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:984 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:143 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:150 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:64 @@ -91,7 +91,7 @@ msgstr "ä¸åšä»»ä½•处ç†" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:118 #: /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/input.py:40 #: /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 @@ -111,43 +111,43 @@ msgstr "ä¸åšä»»ä½•处ç†" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:97 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:98 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:239 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:363 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:277 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:280 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:279 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:282 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:114 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:915 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:924 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1231 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1234 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1039 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:155 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:571 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:383 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:402 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:244 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:918 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1112 #: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:189 #: /home/kovid/work/calibre/src/calibre/library/cli.py:215 -#: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:399 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:411 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1283 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1387 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2161 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2163 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2295 -#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:228 +#: /home/kovid/work/calibre/src/calibre/library/database.py:914 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:375 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:387 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1254 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1355 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2151 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2153 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2284 +#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:229 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:139 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:142 #: /home/kovid/work/calibre/src/calibre/library/server/xml.py:78 @@ -187,27 +187,27 @@ msgstr "用户界é¢è¡Œä¸º" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:386 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:22 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:251 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:283 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206 msgid "Preferences" msgstr "首选项" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:17 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:15 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 "ä¿æŒæ‰€æœ‰çš„ HTML 文件中的超链接并将所有链接的文件放入一个压缩文件内。该æ’ä»¶æ­¤åŽå°†åœ¨æ·»åŠ  HTML 文件到书库时自动è¿è¡Œã€‚" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:51 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." msgstr "输入 HTML 文件的字符编ç ã€‚如常用编ç ï¼šcp1252, latin1, iso-8859-1 å’Œ utf-8。" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:60 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:58 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 " @@ -215,7 +215,7 @@ msgid "" msgstr "" "在 pmlname_img 或 images ç›®å½•ä¸‹åˆ›å»ºä¸€ä¸ªåŒ…å« PML æ–‡ä»¶åŠæ‰€æœ‰å›¾åƒçš„ PMLZ 归档。此æ’ä»¶åœ¨æ¯æ¬¡å‘书库添加 PML 文件时è¿è¡Œã€‚" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:94 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:92 msgid "Extract cover from comic files" msgstr "从漫画文件中æå–å°é¢" @@ -262,171 +262,171 @@ msgstr "设置 %s 文件的元数æ®" msgid "Set metadata from %s files" msgstr "从 %s 文件设置元数æ®" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:708 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:717 msgid "Look and Feel" msgstr "外表和感å—" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:710 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:722 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:733 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:744 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:719 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:753 msgid "Interface" msgstr "界é¢" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:714 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:723 msgid "Adjust the look and feel of the calibre interface to suit your tastes" msgstr "调整æˆä½ å–œæ¬¢çš„外观" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:720 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:729 msgid "Behavior" msgstr "æ“作方å¼" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:726 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:735 msgid "Change the way calibre behaves" msgstr "改å˜calibreçš„æ“作方å¼" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:731 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:740 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:209 msgid "Add your own columns" msgstr "增加æ ç›®" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:737 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:746 msgid "Add/remove your own columns to the calibre book list" msgstr "å‘calibre书ç±åˆ—表中增加或删除你自定义的æ ç›®" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:742 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:751 msgid "Customize the toolbar" msgstr "自定义工具æ " -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:748 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:757 msgid "" "Customize the toolbars and context menus, changing which actions are " "available in each" msgstr "自定义工具æ å’Œä¸Šä¸‹æ–‡èœå•,设置它们所å¯ä»¥æä¾›çš„功能" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:754 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:763 msgid "Input Options" msgstr "输入选项" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:756 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:767 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:778 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 msgid "Conversion" msgstr "转æ¢" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:760 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:769 msgid "Set conversion options specific to each input format" msgstr "设置针对特定输入格å¼çš„转æ¢é€‰é¡¹" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:765 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:774 msgid "Common Options" msgstr "常规选项" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:771 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:780 msgid "Set conversion options common to all formats" msgstr "设置所有输入格å¼å…±æœ‰çš„转æ¢é€‰é¡¹" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:776 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:785 msgid "Output Options" msgstr "输出选项" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:782 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:791 msgid "Set conversion options specific to each output format" msgstr "设置针对特定输出格å¼çš„转æ¢é€‰é¡¹" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:787 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:796 msgid "Adding books" msgstr "增加图书" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:789 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:801 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:813 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:825 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:798 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:810 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:822 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 msgid "Import/Export" msgstr "导入/导出" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:793 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:802 msgid "Control how calibre reads metadata from files when adding books" msgstr "控制å‘calibreæ·»åŠ ä¹¦ç±æ—¶è¯»å–元数æ®çš„æ–¹å¼" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:799 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:808 msgid "Saving books to disk" msgstr "ä¿å­˜å›¾ä¹¦åˆ°ç£ç›˜" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:805 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:814 msgid "" "Control how calibre exports files from its database to disk when using Save " "to disk" msgstr "控制使用“ä¿å­˜åˆ°ç£ç›˜â€åŠŸèƒ½æ—¶calibre从数æ®åº“导出文件的方å¼" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:811 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:820 msgid "Sending books to devices" msgstr "å‘é€å›¾ä¹¦åˆ°è®¾å¤‡" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:817 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:826 msgid "Control how calibre transfers files to your ebook reader" msgstr "控制calibre将文件传输到电å­é˜…读器的方å¼" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:823 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:832 msgid "Metadata plugboards" msgstr "å…ƒæ•°æ®æŽ§åˆ¶æ¿" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:829 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:838 msgid "Change metadata fields before saving/sending" msgstr "ä¿å­˜æˆ–å‘é€å‰æ›´æ”¹å…ƒæ•°æ®åŸŸ" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:834 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:843 msgid "Sharing books by email" msgstr "通过Email分享图书" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:836 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:848 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:845 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:857 msgid "Sharing" msgstr "分享" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:840 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:849 msgid "" "Setup sharing of books via email. Can be used for automatic sending of " "downloaded news to your devices" msgstr "设置通过电å­é‚®ä»¶åˆ†äº«å›¾ä¹¦ã€‚å¯ç”¨äºŽåœ¨å‘阅读器下载新内容时自动å‘é€é€šçŸ¥ã€‚" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:846 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:855 msgid "Sharing over the net" msgstr "通过网络分享" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:852 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 msgid "" "Setup the calibre Content Server which will give you access to your calibre " "library from anywhere, on any device, over the internet" msgstr "设置calibre内容æœåŠ¡å™¨ä»¥ä¾¿é€šè¿‡ç½‘ç»œåœ¨ä»»ä½•è®¾å¤‡å’Œåœ°ç‚¹è®¿é—®åˆ°calibre书库。" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:859 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:868 msgid "Plugins" msgstr "æ’ä»¶" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:861 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:873 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:884 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:870 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:893 msgid "Advanced" msgstr "高级" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:865 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:874 msgid "Add/remove/customize various bits of calibre functionality" msgstr "添回/删除/自定义å„ç§calibre功能" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:871 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:880 msgid "Tweaks" msgstr "优化调整" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:877 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:886 msgid "Fine tune how calibre behaves in various contexts" msgstr "微调calibre在å„ç§æƒ…况下的行为" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:882 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:891 msgid "Miscellaneous" msgstr "æ‚项" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:888 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:897 msgid "Miscellaneous advanced configuration" msgstr "其它高级选项" @@ -463,7 +463,7 @@ msgid "" msgstr "如果您ä¸äº†è§£è¾“入文件的详情请使用本默认é…置文件。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:59 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:433 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:444 msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "该é…置文件适用所拟 PRS 产å“系列。如 500/505/600/700 等。" @@ -473,62 +473,62 @@ msgid "This profile is intended for the SONY PRS 300." msgstr "该é…置文件适用索尼 PRS 300。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:470 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:484 msgid "This profile is intended for the SONY PRS-900." msgstr "该é…置文件适用索尼 PRS-900。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:88 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:500 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:513 msgid "This profile is intended for the Microsoft Reader." msgstr "该é…置文件适用 Microsoft Reader。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:511 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 msgid "This profile is intended for the Mobipocket books." msgstr "该é…置文件适用 Mobipocket 书ç±ã€‚" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:112 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:524 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:537 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "该é…置文件适用翰林 V3 和类似设备。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:124 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:536 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:549 msgid "This profile is intended for the Hanlin V5 and its clones." msgstr "该é…置文件适用翰林 V5 和类似设备。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:134 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:544 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 msgid "This profile is intended for the Cybook G3." msgstr "该é…置文件适用 Cybook G3 设备。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:147 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:557 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:570 msgid "This profile is intended for the Cybook Opus." msgstr "该é…置文件适用 Cybook Opus 设备。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:159 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:568 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:583 msgid "This profile is intended for the Amazon Kindle." msgstr "该é…置文件适用 Amazon Kindle。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:171 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:631 msgid "This profile is intended for the Irex Illiad." msgstr "该é…置文件适用 Irex Illiad 设备。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:183 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:622 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:644 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:196 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:636 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:658 msgid "This profile is intended for the IRex Digital Reader 800." msgstr "该é…置文件适用 IRex Digital Reader 800。" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:208 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:650 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:672 msgid "This profile is intended for the B&N Nook." msgstr "该é…置文件适用 B&N Nook。" @@ -543,38 +543,42 @@ msgid "" "devices." msgstr "若您希望在电脑和设备上阅读文档,请使用本默认é…置文件" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:270 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:276 msgid "" "Intended for the iPad and similar devices with a resolution of 768x1024" msgstr "适用于iPad或å±å¹•分辨率为768x1024的类似设备。" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:424 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:435 msgid "Intended for generic tablet devices, does no resizing of images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:448 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:462 msgid "This profile is intended for the Kobo Reader." msgstr "该é…置文件适用 Kobo Reader。" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:461 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:475 msgid "This profile is intended for the SONY PRS-300." msgstr "该é…置文件适用索尼 PRS-300。" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:479 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:493 msgid "This profile is intended for the 5-inch JetBook." msgstr "该é…置文件适用 5 英寸 JetBook 设备。" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:488 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:502 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:589 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:609 msgid "This profile is intended for the Amazon Kindle DX." msgstr "该é…置文件适用 Amazon Kindle DX。" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:664 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:684 +msgid "This profile is intended for the B&N Nook Color." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:695 msgid "This profile is intended for the Sanda Bambook." msgstr "该é…置文件适用于盛大锦书(Bambook)。" @@ -648,13 +652,13 @@ msgstr "ç¦ç”¨è¯¥åç§°æ’ä»¶" msgid "Communicate with Android phones." msgstr "与 Android 手机通信。" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:56 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/android/driver.py:95 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:98 msgid "Communicate with S60 phones." msgstr "与 S60 手机通信。" @@ -685,14 +689,14 @@ msgstr "更新设备元数æ®åˆ—表……" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:378 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:947 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:987 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2949 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2989 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2956 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2996 msgid "%d of %d" msgstr "第%d个(å…±%d个)" #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:385 #: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:992 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2995 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3002 msgid "finished" msgstr "完æˆ" @@ -722,29 +726,29 @@ msgstr "" "无法转æ¢éƒ¨åˆ†å°é¢å›¾åƒã€‚\n" "点击“详细信æ¯â€æŸ¥çœ‹åˆ—表。" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2546 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2553 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:444 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:467 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:882 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:888 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:918 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:257 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:212 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:225 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2021 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:187 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:200 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2015 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:149 msgid "News" msgstr "æ–°é—»" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2547 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2554 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:556 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1984 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2002 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:560 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1978 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1996 msgid "Catalog" msgstr "类目" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2853 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2860 msgid "Communicate with iTunes." msgstr "与iTunes通信。" @@ -766,6 +770,10 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "与 通信。" +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:64 +msgid "Communicate with the Cybook Orizon eBook reader." +msgstr "å’Œ CyBook Orizon eBook 阅读器进行交æµ" + #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "与 EB600 eBook reader 通信。" @@ -778,6 +786,10 @@ msgstr "与Astak Mentor EB600通信" msgid "Communicate with the PocketBook 301 reader." msgstr "与PocketBook 301阅读器通信。" +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:233 +msgid "Communicate with the PocketBook 602 reader." +msgstr "å’Œ PocketBook 602 阅读器进行交æµ" + #: /home/kovid/work/calibre/src/calibre/devices/edge/driver.py:17 msgid "Entourage Edge" msgstr "Entourage Edge" @@ -836,8 +848,8 @@ msgstr "与 SpringDesign Alex 通信。" #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:102 #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:113 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:264 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:256 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:274 msgid "Removing books from device..." @@ -924,26 +936,26 @@ msgstr "Koboç›®å‰ä»…支æŒä¸€ä¸ªé›†åˆï¼š\"Im_Reading\" 列表。 请创建一 msgid "Getting list of books on device..." msgstr "从设备中获å–书ç±åˆ—表..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:300 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:307 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:304 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:311 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:281 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:286 msgid "Removing books from device metadata listing..." msgstr "将书ç±ä»Žè®¾å¤‡çš„元数æ®åˆ—表移除中..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:312 -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:347 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:316 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:351 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:219 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:250 msgid "Adding books to device metadata listing..." msgstr "å°†ä¹¦ç±æ·»åŠ åˆ°è®¾å¤‡çš„å…ƒæ•°æ®åˆ—表中..." -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:424 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:258 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:428 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:262 msgid "Not Implemented" msgstr "尚未实现" -#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:429 msgid "" "\".kobo\" files do not exist on the device as books instead, they are rows " "in the sqlite database. Currently they cannot be exported or viewed." @@ -962,29 +974,37 @@ msgid "Communicate with the Sweex MM300" msgstr "与Sweex MM300通信" #: /home/kovid/work/calibre/src/calibre/devices/misc.py:79 +msgid "Communicate with the Digma Q600" +msgstr "å’Œ Digma Q600 阅读器进行交æµ" + +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:88 msgid "Communicate with the Kogan" msgstr "与 Kogan 通信" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:87 -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:114 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:96 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:123 msgid "Communicate with the Pandigital Novel" msgstr "与Pandigital Novel通信" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:130 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:142 msgid "Communicate with the VelocityMicro" msgstr "与VelocityMicro进行通讯" -#: /home/kovid/work/calibre/src/calibre/devices/misc.py:148 +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:160 msgid "Communicate with the GM2000" msgstr "与 GM2000 通信" +#: /home/kovid/work/calibre/src/calibre/devices/misc.py:180 +msgid "Communicate with the Acer Lumiread" +msgstr "å’Œ Acer Lumiread 阅读器进行交æµ" + #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." msgstr "与诺基亚 770 网络平æ¿é€šä¿¡ã€‚" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810/900 internet tablet." -msgstr "" +msgstr "å’Œ Nokia 810/900 å¹³æ¿ç”µè„‘进行交æµ" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:74 msgid "Communicate with the Nokia E52" @@ -998,6 +1018,14 @@ msgstr "Nook" msgid "Communicate with the Nook eBook reader." msgstr "与 Nook 通信。" +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:85 +msgid "Nook Color" +msgstr "Nook Color(一款B&N 旗下电å­é˜…读器)" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:86 +msgid "Communicate with the Nook Color eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." msgstr "与 Nuut2 电å­ä¹¦é˜…读器通信。" @@ -1883,11 +1911,27 @@ msgstr "" "通常该输入æ’件将釿•´æºæ–‡ä»¶æ–‡ä»¶å¤¹ç»„织结构到标准文件夹组织结构. å¦‚æžœæ‚¨äº†è§£è¯¥å¦‚ä½•æ‰‹åŠ¨å®Œæˆæ­¤æ“作, 您å¯ä»¥æ‰“å¼€æœ¬é€‰é¡¹å…³é—­è‡ªåŠ¨æ–‡ä»¶ç»“æž„é‡æ•´, " "错误的æ“ä½œå°†ä¼šå¯¼è‡´æ•´ä¸ªè½¬æ¢æ“作队列失败." -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:273 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:33 +msgid "CSS file used for the output instead of the default file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:36 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 "PDF 文件部分转æ¢ä¸º HTMLï¼Œåœ¨æ­¤è®¾å®šå¹³å‡æ¢è¡Œè¡Œå®½ã€‚默认为 %default  å³å·²ç¦ç”¨ã€‚" +"Template used for generation of the html index file instead of the default " +"file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:39 +msgid "" +"Template used for the generation of the html contents of the book instead of " +"the default file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/output.py:42 +msgid "" +"Extract the contents of the generated ZIP file to the specified directory. " +"WARNING: The contents of the directory will be deleted." +msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." @@ -2024,7 +2068,7 @@ 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:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 msgid "Verbose processing" msgstr "å¤„ç†æ—¶æ‰“å°ä¿¡æ¯" @@ -2189,13 +2233,13 @@ msgstr "是" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:605 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:102 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:75 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:65 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:380 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:930 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:923 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:303 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:570 msgid "Title" @@ -2204,8 +2248,8 @@ msgstr "标题" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:606 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:385 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:931 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:924 msgid "Author(s)" msgstr "作者" @@ -2221,37 +2265,36 @@ msgid "Producer" msgstr "出å“人" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:609 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:212 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:206 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:104 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:72 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:332 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1131 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:178 msgid "Comments" msgstr "注释" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:611 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1134 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:313 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:618 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:655 msgid "Tags" msgstr "标签" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:613 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:50 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:337 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1143 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:330 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:108 msgid "Series" msgstr "系列" @@ -2261,12 +2304,12 @@ msgid "Language" msgstr "语言" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:616 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1119 msgid "Timestamp" msgstr "时间戳" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:618 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:151 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:157 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:70 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:258 @@ -2381,6 +2424,7 @@ msgid "No cover found" msgstr "没有找到å°é¢" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/covers.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:44 msgid "Cover download" msgstr "下载图书å°é¢" @@ -2426,49 +2470,53 @@ msgstr "Douban.com API超时。请ç¨åŽé‡è¯•。" msgid "Downloads metadata from Douban.com" msgstr "从豆瓣网(www.douban.com)下载元数æ®" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:57 msgid "Metadata download" msgstr "元数æ®ä¸‹è½½" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "ratings" msgstr "评分" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:141 msgid "tags" msgstr "标签" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:142 msgid "description/reviews" msgstr "æè¿°/评论" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:130 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:143 msgid "Download %s from %s" msgstr "下载 %s æ¥è‡ª %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:156 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:150 +msgid "Convert comments downloaded from %s to plain text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:178 msgid "Downloads metadata from Google Books" msgstr "从谷歌图书下载元数æ®" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:195 msgid "Downloads metadata from isbndb.com" msgstr "从 isbndb.com 下载元数æ®" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:223 msgid "" "To use isbndb.com you must sign up for a %sfree account%s and enter your " "access key below." msgstr "您需在 isbndb.com 注册%så…è´¹å¸æˆ·%s并在之下填写您的访问密钥æ‰èƒ½è®¿é—®ã€‚" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:211 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:233 msgid "Downloads social metadata from amazon.com" msgstr "从 amazon.com 下载社会性元数æ®" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:230 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:254 msgid "Downloads series/tags/rating information from librarything.com" msgstr "从librarything.comä¸‹è½½ç³»åˆ—ã€æ ‡ç­¾ã€æ˜Ÿçº§ä¿¡æ¯ã€‚" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 msgid "" "\n" "%prog [options] key\n" @@ -2491,23 +2539,24 @@ msgstr "" "密钥是您在 isbndb.com 注册å…费账户时创建的账户密钥。\n" "\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:118 msgid "The ISBN ID of the book you want metadata for." msgstr "待查找书ç±çš„ ISBN ID。" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:120 msgid "The author whose book to search for." msgstr "待查找书ç±çš„作者。" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:122 msgid "The title of the book to search for." msgstr "待查找书ç±çš„æ ‡é¢˜ã€‚" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:126 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:124 msgid "The publisher of the book to search for." msgstr "待查找书ç±çš„出版商。" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:336 msgid " not found." msgstr " 无法找到。" @@ -2524,8 +2573,24 @@ msgstr "" "\n" "从LibraryThing.comä¸ºä¹¦ç±æ ‡è¯†ç¬¦ISBN采集å°é¢å›¾åƒ/社会元数æ®\n" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:25 +msgid "Downloads metadata from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:41 +msgid "Downloads covers from french Nicebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:332 +msgid "Nicebooks timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/nicebooks.py:337 +msgid "An errror occured with Nicebooks cover fetcher" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1308 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1399 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 msgid "Cover" msgstr "å°é¢" @@ -2560,74 +2625,74 @@ msgstr "标记标签的书ç±å°†è¢«å½’档为个人文档" msgid "All articles" msgstr "所有文章" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:262 msgid "This is an Amazon Topaz book. It cannot be processed." msgstr "这是一部 Amazon Topaz 书ç±ã€‚无法处ç†ã€‚" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1400 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 msgid "Title Page" msgstr "标题页" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1401 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 #: /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:199 msgid "Table of Contents" msgstr "目录" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1402 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 msgid "Index" msgstr "索引" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1403 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 msgid "Glossary" msgstr "è¯æ±‡è¡¨" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1404 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 msgid "Acknowledgements" msgstr "致谢" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1405 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 msgid "Bibliography" msgstr "å‚考文献" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1406 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 msgid "Colophon" msgstr "末页" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1407 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 msgid "Copyright" msgstr "版æƒ" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1408 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 msgid "Dedication" msgstr "献辞" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1409 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 msgid "Epigraph" msgstr "题辞" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1410 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 msgid "Foreword" msgstr "å‰è¨€" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1411 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 msgid "List of Illustrations" msgstr "æ’图列表" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1412 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 msgid "List of Tables" msgstr "表格列表" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1413 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 msgid "Notes" msgstr "注释" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1414 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1416 msgid "Preface" msgstr "åºè¨€" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1415 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1417 msgid "Main Text" msgstr "正文" @@ -2635,7 +2700,7 @@ msgstr "正文" msgid "%s format books are not supported" msgstr "䏿”¯æŒ %s æ ¼å¼ç”µå­ä¹¦" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:103 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/cover.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:156 msgid "Book %s of %s" msgstr "书ç±%s/%s" @@ -2644,9 +2709,9 @@ msgstr "书ç±%s/%s" msgid "HTML TOC generation options." msgstr "HTML 目录生æˆé€‰é¡¹ã€‚" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:153 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:159 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:71 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:616 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:653 msgid "Rating" msgstr "评分" @@ -2676,7 +2741,7 @@ msgstr "脚注" msgid "Sidebar" msgstr "ä¾§è¾¹æ " -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:24 msgid "" @@ -2684,7 +2749,7 @@ msgid "" "it will assume that every line represents a paragraph instead." msgstr "一般情况下,Calibre 会将空行识别为段è½åˆ†éš”。而此选项将å‡å®šæ¯ä¸ªç©ºè¡Œéƒ½ä»£è¡¨ä¸€ä¸ªæ®µè½ã€‚" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:28 msgid "" @@ -2976,7 +3041,7 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "指定输出文档的字符编ç ã€‚默认为 cp1252。" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:256 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it.\n" @@ -3187,7 +3252,7 @@ msgid "Disable UI animations" msgstr "ç¦ç”¨ç•Œé¢åŠ¨ç”»" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:509 msgid "Copied" msgstr "å·²å¤åˆ¶" @@ -3199,7 +3264,7 @@ msgstr "å¤åˆ¶" msgid "Copy to Clipboard" msgstr "å¤åˆ¶åˆ°å‰ªè´´æ¿" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:466 msgid "Choose Files" msgstr "选择文件" @@ -3247,101 +3312,101 @@ msgstr "多少空白书ç±ï¼Ÿ" msgid "How many empty books should be added?" msgstr "应添加多少空白书ç±ï¼Ÿ" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:206 msgid "Uploading books to device." msgstr "正在上传书ç±åˆ°è®¾å¤‡ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:170 msgid "Books" msgstr "书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 msgid "EPUB Books" msgstr "EPUB 书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 msgid "LRF Books" msgstr "LRF 书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 msgid "HTML Books" msgstr "HTML 书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 msgid "LIT Books" msgstr "LIT 书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 msgid "MOBI Books" msgstr "MOBI 书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 msgid "Topaz books" msgstr "Topaz 书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 msgid "Text books" msgstr "文本书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:172 msgid "PDF Books" msgstr "PDF 书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:173 msgid "SNB Books" msgstr "SNB 书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:174 msgid "Comics" msgstr "漫画" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 msgid "Archives" msgstr "å½’æ¡£" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:179 msgid "Supported books" msgstr "支æŒçš„书j" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:215 msgid "Merged some books" msgstr "åˆå¹¶ä¸€äº›ä¹¦ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:216 msgid "" "Some duplicates were found and merged into the following existing books:" msgstr "找到一些é‡å¤å†…容,并入如下已有书ç±ï¼š" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:225 msgid "Failed to read metadata" msgstr "无法读å–元数æ®" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:226 msgid "Failed to read metadata from the following" msgstr "无法从下列项目读å–元数æ®" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:241 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "Add to library" msgstr "添加到书库" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:250 #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/actions/tweak_epub.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 msgid "No book selected" msgstr "未选择书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:263 msgid "" "The following books are virtual and cannot be added to the calibre library:" msgstr "ä¸‹åˆ—ä¹¦ç±æ˜¯è™šæ‹Ÿçš„,ä¸èƒ½æ·»åŠ åˆ°calibre书库中。" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:269 msgid "No book files found" msgstr "æœªæ‰¾åˆ°ä¹¦ç±æ–‡ä»¶" @@ -3354,7 +3419,7 @@ msgid "Add books to your calibre library from the connected device" msgstr "从连接的设备添加书ç±åˆ°ä½ çš„calibre书库" #: /home/kovid/work/calibre/src/calibre/gui2/actions/annotate.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:542 msgid "Fetch annotations (experimental)" msgstr "æŠ“å–æ³¨é‡Šï¼ˆå®žéªŒåŠŸèƒ½ï¼‰" @@ -3451,7 +3516,7 @@ msgid "Checking database integrity" msgstr "检查数æ®åº“完整性" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:128 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:645 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:593 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:41 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:54 msgid "Error" @@ -3467,15 +3532,15 @@ msgstr "找到部分ä¸ä¸€è‡´" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:135 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 "下列书ç±ä½¿ç”¨æ ¼å¼æ›¾ç»åœ¨æ•°æ®åº“中,现已ä¸å¯ç”¨ã€‚æ ¼å¼é¡¹è¢«ç§»é™¤ã€‚您需手动检查。这å¯èƒ½æ˜¯ç”±äºŽæ‚¨ç›´æŽ¥åœ¨ library 文件夹æ“作文件引起的。" +"The following books had formats or covers listed in the database that are " +"not actually available. The entries for the formats/covers 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/actions/choose_library.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:139 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:162 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d books" msgstr "%d本书" @@ -3613,7 +3678,7 @@ msgstr "在%s中无法找到现有的caliber书库。它将被从已知书库列 #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:391 #: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:734 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:742 msgid "Not allowed" msgstr "ä¸å…许" @@ -3645,6 +3710,10 @@ msgstr "无法转æ¢" msgid "Starting conversion of %d book(s)" msgstr "å¼€å§‹è½¬æ¢ %d 本书" +#: /home/kovid/work/calibre/src/calibre/gui2/actions/convert.py:170 +msgid "Empty output file, probably the conversion process crashed" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:83 msgid "Copy to library" msgstr "å¤åˆ¶åˆ°ä¹¦åº“" @@ -3679,9 +3748,9 @@ msgid "Could not copy books: " msgstr "无法å¤åˆ¶ä¹¦ç±ï¼š " #: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:708 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:679 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:687 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 msgid "Failed" msgstr "失败" @@ -3742,14 +3811,14 @@ msgid "Main memory" msgstr "主内存" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:473 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:467 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Storage Card A" msgstr "存储å¡A" #: /home/kovid/work/calibre/src/calibre/gui2/actions/delete.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:478 msgid "Storage Card B" msgstr "存储å¡B" @@ -3890,7 +3959,7 @@ msgid "covers" msgstr "å°é¢" #: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "metadata" msgstr "元数æ®" @@ -3912,31 +3981,26 @@ msgstr "无法åˆå¹¶ä¹¦ç±" msgid "At least two books must be selected for merging" msgstr "åˆå¹¶éœ€è¦é€‰å®šè‡³å°‘两本书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:197 msgid "" "Book formats and metadata from the selected books will be added to the " -"<b>first selected book.</b> ISBN will <i>not</i> be merged.<br><br> The " +"<b>first selected book</b> (%s). ISBN will <i>not</i> be merged.<br><br> The " "second and subsequently selected books will not be deleted or " "changed.<br><br>Please confirm you want to proceed." msgstr "" -"选定书ç±çš„æ ¼å¼å’Œå…ƒæ•°æ®å°†è¢«æ·»åŠ åˆ°<b>第一本选定书ç±ã€‚</b>ISBN<i>ä¸ä¼š</i>被åˆå¹¶ã€‚<br><br> \r\n" -"第二本和éšåŽçš„选定书ç±å°†ä¸ä¼šè¢«åˆ é™¤æˆ–更改。 <br><br>如果è¦ç»§ç»­çš„è¯è¯·å…ˆç¡®è®¤ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:209 msgid "" "Book formats and metadata from the selected books will be merged into the " -"<b>first selected book</b>. ISBN will <i>not</i> be merged.<br><br>After " -"merger the second and subsequently selected books will be <b>deleted</b>. " -"<br><br>All book formats of the first selected book will be kept and any " -"duplicate formats in the second and subsequently selected books will be " -"permanently <b>deleted</b> from your computer.<br><br> Are you <b>sure</b> " -"you want to proceed?" +"<b>first selected book</b> (%s). ISBN will <i>not</i> be " +"merged.<br><br>After merger the second and subsequently selected books will " +"be <b>deleted</b>. <br><br>All book formats of the first selected book will " +"be kept and any duplicate formats in the second and subsequently selected " +"books will be permanently <b>deleted</b> from your computer.<br><br> Are " +"you <b>sure</b> you want to proceed?" msgstr "" -"选定书ç±çš„æ ¼å¼å’Œå…ƒæ•°æ®å°†ä¼šè¢«åˆå¹¶è¿›<b>第一本选定书ç±</b>中。ISBN<i>ä¸ä¼š</i> " -"被åˆå¹¶ã€‚<br><br>åˆå¹¶åŽï¼Œé€‰å®šçš„第二本书ç±åŠéšåŽçš„书ç±å°†ä¼šè¢«<b>删除</b>。<br><br>选定的第一本书ç±çš„æ‰€æœ‰ä¹¦ç±æ ¼å¼éƒ½ä¼šè¢«ä¿ç•™ä¸‹æ¥ï¼Œè€Œé€‰å®š" -"书ç±çš„第二本和éšåŽçš„书ç±çš„é‡å¤æ ¼å¼éƒ½å°†ä»Žä½ ç”µè„‘上永久<b>删除</b>。<br><br>ä½ <b>确定</b>è¦ç»§ç»­å—?" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:222 msgid "" "You are about to merge more than 5 books. Are you <b>sure</b> you want to " "proceed?" @@ -3983,6 +4047,7 @@ msgid "Ctrl+P" msgstr "Ctrl+P" #: /home/kovid/work/calibre/src/calibre/gui2/actions/preferences.py:23 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:200 msgid "Run welcome wizard" msgstr "è¿è¡Œæ¬¢è¿Žå‘导" @@ -4068,7 +4133,7 @@ msgid "Click the show details button to see which ones." msgstr "点击显示详情按钮查看具体哪些。" #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:623 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:660 msgid "Show book details" msgstr "显示书ç±è¯¦æƒ…" @@ -4155,21 +4220,21 @@ msgstr "查看" msgid "View specific format" msgstr "查看特定格å¼" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:158 msgid "Cannot view" msgstr "无法查看" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:101 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:100 #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 msgid "Choose the format to view" msgstr "选择格å¼è¿›è¡ŒæŸ¥çœ‹" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:108 msgid "Multiple Books Selected" msgstr "选定多本书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:109 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 " @@ -4177,11 +4242,11 @@ msgid "" "continue?" msgstr "您正在试图打开 %d 本书ç±ã€‚åŒæ—¶æ‰“开太多书ç±å¯èƒ½ä¼šå˜æ…¢ï¼Œå¹¶å¯¹ç”µè„‘å“应速度有消æžå½±å“。一旦开始,需等待进程完æˆã€‚是å¦ç»§ç»­ï¼Ÿ" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:118 msgid "Cannot open folder" msgstr "无法打开文件夹" -#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/actions/view.py:159 msgid "%s has no available formats." msgstr "%s æ— å¯ç”¨æ ¼å¼ã€‚" @@ -4206,7 +4271,7 @@ msgid "The specified directory could not be processed." msgstr "æ— æ³•å¤„ç†æŒ‡å®šç›®å½•。" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:229 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 msgid "No books" msgstr "没有书ç±" @@ -4391,49 +4456,49 @@ msgid "" "&Multiple books per folder, assumes every ebook file is a different book" msgstr "æ¯ä¸ªæ–‡ä»¶å¤¹ä¸­æ”¾å¤šæœ¬ä¹¦ç±ï¼Œå‡å®šä¸ªç”µå­ä¹¦æ–‡ä»¶æ˜¯ä¸åŒçš„书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:23 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:47 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:137 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:327 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1124 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1117 msgid "Path" msgstr "路径" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:127 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:326 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/emailp.py:24 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:117 msgid "Formats" msgstr "æ ¼å¼" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:25 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:934 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1127 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:927 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1120 msgid "Collections" msgstr "集åˆ" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:60 msgid "Click to open" msgstr "点击打开" -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:319 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:325 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1133 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1137 +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:324 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1130 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:83 @@ -4441,9 +4506,9 @@ msgstr "点击打开" msgid "None" msgstr "æ— " -#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:312 -msgid "Click to open Book Details window" -msgstr "点击打开书ç±è¯¦æƒ…窗å£" +#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:404 +msgid "Double-click to open Book Details window" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex.py:16 msgid "BibTeX Options" @@ -4486,7 +4551,7 @@ msgstr "输出" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_bibtex_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:82 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 @@ -4529,7 +4594,7 @@ msgstr "输出" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar_ui.py:98 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "Form" msgstr "æ¥è‡ª" @@ -4615,23 +4680,23 @@ msgstr "CSV/XML 选项" msgid "E-book options" msgstr "电å­ä¹¦é€‰é¡¹" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:83 msgid "'Don't include this book' tag:" msgstr "\"ä¸å«æ­¤ä¹¦\"标签:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 msgid "'Mark this book as read' tag:" msgstr "\"标记已读\"标签:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 msgid "Additional note tag prefix:" msgstr "附加笔记标签å‰ç¼€ï¼š" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 msgid "Regex pattern describing tags to exclude as genres:" msgstr "æ­£åˆ™è¡¨è¾¾å¼æè¿°æ ‡ç­¾ï¼Œä»¥æŽ’é™¤ä½“è£ï¼š" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 msgid "" "Regex tips:\n" "- The default regex - \\[.+\\] - excludes genre tags of the form [tag], " @@ -4640,26 +4705,43 @@ msgid "" "Genre Section" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:90 msgid "Include 'Titles' Section" msgstr "包å«\"标题\"部分" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:91 msgid "Include 'Recently Added' Section" msgstr "包å«\"最近添加\"部分" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:92 msgid "Sort numbers as text" msgstr "å°†æ•°å­—åšæ–‡æœ¬å¤„ç†" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:93 msgid "Include 'Series' Section" msgstr "包å«'系列'节" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:94 +msgid "Wishlist tag:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:33 msgid "Tab template for catalog.ui" msgstr "catalog.ui çš„ Tab 模æ¿" +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:25 +msgid "Bold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:26 +msgid "Italic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/comments_editor.py:28 +msgid "Underline" +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 " @@ -4667,11 +4749,11 @@ msgid "" "specified in the Preferences" msgstr "对于ä¸èƒ½åœ¨æ­¤å¯¹è¯æ¡†ä¸­æŒ‡å®šçš„选项,使用å‰ä¸€ä¸ªè½¬æ¢ï¼ˆè‹¥å­˜åœ¨ï¼‰ä¸­å­˜å‚¨çš„值,而éžé¦–选项中的默认设置。" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:70 msgid "Bulk Convert" msgstr "批é‡è½¬æ¢" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:83 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." msgstr "设置输出格å¼é€‰é¡¹" @@ -5118,7 +5200,7 @@ msgid "Change the title of this book" 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:333 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "&Author(s): " msgstr "作者(&A): " @@ -5134,7 +5216,7 @@ msgid "" msgstr "修改书ç±çš„作者。多作者å¯ä»¥ç”¨é€—å·åˆ†éš”" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "&Publisher: " msgstr "出版商(&P): " @@ -5145,7 +5227,7 @@ msgid "Ta&gs: " msgstr "标签(&g): " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:184 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -5153,15 +5235,16 @@ msgid "" msgstr "电å­ä¹¦ç±çš„分类标签. 此标签对于数字æœç´¢éžå¸¸æœ‰ç”¨. <br><br>该标签å¯ä»¥æ˜¯è¯è¯­æˆ–短语, 使用逗å·åˆ†éš”." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:185 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:214 msgid "&Series:" msgstr "系列(&S):" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 #: /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 "List of known series. You can add new series." @@ -5340,7 +5423,7 @@ msgid "Options specific to the input format." msgstr "仅针对特定输入格å¼çš„选项。" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:117 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:53 msgid "Dialog" @@ -5533,8 +5616,8 @@ msgid "Force maximum line length" msgstr "çº¦æŸæœ€å¤§è¡Œé•¿" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:78 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:46 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:54 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 @@ -5673,7 +5756,7 @@ msgid "Automatically number books" msgstr "为书ç±è‡ªåŠ¨ç¼–å·" #: /home/kovid/work/calibre/src/calibre/gui2/custom_column_widgets.py:499 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 msgid "Force numbers to start with " msgstr "从 å¼ºåˆ¶å¼€å§‹ç¼–å· " @@ -5689,228 +5772,171 @@ msgstr "è¦æ·»åŠ çš„æ ‡ç­¾" msgid "tags to remove" msgstr "è¦ç§»é™¤çš„æ ‡ç­¾" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:44 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:136 msgid "No details available." msgstr "无详情å¯ç”¨ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:183 msgid "Device no longer connected." msgstr "设备未连接。" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:301 msgid "Get device information" msgstr "获å–设备信æ¯" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:318 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 msgid "Get list of books on device" msgstr "获å–设备书ç±åˆ—表" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:328 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:322 msgid "Get annotations from device" msgstr "ä»Žè®¾å¤‡æŠ“å–æ³¨é‡Š" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 msgid "Send metadata to device" msgstr "传输元数æ®åˆ°è®¾å¤‡ä¸Š" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 msgid "Send collections to device" msgstr "å‘逿”¶è—å“到设备" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:374 msgid "Upload %d books to device" msgstr "上传 %d 本书到设备" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:389 msgid "Delete books from device" msgstr "从设备上删除书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:406 msgid "Download books from device" msgstr "从设备上下载书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:416 msgid "View book on device" msgstr "查看设备上的书ç±" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:450 msgid "Set default send to device action" msgstr "设置传é€åˆ°è®¾å¤‡çš„默认动作" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:456 msgid "Send to main memory" msgstr "ä¼ é€åˆ°ä¸»å†…å­˜" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:464 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Send to storage card A" msgstr "å‘é€åˆ°å­˜å‚¨å¡ A" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:460 msgid "Send to storage card B" msgstr "å‘é€åˆ°å­˜å‚¨å¡ B" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:474 msgid "Main Memory" msgstr "主内存" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 -msgid "Send and delete from library" -msgstr "å‘é€å¹¶ä»Žä¹¦åº“中删除" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 msgid "Send specific format to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 +msgid "Send and delete from library" +msgstr "å‘é€å¹¶ä»Žä¹¦åº“中删除" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 msgid "Eject device" msgstr "安全移除设备" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:594 msgid "Error communicating with device" msgstr "与设备通信å‘生错误" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:667 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:296 +msgid "No suitable formats" +msgstr "æ— åˆé€‚æ ¼å¼" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:623 msgid "Select folder to open as device" msgstr "选择一个将åšä¸ºè®¾å¤‡æ‰“开的文件夹" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:670 msgid "Error talking to device" msgstr "设备通讯错误。" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:715 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:671 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/device.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:714 msgid "Device: " msgstr "设备: " -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:760 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:716 msgid " detected." msgstr " 被检测到。" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:858 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 msgid "selected to send" msgstr "选择传é€" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:863 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 msgid "Choose format to send to device" msgstr "选择传é€åˆ°è®¾å¤‡çš„æ ¼å¼" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "No device" msgstr "无设备" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:829 msgid "Cannot send: No device is connected" msgstr "无法传é€ï¼šæ— è¿žæŽ¥è®¾å¤‡" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:832 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 msgid "No card" msgstr "æ— å¡" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:877 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 msgid "Cannot send: Device has no storage card" msgstr "无法传é€ï¼šè®¾å¤‡ä¸­æ— å‚¨å­˜å¡" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:922 -msgid "E-book:" -msgstr "电å­ä¹¦ï¼š" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:925 -msgid "Attached, you will find the e-book" -msgstr "已添加, 您å¯ä»¥ä»Žä¸­èŽ·å–电å­ä¹¦ç±" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:926 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 -msgid "by" -msgstr "ç”±" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:927 -msgid "in the %s format." -msgstr "使用 %s æ ¼å¼." - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:940 -msgid "Sending email to" -msgstr "正在å‘é€é‚®ä»¶è‡³" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:970 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:978 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1071 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1156 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1275 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1283 -msgid "No suitable formats" -msgstr "æ— åˆé€‚æ ¼å¼" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:971 -msgid "Auto convert the following books before sending via email?" -msgstr "在å‘é€ç”µå­é‚®ä»¶ä¹‹å‰è‡ªåŠ¨è½¬æ¢ä¸‹åˆ—书ç±ï¼Ÿ" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:979 -msgid "" -"Could not email the following books as no suitable formats were found:" -msgstr "由于无法找到åˆé€‚çš„æ–‡ä»¶æ ¼å¼æ— æ³•通过电å­é‚®ä»¶å‘é€ä¸‹åˆ—书ç±:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 -msgid "Failed to email books" -msgstr "å‘é€ç”µå­ä¹¦ç±å¤±è´¥" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:998 -msgid "Failed to email the following books:" -msgstr "无法通过电å­é‚®ä»¶å‘é€ä»¥ä¸‹ä¹¦ç±:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1002 -msgid "Sent by email:" -msgstr "已通过邮件å‘é€:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1030 -msgid "News:" -msgstr "æ–°é—»:" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1031 -msgid "Attached is the" -msgstr "附加" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1042 -msgid "Sent news to" -msgstr "将新闻å‘é€åˆ°" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1072 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1157 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1276 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:883 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:966 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1083 msgid "Auto convert the following books before uploading to the device?" msgstr "上传到设备之å‰è‡ªåŠ¨è½¬æ¢å¦‚下书ç±ï¼Ÿ" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1102 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 msgid "Sending catalogs to device." msgstr "正在å‘é€ç±»ç›®åˆ°è®¾å¤‡ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1189 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:997 msgid "Sending news to device." msgstr "将新闻传é€åˆ°è®¾å¤‡." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1050 msgid "Sending books to device." msgstr "ä¼ é€ä¹¦ç±åˆ°è®¾å¤‡ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1284 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1090 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:1348 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1154 msgid "No space on device" msgstr "设备存储空间ä¸è¶³" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1349 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1155 msgid "" "<p>Cannot upload books to device there is no more free space available " msgstr "<p>由于设备存储空间ä¸è¶³æ— æ³•将书ç±ä¼ é€åˆ°è®¾å¤‡ä¸Š " @@ -5953,25 +5979,26 @@ msgstr "按ISBNå·æ·»åР书ç±" msgid "" "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " "automatically create entries for books based on the ISBN and download " -"metadata and covers for them.<p>Any invalid ISBNs in the list will be " -"ignored." +"metadata and covers for them.</p>\n" +"<p>Any invalid ISBNs in the list will be ignored.</p>\n" +"<p>You can also specify a file that will be added with each ISBN. To do this " +"enter the full path to the file after a <code>>></code>. For example:</p>\n" +"<p><code>9788842915232 >> %s</code></p>" msgstr "" -"<p>在左边的文本框中输入一组ISBNå·ï¼Œæ¯è¡Œä¸€ä¸ªã€‚calibre将为他们自动创建相应的书ç±é¡¹ï¼Œå¹¶ä»Žç½‘络下载书ç±å…ƒæ•°æ®å’Œå°é¢ã€‚<p>错误的ISBNå·ä¼šè¢«å¿½" -"略。" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_from_isbn_ui.py:53 msgid "&Paste from clipboard" msgstr "从剪贴æ¿ç²˜è´´(&P)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:80 msgid "Fit &cover within view" msgstr "å°é¢ä»¥é€‚åˆå±å¹•大尿˜¾ç¤º(&C)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:81 msgid "&Previous" msgstr "上一个(&P)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:75 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:82 msgid "&Next" msgstr "下一个(&N)" @@ -6021,21 +6048,32 @@ msgstr "å¤åˆ°åˆ°å‰ªè´´æ¿(&T)" msgid "Names to ignore:" msgstr "è¦å¿½ç•¥çš„å称:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:59 +msgid "" +"Enter comma-separated standard file name wildcards, such as synctoy*.dat" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:62 msgid "Extensions to ignore" msgstr "è¦å¿½ç•¥çš„æ‰©å±•å" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:67 +msgid "" +"Enter comma-separated extensions without a leading dot. Used only in book " +"folders" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 msgid "Path from library" msgstr "书库的路径" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:119 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Name" msgstr "åç§°" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:136 msgid "" "The marked files and folders will be <b>permanently deleted</b>. Are you " "sure?" @@ -6082,7 +6120,7 @@ msgid "No location selected" msgstr "没有选择ä½ç½®" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_library.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:654 msgid "Bad location" msgstr "错误的ä½ç½®" @@ -6123,6 +6161,7 @@ msgid "Set options for converting %s" msgstr "è®¾ç½®è½¬æ¢ %s 的选项" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:211 msgid "&Title:" msgstr "标题(&T);" @@ -6158,7 +6197,7 @@ msgstr "ä½ç½®" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:932 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:925 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:31 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:294 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 @@ -6166,7 +6205,7 @@ msgid "Date" msgstr "日期" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1123 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1116 msgid "Format" msgstr "æ ¼å¼" @@ -6179,12 +6218,12 @@ msgid "Author sort" msgstr "按作者排åº" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:597 msgid "Invalid author name" msgstr "无效的作者å" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:591 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:598 msgid "Author names cannot contain & characters." msgstr "作者å中ä¸èƒ½åŒ…å«&符å·" @@ -6329,59 +6368,58 @@ msgstr "查找/替æ¢" msgid "Working" msgstr "执行中" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:386 msgid "Lower Case" msgstr "å°å†™" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:185 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:187 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:385 msgid "Upper Case" msgstr "大写" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:186 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:388 msgid "Title Case" msgstr "标题大写" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:191 msgid "Character match" msgstr "字符匹é…" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:192 msgid "Regular Expression" msgstr "正则表达å¼" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 msgid "Replace field" msgstr "替æ¢å­—段" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:196 msgid "Prepend to field" msgstr "å‰ç½®åˆ°å­—段" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:197 msgid "Append to field" msgstr "追加到字段" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:208 msgid "Editing meta information for <b>%d books</b>" msgstr "正在为<b>%d本书</b>编辑元信æ¯" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261 msgid "Book %d:" msgstr "书ç±%d:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:276 msgid "" "<b>You can destroy your library using this feature.</b> Changes are " -"permanent. There is no undo function. This feature is experimental, and " -"there may be bugs. You are strongly encouraged to back up your library " -"before proceeding.<p>Search and replace in text fields using character " -"matching or regular expressions. " +"permanent. There is no undo function. You are strongly encouraged to back up " +"your library before proceeding.<p>Search and replace in text fields using " +"character matching or regular expressions. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:284 msgid "" "In character mode, the field is searched for the entered search text. The " "text is replaced by the specified replacement text everywhere it is found in " @@ -6391,7 +6429,7 @@ msgid "" "text will match both upper- and lower-case letters" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:295 msgid "" "In regular expression mode, the search text is an arbitrary python-" "compatible regular expression. The replacement text can contain " @@ -6406,30 +6444,30 @@ msgid "" "function." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:436 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:440 msgid "You must specify a destination when source is a composite field" msgstr "å½“æºæ˜¯å¤åˆåŸŸæ—¶ï¼Œä½ å¿…须指定一个目标。" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:528 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:536 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:635 msgid "Search/replace invalid" msgstr "查找/æ›¿æ¢æ— æ•ˆ" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:533 msgid "" "Authors cannot be set to the empty string. Book title %s not processed" msgstr "作者处ä¸èƒ½è®¾ç½®ä¸ºç©ºå­—串。标题为%sçš„ä¹¦ç±æœªä½œå¤„ç†" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:541 msgid "Title cannot be set to the empty string. Book title %s not processed" msgstr "标题ä¸èƒ½è®¾ç½®ä¸ºç©ºå­—串。标题为%sçš„ä¹¦ç±æœªä½œå¤„ç†" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:636 msgid "Search pattern is invalid: %s" msgstr "以下æœç´¢æ¨¡å¼æ˜¯æ— æ•ˆçš„:%s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:665 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:673 msgid "" "Applying changes to %d books.\n" "Phase {0} {1}%%." @@ -6437,81 +6475,81 @@ msgstr "" "正在应用更改到%d本书ç±ã€‚\n" "æš‚åœ{0} {1}%%。" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 msgid "Edit Meta information" msgstr "编辑元信æ¯" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 msgid "A&utomatically set author sort" msgstr "自动设置作者排åº(&u)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 msgid "Author s&ort: " msgstr "作者排åº(&O): " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "指定如何按书ç±ä½œè€…å§“åæŽ’åºã€‚如 Charles Dickens 会被作为 Dickens, Charles 进行排åºã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Rating:" msgstr "星级(&R):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:342 #: /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 "Rating of this book. 0-5 stars" msgstr "为该书评分。0-5 星" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 msgid "No change" msgstr "æ— å˜æ›´" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:344 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 msgid " stars" msgstr " 星" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 msgid "Add ta&gs: " msgstr "添加标签(&G): " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 #: /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 "Open Tag Editor" msgstr "打开标签编辑器" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 msgid "&Remove tags:" msgstr "移除标签(&R):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:351 msgid "Comma separated list of tags to remove from the books. " msgstr "删除多个标签, 标签列表由逗å·åˆ†å‰². " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:352 msgid "Check this box to remove all tags from the books." msgstr "勾选此框将从书ç±ä¸­ç§»é™¤æ‰€æœ‰æ ‡ç­¾ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:353 msgid "Remove all" msgstr "全部移除" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:357 msgid "If checked, the series will be cleared" msgstr "如果勾选了,系列将被清除" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:358 msgid "Clear series" msgstr "清除系列" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:359 msgid "" "If not checked, the series number for the books will be set to 1.\n" "If checked, selected books will be automatically numbered, in the order\n" @@ -6519,110 +6557,110 @@ msgid "" "Book A will have series number 1 and Book B series number 2." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:363 msgid "Automatically number books in this series" msgstr "为此系列自动数字排åº" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:364 msgid "" "Series will normally be renumbered from the highest number in the database\n" "for that series. Checking this box will tell calibre to start numbering\n" "from the value in the box" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:368 msgid "Remove &format:" msgstr "移除格å¼(&F):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 msgid "&Swap title and author" msgstr "对调作者和书å(&W)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 msgid "" "Force the title to be in title case. If both this and swap authors are " "checked,\n" "title and author are swapped before the title case is set" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:372 msgid "Change title to title case" msgstr "更改标题为大写标题" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 msgid "" "Remove stored conversion settings for the selected books.\n" "\n" "Future conversion of these books will use the default settings." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 msgid "Remove &stored conversion settings for the selected books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424 msgid "&Basic metadata" msgstr "基本元数æ®ï¼ˆ&B)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425 msgid "&Custom metadata" msgstr "自定义元数æ®ï¼ˆ&C)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 msgid "Search &field:" msgstr "查找范围(&F):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 msgid "The name of the field that you want to search" msgstr "ä½ è¦è¿›è¡ŒæŸ¥æ‰¾çš„范围的åç§°" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 msgid "Search mode:" msgstr "查找模å¼ï¼š" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 msgid "" "Choose whether to use basic text matching or advanced regular expression " "matching" msgstr "选择是å¦ä½¿ç”¨åŸºæœ¬æ–‡æœ¬åŒ¹é…æˆ–é«˜çº§ä¸‹é¢æ­£åˆ™è¡¨è¾¾å¼åŒ¹é…" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 msgid "&Search for:" msgstr "æœç´¢(&S):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 msgid "" "Enter the what you are looking for, either plain text or a regular " "expression, depending on the mode" msgstr "è¾“å…¥ä½ è¦æŸ¥æ‰¾çš„内容,å¯ä»¥æ˜¯çº¯æ–‡æœ¬æˆ–正则表达å¼ï¼Œå–决于你所用的模å¼" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 msgid "" "Check this box if the search string must match exactly upper and lower case. " "Uncheck it if case is to be ignored" msgstr "请勾选此框,如果你查找的字串需è¦ç²¾ç¡®åŒºåˆ†å¤§å°å†™çš„è¯ã€‚ä¸å‹¾é€‰åˆ™è¡¨ç¤ºå¿½ç•¥å¤§å°å†™" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 msgid "Case sensitive" msgstr "区分大å°å†™" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 msgid "&Replace with:" msgstr "替æ¢ä¸ºï¼ˆ&R):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:388 msgid "" "The replacement text. The matched search text will be replaced with this " "string" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 msgid "Apply function after replace:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 msgid "" "Specify how the text is to be processed after matching and replacement. In " "character mode, the entire\n" @@ -6630,50 +6668,50 @@ msgid "" "processed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 msgid "&Destination field:" msgstr "目标区(&D):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 msgid "" "The field that the text will be put into after all replacements. If blank, " "the source field is used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:394 msgid "Mode:" msgstr "模å¼ï¼š" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 msgid "Specify how the text should be copied into the destination." msgstr "指定文本è¦å¦‚何å¤åˆ¶åˆ°ç›®æ ‡ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 msgid "" "If the replace mode is prepend or append, then this box indicates whether a " "comma or\n" "nothing should be put between the original text and the inserted text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 msgid "use comma" msgstr "使用逗å·" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 msgid "Test &text" msgstr "测试文本(&T)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:400 msgid "Test re&sult" msgstr "测试结果(&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:401 msgid "Your test:" msgstr "测试内容:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:399 -msgid "&Search and replace (experimental)" -msgstr "查找和替æ¢ï¼ˆ&S)(实验功能)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:402 +msgid "&Search and replace" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:91 msgid "Last modified: %s" @@ -6941,20 +6979,21 @@ msgstr "需è¦å¯†ç " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 msgid "&Username:" msgstr "用户å(&U):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135 msgid "&Password:" msgstr "密ç (&P):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:167 msgid "&Show password" msgstr "显示密ç (&S)" @@ -7182,56 +7221,52 @@ msgstr "<p>ä¸ç¬¦åˆæ­¤æ¡ä»¶ã€‚å³ä»…列出<b>ä¸</b>符åˆè¯¥æ¡ä»¶çš„项目 msgid "Negate" msgstr "æ¡ä»¶å¦" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:198 msgid "Advanced Search" msgstr "高级æœç´¢" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:119 -msgid "Find entries that have..." -msgstr "æœç´¢åŒ…å«..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:120 -msgid "&All these words:" -msgstr "所有下列关键字(&A):" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:121 -msgid "This exact &phrase:" -msgstr "精确匹é…关键字(&P):" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:122 -msgid "&One or more of these words:" -msgstr "包å«ä¸€ä¸ªæˆ–多个下列关键字(&O):" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:123 -msgid "But dont show entries that have..." -msgstr "æœç´¢ç»“æžœä¸åŒ…å«..." - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:124 -msgid "Any of these &unwanted words:" -msgstr "æœç´¢ç»“æžœä¸åŒ…å«ä»»ä½•以下关键字(&U):" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:199 msgid "What kind of match to use:" msgstr "使用何ç§åŒ¹é…:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:126 -msgid "Contains: the word or phrase matches anywhere in the metadata" -msgstr "包å«ï¼šçŸ­è¯­æˆ–文字与原数æ®ä¸­ä»»æ„ä½ç½®åŒ¹é…" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:200 +msgid "Contains: the word or phrase matches anywhere in the metadata field" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:127 -msgid "Equals: the word or phrase must match an entire metadata field" -msgstr "等于:短语必须和一个元数æ®é¡¹å®Œå…¨åŒ¹é…" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:201 +msgid "Equals: the word or phrase must match the entire metadata field" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:202 msgid "" -"Regular expression: the expression must match anywhere in the metadata" -msgstr "正则表达å¼ï¼šè¡¨è¾¾å¼å¿…须与元数æ®ä¸­æ‰€æœ‰å†…容寻求匹é…" +"Regular expression: the expression must match anywhere in the metadata field" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:129 -msgid " " -msgstr " " +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:203 +msgid "Find entries that have..." +msgstr "æœç´¢åŒ…å«..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:204 +msgid "&All these words:" +msgstr "所有下列关键字(&A):" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:205 +msgid "This exact &phrase:" +msgstr "精确匹é…关键字(&P):" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:206 +msgid "&One or more of these words:" +msgstr "包å«ä¸€ä¸ªæˆ–多个下列关键字(&O):" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:207 +msgid "But dont show entries that have..." +msgstr "æœç´¢ç»“æžœä¸åŒ…å«..." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:208 +msgid "Any of these &unwanted words:" +msgstr "æœç´¢ç»“æžœä¸åŒ…å«ä»»ä½•以下关键字(&U):" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:209 msgid "" "See the <a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">User Manual</a> for more help" @@ -7239,6 +7274,47 @@ msgstr "" "å‚è§<a href=\"http://calibre-ebook.com/user_manual/gui.html#the-search-" "interface\">用户手册</a>èŽ·å–æ›´å¤šå¸®åŠ©" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:210 +msgid "A&dvanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:212 +msgid "Enter the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:213 +msgid "&Author:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:215 +msgid "Ta&gs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:216 +msgid "Enter an author's name. Only one author can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:217 +msgid "" +"Enter a series name, without an index. Only one series name can be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:218 +msgid "Enter tags separated by spaces" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:219 +msgid "&Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:220 +msgid "Search only in specific fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:221 +msgid "Titl&e/Author/Series ..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 msgid "Choose formats" msgstr "选择格å¼" @@ -7366,12 +7442,12 @@ msgid "%s (was %s)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:74 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:580 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:587 msgid "Item is blank" msgstr "项目为空" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:581 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:588 msgid "An item cannot be set to nothing. Delete it instead." msgstr "项目ä¸èƒ½è®¾ç½®ä¸ºä»€ä¹ˆä¹Ÿæ²¡æœ‰ã€‚请删除之。" @@ -7452,7 +7528,7 @@ msgid "Discard changes" msgstr "放弃更改" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tweak_epub_ui.py:60 -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:218 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:225 msgid "&Cancel" msgstr "å–æ¶ˆ(&C)" @@ -7649,6 +7725,60 @@ msgstr "" msgid "Recipe source code (python)" msgstr "è®¢é˜…æ¸…å•æºä»£ç (python)" +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:145 +msgid "Email %s to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:187 +msgid "News:" +msgstr "æ–°é—»:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:189 +msgid "Attached is the %s periodical downloaded by calibre." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:242 +msgid "E-book:" +msgstr "电å­ä¹¦ï¼š" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:245 +msgid "Attached, you will find the e-book" +msgstr "已添加, 您å¯ä»¥ä»Žä¸­èŽ·å–电å­ä¹¦ç±" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:107 +msgid "by" +msgstr "ç”±" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:247 +msgid "in the %s format." +msgstr "使用 %s æ ¼å¼." + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 +msgid "Sending email to" +msgstr "正在å‘é€é‚®ä»¶è‡³" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:290 +msgid "Auto convert the following books before sending via email?" +msgstr "在å‘é€ç”µå­é‚®ä»¶ä¹‹å‰è‡ªåŠ¨è½¬æ¢ä¸‹åˆ—书ç±ï¼Ÿ" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:297 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "由于无法找到åˆé€‚çš„æ–‡ä»¶æ ¼å¼æ— æ³•通过电å­é‚®ä»¶å‘é€ä¸‹åˆ—书ç±:" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:303 +msgid "Failed to email book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:306 +msgid "sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/email.py:329 +msgid "Sent news to" +msgstr "将新闻å‘é€åˆ°" + #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 msgid "" "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" " @@ -7842,23 +7972,23 @@ msgstr "无法在与设备通信时中止任务" msgid "Job has already run" msgstr "任务已执行" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:262 msgid "Unavailable" msgstr "ä¸å¯ç”¨" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:294 msgid "Jobs:" msgstr "任务:" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:296 msgid "Shift+Alt+J" msgstr "Shift+Alt+J" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:313 msgid "Click to see list of jobs" msgstr "点击查看任务列表" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:382 msgid " - Jobs" msgstr " - 任务" @@ -7884,7 +8014,7 @@ msgid "Show books in the main memory of the device" msgstr "显示设备主内存中的书ç±" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:67 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:848 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:820 msgid "Card A" msgstr "存储å¡A" @@ -7893,7 +8023,7 @@ msgid "Show books in storage card A" msgstr "显示存储å¡A中的书ç±" #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:69 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:850 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:822 msgid "Card B" msgstr "存储å¡B" @@ -7905,38 +8035,46 @@ msgstr "显示存储å¡B中的书ç±" msgid "available" msgstr "å¯ç”¨" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:159 msgid "" "Books display will be restricted to those matching the selected saved search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:170 +msgid "Shift+Ctrl+F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 msgid "Advanced search" msgstr "高级æœç´¢" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:173 -msgid "&Search:" -msgstr "æœç´¢(&S):" - -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:178 msgid "" "<p>Search the list of books by title, author, publisher, tags, comments, " "etc.<br><br>Words separated by spaces are ANDed" msgstr "<p>用标题ã€ä½œè€…ã€å‡ºç‰ˆå•†ã€æ ‡ç­¾ã€æ³¨é‡Šç­‰æœç´¢ä¹¦ç±åˆ—表<br><br>空格间隔关键è¯è§†ä¸ºä¸”(AND)关系" +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:181 +msgid "&Go!" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/layout.py:187 +msgid "Do Quick Search (you can also press the Enter key)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:193 msgid "Reset Quick Search" msgstr "é‡ç½®å¿«é€Ÿæœç´¢" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 msgid "Copy current search text (instead of search name)" msgstr "å¤åˆ¶å½“剿œç´¢ç»“果列表项至æœç´¢æ " -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 msgid "Save current search under the name shown in the box" msgstr "ä¿å­˜å½“剿œç´¢ç»“æžœ" -#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/layout.py:217 msgid "Delete current saved search" msgstr "删除当å‰å·²å­˜æœç´¢" @@ -7958,79 +8096,82 @@ msgstr "" msgid "Size (MB)" msgstr "å¤§å° (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1143 -msgid "Book <font face=\"serif\">%s</font> of %s." -msgstr "ä¹¦ç± <font face=\"serif\">%s</font> 中 %s." +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:331 +msgid "Book %s of %s." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:700 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1243 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:693 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1236 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:414 msgid "The lookup/search name is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:706 -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1238 msgid "This book's UUID is \"{0}\"" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:929 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:922 msgid "In Library" msgstr "在书库中" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:926 msgid "Size" msgstr "大å°" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1223 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1136 +msgid "Book <font face=\"serif\">%s</font> of %s." +msgstr "ä¹¦ç± <font face=\"serif\">%s</font> 中 %s." + +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1216 msgid "Marked for deletion" msgstr "为删除作的标记" -#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1226 +#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1219 msgid "Double click to <b>edit</b> me<br><br>" msgstr "åŒå‡»<b>编辑</b>该项<br><br>" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:147 msgid "Hide column %s" msgstr "éšè— %s 列" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:152 msgid "Sort on %s" msgstr "按%s排åº" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:153 msgid "Ascending" msgstr "å‡åº" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:156 msgid "Descending" msgstr "é™åº" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:168 msgid "Change text alignment for %s" msgstr "更改 %s çš„æ–‡æœ¬å¯¹é½æ–¹å¼" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Left" msgstr "左对é½" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:170 msgid "Right" msgstr "å³é”®" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:171 msgid "Center" msgstr "居中" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:190 msgid "Show column" msgstr "显示列" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:202 msgid "Restore default layout" msgstr "æ¢å¤é»˜è®¤å¸ƒå±€" -#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:735 +#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:743 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -8061,7 +8202,7 @@ msgid "<b>No matches</b> for the search phrase <i>%s</i> were found." msgstr "<b>无结果项</b> 匹é…å…³é”®è¯ <i>%s</i> 被找到." #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:442 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446 msgid "No matches found" msgstr "无匹é…项" @@ -8078,12 +8219,12 @@ msgid "LRF Viewer toolbar" msgstr "LRF 查看程åºå·¥å…·æ " #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:503 msgid "Next Page" msgstr "下一页" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:504 msgid "Previous Page" msgstr "上一页" @@ -8127,7 +8268,7 @@ msgid "Do not check for updates" msgstr "䏿£€æµ‹æ›´æ–°" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:58 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:643 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:662 msgid "Calibre Library" msgstr "Calibre 书库" @@ -8254,37 +8395,37 @@ msgstr "ä¹¦ç±æ—¢æ²¡æœ‰æ ‡é¢˜ä¹Ÿæ²¡æœ‰ ISBN ç¼–å·" msgid "No matches found for this book" msgstr "æœªæ‰¾åˆ°åŒ¹é…æ­¤ä¹¦ä¿¡æ¯" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:191 msgid "Failed to download metadata" msgstr "下载元数æ®å¤±è´¥" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 msgid "cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Downloaded" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 msgid "Failed to get" msgstr "无法获å–" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:225 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:229 msgid "%s %s for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:284 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/behavior.py:162 msgid "Done" msgstr "完æˆ" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:289 msgid "Successfully downloaded metadata for %d out of %d books" msgstr "æˆåŠŸä¸‹è½½%d本书的元数æ®(å…±%d本)" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:287 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:291 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:659 msgid "Details" msgstr "" @@ -8780,39 +8921,39 @@ msgstr "在图标下显示文本(&T):" msgid "&Split the toolbar into two toolbars" msgstr "把工具æ åˆ†å‰²æˆä¸¤æ (&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 msgid "&Apply" msgstr "应用(&A)" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:229 msgid "Restore &defaults" msgstr "æ¢å¤é»˜è®¤å€¼(&D)" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:230 msgid "Save changes" msgstr "ä¿å­˜æ”¹åЍ" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:231 msgid "Cancel and return to overview" msgstr "å–æ¶ˆå¹¶è¿”回到上一页" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:259 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:269 msgid "Restoring to defaults not supported for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:304 msgid "" "Some of the changes you made require a restart. Please restart calibre as " "soon as possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:297 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:307 msgid "" "The changes you have made require calibre be restarted immediately. You will " "not be allowed set any more preferences, until you restart." msgstr "您所åšçš„æ”¹åŠ¨è¦æ±‚ç«‹å³é‡å¯calibre。在é‡å¯ä¹‹å‰ï¼Œæ‚¨ä¸èƒ½å†åšå…¶å®ƒä»»ä½•设置。" -#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:302 +#: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:120 msgid "Restart needed" msgstr "需è¦é‡å¯" @@ -9122,7 +9263,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/server.py:75 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:331 msgid "Failed to start content server" msgstr "无法å¯åЍ内容æœåС噍" @@ -9320,24 +9461,25 @@ msgid "&Current tweaks" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:270 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:574 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:272 msgid "Search" msgstr "æœç´¢" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:315 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:322 msgid "The selected search will be <b>permanently deleted</b>. Are you sure?" msgstr "选定的æœç´¢ç»“果将被<b>永久删除</b>,你确定å—?" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:364 msgid "Search (For Advanced Search click the button to the left)" msgstr "æœç´¢ï¼ˆç‚¹å‡»å·¦ä¾§æŒ‰é’®è¿›è¡Œé«˜çº§æœç´¢ï¼‰" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:406 msgid "Saved Searches" msgstr "已存æœç´¢" -#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:414 msgid "Choose saved search or enter name for new saved search" msgstr "选择已存æœç´¢æˆ–输入新存入æœç´¢åç§°" @@ -9418,26 +9560,22 @@ msgstr "清除" msgid "&Alternate shortcut:" msgstr "其它快æ·é”®(&A):" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:202 msgid "Rename '%s'" msgstr "é‡å‘½å'%s'" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:206 msgid "Edit sort for '%s'" msgstr "为 '%s'编辑排åº" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:211 msgid "Hide category %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:212 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:214 msgid "Show category" msgstr "显示分类" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:216 -msgid "Show all categories" -msgstr "显示所有分类" - #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:223 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:227 msgid "Manage %s" @@ -9452,63 +9590,67 @@ msgstr "" msgid "Manage User Categories" msgstr "管ç†ç”¨æˆ·åˆ†ç±»" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:248 +msgid "Show all categories" +msgstr "显示所有分类" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:458 msgid "" "Changing the authors for several books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:456 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:463 msgid "" "Changing the metadata for that many books can take a while. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:512 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:320 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:519 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:296 msgid "Searches" msgstr "æœç´¢" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:602 msgid "Duplicate search name" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:596 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:603 msgid "The saved search name %s is already used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by name" msgstr "按å字排åº" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:870 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:878 msgid "Sort by popularity" msgstr "按欢迎度排åº" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:879 msgid "Sort by average rating" msgstr "按平å‡è¯„分排åº" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:882 msgid "Set the sort order for entries in the Tag Browser" msgstr "设置标签æµè§ˆå™¨ä¸­å†…容的排åºè§„则" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match all" msgstr "åŒ¹é…æ‰€æœ‰" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:880 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:888 msgid "Match any" msgstr "匹é…任一" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:893 msgid "" "When selecting multiple entries in the Tag Browser match any or all of them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:889 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:897 msgid "Manage &user categories" msgstr "管ç†ç”¨æˆ·åˆ†ç±»(&U)" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:900 msgid "Add your own categories to the Tag Browser" msgstr "把你自定义的分类添加到标签æµè§ˆå™¨" @@ -9551,53 +9693,53 @@ msgid "" "reconvert them?" msgstr "下列书ç±å·²ç»è¢«è½¬æ¢ä¸º %s æ ¼å¼ã€‚您希望转æ¢å®ƒä»¬ä¹ˆï¼Ÿ" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:171 msgid "&Restore" msgstr "æ¢å¤(&R)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:173 msgid "&Donate to support calibre" msgstr "ææ¬¾èµžåŠ© Calibre 项目(&D)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:177 msgid "&Eject connected device" msgstr "弹出已连接设备(&E)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:218 msgid "Calibre Quick Start Guide" msgstr "Calibre 快速上手指å—" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:437 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:439 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:450 msgid "Conversion Error" msgstr "转æ¢é”™è¯¯" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:438 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 msgid "" "<p>Could not convert: %s<p>It is a <a href=\"%s\">DRM</a>ed book. You must " "first remove the DRM using third party tools." msgstr "<p>无法转æ¢ï¼š%s<p> 它是 <a href=\"%s\">DRM</a> ä¿æŠ¤ä¹¦ç±ã€‚您需è¦é¦–先使用第三方工具去除 DRM。" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:465 msgid "Recipe Disabled" msgstr "清å•ç¦ç”¨" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 msgid "<b>Failed</b>" msgstr "<b>失败</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:517 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. " "Your donation helps keep calibre development going." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:543 msgid "There are active jobs. Are you sure you want to quit?" msgstr "仿œ‰ä»»åŠ¡è¿è¡Œã€‚您是å¦å¸Œæœ›é€€å‡ºï¼Ÿ" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:546 msgid "" " is communicating with the device!<br>\n" " Quitting may cause corruption on the device.<br>\n" @@ -9607,11 +9749,11 @@ msgstr "" " 退出å¯èƒ½å¯¼è‡´è®¾å¤‡æŸå。<br>\n" " 确定退出么?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:550 msgid "WARNING: Active jobs" msgstr "警告:正在è¿è¡Œä»»åŠ¡" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:628 msgid "" "will keep running in the system tray. To close it, choose <b>Quit</b> in the " "context menu of the system tray." @@ -9783,96 +9925,96 @@ msgstr "键盘快æ·é”®(&K)" msgid "No results found for:" msgstr "未找到结果:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:36 msgid "Options to customize the ebook viewer" msgstr "定制电å­ä¹¦æŸ¥çœ‹å™¨çš„选项" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:703 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 msgid "Remember last used window size" msgstr "è®°ä½ä¸Šæ¬¡ä½¿ç”¨çª—å£å¤§å°" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:82 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." msgstr "设定用户 CSS æ ·å¼è¡¨ã€‚它将å¯ä»¥å®šåˆ¶æ‰€æœ‰ä¹¦ç±å¤–观。" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Maximum width of the viewer window, in pixels." msgstr "查看器最大窗å£å®½åº¦åƒç´ æ•°ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Resize images larger than the viewer window to fit inside it" msgstr "调整查看器窗å£ä¸­è¾ƒå¤§å›¾åƒå¤§å°ï¼Œä½¿å…¶é€‚åˆæ˜¾ç¤ºåœ¨çª—å£ä¸­" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 msgid "Hyphenate text" msgstr "æ–­è¯åˆ†è¡Œæ–‡æœ¬" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 msgid "Default language for hyphenation rules" msgstr "默认使用断è¯åˆ†è¡Œè§„则的语言" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 msgid "Font options" msgstr "字体选项" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 msgid "The serif font family" msgstr "衬线字体" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The sans-serif font family" msgstr "Sans-serif 字体" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The monospaced font family" msgstr "等宽字体" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 msgid "The standard font size in px" msgstr "æ ‡å‡†å­—ä½“å¤§å° px 值" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 msgid "The monospaced font size in px" msgstr "ç­‰å®½å­—ä½“å¤§å° px 值" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:63 msgid "The standard font type" msgstr "标准字体类型" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 msgid "&Lookup in dictionary" msgstr "è¯å…¸æŸ¥è¯¢(&L)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "转到..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:494 msgid "Next Section" msgstr "下一节" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:479 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495 msgid "Previous Section" msgstr "上一节" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:497 msgid "Document Start" msgstr "文档起始" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:498 msgid "Document End" msgstr "文档结尾" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:484 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:500 msgid "Section Start" msgstr "节起始" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:501 msgid "Section End" msgstr "节末尾" @@ -9940,85 +10082,85 @@ msgstr "è½¬åˆ°å¼•ç”¨ã€‚è¦æ‰¾åˆ°å¼•用编å·ï¼Œè¯·ä½¿ç”¨å¼•用模å¼ã€‚" msgid "Search for text in book" msgstr "书内文本æœç´¢" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:272 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:275 msgid "Print Preview" msgstr "打å°é¢„览" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:309 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:312 msgid "Connecting to dict.org to lookup: <b>%s</b>…" msgstr "正在链接 dict.org 查询:<b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:413 msgid "Choose ebook" msgstr "选择电å­ä¹¦" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:414 msgid "Ebooks" msgstr "电å­ä¹¦" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:447 msgid "No matches found for: %s" msgstr "未找到 %s 的匹é…" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:488 msgid "Loading flow..." msgstr "正在加载æµ..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:524 msgid "Laying out %s" msgstr "æ­£åœ¨æŽ’å¸ƒæµ %s..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:555 msgid "Bookmark #%d" msgstr "书签#%d" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "Add bookmark" msgstr "添加书签" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "Enter title for bookmark:" msgstr "编辑书签标题:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:570 msgid "Manage Bookmarks" msgstr "管ç†ä¹¦ç­¾" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 msgid "Loading ebook..." msgstr "正在加载电å­ä¹¦..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:615 msgid "DRM Error" msgstr "DRM 错误" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:616 msgid "<p>This book is protected by <a href=\"%s\">DRM</a>" msgstr "<p>此书被 <a href=\"%s\">DRM</a> ä¿æŠ¤" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:620 msgid "Could not open ebook" msgstr "无法打开电å­ä¹¦" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:698 msgid "Options to control the ebook viewer" msgstr "电å­ä¹¦æŸ¥çœ‹å™¨æŽ§åˆ¶é€‰é¡¹" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:697 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 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:700 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:708 msgid "" "If specified, viewer window will try to open full screen when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:713 msgid "Print javascript alert and console messages to the console" msgstr "åœ¨æŽ§åˆ¶å°æ˜¾ç¤º javascript è­¦å‘Šä»¥åŠæŽ§åˆ¶å°ä¿¡æ¯" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:711 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:719 msgid "" "%prog [options] file\n" "\n" @@ -10136,7 +10278,7 @@ msgstr "éšè—" msgid "Toggle" msgstr "触å‘器" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:400 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 " @@ -10144,13 +10286,13 @@ msgid "" msgstr "" "若您使用 Android 手机上的 WordPlayer 电å­ä¹¦ç¨‹åºï¼Œæ‚¨å¯ä»¥ç”¨è®¾å¤‡ç›´æŽ¥è®¿é—®æ‚¨çš„ Calibre ä¹¦åº“ã€‚è¿™éœ€è¦æ‚¨æ‰“开内容æœåŠ¡å™¨ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:404 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "请记ä½ä¿æŒ Calibre è¿è¡Œï¼Œå¦‚此它æ‰èƒ½ä¸€ç›´æä¾›æœåŠ¡ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:406 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 " @@ -10159,39 +10301,39 @@ msgstr "" "您需è¦å°† URL http://myhostname:8080 添加到您 WordPlayer 中的 Calibre 书库。此处 myhostname " "åº”ä¸ºæœ‰æ•ˆä¸»æœºåæˆ–者您è¿è¡Œ Calibre 电脑的 IP 地å€ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:468 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:483 msgid "Moving library..." msgstr "正在移动书库..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:500 msgid "Failed to move library" msgstr "移动书库错误" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:554 msgid "Invalid database" msgstr "无效数æ®åº“" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:555 msgid "" "<p>An invalid library already exists at %s, delete it before trying to move " "the existing library.<br>Error: %s" msgstr "<p>在 %s 已有无效书库,在试图移动现有书库å‰åˆ é™¤å®ƒã€‚<br>错误:%s" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:566 msgid "Could not move library" msgstr "无法移动书库" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:622 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:641 msgid "Select location for books" msgstr "选择书ç±ä½ç½®" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:636 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:655 msgid "" "You must choose an empty folder for the calibre library. %s is not empty." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:710 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:729 msgid "welcome wizard" msgstr "欢迎å‘导" @@ -10268,9 +10410,9 @@ msgstr "选择您的语言(&L):" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:58 msgid "" -"Choose a location for your books. When you add books to calibre, they will " -"be copied here:" -msgstr "为您的书ç±é€‰æ‹©ä½ç½®ã€‚当您在 Calibre 中添加书ç±ï¼Œå®ƒä»¬å°†è¢«å¤åˆ¶åˆ°è¿™é‡Œï¼š" +"<p>Choose a location for your books. When you add books to calibre, they " +"will be copied here. Use an <b>empty folder</b> for a new calibre library:" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:59 msgid "&Change" @@ -10283,121 +10425,158 @@ msgid "" "will switch to using it." msgstr "如果您已有 Calibre 书库,它将被å¤åˆ¶åˆ°æ–°ä½ç½®ã€‚è‹¥ Calibre 书库在新ä½ç½®å·²ç»å­˜åœ¨ï¼ŒCalibre 将直接使用它。" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:34 msgid "Using: %s:%s@%s:%s and %s encryption" msgstr "使用:%s:%s@%s:%s å’Œ %s 加密" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:39 msgid "Sending..." msgstr "正在å‘é€..." -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:44 msgid "Mail successfully sent" msgstr "邮件已å‘出" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 -msgid "Finish gmail setup" -msgstr "å®Œæˆ gmail 设定" - -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:136 msgid "" -"Dont forget to enter your gmail username and password. You can sign up for a " -"free gmail account at http://gmail.com" -msgstr "请勿忘记输入您的 gmail 用户å密ç ã€‚您å¯äºŽ http://gmail.com 注册å…费账å·" +"If you are setting up a new hotmail account, you must log in to it once " +"before you will be able to send mails." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:147 +msgid "" +"You can sign up for a free {name} email account at <a " +"href=\"http://{url}\">http://{url}</a>. {extra}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:154 +msgid "Your %s &email address:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:155 +msgid "Your %s &username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:156 +msgid "Your %s &password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:174 +msgid "" +"If you plan to use email to send books to your Kindle, remember to add the " +"your %s email address to the allowed email addresses in your Amazon.com " +"Kindle management page." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:181 +msgid "Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:203 msgid "Bad configuration" msgstr "错误é…ç½®" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:197 msgid "You must set the From email address" msgstr "您需è¦è®¾ç½®å‘信人电å­é‚®ä»¶åœ°å€" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:204 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:113 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "Send email &from:" msgstr "å‘信人地å€(&f):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "" "<p>This is what will be present in the From: field of emails sent by " "calibre.<br> Set it to your email address" msgstr "<p>邮件å‘件人æ ä¸­å°†å¡«å†™ï¼šCalibre å‘é€çš„邮件。<br> 将其设为您的邮件地å€" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "" "<p>A mail server is useful if the service you are sending mail to only " "accepts email from well know mail services." msgstr "<p>如果收件人的邮箱åªèƒ½æŽ¥æ”¶æ¥è‡ªè‘—å邮件æœåŠ¡çš„çš„é‚®ä»¶ï¼Œä½¿ç”¨é‚®ä»¶æœåŠ¡å™¨åˆ™éžå¸¸å®žç”¨ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Mail &Server" msgstr "邮件æœåС噍(&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "calibre can <b>optionally</b> use a server to send mail" msgstr "Calibre å¯<b>选择是å¦ä½¿ç”¨</b>邮件æœåС噍以å‘é€é‚®ä»¶" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 msgid "&Hostname:" msgstr "主机å(&H):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" msgstr "您的邮件æœåŠ¡å™¨çš„ä¸»æœºå. 例如 smtp.gmail.com" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 msgid "&Port:" msgstr "端å£(&P):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 msgid "" "The port your mail server listens for connections on. The default is 25" msgstr "您的邮件æœåŠ¡å™¨çš„ä¾¦å¬ç«¯å£å·ã€‚默认 25" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:134 msgid "Your username on the mail server" msgstr "您在邮件æœåŠ¡å™¨ä¸Šçš„ç”¨æˆ·å" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:136 msgid "Your password on the mail server" msgstr "您在邮件æœåŠ¡å™¨ä¸Šçš„å¯†ç " -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:137 msgid "&Show" msgstr "显示(&S)" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:138 msgid "&Encryption:" msgstr "加密(&E):" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:139 msgid "" "Use TLS encryption when connecting to the mail server. This is the most " "common." msgstr "连接到邮件æœåŠ¡å™¨æ—¶ä½¿ç”¨ TLS 加密,这是通常æœåŠ¡å™¨ä½¿ç”¨çš„é€‰é¡¹ã€‚" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:140 msgid "&TLS" msgstr "&TLS" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:141 msgid "Use SSL encryption when connecting to the mail server." msgstr "连接到邮件æœåŠ¡å™¨æ—¶ä½¿ç”¨ SSL 加密。" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:142 msgid "&SSL" msgstr "&SSL" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:143 +msgid "WARNING: Using no encryption is highly insecure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:144 +msgid "&None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:145 msgid "Use Gmail" msgstr "使用 Gmail" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:146 +msgid "Use Hotmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:147 msgid "&Test email" msgstr "测试邮件å‘é€(&T)" @@ -10463,7 +10642,7 @@ msgstr "空白" msgid "empty" msgstr "空的" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:48 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:50 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10472,7 +10651,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:58 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:60 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10480,7 +10659,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:212 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:214 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -10489,7 +10668,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:222 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:224 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -10497,7 +10676,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:231 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:233 msgid "" "Create a citation for BibTeX entries.\n" "Boolean value: True, False\n" @@ -10505,7 +10684,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:240 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:242 msgid "" "The template for citation creation from database fields.\n" " Should be a template with {} enclosed fields.\n" @@ -10514,7 +10693,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:250 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:252 msgid "" "BibTeX file encoding output.\n" "Available types: utf8, cp1252, ascii.\n" @@ -10522,7 +10701,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 msgid "" "BibTeX file encoding flag.\n" "Available types: strict, replace, ignore, backslashreplace.\n" @@ -10530,7 +10709,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Entry type for BibTeX catalog.\n" "Available types: book, misc, mixed.\n" @@ -10538,14 +10717,14 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:536 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:540 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:543 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:547 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 " @@ -10554,14 +10733,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:553 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:557 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[<tag>]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:559 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:563 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -10570,35 +10749,35 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:567 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:571 msgid "" "Include 'Titles' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:574 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:578 msgid "" "Include 'Series' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:581 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:585 msgid "" "Include 'Recently Added' section in catalog.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:588 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:592 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:595 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:599 msgid "" "Sort titles with leading numbers as text, e.g.,\n" "'2001: A Space Odyssey' sorts as \n" @@ -10607,7 +10786,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:602 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:606 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -10617,13 +10796,20 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:609 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:613 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:619 +msgid "" +"Tag indicating book to be displayed as wishlist item.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/check_library.py:17 msgid "Invalid titles" msgstr "无效的标题" @@ -10981,7 +11167,7 @@ msgid "" msgstr "为æœç´¢æŸ¥è¯¢è¿‡æ»¤ç»“果。æœç´¢æŸ¥è¯¢æ ¼å¼è¯·å‚è§ç”¨æˆ·æ‰‹å†Œä¸­æœç´¢ç›¸å…³å†…容。默认:ä¸è¿‡æ»¤" #: /home/kovid/work/calibre/src/calibre/library/cli.py:665 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:505 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:499 msgid "Show detailed output information. Useful for debugging" msgstr "显示详细输出信æ¯ã€‚有利调试" @@ -11219,35 +11405,35 @@ msgid "" "start with a letter" msgstr "标签必须åªåŒ…å«å°å†™å­—æ¯ï¼Œæ•°å­—åŠä¸‹åˆ’线,并且以字æ¯å¼€å¤´ã€‚" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:82 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:57 msgid "%sAverage rating is %3.1f" msgstr "%sçš„å¹³å‡æ˜Ÿçº§æ˜¯%3.1f" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:846 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:818 msgid "Main" msgstr "主" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2321 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2310 msgid "<p>Migrating old database to ebook library in %s<br><center>" msgstr "<p>正在将旧数æ®åº“转移到ä½äºŽ %s 的新数æ®åº“<br><center>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2350 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2339 msgid "Copying <b>%s</b>" msgstr "正在å¤åˆ¶<b>%s</b>" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2367 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2356 msgid "Compacting database" msgstr "正在压缩数æ®åº“" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2460 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2449 msgid "Checking SQL integrity..." msgstr "正在检查" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2499 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2488 msgid "Checking for missing files." msgstr "正在检查缺失文件。" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:2521 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:2516 msgid "Checked id" msgstr "已检查 id" @@ -11438,120 +11624,129 @@ msgid "" "from Apache/nginx/etc." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/base.py:149 -msgid "Password to access your calibre library. Username is " -msgstr "密ç ä»¥è®¿é—®æ‚¨çš„ Calibre 书库。用户å为 " - -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:51 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:401 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:59 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:437 msgid "Loading, please wait" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:85 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +msgid "Go to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "First" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Last" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:80 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:101 msgid "Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:81 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102 msgid "Next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:83 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:104 msgid "Browsing %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:99 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:224 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:121 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:247 msgid "Average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:100 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:122 msgid "%s: %.1f stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:132 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:155 msgid "%d stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:225 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:248 msgid "Popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:244 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:267 msgid "Sort by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:308 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:512 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:270 +msgid "library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:271 +msgid "home" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:332 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:548 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:569 msgid "Newest" msgstr "最新" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:309 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:513 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:333 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:549 msgid "All books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:341 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:366 msgid "Browse books by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:346 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:371 msgid "Choose a category to browse by:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:421 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:457 msgid "Browsing by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:422 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:458 msgid "Up" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:543 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:579 msgid "in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:546 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:582 msgid "Books in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:597 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:634 msgid "Other formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:604 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:641 msgid "Read %s in the %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:609 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:646 msgid "Get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:624 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 msgid "Permalink" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:625 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "A permanent link to this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:636 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:673 msgid "This book has been deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:720 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:757 msgid "in search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:722 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Matching books" msgstr "" @@ -11582,6 +11777,12 @@ msgid "" "overrides any per-library settings specified in the GUI" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/server/main.py:62 +msgid "" +"Auto reload server when source code changes. May not work in all " +"environments." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:112 msgid "%d book" msgstr "%d本书" @@ -11862,7 +12063,7 @@ msgstr "å¼€å¯ SSH 会è¯å¤±è´¥ï¼š " msgid "Failed to authenticate with server: %s" msgstr "æœåŠ¡å™¨è®¤è¯å¤±è´¥ï¼š%s" -#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:249 msgid "Control email delivery" msgstr "控制邮件传递" @@ -11906,93 +12107,93 @@ msgstr "ä¸ä»Ž calire æœåŠ¡å™¨ä¸‹è½½æœ€æ–°è®¢é˜…æ¸…å•" msgid "Unknown News Source" msgstr "æœªçŸ¥æ–°é—»æ¥æº" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:628 msgid "The \"%s\" recipe needs a username and password." msgstr "订阅清å•“%sâ€éœ€è¦ç”¨æˆ·å与密ç ã€‚" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:713 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:727 msgid "Download finished" msgstr "下载完æˆ" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:715 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:729 msgid "Failed to download the following articles:" msgstr "下载下列文章失败:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:721 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:735 msgid "Failed to download parts of the following articles:" msgstr "下载下列文章的æŸäº›éƒ¨åˆ†å¤±è´¥ï¼š" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:723 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:737 msgid " from " msgstr " 自 " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:725 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 msgid "\tFailed links:" msgstr "\t失败链接:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:814 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:834 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "æ— æ³•æŠ“å–æ–‡ç« ã€‚使用 -vv 选项è¿è¡Œå¯Ÿçœ‹åŽŸå› ã€‚" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:855 msgid "Fetching feeds..." msgstr "æ­£åœ¨æŠ“å–æº..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:860 msgid "Got feeds from index page" msgstr "从索引页é¢èŽ·å–了æº" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:849 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:869 msgid "Trying to download cover..." msgstr "正在å°è¯•下载å°é¢..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:871 msgid "Generating masthead..." msgstr "正在生æˆåˆŠå¤´..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:932 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:952 msgid "Starting download [%d thread(s)]..." msgstr "开始下载 [ %d 线程数]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:948 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:968 msgid "Feeds downloaded to %s" msgstr "æ–°é—»æºä¸‹è½½åˆ° %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:957 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:977 msgid "Could not download cover: %s" msgstr "无法下载å°é¢ï¼š%s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:964 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:986 msgid "Downloading cover from %s" msgstr "正在从 %s 下载å°é¢" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1009 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1032 msgid "Masthead image downloaded" msgstr "已下载刊头图åƒ" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1177 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1200 msgid "Untitled Article" msgstr "无标题文章" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1248 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1271 msgid "Article downloaded: %s" msgstr "已下载文章:%s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1259 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1282 msgid "Article download failed: %s" msgstr "下载失败文章:%s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1276 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1299 msgid "Fetching feed" msgstr "æŠ“å–æº" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1423 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1446 msgid "" "Failed to log in, check your username and password for the calibre " "Periodicals service." msgstr "登录失败,检查您 calibre 期刊æœåŠ¡çš„ç”¨æˆ·å密ç ã€‚" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1438 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1461 msgid "" "You do not have permission to download this issue. Either your subscription " "has expired or you have exceeded the maximum allowed downloads for today." @@ -12013,7 +12214,7 @@ msgstr "已计划" msgid "Custom" msgstr "自定义" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 msgid "" "%prog URL\n" "\n" @@ -12023,48 +12224,48 @@ msgstr "" "\n" "URL 举例为 http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "Base directory into which URL is saved. Default is %default" msgstr "URL 存储基目录。默认 %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "的带æœåС噍å“应的超时秒数。默认:%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:491 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:485 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "递归级别最大值。如链接跟踪深度。默认:%default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:488 msgid "" "The maximum number of files to download. This only applies to files from <a " "href> tags. Default is %default" msgstr "文件下载最大值。仅对æ¥è‡ªäºŽ <a href> 标签的文件有效。默认为 %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:490 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "è¿žç»­æŠ“å–æœ€å°é—´éš”秒数。默认为 %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:492 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:500 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:494 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:502 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:496 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 " @@ -12075,7 +12276,7 @@ msgstr "" "ä»»ä½•åŒ¹é…æ­¤æ­£åˆ™è¡¨è¾¾å¼çš„链接都会被忽略。此选项å¯è¢«å¤šæ¬¡ä½¿ç”¨ï¼Œæ­¤æ—¶åªè¦ä»»ä¸€æ­£åˆ™è¡¨è¾¾å¼æœ‰åŒ¹é…链接,链接都被忽略。默认情况下,没有链接被忽略。如果 --" "filter-regexp å’Œ --match-regexp å‡è¢«ä½¿ç”¨ï¼Œåˆ™ä¼˜å…ˆåº”用 --filter-regexp。" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:504 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:498 msgid "Do not download CSS stylesheets." msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" @@ -12148,6 +12349,18 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ msgid "Show ¬ifications in system tray" #~ msgstr "在系统托盘除显示和æé†’" +#~ msgid "Failed to email books" +#~ msgstr "å‘é€ç”µå­ä¹¦ç±å¤±è´¥" + +#~ msgid "Failed to email the following books:" +#~ msgstr "无法通过电å­é‚®ä»¶å‘é€ä»¥ä¸‹ä¹¦ç±:" + +#~ msgid "Attached is the" +#~ msgstr "附加" + +#~ msgid "Sent by email:" +#~ msgstr "已通过邮件å‘é€:" + #~ msgid "" #~ "Email\n" #~ "Delivery" @@ -12202,6 +12415,9 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ msgid "Alt+S" #~ msgstr "Alt+S" +#~ msgid "&Search:" +#~ msgstr "æœç´¢(&S):" + #~ msgid "Sort by &popularity" #~ msgstr "按æµè¡Œåº¦æŽ’åº(&P)" @@ -12214,6 +12430,9 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ msgid "Configure calibre" #~ msgstr "é…ç½® Calibre" +#~ msgid "Finish gmail setup" +#~ msgstr "å®Œæˆ gmail 设定" + #~ msgid "Send specific format to storage card A" #~ msgstr "å‘逿Œ‡å®šæ ¼å¼åˆ°å­˜å‚¨å¡ A" @@ -12226,6 +12445,13 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ msgid "Read metadata only from &file name" #~ msgstr "从文件å读å–元数æ®(&F)" +#~ 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 "下列书ç±ä½¿ç”¨æ ¼å¼æ›¾ç»åœ¨æ•°æ®åº“中,现已ä¸å¯ç”¨ã€‚æ ¼å¼é¡¹è¢«ç§»é™¤ã€‚您需手动检查。这å¯èƒ½æ˜¯ç”±äºŽæ‚¨ç›´æŽ¥åœ¨ library 文件夹æ“作文件引起的。" + #~ msgid "&Check database integrity" #~ msgstr "检查数æ®åº“完整性(&C)" @@ -12313,6 +12539,16 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ msgid "Click to see the books available on your computer" #~ msgstr "点击查看电脑上å¯ç”¨ä¹¦ç±" +#~ msgid "" +#~ "Choose a location for your books. When you add books to calibre, they will " +#~ "be copied here:" +#~ msgstr "为您的书ç±é€‰æ‹©ä½ç½®ã€‚当您在 Calibre 中添加书ç±ï¼Œå®ƒä»¬å°†è¢«å¤åˆ¶åˆ°è¿™é‡Œï¼š" + +#~ msgid "" +#~ "Dont forget to enter your gmail username and password. You can sign up for a " +#~ "free gmail account at http://gmail.com" +#~ msgstr "请勿忘记输入您的 gmail 用户å密ç ã€‚您å¯äºŽ http://gmail.com 注册å…费账å·" + #~ msgid "" #~ "No metadata found, try adjusting the title and author or the ISBN key." #~ msgstr "未找到元数æ®ï¼Œè¯·ä¿®æ”¹æ ‡é¢˜ä½œè€…或 ISBN æœç´¢æ¡ä»¶åŽé‡è¯•。" @@ -12339,6 +12575,9 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ "available books are saved." #~ msgstr "逗å·åˆ†é𔿠¼å¼åˆ—表。默认ä¿å­˜æ‰€æœ‰å¯ç”¨ä¹¦ç±ã€‚" +#~ msgid "Password to access your calibre library. Username is " +#~ msgstr "密ç ä»¥è®¿é—®æ‚¨çš„ Calibre 书库。用户å为 " + #~ msgid "" #~ "[options]\n" #~ "\n" @@ -12380,6 +12619,11 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ msgid "Force maximum line lenght" #~ msgstr "强制最大行宽" +#~ 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 "PDF 文件部分转æ¢ä¸º HTMLï¼Œåœ¨æ­¤è®¾å®šå¹³å‡æ¢è¡Œè¡Œå®½ã€‚默认为 %default  å³å·²ç¦ç”¨ã€‚" + #~ msgid "Stop &all jobs" #~ msgstr "åœæ­¢æ‰€æœ‰ä»»åŠ¡(&A)" @@ -12425,6 +12669,13 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ msgid "Sending to &device" #~ msgstr "å‘é€åˆ°è®¾å¤‡(&D)" +#~ msgid "" +#~ "Regular expression: the expression must match anywhere in the metadata" +#~ msgstr "正则表达å¼ï¼šè¡¨è¾¾å¼å¿…须与元数æ®ä¸­æ‰€æœ‰å†…容寻求匹é…" + +#~ msgid " " +#~ msgstr " " + #~ msgid "<p>For help see the: <a href=\"%s\">User Manual</a><br>" #~ msgstr "<p>帮助å‚è§ï¼š<a href=\"%s\">用户手册</a><br>" @@ -12494,6 +12745,12 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ "å¦‚æžœæ‚¨é€‰å®šä¹¦ç± A 之åŽé€‰å®šä¹¦ç± B,\n" #~ "ä¹¦ç± A 为 1 å·ï¼ŒB 为 2 å·ã€‚" +#~ msgid "Contains: the word or phrase matches anywhere in the metadata" +#~ msgstr "包å«ï¼šçŸ­è¯­æˆ–文字与原数æ®ä¸­ä»»æ„ä½ç½®åŒ¹é…" + +#~ msgid "Equals: the word or phrase must match an entire metadata field" +#~ msgstr "等于:短语必须和一个元数æ®é¡¹å®Œå…¨åŒ¹é…" + #~ msgid "Failed to create calibre library at: %r. Aborting." #~ msgstr "在 %r 创建 calibre 书库失败。放弃。" @@ -12518,14 +12775,51 @@ msgstr "ä¸ä¸‹è½½ CSS æ ·å¼è¡¨ã€‚" #~ msgid "You cannot change libraries when a device is connected." #~ msgstr "有设置连接时,你ä¸èƒ½æ›´æ”¹ä¹¦åº“。" +#~ msgid "Click to open Book Details window" +#~ msgstr "点击打开书ç±è¯¦æƒ…窗å£" + +#~ msgid "" +#~ "Book formats and metadata from the selected books will be added to the " +#~ "<b>first selected book.</b> ISBN will <i>not</i> be merged.<br><br> The " +#~ "second and subsequently selected books will not be deleted or " +#~ "changed.<br><br>Please confirm you want to proceed." +#~ msgstr "" +#~ "选定书ç±çš„æ ¼å¼å’Œå…ƒæ•°æ®å°†è¢«æ·»åŠ åˆ°<b>第一本选定书ç±ã€‚</b>ISBN<i>ä¸ä¼š</i>被åˆå¹¶ã€‚<br><br> \r\n" +#~ "第二本和éšåŽçš„选定书ç±å°†ä¸ä¼šè¢«åˆ é™¤æˆ–更改。 <br><br>如果è¦ç»§ç»­çš„è¯è¯·å…ˆç¡®è®¤ã€‚" + #~ msgid "Additional Information" #~ msgstr "附加信æ¯" +#~ msgid "" +#~ "Book formats and metadata from the selected books will be merged into the " +#~ "<b>first selected book</b>. ISBN will <i>not</i> be merged.<br><br>After " +#~ "merger the second and subsequently selected books will be <b>deleted</b>. " +#~ "<br><br>All book formats of the first selected book will be kept and any " +#~ "duplicate formats in the second and subsequently selected books will be " +#~ "permanently <b>deleted</b> from your computer.<br><br> Are you <b>sure</b> " +#~ "you want to proceed?" +#~ msgstr "" +#~ "选定书ç±çš„æ ¼å¼å’Œå…ƒæ•°æ®å°†ä¼šè¢«åˆå¹¶è¿›<b>第一本选定书ç±</b>中。ISBN<i>ä¸ä¼š</i> " +#~ "被åˆå¹¶ã€‚<br><br>åˆå¹¶åŽï¼Œé€‰å®šçš„第二本书ç±åŠéšåŽçš„书ç±å°†ä¼šè¢«<b>删除</b>。<br><br>选定的第一本书ç±çš„æ‰€æœ‰ä¹¦ç±æ ¼å¼éƒ½ä¼šè¢«ä¿ç•™ä¸‹æ¥ï¼Œè€Œé€‰å®š" +#~ "书ç±çš„第二本和éšåŽçš„书ç±çš„é‡å¤æ ¼å¼éƒ½å°†ä»Žä½ ç”µè„‘上永久<b>删除</b>。<br><br>ä½ <b>确定</b>è¦ç»§ç»­å—?" + #~ msgid "Run the check" #~ msgstr "è¿è¡Œæ£€æŸ¥" +#~ msgid "&Search and replace (experimental)" +#~ msgstr "查找和替æ¢ï¼ˆ&S)(实验功能)" + #~ msgid "Cannot use tag editor" #~ msgstr "无法使用标签编辑器" #~ msgid "The tags editor cannot be used if you have modified the tags" #~ msgstr "如果你已ç»ä¿®æ”¹äº†æ ‡ç­¾ï¼Œé‚£ä¹ˆæ ‡ç­¾ç¼–辑器就无法使用" + +#~ msgid "" +#~ "<p>Enter a list of ISBNs in the box to the left, one per line. calibre will " +#~ "automatically create entries for books based on the ISBN and download " +#~ "metadata and covers for them.<p>Any invalid ISBNs in the list will be " +#~ "ignored." +#~ msgstr "" +#~ "<p>在左边的文本框中输入一组ISBNå·ï¼Œæ¯è¡Œä¸€ä¸ªã€‚calibre将为他们自动创建相应的书ç±é¡¹ï¼Œå¹¶ä»Žç½‘络下载书ç±å…ƒæ•°æ®å’Œå°é¢ã€‚<p>错误的ISBNå·ä¼šè¢«å¿½" +#~ "略。" diff --git a/src/calibre/utils/bibtex.py b/src/calibre/utils/bibtex.py index 1328aa9157..d19a6b05fe 100644 --- a/src/calibre/utils/bibtex.py +++ b/src/calibre/utils/bibtex.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Collection of python utility-methodes commonly used by other bibliograph packages. From http://pypi.python.org/pypi/bibliograph.core/ @@ -62,11 +60,14 @@ DAMAGE. """ -__docformat__ = 'reStructuredText' __author__ = 'sengian <sengian1 at gmail.com>' +__docformat__ = 'restructuredtext en' import re, string +from calibre.constants import preferred_encoding +from calibre.utils.mreplace import MReplace + utf8enc2latex_mapping = { # This is a mapping of Unicode characters to LaTeX equivalents. # The information has been extracted from @@ -2463,7 +2464,7 @@ utf8enc2latex_mapping = { u'\U0001d7fd': '$\\mathtt{7}$', u'\U0001d7fe': '$\\mathtt{8}$', u'\U0001d7ff': '$\\mathtt{9}$', - + #Items from simple list u'\u0106': "{\\a\\'C}", u'\u0408': '{\\CYRJE}', @@ -2842,69 +2843,66 @@ entity_mapping = { '"':'{"}', } -def ValidateCitationKey(text): - """ - removes characters not allowed in BibTeX keys +class BibTeX: + def __init__(self): + self.rep_utf8 = MReplace(utf8enc2latex_mapping) + self.rep_ent = MReplace(entity_mapping) + #Set default conversion to ASCII BibTeX + self.ascii_bibtex = True + # This substitution is based on the description of cite key restrictions at + # http://bibdesk.sourceforge.net/manual/BibDesk%20Help_2.html + self.invalid_cit = re.compile(u'[ "@\',\\#}{~%&$^]') + self.upper = re.compile(u'[' + + string.uppercase.decode(preferred_encoding) + u']') + self.escape = re.compile(u'[~#&%_]') - >>> from bibliograph.core.utils import _validKey - >>> _validKey(DummyEntry('Foo Bar')) - 'FooBar' + def ValidateCitationKey(self, text): + """ + removes characters not allowed in BibTeX keys + >>> ValidateCitationKey(DummyEntry('my@id')) + 'myid' + """ + return self.invalid_cit.sub(u'', text) - >>> _validKey(DummyEntry('my@id')) - 'myid' + def braceUppercase(self, text): + """ Convert uppercase letters to bibtex encoded uppercase + >>> braceUppercase('Foo Bar') + '{F}oo {B}ar' + """ + return self.upper.sub(lambda m: u'{%s}' % m.group(), text) - """ - # This substitution is based on the description of cite key restrictions at - # http://bibdesk.sourceforge.net/manual/BibDesk%20Help_2.html - return re.sub(u'[ "@\',\\#}{~%&$^]', u'', text) + def resolveEntities(self, text): + #for entity, entity_map in entity_mapping.iteritems(): + # text = text.replace(entity, entity_map) + #return text + return self.rep_ent.mreplace(text) -def BraceUppercase(text): - """ Convert uppercase letters to bibtex encoded uppercase + def resolveUnicode(self, text): + #UTF-8 text as entry + #for unichar, latexenc in utf8enc2latex_mapping.iteritems() : + # text = text.replace(unichar, latexenc) + text = self.rep_utf8.mreplace(text) + return text.replace(u'$}{$', u'') - >>> from bibliograph.core.utils import _braceUppercase - >>> _braceUppercase('foo bar') - 'foo bar' + def escapeSpecialCharacters(self, text): + """ + latex escaping some (not all) special characters + """ + text.replace('\\', '\\\\') + return self.escape.sub(lambda m: u'\\%s' % m.group(), text) - >>> _braceUppercase('Foo Bar') - '{F}oo {B}ar' - """ - for uc in string.uppercase: - text = text.replace(uc, u'{%s}' % uc) - return text + #Calibre functions + #Option to go to official ASCII Bibtex or unofficial UTF-8 + #Go from an unicode entry to ASCII Bibtex format without encoding + def utf8ToBibtex(self, text): + if len(text) == 0: + return '' + text.replace('\\', '\\\\') + text = self.resolveEntities(text) + if self.ascii_bibtex : + text = self.resolveUnicode(text) + return self.escapeSpecialCharacters(text) -def resolveEntities(text): - for entity, entity_map in entity_mapping.iteritems(): - text = text.replace(entity, entity_map) - return text - -def resolveUnicode(text): - #UTF-8 text as entry - for unichar, latexenc in utf8enc2latex_mapping.iteritems() : - text = text.replace(unichar, latexenc) - return text.replace(u'$}{$', u'') - -def escapeSpecialCharacters(text): - """ - latex escaping some (not all) special characters - """ - text.replace('\\', '\\\\') - escape = ['~', '#', '&', '%', '_'] - for c in escape: - text = text.replace(c, '\\' + c ) - return text - -#Calibre functions -#Go from an unicode entry to ASCII Bibtex format without encoding -#Option to go to official ASCII Bibtex or unofficial UTF-8 -def utf8ToBibtex(text, asccii_bibtex = True): - if len(text) == 0: - return '' - text.replace('\\', '\\\\') - text = resolveEntities(text) - if asccii_bibtex : - text = resolveUnicode(text) - return escapeSpecialCharacters(text) - -def bibtex_author_format(item): - #Format authors for Bibtex compliance (get a list as input) - return utf8ToBibtex(u' and'.join([author for author in item])) + def bibtex_author_format(self, item): + #Format authors for Bibtex compliance (get a list as input) + return self.utf8ToBibtex(u' and'.join([author for author in item])) diff --git a/src/calibre/utils/cleantext.py b/src/calibre/utils/cleantext.py new file mode 100644 index 0000000000..b4afe7576d --- /dev/null +++ b/src/calibre/utils/cleantext.py @@ -0,0 +1,23 @@ +from __future__ import with_statement +__license__ = 'GPL 3' +__copyright__ = '2010, sengian <sengian1@gmail.com>' +__docformat__ = 'restructuredtext en' + +import re + +_ascii_pat = None + +def clean_ascii_chars(txt, charlist=None): + 'remove ASCII invalid chars : 0 to 8 and 11-14 to 24-26-27 by default' + global _ascii_pat + if _ascii_pat is None: + chars = list(range(8)) + [0x0B, 0x0E, 0x0F] + list(range(0x10, 0x19)) \ + + [0x1A, 0x1B] + _ascii_pat = re.compile(u'|'.join(map(unichr, chars))) + + if charlist is None: + pat = _ascii_pat + else: + pat = re.compile(u'|'.join(map(unichr, charlist))) + return pat.sub('', txt) + diff --git a/src/calibre/utils/date.py b/src/calibre/utils/date.py index ec58c49628..f025a0c9bf 100644 --- a/src/calibre/utils/date.py +++ b/src/calibre/utils/date.py @@ -151,3 +151,45 @@ def format_date(dt, format, assume_utc=False, as_utc=False): format = re.sub('d{1,4}', format_day, format) format = re.sub('M{1,4}', format_month, format) return re.sub('yyyy|yy', format_year, format) + +def replace_months(datestr, clang): + # Replace months by english equivalent for parse_date + frtoen = { + u'[jJ]anvier': u'jan', + u'[fF].vrier': u'feb', + u'[mM]ars': u'mar', + u'[aA]vril': u'apr', + u'[mM]ai': u'may', + u'[jJ]uin': u'jun', + u'[jJ]uillet': u'jul', + u'[aA]o.t': u'aug', + u'[sS]eptembre': u'sep', + u'[Oo]ctobre': u'oct', + u'[nN]ovembre': u'nov', + u'[dD].cembre': u'dec' } + detoen = { + u'[jJ]anuar': u'jan', + u'[fF]ebruar': u'feb', + u'[mM].rz': u'mar', + u'[aA]pril': u'apr', + u'[mM]ai': u'may', + u'[jJ]uni': u'jun', + u'[jJ]uli': u'jul', + u'[aA]ugust': u'aug', + u'[sS]eptember': u'sep', + u'[Oo]ktober': u'oct', + u'[nN]ovember': u'nov', + u'[dD]ezember': u'dec' } + + if clang == 'fr': + dictoen = frtoen + elif clang == 'de': + dictoen = detoen + else: + return datestr + + for k in dictoen.iterkeys(): + tmp = re.sub(k, dictoen[k], datestr) + if tmp != datestr: break + return tmp + diff --git a/src/calibre/utils/formatter.py b/src/calibre/utils/formatter.py index 336ac2390b..a7fb3682aa 100644 --- a/src/calibre/utils/formatter.py +++ b/src/calibre/utils/formatter.py @@ -8,12 +8,15 @@ import re, string, traceback from calibre.constants import DEBUG from calibre.utils.titlecase import titlecase +from calibre.utils.icu import capitalize class TemplateFormatter(string.Formatter): ''' Provides a format function that substitutes '' for any missing value ''' + _validation_string = 'This Is Some Text THAT SHOULD be LONG Enough.%^&*' + # Dict to do recursion detection. It is up the the individual get_value # method to use it. It is cleared when starting to format a template composite_values = {} @@ -79,11 +82,14 @@ class TemplateFormatter(string.Formatter): else: return val + def _count(self, val, sep): + return unicode(len(val.split(sep))) + functions = { 'uppercase' : (0, lambda s,x: x.upper()), 'lowercase' : (0, lambda s,x: x.lower()), 'titlecase' : (0, lambda s,x: titlecase(x)), - 'capitalize' : (0, lambda s,x: x.capitalize()), + 'capitalize' : (0, lambda s,x: capitalize(x)), 'contains' : (3, _contains), 'ifempty' : (1, _ifempty), 'lookup' : (-1, _lookup), @@ -91,21 +97,32 @@ class TemplateFormatter(string.Formatter): 'shorten' : (3, _shorten), 'switch' : (-1, _switch), 'test' : (2, _test), + 'count' : (1, _count), } - format_string_re = re.compile(r'^(.*)\|(.*)\|(.*)$') - compress_spaces = re.compile(r'\s+') - backslash_comma_to_comma = re.compile(r'\\,') - - arg_parser = re.Scanner([ - (r',', lambda x,t: ''), - (r'.*?((?<!\\),)', lambda x,t: t[:-1]), - (r'.*?\)', lambda x,t: t[:-1]), - ]) - - def get_value(self, key, args, kwargs): - raise Exception('get_value must be implemented in the subclass') - + def _do_format(self, val, fmt): + if not fmt or not val: + return val + if val == self._validation_string: + val = '0' + typ = fmt[-1] + if typ == 's': + pass + elif 'bcdoxXn'.find(typ) >= 0: + try: + val = int(val) + except: + raise ValueError( + _('format: type {0} requires an integer value, got {1}').format(typ, val)) + elif 'eEfFgGn%'.find(typ) >= 0: + try: + val = float(val) + except: + raise ValueError( + _('format: type {0} requires a decimal (float) value, got {1}').format(typ, val)) + else: + raise ValueError(_('format: unknown format type letter {0}').format(typ)) + return unicode(('{0:'+fmt+'}').format(val)) def _explode_format_string(self, fmt): try: @@ -118,6 +135,21 @@ class TemplateFormatter(string.Formatter): traceback.print_exc() return fmt, '', '' + format_string_re = re.compile(r'^(.*)\|(.*)\|(.*)$') + compress_spaces = re.compile(r'\s+') + backslash_comma_to_comma = re.compile(r'\\,') + + arg_parser = re.Scanner([ + (r',', lambda x,t: ''), + (r'.*?((?<!\\),)', lambda x,t: t[:-1]), + (r'.*?\)', lambda x,t: t[:-1]), + ]) + + ################## Override parent classes methods ##################### + + def get_value(self, key, args, kwargs): + raise Exception('get_value must be implemented in the subclass') + def format_field(self, val, fmt): # Handle conditional text fmt, prefix, suffix = self._explode_format_string(fmt) @@ -136,8 +168,13 @@ class TemplateFormatter(string.Formatter): if fmt[colon:p] in self.functions: field = fmt[colon:p] func = self.functions[field] - args = self.arg_parser.scan(fmt[p+1:])[0] - args = [self.backslash_comma_to_comma.sub(',', a) for a in args] + if func[0] == 1: + # only one arg expected. Don't bother to scan. Avoids need + # for escaping characters + args = [fmt[p+1:-1]] + else: + args = self.arg_parser.scan(fmt[p+1:])[0] + args = [self.backslash_comma_to_comma.sub(',', a) for a in args] if (func[0] == 0 and (len(args) != 1 or args[0])) or \ (func[0] > 0 and func[0] != len(args)): raise ValueError('Incorrect number of arguments for function '+ fmt[0:p]) @@ -146,7 +183,7 @@ class TemplateFormatter(string.Formatter): else: val = func[1](self, val, *args).strip() if val: - val = string.Formatter.format_field(self, val, dispfmt) + val = self._do_format(val, dispfmt) if not val: return '' return prefix + val + suffix @@ -155,6 +192,8 @@ class TemplateFormatter(string.Formatter): ans = string.Formatter.vformat(self, fmt, args, kwargs) return self.compress_spaces.sub(' ', ans).strip() + ########## a formatter guaranteed not to throw and exception ############ + def safe_format(self, fmt, kwargs, error_value, book): self.kwargs = kwargs self.book = book @@ -172,7 +211,7 @@ class ValidateFormat(TemplateFormatter): Provides a format function that substitutes '' for any missing value ''' def get_value(self, key, args, kwargs): - return 'this is some text that should be long enough' + return self._validation_string def validate(self, x): return self.vformat(x, [], {}) diff --git a/src/calibre/utils/icu.c b/src/calibre/utils/icu.c new file mode 100644 index 0000000000..7ec94c32ff --- /dev/null +++ b/src/calibre/utils/icu.c @@ -0,0 +1,419 @@ +#define UNICODE +#define PY_SSIZE_T_CLEAN +#include <Python.h> +#include <unicode/utypes.h> +#include <unicode/uclean.h> +#include <unicode/ucol.h> +#include <unicode/ustring.h> + + +// Collator object definition {{{ +typedef struct { + PyObject_HEAD + // Type-specific fields go here. + UCollator *collator; + +} icu_Collator; + +static void +icu_Collator_dealloc(icu_Collator* self) +{ + if (self->collator != NULL) ucol_close(self->collator); + self->collator = NULL; + self->ob_type->tp_free((PyObject*)self); +} + +static PyObject * +icu_Collator_new(PyTypeObject *type, PyObject *args, PyObject *kwds) +{ + icu_Collator *self; + const char *loc; + UErrorCode status = U_ZERO_ERROR; + + if (!PyArg_ParseTuple(args, "s", &loc)) return NULL; + + self = (icu_Collator *)type->tp_alloc(type, 0); + if (self != NULL) { + self->collator = ucol_open(loc, &status); + if (self->collator == NULL || U_FAILURE(status)) { + PyErr_SetString(PyExc_Exception, "Failed to create collator."); + self->collator = NULL; + Py_DECREF(self); + return NULL; + } + } + + return (PyObject *)self; +} + +// Collator.display_name {{{ +static PyObject * +icu_Collator_display_name(icu_Collator *self, void *closure) { + const char *loc = NULL; + UErrorCode status = U_ZERO_ERROR; + UChar dname[400]; + char buf[100]; + + loc = ucol_getLocaleByType(self->collator, ULOC_ACTUAL_LOCALE, &status); + if (loc == NULL || U_FAILURE(status)) { + PyErr_SetString(PyExc_Exception, "Failed to get actual locale"); return NULL; + } + ucol_getDisplayName(loc, "en", dname, 100, &status); + if (U_FAILURE(status)) return PyErr_NoMemory(); + + u_strToUTF8(buf, 100, NULL, dname, -1, &status); + if (U_FAILURE(status)) { + PyErr_SetString(PyExc_Exception, "Failed ot convert dname to UTF-8"); return NULL; + } + return Py_BuildValue("s", buf); +} + +// }}} + +// Collator.actual_locale {{{ +static PyObject * +icu_Collator_actual_locale(icu_Collator *self, void *closure) { + const char *loc = NULL; + UErrorCode status = U_ZERO_ERROR; + + loc = ucol_getLocaleByType(self->collator, ULOC_ACTUAL_LOCALE, &status); + if (loc == NULL || U_FAILURE(status)) { + PyErr_SetString(PyExc_Exception, "Failed to get actual locale"); return NULL; + } + return Py_BuildValue("s", loc); +} + +// }}} + +// Collator.sort_key {{{ +static PyObject * +icu_Collator_sort_key(icu_Collator *self, PyObject *args, PyObject *kwargs) { + char *input; + Py_ssize_t sz; + UChar *buf; + uint8_t *buf2; + PyObject *ans; + int32_t key_size; + UErrorCode status = U_ZERO_ERROR; + + if (!PyArg_ParseTuple(args, "es", "UTF-8", &input)) return NULL; + + sz = strlen(input); + + buf = (UChar*)calloc(sz*4 + 1, sizeof(UChar)); + + if (buf == NULL) return PyErr_NoMemory(); + + u_strFromUTF8(buf, sz*4 + 1, &key_size, input, sz, &status); + PyMem_Free(input); + + if (U_SUCCESS(status)) { + buf2 = (uint8_t*)calloc(7*sz+1, sizeof(uint8_t)); + if (buf2 == NULL) return PyErr_NoMemory(); + + key_size = ucol_getSortKey(self->collator, buf, -1, buf2, 7*sz+1); + + if (key_size == 0) { + ans = PyBytes_FromString(""); + } else { + if (key_size >= 7*sz+1) { + free(buf2); + buf2 = (uint8_t*)calloc(key_size+1, sizeof(uint8_t)); + if (buf2 == NULL) return PyErr_NoMemory(); + ucol_getSortKey(self->collator, buf, -1, buf2, key_size+1); + } + ans = PyBytes_FromString((char *)buf2); + } + free(buf2); + } else ans = PyBytes_FromString(""); + + free(buf); + if (ans == NULL) return PyErr_NoMemory(); + + return ans; +} // }}} + +// Collator.strcmp {{{ +static PyObject * +icu_Collator_strcmp(icu_Collator *self, PyObject *args, PyObject *kwargs) { + char *a_, *b_; + size_t asz, bsz; + UChar *a, *b; + UErrorCode status = U_ZERO_ERROR; + UCollationResult res = UCOL_EQUAL; + + if (!PyArg_ParseTuple(args, "eses", "UTF-8", &a_, "UTF-8", &b_)) return NULL; + + asz = strlen(a_); bsz = strlen(b_); + + a = (UChar*)calloc(asz*4 + 1, sizeof(UChar)); + b = (UChar*)calloc(bsz*4 + 1, sizeof(UChar)); + + + if (a == NULL || b == NULL) return PyErr_NoMemory(); + + u_strFromUTF8(a, asz*4 + 1, NULL, a_, asz, &status); + u_strFromUTF8(b, bsz*4 + 1, NULL, b_, bsz, &status); + PyMem_Free(a_); PyMem_Free(b_); + + if (U_SUCCESS(status)) + res = ucol_strcoll(self->collator, a, -1, b, -1); + + free(a); free(b); + + return Py_BuildValue("i", res); +} // }}} + + + +static PyMethodDef icu_Collator_methods[] = { + {"sort_key", (PyCFunction)icu_Collator_sort_key, METH_VARARGS, + "sort_key(unicode object) -> Return a sort key for the given object as a bytestring. The idea is that these bytestring will sort using the builtin cmp function, just like the original unicode strings would sort in the current locale with ICU." + }, + + {"strcmp", (PyCFunction)icu_Collator_strcmp, METH_VARARGS, + "strcmp(unicode object, unicode object) -> strcmp(a, b) <=> cmp(sorty_key(a), sort_key(b)), but faster." + }, + + {NULL} /* Sentinel */ +}; + +static PyGetSetDef icu_Collator_getsetters[] = { + {(char *)"actual_locale", + (getter)icu_Collator_actual_locale, NULL, + (char *)"Actual locale used by this collator.", + NULL}, + + {(char *)"display_name", + (getter)icu_Collator_display_name, NULL, + (char *)"Display name of this collator in English. The name reflects the actual data source used.", + NULL}, + + {NULL} /* Sentinel */ +}; + +static PyTypeObject icu_CollatorType = { // {{{ + PyObject_HEAD_INIT(NULL) + 0, /*ob_size*/ + "icu.Collator", /*tp_name*/ + sizeof(icu_Collator), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)icu_Collator_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + "Collator", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + icu_Collator_methods, /* tp_methods */ + 0, /* tp_members */ + icu_Collator_getsetters, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + icu_Collator_new, /* tp_new */ +}; // }}} + +// }} + + +// }}} + +// Module initialization {{{ + +// upper {{{ +static PyObject * +icu_upper(PyObject *self, PyObject *args) { + char *input, *ans, *buf3 = NULL; + const char *loc; + size_t sz; + UChar *buf, *buf2; + PyObject *ret; + UErrorCode status = U_ZERO_ERROR; + + + if (!PyArg_ParseTuple(args, "ses", &loc, "UTF-8", &input)) return NULL; + + sz = strlen(input); + + buf = (UChar*)calloc(sz*4 + 1, sizeof(UChar)); + buf2 = (UChar*)calloc(sz*8 + 1, sizeof(UChar)); + + + if (buf == NULL || buf2 == NULL) return PyErr_NoMemory(); + + u_strFromUTF8(buf, sz*4, NULL, input, sz, &status); + u_strToUpper(buf2, sz*8, buf, -1, loc, &status); + + ans = input; + sz = u_strlen(buf2); + free(buf); + + if (U_SUCCESS(status) && sz > 0) { + buf3 = (char*)calloc(sz*5+1, sizeof(char)); + if (buf3 == NULL) return PyErr_NoMemory(); + u_strToUTF8(buf3, sz*5, NULL, buf2, -1, &status); + if (U_SUCCESS(status)) ans = buf3; + } + + ret = PyUnicode_DecodeUTF8(ans, strlen(ans), "replace"); + if (ret == NULL) return PyErr_NoMemory(); + + free(buf2); + if (buf3 != NULL) free(buf3); + PyMem_Free(input); + + return ret; +} // }}} + +// lower {{{ +static PyObject * +icu_lower(PyObject *self, PyObject *args) { + char *input, *ans, *buf3 = NULL; + const char *loc; + size_t sz; + UChar *buf, *buf2; + PyObject *ret; + UErrorCode status = U_ZERO_ERROR; + + + if (!PyArg_ParseTuple(args, "ses", &loc, "UTF-8", &input)) return NULL; + + sz = strlen(input); + + buf = (UChar*)calloc(sz*4 + 1, sizeof(UChar)); + buf2 = (UChar*)calloc(sz*8 + 1, sizeof(UChar)); + + + if (buf == NULL || buf2 == NULL) return PyErr_NoMemory(); + + u_strFromUTF8(buf, sz*4, NULL, input, sz, &status); + u_strToLower(buf2, sz*8, buf, -1, loc, &status); + + ans = input; + sz = u_strlen(buf2); + free(buf); + + if (U_SUCCESS(status) && sz > 0) { + buf3 = (char*)calloc(sz*5+1, sizeof(char)); + if (buf3 == NULL) return PyErr_NoMemory(); + u_strToUTF8(buf3, sz*5, NULL, buf2, -1, &status); + if (U_SUCCESS(status)) ans = buf3; + } + + ret = PyUnicode_DecodeUTF8(ans, strlen(ans), "replace"); + if (ret == NULL) return PyErr_NoMemory(); + + free(buf2); + if (buf3 != NULL) free(buf3); + PyMem_Free(input); + + return ret; +} + +// title {{{ +static PyObject * +icu_title(PyObject *self, PyObject *args) { + char *input, *ans, *buf3 = NULL; + const char *loc; + size_t sz; + UChar *buf, *buf2; + PyObject *ret; + UErrorCode status = U_ZERO_ERROR; + + + if (!PyArg_ParseTuple(args, "ses", &loc, "UTF-8", &input)) return NULL; + + sz = strlen(input); + + buf = (UChar*)calloc(sz*4 + 1, sizeof(UChar)); + buf2 = (UChar*)calloc(sz*8 + 1, sizeof(UChar)); + + + if (buf == NULL || buf2 == NULL) return PyErr_NoMemory(); + + u_strFromUTF8(buf, sz*4, NULL, input, sz, &status); + u_strToTitle(buf2, sz*8, buf, -1, NULL, loc, &status); + + ans = input; + sz = u_strlen(buf2); + free(buf); + + if (U_SUCCESS(status) && sz > 0) { + buf3 = (char*)calloc(sz*5+1, sizeof(char)); + if (buf3 == NULL) return PyErr_NoMemory(); + u_strToUTF8(buf3, sz*5, NULL, buf2, -1, &status); + if (U_SUCCESS(status)) ans = buf3; + } + + ret = PyUnicode_DecodeUTF8(ans, strlen(ans), "replace"); + if (ret == NULL) return PyErr_NoMemory(); + + free(buf2); + if (buf3 != NULL) free(buf3); + PyMem_Free(input); + + return ret; +} + + + +static PyMethodDef icu_methods[] = { + {"upper", icu_upper, METH_VARARGS, + "upper(locale, unicode object) -> upper cased unicode object using locale rules." + }, + + {"lower", icu_lower, METH_VARARGS, + "lower(locale, unicode object) -> lower cased unicode object using locale rules." + }, + + {"title", icu_title, METH_VARARGS, + "title(locale, unicode object) -> Title cased unicode object using locale rules." + }, + + {NULL} /* Sentinel */ +}; + + +PyMODINIT_FUNC +initicu(void) +{ + PyObject* m; + UErrorCode status = U_ZERO_ERROR; + + u_init(&status); + + + if (PyType_Ready(&icu_CollatorType) < 0) + return; + + m = Py_InitModule3("icu", icu_methods, + "Wrapper for the ICU internationalization library"); + + Py_INCREF(&icu_CollatorType); + PyModule_AddObject(m, "Collator", (PyObject *)&icu_CollatorType); + // uint8_t must be the same size as char + PyModule_AddIntConstant(m, "ok", (U_SUCCESS(status) && sizeof(uint8_t) == sizeof(char)) ? 1 : 0); + +} +// }}} diff --git a/src/calibre/utils/icu.py b/src/calibre/utils/icu.py new file mode 100644 index 0000000000..4b0f6d4821 --- /dev/null +++ b/src/calibre/utils/icu.py @@ -0,0 +1,237 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai + +__license__ = 'GPL v3' +__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' +__docformat__ = 'restructuredtext en' + +# Setup code {{{ +from functools import partial + +from calibre.constants import plugins +from calibre.utils.config import tweaks + +_icu = _collator = None +_locale = None + +_none = u'' +_none2 = b'' + +def get_locale(): + global _locale + if _locale is None: + from calibre.utils.localization import get_lang + if tweaks['locale_for_sorting']: + _locale = tweaks['locale_for_sorting'] + else: + _locale = get_lang() + return _locale + +def load_icu(): + global _icu + if _icu is None: + _icu = plugins['icu'][0] + if _icu is None: + print plugins['icu'][1] + else: + if not _icu.ok: + print 'icu not ok' + _icu = None + return _icu + +def load_collator(): + global _collator + if _collator is None: + icu = load_icu() + if icu is not None: + _collator = icu.Collator(get_locale()) + return _collator + + +def py_sort_key(obj): + if not obj: + return _none + return obj.lower() + +def icu_sort_key(collator, obj): + if not obj: + return _none2 + return collator.sort_key(lower(obj)) + +def py_case_sensitive_sort_key(obj): + if not obj: + return _none + return obj + +def icu_case_sensitive_sort_key(collator, obj): + if not obj: + return _none2 + return collator.sort_key(obj) + +def icu_strcmp(collator, a, b): + return collator.strcmp(lower(a), lower(b)) + +def py_strcmp(a, b): + return cmp(a.lower(), b.lower()) + +def icu_case_sensitive_strcmp(collator, a, b): + return collator.strcmp(a, b) + + +load_icu() +load_collator() +_icu_not_ok = _icu is None or _collator is None + +# }}} + +################# The string functions ######################################## + +sort_key = py_sort_key if _icu_not_ok else partial(icu_sort_key, _collator) + +strcmp = py_strcmp if _icu_not_ok else partial(icu_strcmp, _collator) + +case_sensitive_sort_key = py_case_sensitive_sort_key if _icu_not_ok else \ + icu_case_sensitive_sort_key + +case_sensitive_strcmp = cmp if _icu_not_ok else icu_case_sensitive_strcmp + +upper = (lambda s: s.upper()) if _icu_not_ok else \ + partial(_icu.upper, get_locale()) + +lower = (lambda s: s.lower()) if _icu_not_ok else \ + partial(_icu.lower, get_locale()) + +title_case = (lambda s: s.title()) if _icu_not_ok else \ + partial(_icu.title, get_locale()) + +def icu_capitalize(s): + s = lower(s) + return s.replace(s[0], upper(s[0])) + +capitalize = (lambda s: s.capitalize()) if _icu_not_ok else \ + (lambda s: icu_capitalize(s)) + +################################################################################ + +def test(): # {{{ + # Data {{{ + german = ''' + Sonntag +Montag +Dienstag +Januar +Februar +März +Fuße +Fluße +Flusse +flusse +fluße +flüße +flüsse +''' + german_good = ''' + Dienstag +Februar +flusse +Flusse +fluße +Fluße +flüsse +flüße +Fuße +Januar +März +Montag +Sonntag''' + french = ''' +dimanche +lundi +mardi +janvier +février +mars +déjà +Meme +deja +même +dejà +bpef +bÅ“g +Boef +Mémé +bÅ“f +boef +bnef +pêche +pèché +pêché +pêche +pêché''' + french_good = ''' + bnef + boef + Boef + bÅ“f + bÅ“g + bpef + deja + dejà + déjà + dimanche + février + janvier + lundi + mardi + mars + Meme + Mémé + même + pèché + pêche + pêche + pêché + pêché''' + # }}} + + def create(l): + l = l.decode('utf-8').splitlines() + return [x.strip() for x in l if x.strip()] + + def test_strcmp(entries): + for x in entries: + for y in entries: + if strcmp(x, y) != cmp(sort_key(x), sort_key(y)): + print 'strcmp failed for %r, %r'%(x, y) + + german = create(german) + c = _icu.Collator('de') + print 'Sorted german:: (%s)'%c.actual_locale + gs = list(sorted(german, key=c.sort_key)) + for x in gs: + print '\t', x.encode('utf-8') + if gs != create(german_good): + print 'German failed' + return + print + french = create(french) + c = _icu.Collator('fr') + print 'Sorted french:: (%s)'%c.actual_locale + fs = list(sorted(french, key=c.sort_key)) + for x in fs: + print '\t', x.encode('utf-8') + if fs != create(french_good): + print 'French failed (note that French fails with icu < 4.6 i.e. on windows and OS X)' + # return + test_strcmp(german + french) + + print '\nTesting case transforms in current locale' + for x in ('a', 'Alice\'s code'): + print 'Upper: ', x, '->', 'py:', x.upper().encode('utf-8'), 'icu:', upper(x).encode('utf-8') + print 'Lower: ', x, '->', 'py:', x.lower().encode('utf-8'), 'icu:', lower(x).encode('utf-8') + print 'Title: ', x, '->', 'py:', x.title().encode('utf-8'), 'icu:', title_case(x).encode('utf-8') + print 'Capitalize:', x, '->', 'py:', x.capitalize().encode('utf-8'), 'icu:', capitalize(x).encode('utf-8') + print + +# }}} + diff --git a/src/calibre/utils/ipc/launch.py b/src/calibre/utils/ipc/launch.py index a179f356be..28d5d889e3 100644 --- a/src/calibre/utils/ipc/launch.py +++ b/src/calibre/utils/ipc/launch.py @@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en' import subprocess, os, sys, time, binascii, cPickle -from calibre.constants import iswindows, isosx, isfrozen, isnewosx +from calibre.constants import iswindows, isosx, isfrozen from calibre.utils.config import prefs from calibre.ptempfile import PersistentTemporaryFile, base_dir @@ -51,17 +51,11 @@ class Worker(object): return os.path.join(os.path.dirname(sys.executable), e+'.exe' if isfrozen else \ 'Scripts\\%s.exe'%e) - if isnewosx: + if isosx: return os.path.join(sys.console_binaries_path, e) - if isosx: - if not isfrozen: return e - contents = os.path.join(self.osx_contents_dir, - 'console.app', 'Contents') - return os.path.join(contents, 'MacOS', self.osx_interpreter) - if isfrozen: - return os.path.join(getattr(sys, 'frozen_path'), e) + return os.path.join(sys.executables_location, e) c = os.path.join(sys.executables_location, e) if os.access(c, os.X_OK): @@ -71,13 +65,9 @@ class Worker(object): @property def gui_executable(self): - if isnewosx: + if isosx: return os.path.join(sys.binaries_path, self.exe_name) - if isfrozen and isosx: - return os.path.join(self.osx_contents_dir, - 'MacOS', self.osx_interpreter) - return self.executable @property @@ -123,27 +113,6 @@ class Worker(object): def __init__(self, env, gui=False): self._env = {} self.gui = gui - if isosx and isfrozen and not isnewosx: - contents = os.path.join(self.osx_contents_dir, 'console.app', 'Contents') - resources = os.path.join(contents, 'Resources') - fd = os.path.join(contents, 'Frameworks') - sp = os.path.join(resources, 'lib', 'python'+sys.version[:3], 'site-packages.zip') - self.osx_prefix = 'import sys, os; sys.frameworks_dir = "%s"; sys.frozen = "macosx_app"; '%fd - self.osx_prefix += 'sys.path.insert(0, %s); '%repr(sp) - self.osx_prefix += 'sys.extensions_location = os.path.join(sys.frameworks_dir, "plugins");' - self.osx_prefix += 'sys.resources_location = os.path.join(os.path.dirname(sys.frameworks_dir), "Resources", "resources"); ' - - self._env['PYTHONHOME'] = resources - self._env['MAGICK_HOME'] = os.path.join(fd, 'ImageMagick') - self._env['DYLD_LIBRARY_PATH'] = os.path.join(fd, 'ImageMagick', 'lib') - self._env['FONTCONFIG_PATH'] = \ - os.path.join(os.path.realpath(resources), 'fonts') - self._env['QT_PLUGIN_PATH'] = \ - os.path.join(self.osx_contents_dir, 'MacOS') - - if isfrozen and not (iswindows or isosx): - self._env['LD_LIBRARY_PATH'] = getattr(sys, 'frozen_path') + ':'\ - + os.environ.get('LD_LIBRARY_PATH', '') self._env.update(env) def __call__(self, redirect_output=True, cwd=None, priority=None): @@ -155,13 +124,9 @@ class Worker(object): env = self.env env['ORIGWD'] = cwd or os.path.abspath(os.getcwd()) _cwd = cwd - if isfrozen and not iswindows and not isosx: - _cwd = getattr(sys, 'frozen_path', None) if priority is None: priority = prefs['worker_process_priority'] cmd = [exe] - if isosx and not isnewosx: - cmd += ['-c', self.osx_prefix + 'from calibre.utils.ipc.worker import main; main()'] args = { 'env' : env, 'cwd' : _cwd, diff --git a/src/calibre/utils/localization.py b/src/calibre/utils/localization.py index 2532962bf6..d452721113 100644 --- a/src/calibre/utils/localization.py +++ b/src/calibre/utils/localization.py @@ -118,8 +118,13 @@ _extra_lang_codes = { 'und' : _('Unknown') } +_lcase_map = {} +for k in _extra_lang_codes: + _lcase_map[k.lower()] = k + def get_language(lang): global _iso639 + lang = _lcase_map.get(lang, lang) if lang in _extra_lang_codes: return _extra_lang_codes[lang] ip = P('localization/iso639.pickle') diff --git a/src/calibre/utils/magick/magick.c b/src/calibre/utils/magick/magick.c index 0aab5f1fd7..9dac37f2ff 100644 --- a/src/calibre/utils/magick/magick.c +++ b/src/calibre/utils/magick/magick.c @@ -414,7 +414,7 @@ magick_Image_load(magick_Image *self, PyObject *args, PyObject *kwargs) { // }}} -// Image.load {{{ +// Image.open {{{ static PyObject * magick_Image_read(magick_Image *self, PyObject *args, PyObject *kwargs) { const char *data; diff --git a/src/calibre/utils/mreplace.py b/src/calibre/utils/mreplace.py new file mode 100644 index 0000000000..b9fbc0bded --- /dev/null +++ b/src/calibre/utils/mreplace.py @@ -0,0 +1,32 @@ +#multiple replace from dictionnary : http://code.activestate.com/recipes/81330/ +__license__ = 'GPL v3' +__copyright__ = '2010, sengian <sengian1 @ gmail.com>' +__docformat__ = 'restructuredtext en' + +import re +from UserDict import UserDict + +class MReplace(UserDict): + def __init__(self, dict = None): + UserDict.__init__(self, dict) + self.re = None + self.regex = None + self.compile_regex() + + def compile_regex(self): + if len(self.data) > 0: + keys = sorted(self.data.keys(), key=len) + keys.reverse() + tmp = "(%s)" % "|".join(map(re.escape, keys)) + if self.re != tmp: + self.re = tmp + self.regex = re.compile(self.re) + + def __call__(self, mo): + return self[mo.string[mo.start():mo.end()]] + + def mreplace(self, text): + #Replace without regex compile + if len(self.data) < 1 or self.re is None: + return text + return self.regex.sub(self, text) \ No newline at end of file diff --git a/src/calibre/utils/recycle_bin.py b/src/calibre/utils/recycle_bin.py new file mode 100644 index 0000000000..df6016d796 --- /dev/null +++ b/src/calibre/utils/recycle_bin.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai + +__license__ = 'GPL v3' +__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' +__docformat__ = 'restructuredtext en' + +import os, shutil, time +from functools import partial + +from calibre import isbytestring +from calibre.constants import iswindows, isosx, plugins, filesystem_encoding + +recycle = None + +if iswindows: + import calibre.utils.winshell as winshell + recycle = partial(winshell.delete_file, silent=True, no_confirm=True) +elif isosx: + u = plugins['usbobserver'][0] + if hasattr(u, 'send2trash'): + def recycle(path): + if isbytestring(path): + path = path.decode(filesystem_encoding) + u.send2trash(path) + + +def delete_file(path): + if callable(recycle): + try: + recycle(path) + return + except: + import traceback + traceback.print_exc() + os.remove(path) + +def delete_tree(path, permanent=False): + if permanent: + try: + # For completely mysterious reasons, sometimes a file is left open + # leading to access errors. If we get an exception, wait and hope + # that whatever has the file (the O/S?) lets go of it. + shutil.rmtree(path) + except: + import traceback + traceback.print_exc() + time.sleep(1) + shutil.rmtree(path) + else: + if callable(recycle): + try: + recycle(path) + return + except: + import traceback + traceback.print_exc() + delete_tree(path, permanent=True) + diff --git a/src/calibre/utils/search_query_parser.py b/src/calibre/utils/search_query_parser.py index 85a64956a8..db7c7bde5f 100644 --- a/src/calibre/utils/search_query_parser.py +++ b/src/calibre/utils/search_query_parser.py @@ -22,6 +22,7 @@ from calibre.utils.pyparsing import CaselessKeyword, Group, Forward, \ CharsNotIn, Suppress, OneOrMore, MatchFirst, CaselessLiteral, \ Optional, NoMatch, ParseException, QuotedString from calibre.constants import preferred_encoding +from calibre.utils.icu import sort_key @@ -65,8 +66,7 @@ class SavedSearchQueries(object): self.db.prefs[self.opt_name] = self.queries def names(self): - return sorted(self.queries.keys(), - cmp=lambda x,y: cmp(x.lower(), y.lower())) + return sorted(self.queries.keys(),key=sort_key) ''' Create a global instance of the saved searches. It is global so that the searches diff --git a/src/calibre/utils/smtp.py b/src/calibre/utils/smtp.py index b8b46a96cb..744021f911 100644 --- a/src/calibre/utils/smtp.py +++ b/src/calibre/utils/smtp.py @@ -58,11 +58,15 @@ def get_mx(host, verbose=0): int(getattr(y, 'preference', sys.maxint)))) return [str(x.exchange) for x in answers if hasattr(x, 'exchange')] -def sendmail_direct(from_, to, msg, timeout, localhost, verbose): - import smtplib +def sendmail_direct(from_, to, msg, timeout, localhost, verbose, + debug_output=None): + import calibre.utils.smtplib as smtplib hosts = get_mx(to.split('@')[-1].strip(), verbose) timeout=None # Non blocking sockets sometimes don't work - s = smtplib.SMTP(timeout=timeout, local_hostname=localhost) + kwargs = dict(timeout=timeout, local_hostname=localhost) + if debug_output is not None: + kwargs['debug_to'] = debug_output + s = smtplib.SMTP(**kwargs) s.set_debuglevel(verbose) if not hosts: raise ValueError('No mail server found for address: %s'%to) @@ -79,20 +83,23 @@ def sendmail_direct(from_, to, msg, timeout, localhost, verbose): raise IOError('Failed to send mail: '+repr(last_error)) -def sendmail(msg, from_, to, localhost=None, verbose=0, timeout=30, +def sendmail(msg, from_, to, localhost=None, verbose=0, timeout=None, relay=None, username=None, password=None, encryption='TLS', - port=-1): + port=-1, debug_output=None): if relay is None: for x in to: return sendmail_direct(from_, x, msg, timeout, localhost, verbose) - import smtplib - cls = smtplib.SMTP if encryption == 'TLS' else smtplib.SMTP_SSL + import calibre.utils.smtplib as smtplib + cls = smtplib.SMTP_SSL if encryption == 'SSL' else smtplib.SMTP timeout = None # Non-blocking sockets sometimes don't work port = int(port) - s = cls(timeout=timeout, local_hostname=localhost) + kwargs = dict(timeout=timeout, local_hostname=localhost) + if debug_output is not None: + kwargs['debug_to'] = debug_output + s = cls(**kwargs) s.set_debuglevel(verbose) if port < 0: - port = 25 if encryption == 'TLS' else 465 + port = 25 if encryption != 'SSL' else 465 s.connect(relay, port) if encryption == 'TLS': s.starttls() @@ -101,8 +108,15 @@ def sendmail(msg, from_, to, localhost=None, verbose=0, timeout=30, if encryption == 'SSL': s.sock = s.file.sslobj s.login(username, password) - s.sendmail(from_, to, msg) - return s.quit() + ret = None + try: + s.sendmail(from_, to, msg) + finally: + try: + ret = s.quit() + except: + pass # Ignore so as to not hide original error + return ret def option_parser(): try: @@ -144,9 +158,9 @@ def option_parser(): r('-u', '--username', help='Username for relay') r('-p', '--password', help='Password for relay') r('-e', '--encryption-method', default='TLS', - choices=['TLS', 'SSL'], + choices=['TLS', 'SSL', 'NONE'], help='Encryption method to use when connecting to relay. Choices are ' - 'TLS and SSL. Default is TLS.') + 'TLS, SSL and NONE. Default is TLS. WARNING: Choosing NONE is highly insecure') parser.add_option('-o', '--outbox', help='Path to maildir folder to store ' 'failed email messages in.') parser.add_option('-f', '--fork', default=False, action='store_true', @@ -217,6 +231,7 @@ def main(args=sys.argv): if opts.fork: if os.fork() != 0: return 0 + try: sendmail(msg, efrom, eto, localhost=opts.localhost, verbose=opts.verbose, timeout=opts.timeout, relay=opts.relay, username=opts.username, diff --git a/src/calibre/utils/smtplib.py b/src/calibre/utils/smtplib.py new file mode 100755 index 0000000000..d6f3fb0b69 --- /dev/null +++ b/src/calibre/utils/smtplib.py @@ -0,0 +1,826 @@ +from __future__ import print_function + +'''SMTP/ESMTP client class. + +This should follow RFC 821 (SMTP), RFC 1869 (ESMTP), RFC 2554 (SMTP +Authentication) and RFC 2487 (Secure SMTP over TLS). + +Notes: + +Please remember, when doing ESMTP, that the names of the SMTP service +extensions are NOT the same thing as the option keywords for the RCPT +and MAIL commands! + +Example: + + >>> import smtplib + >>> s=smtplib.SMTP("localhost") + >>> print s.help() + This is Sendmail version 8.8.4 + Topics: + HELO EHLO MAIL RCPT DATA + RSET NOOP QUIT HELP VRFY + EXPN VERB ETRN DSN + For more info use "HELP <topic>". + To report bugs in the implementation send email to + sendmail-bugs@sendmail.org. + For local information send email to Postmaster at your site. + End of HELP info + >>> s.putcmd("vrfy","someone@here") + >>> s.getreply() + (250, "Somebody OverHere <somebody@here.my.org>") + >>> s.quit() +''' + +# Author: The Dragon De Monsyne <dragondm@integral.org> +# ESMTP support, test code and doc fixes added by +# Eric S. Raymond <esr@thyrsus.com> +# Better RFC 821 compliance (MAIL and RCPT, and CRLF in data) +# by Carey Evans <c.evans@clear.net.nz>, for picky mail servers. +# RFC 2554 (authentication) support by Gerhard Haering <gerhard@bigfoot.de>. +# Enhanced debugging support by Kovid Goyal +# +# This was modified from the Python 1.5 library HTTP lib. + +import socket +import re +import email.utils +import base64 +import hmac +import sys +from email.base64mime import encode as encode_base64 +from functools import partial + +__all__ = ["SMTPException","SMTPServerDisconnected","SMTPResponseException", + "SMTPSenderRefused","SMTPRecipientsRefused","SMTPDataError", + "SMTPConnectError","SMTPHeloError","SMTPAuthenticationError", + "quoteaddr","quotedata","SMTP"] + +SMTP_PORT = 25 +SMTP_SSL_PORT = 465 +CRLF="\r\n" + +OLDSTYLE_AUTH = re.compile(r"auth=(.*)", re.I) + +# Exception classes used by this module. +class SMTPException(Exception): + """Base class for all exceptions raised by this module.""" + +class SMTPServerDisconnected(SMTPException): + """Not connected to any SMTP server. + + This exception is raised when the server unexpectedly disconnects, + or when an attempt is made to use the SMTP instance before + connecting it to a server. + """ + +class SMTPResponseException(SMTPException): + """Base class for all exceptions that include an SMTP error code. + + These exceptions are generated in some instances when the SMTP + server returns an error code. The error code is stored in the + `smtp_code' attribute of the error, and the `smtp_error' attribute + is set to the error message. + """ + + def __init__(self, code, msg): + self.smtp_code = code + self.smtp_error = msg + self.args = (code, msg) + +class SMTPSenderRefused(SMTPResponseException): + """Sender address refused. + + In addition to the attributes set by on all SMTPResponseException + exceptions, this sets `sender' to the string that the SMTP refused. + """ + + def __init__(self, code, msg, sender): + self.smtp_code = code + self.smtp_error = msg + self.sender = sender + self.args = (code, msg, sender) + +class SMTPRecipientsRefused(SMTPException): + """All recipient addresses refused. + + The errors for each recipient are accessible through the attribute + 'recipients', which is a dictionary of exactly the same sort as + SMTP.sendmail() returns. + """ + + def __init__(self, recipients): + self.recipients = recipients + self.args = ( recipients,) + + +class SMTPDataError(SMTPResponseException): + """The SMTP server didn't accept the data.""" + +class SMTPConnectError(SMTPResponseException): + """Error during connection establishment.""" + +class SMTPHeloError(SMTPResponseException): + """The server refused our HELO reply.""" + +class SMTPAuthenticationError(SMTPResponseException): + """Authentication error. + + Most probably the server didn't accept the username/password + combination provided. + """ + +def quoteaddr(addr): + """Quote a subset of the email addresses defined by RFC 821. + + Should be able to handle anything rfc822.parseaddr can handle. + """ + m = (None, None) + try: + m = email.utils.parseaddr(addr)[1] + except AttributeError: + pass + if m == (None, None): # Indicates parse failure or AttributeError + # something weird here.. punt -ddm + return "<%s>" % addr + elif m is None: + # the sender wants an empty return address + return "<>" + else: + return "<%s>" % m + +def quotedata(data): + """Quote data for email. + + Double leading '.', and change Unix newline '\\n', or Mac '\\r' into + Internet CRLF end-of-line. + """ + return re.sub(r'(?m)^\.', '..', + re.sub(r'(?:\r\n|\n|\r(?!\n))', CRLF, data)) + + +try: + import ssl +except ImportError: + _have_ssl = False +else: + class SSLFakeFile: + """A fake file like object that really wraps a SSLObject. + + It only supports what is needed in smtplib. + """ + def __init__(self, sslobj): + self.sslobj = sslobj + + def readline(self): + str = "" + chr = None + while chr != "\n": + chr = self.sslobj.read(1) + if not chr: break + str += chr + return str + + def close(self): + pass + + _have_ssl = True + +class SMTP: + """This class manages a connection to an SMTP or ESMTP server. + SMTP Objects: + SMTP objects have the following attributes: + helo_resp + This is the message given by the server in response to the + most recent HELO command. + + ehlo_resp + This is the message given by the server in response to the + most recent EHLO command. This is usually multiline. + + does_esmtp + This is a True value _after you do an EHLO command_, if the + server supports ESMTP. + + esmtp_features + This is a dictionary, which, if the server supports ESMTP, + will _after you do an EHLO command_, contain the names of the + SMTP service extensions this server supports, and their + parameters (if any). + + Note, all extension names are mapped to lower case in the + dictionary. + + See each method's docstrings for details. In general, there is a + method of the same name to perform each SMTP command. There is also a + method called 'sendmail' that will do an entire mail transaction. + """ + debuglevel = 0 + file = None + helo_resp = None + ehlo_msg = "ehlo" + ehlo_resp = None + does_esmtp = 0 + + def __init__(self, host='', port=0, local_hostname=None, + timeout=socket._GLOBAL_DEFAULT_TIMEOUT, + debug_to=partial(print, file=sys.stderr)): + """Initialize a new instance. + + If specified, `host' is the name of the remote host to which to + connect. If specified, `port' specifies the port to which to connect. + By default, smtplib.SMTP_PORT is used. An SMTPConnectError is raised + if the specified `host' doesn't respond correctly. If specified, + `local_hostname` is used as the FQDN of the local host. By default, + the local hostname is found using socket.getfqdn(). `debug_to` + specifies where debug output is written to. By default it is written to + sys.stderr. You should pass in a print function of your own to control + where debug output is written. + """ + self.timeout = timeout + self.debug = debug_to + self.esmtp_features = {} + self.default_port = SMTP_PORT + if host: + (code, msg) = self.connect(host, port) + if code != 220: + raise SMTPConnectError(code, msg) + if local_hostname is not None: + self.local_hostname = local_hostname + else: + # RFC 2821 says we should use the fqdn in the EHLO/HELO verb, and + # if that can't be calculated, that we should use a domain literal + # instead (essentially an encoded IP address like [A.B.C.D]). + fqdn = socket.getfqdn() + if '.' in fqdn: + self.local_hostname = fqdn + else: + # We can't find an fqdn hostname, so use a domain literal + addr = '127.0.0.1' + try: + addr = socket.gethostbyname(socket.gethostname()) + except socket.gaierror: + pass + self.local_hostname = '[%s]' % addr + + def set_debuglevel(self, debuglevel): + """Set the debug output level. + + A value of 0 means no debug logging. A value of 1 means all interaction + with the server is logged except that long lines are truncated to 100 + characters and AUTH messages are censored. A value of 2 or higher means + the complete session is logged. + + """ + self.debuglevel = debuglevel + + def _get_socket(self, port, host, timeout): + # This makes it simpler for SMTP_SSL to use the SMTP connect code + # and just alter the socket connection bit. + if self.debuglevel > 0: self.debug('connect:', (host, port)) + return socket.create_connection((port, host), timeout) + + def connect(self, host='localhost', port = 0): + """Connect to a host on a given port. + + If the hostname ends with a colon (`:') followed by a number, and + there is no port specified, that suffix will be stripped off and the + number interpreted as the port number to use. + + Note: This method is automatically invoked by __init__, if a host is + specified during instantiation. + + """ + if not port and (host.find(':') == host.rfind(':')): + i = host.rfind(':') + if i >= 0: + host, port = host[:i], host[i+1:] + try: port = int(port) + except ValueError: + raise socket.error, "nonnumeric port" + if not port: port = self.default_port + if self.debuglevel > 0: self.debug('connect:', (host, port)) + self.sock = self._get_socket(host, port, self.timeout) + (code, msg) = self.getreply() + if self.debuglevel > 0: self.debug("connect:", msg) + return (code, msg) + + def send(self, str): + """Send `str' to the server.""" + if self.debuglevel > 0: + raw = repr(str) + if self.debuglevel < 2: + if len(raw) > 100: + raw = raw[:100] + '...' + if 'AUTH' in raw: + raw = 'AUTH <censored>' + self.debug('send:', raw) + if hasattr(self, 'sock') and self.sock: + try: + self.sock.sendall(str) + except socket.error: + self.close() + raise SMTPServerDisconnected('Server not connected') + else: + raise SMTPServerDisconnected('please run connect() first') + + def putcmd(self, cmd, args=""): + """Send a command to the server.""" + if args == "": + str = '%s%s' % (cmd, CRLF) + else: + str = '%s %s%s' % (cmd, args, CRLF) + self.send(str) + + def getreply(self): + """Get a reply from the server. + + Returns a tuple consisting of: + + - server response code (e.g. '250', or such, if all goes well) + Note: returns -1 if it can't read response code. + + - server response string corresponding to response code (multiline + responses are converted to a single, multiline string). + + Raises SMTPServerDisconnected if end-of-file is reached. + """ + resp=[] + if self.file is None: + self.file = self.sock.makefile('rb') + while 1: + try: + line = self.file.readline() + except socket.error: + line = '' + if line == '': + self.close() + raise SMTPServerDisconnected("Connection unexpectedly closed") + if self.debuglevel > 0: self.debug('reply:', repr(line)) + resp.append(line[4:].strip()) + code=line[:3] + # Check that the error code is syntactically correct. + # Don't attempt to read a continuation line if it is broken. + try: + errcode = int(code) + except ValueError: + errcode = -1 + break + # Check if multiline response. + if line[3:4]!="-": + break + + errmsg = "\n".join(resp) + if self.debuglevel > 0: + self.debug('reply: retcode (%s); Msg: %s' % (errcode,errmsg)) + return errcode, errmsg + + def docmd(self, cmd, args=""): + """Send a command, and return its response code.""" + self.putcmd(cmd,args) + return self.getreply() + + # std smtp commands + def helo(self, name=''): + """SMTP 'helo' command. + Hostname to send for this command defaults to the FQDN of the local + host. + """ + self.putcmd("helo", name or self.local_hostname) + (code,msg)=self.getreply() + self.helo_resp=msg + return (code,msg) + + def ehlo(self, name=''): + """ SMTP 'ehlo' command. + Hostname to send for this command defaults to the FQDN of the local + host. + """ + self.esmtp_features = {} + self.putcmd(self.ehlo_msg, name or self.local_hostname) + (code,msg)=self.getreply() + # According to RFC1869 some (badly written) + # MTA's will disconnect on an ehlo. Toss an exception if + # that happens -ddm + if code == -1 and len(msg) == 0: + self.close() + raise SMTPServerDisconnected("Server not connected") + self.ehlo_resp=msg + if code != 250: + return (code,msg) + self.does_esmtp=1 + #parse the ehlo response -ddm + resp=self.ehlo_resp.split('\n') + del resp[0] + for each in resp: + # To be able to communicate with as many SMTP servers as possible, + # we have to take the old-style auth advertisement into account, + # because: + # 1) Else our SMTP feature parser gets confused. + # 2) There are some servers that only advertise the auth methods we + # support using the old style. + auth_match = OLDSTYLE_AUTH.match(each) + if auth_match: + # This doesn't remove duplicates, but that's no problem + self.esmtp_features["auth"] = self.esmtp_features.get("auth", "") \ + + " " + auth_match.groups(0)[0] + continue + + # RFC 1869 requires a space between ehlo keyword and parameters. + # It's actually stricter, in that only spaces are allowed between + # parameters, but were not going to check for that here. Note + # that the space isn't present if there are no parameters. + m=re.match(r'(?P<feature>[A-Za-z0-9][A-Za-z0-9\-]*) ?',each) + if m: + feature=m.group("feature").lower() + params=m.string[m.end("feature"):].strip() + if feature == "auth": + self.esmtp_features[feature] = self.esmtp_features.get(feature, "") \ + + " " + params + else: + self.esmtp_features[feature]=params + return (code,msg) + + def has_extn(self, opt): + """Does the server support a given SMTP service extension?""" + return opt.lower() in self.esmtp_features + + def help(self, args=''): + """SMTP 'help' command. + Returns help text from server.""" + self.putcmd("help", args) + return self.getreply()[1] + + def rset(self): + """SMTP 'rset' command -- resets session.""" + return self.docmd("rset") + + def noop(self): + """SMTP 'noop' command -- doesn't do anything :>""" + return self.docmd("noop") + + def mail(self,sender,options=[]): + """SMTP 'mail' command -- begins mail xfer session.""" + optionlist = '' + if options and self.does_esmtp: + optionlist = ' ' + ' '.join(options) + self.putcmd("mail", "FROM:%s%s" % (quoteaddr(sender) ,optionlist)) + return self.getreply() + + def rcpt(self,recip,options=[]): + """SMTP 'rcpt' command -- indicates 1 recipient for this mail.""" + optionlist = '' + if options and self.does_esmtp: + optionlist = ' ' + ' '.join(options) + self.putcmd("rcpt","TO:%s%s" % (quoteaddr(recip),optionlist)) + return self.getreply() + + def data(self,msg): + """SMTP 'DATA' command -- sends message data to server. + + Automatically quotes lines beginning with a period per rfc821. + Raises SMTPDataError if there is an unexpected reply to the + DATA command; the return value from this method is the final + response code received when the all data is sent. + """ + self.putcmd("data") + (code,repl)=self.getreply() + if self.debuglevel >0 : self.debug("data:", (code,repl)) + if code != 354: + raise SMTPDataError(code,repl) + else: + q = quotedata(msg) + if q[-2:] != CRLF: + q = q + CRLF + q = q + "." + CRLF + self.send(q) + (code,msg)=self.getreply() + if self.debuglevel > 0 : + self.debug("data:", (code,msg)) + return (code,msg) + + def verify(self, address): + """SMTP 'verify' command -- checks for address validity.""" + self.putcmd("vrfy", quoteaddr(address)) + return self.getreply() + # a.k.a. + vrfy=verify + + def expn(self, address): + """SMTP 'expn' command -- expands a mailing list.""" + self.putcmd("expn", quoteaddr(address)) + return self.getreply() + + # some useful methods + + def ehlo_or_helo_if_needed(self): + """Call self.ehlo() and/or self.helo() if needed. + + If there has been no previous EHLO or HELO command this session, this + method tries ESMTP EHLO first. + + This method may raise the following exceptions: + + SMTPHeloError The server didn't reply properly to + the helo greeting. + """ + if self.helo_resp is None and self.ehlo_resp is None: + if not (200 <= self.ehlo()[0] <= 299): + (code, resp) = self.helo() + if not (200 <= code <= 299): + raise SMTPHeloError(code, resp) + + def login(self, user, password): + """Log in on an SMTP server that requires authentication. + + The arguments are: + - user: The user name to authenticate with. + - password: The password for the authentication. + + If there has been no previous EHLO or HELO command this session, this + method tries ESMTP EHLO first. + + This method will return normally if the authentication was successful. + + This method may raise the following exceptions: + + SMTPHeloError The server didn't reply properly to + the helo greeting. + SMTPAuthenticationError The server didn't accept the username/ + password combination. + SMTPException No suitable authentication method was + found. + """ + + def encode_cram_md5(challenge, user, password): + challenge = base64.decodestring(challenge) + response = user + " " + hmac.HMAC(password, challenge).hexdigest() + return encode_base64(response, eol="") + + def encode_plain(user, password): + return encode_base64("\0%s\0%s" % (user, password), eol="") + + + AUTH_PLAIN = "PLAIN" + AUTH_CRAM_MD5 = "CRAM-MD5" + AUTH_LOGIN = "LOGIN" + + self.ehlo_or_helo_if_needed() + + if not self.has_extn("auth"): + raise SMTPException("SMTP AUTH extension not supported by server.") + + # Authentication methods the server supports: + authlist = self.esmtp_features["auth"].split() + + # List of authentication methods we support: from preferred to + # less preferred methods. Except for the purpose of testing the weaker + # ones, we prefer stronger methods like CRAM-MD5: + preferred_auths = [AUTH_CRAM_MD5, AUTH_PLAIN, AUTH_LOGIN] + + # Determine the authentication method we'll use + authmethod = None + for method in preferred_auths: + if method in authlist: + authmethod = method + break + + if authmethod == AUTH_CRAM_MD5: + (code, resp) = self.docmd("AUTH", AUTH_CRAM_MD5) + if code == 503: + # 503 == 'Error: already authenticated' + return (code, resp) + (code, resp) = self.docmd(encode_cram_md5(resp, user, password)) + elif authmethod == AUTH_PLAIN: + (code, resp) = self.docmd("AUTH", + AUTH_PLAIN + " " + encode_plain(user, password)) + elif authmethod == AUTH_LOGIN: + (code, resp) = self.docmd("AUTH", + "%s %s" % (AUTH_LOGIN, encode_base64(user, eol=""))) + if code != 334: + raise SMTPAuthenticationError(code, resp) + (code, resp) = self.docmd(encode_base64(password, eol="")) + elif authmethod is None: + raise SMTPException("No suitable authentication method found.") + if code not in (235, 503): + # 235 == 'Authentication successful' + # 503 == 'Error: already authenticated' + raise SMTPAuthenticationError(code, resp) + return (code, resp) + + def starttls(self, keyfile = None, certfile = None): + """Puts the connection to the SMTP server into TLS mode. + + If there has been no previous EHLO or HELO command this session, this + method tries ESMTP EHLO first. + + If the server supports TLS, this will encrypt the rest of the SMTP + session. If you provide the keyfile and certfile parameters, + the identity of the SMTP server and client can be checked. This, + however, depends on whether the socket module really checks the + certificates. + + This method may raise the following exceptions: + + SMTPHeloError The server didn't reply properly to + the helo greeting. + """ + self.ehlo_or_helo_if_needed() + if not self.has_extn("starttls"): + raise SMTPException("STARTTLS extension not supported by server.") + (resp, reply) = self.docmd("STARTTLS") + if resp == 220: + if not _have_ssl: + raise RuntimeError("No SSL support included in this Python") + self.sock = ssl.wrap_socket(self.sock, keyfile, certfile) + self.file = SSLFakeFile(self.sock) + # RFC 3207: + # The client MUST discard any knowledge obtained from + # the server, such as the list of SMTP service extensions, + # which was not obtained from the TLS negotiation itself. + self.helo_resp = None + self.ehlo_resp = None + self.esmtp_features = {} + self.does_esmtp = 0 + return (resp, reply) + + def sendmail(self, from_addr, to_addrs, msg, mail_options=[], + rcpt_options=[]): + """This command performs an entire mail transaction. + + The arguments are: + - from_addr : The address sending this mail. + - to_addrs : A list of addresses to send this mail to. A bare + string will be treated as a list with 1 address. + - msg : The message to send. + - mail_options : List of ESMTP options (such as 8bitmime) for the + mail command. + - rcpt_options : List of ESMTP options (such as DSN commands) for + all the rcpt commands. + + If there has been no previous EHLO or HELO command this session, this + method tries ESMTP EHLO first. If the server does ESMTP, message size + and each of the specified options will be passed to it. If EHLO + fails, HELO will be tried and ESMTP options suppressed. + + This method will return normally if the mail is accepted for at least + one recipient. It returns a dictionary, with one entry for each + recipient that was refused. Each entry contains a tuple of the SMTP + error code and the accompanying error message sent by the server. + + This method may raise the following exceptions: + + SMTPHeloError The server didn't reply properly to + the helo greeting. + SMTPRecipientsRefused The server rejected ALL recipients + (no mail was sent). + SMTPSenderRefused The server didn't accept the from_addr. + SMTPDataError The server replied with an unexpected + error code (other than a refusal of + a recipient). + + Note: the connection will be open even after an exception is raised. + + Example: + + >>> import smtplib + >>> s=smtplib.SMTP("localhost") + >>> tolist=["one@one.org","two@two.org","three@three.org","four@four.org"] + >>> msg = '''\\ + ... From: Me@my.org + ... Subject: testin'... + ... + ... This is a test ''' + >>> s.sendmail("me@my.org",tolist,msg) + { "three@three.org" : ( 550 ,"User unknown" ) } + >>> s.quit() + + In the above example, the message was accepted for delivery to three + of the four addresses, and one was rejected, with the error code + 550. If all addresses are accepted, then the method will return an + empty dictionary. + + """ + self.ehlo_or_helo_if_needed() + esmtp_opts = [] + if self.does_esmtp: + # Hmmm? what's this? -ddm + # self.esmtp_features['7bit']="" + if self.has_extn('size'): + esmtp_opts.append("size=%d" % len(msg)) + for option in mail_options: + esmtp_opts.append(option) + + (code,resp) = self.mail(from_addr, esmtp_opts) + if code != 250: + self.rset() + raise SMTPSenderRefused(code, resp, from_addr) + senderrs={} + if isinstance(to_addrs, basestring): + to_addrs = [to_addrs] + for each in to_addrs: + (code,resp)=self.rcpt(each, rcpt_options) + if (code != 250) and (code != 251): + senderrs[each]=(code,resp) + if len(senderrs)==len(to_addrs): + # the server refused all our recipients + self.rset() + raise SMTPRecipientsRefused(senderrs) + (code,resp) = self.data(msg) + if code != 250: + self.rset() + raise SMTPDataError(code, resp) + #if we got here then somebody got our mail + return senderrs + + + def close(self): + """Close the connection to the SMTP server.""" + if self.file: + self.file.close() + self.file = None + if self.sock: + self.sock.close() + self.sock = None + + + def quit(self): + """Terminate the SMTP session.""" + res = self.docmd("quit") + self.close() + return res + +if _have_ssl: + + class SMTP_SSL(SMTP): + """ This is a subclass derived from SMTP that connects over an SSL encrypted + socket (to use this class you need a socket module that was compiled with SSL + support). If host is not specified, '' (the local host) is used. If port is + omitted, the standard SMTP-over-SSL port (465) is used. keyfile and certfile + are also optional - they can contain a PEM formatted private key and + certificate chain file for the SSL connection. + """ + def __init__(self, host='', port=0, local_hostname=None, + keyfile=None, certfile=None, + timeout=socket._GLOBAL_DEFAULT_TIMEOUT, + debug_to=partial(print, file=sys.stderr)): + self.keyfile = keyfile + self.certfile = certfile + SMTP.__init__(self, host, port, local_hostname, timeout, + debug_to=debug_to) + self.default_port = SMTP_SSL_PORT + + def _get_socket(self, host, port, timeout): + if self.debuglevel > 0: self.debug('connect:', (host, port)) + new_socket = socket.create_connection((host, port), timeout) + new_socket = ssl.wrap_socket(new_socket, self.keyfile, self.certfile) + self.file = SSLFakeFile(new_socket) + return new_socket + + __all__.append("SMTP_SSL") + +# +# LMTP extension +# +LMTP_PORT = 2003 + +class LMTP(SMTP): + """LMTP - Local Mail Transfer Protocol + + The LMTP protocol, which is very similar to ESMTP, is heavily based + on the standard SMTP client. It's common to use Unix sockets for LMTP, + so our connect() method must support that as well as a regular + host:port server. To specify a Unix socket, you must use an absolute + path as the host, starting with a '/'. + + Authentication is supported, using the regular SMTP mechanism. When + using a Unix socket, LMTP generally don't support or require any + authentication, but your mileage might vary.""" + + ehlo_msg = "lhlo" + + def __init__(self, host = '', port = LMTP_PORT, local_hostname = None): + """Initialize a new instance.""" + SMTP.__init__(self, host, port, local_hostname) + + def connect(self, host = 'localhost', port = 0): + """Connect to the LMTP daemon, on either a Unix or a TCP socket.""" + if host[0] != '/': + return SMTP.connect(self, host, port) + + # Handle Unix-domain sockets. + try: + self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.sock.connect(host) + except socket.error, msg: + if self.debuglevel > 0: self.debug('connect fail:', host) + if self.sock: + self.sock.close() + self.sock = None + raise socket.error, msg + (code, msg) = self.getreply() + if self.debuglevel > 0: self.debug("connect:", msg) + return (code, msg) + + + diff --git a/src/calibre/utils/titlecase.py b/src/calibre/utils/titlecase.py index 3ead4848fd..bbc4c26688 100755 --- a/src/calibre/utils/titlecase.py +++ b/src/calibre/utils/titlecase.py @@ -9,6 +9,8 @@ License: http://www.opensource.org/licenses/mit-license.php import re +from calibre.utils.icu import capitalize + __all__ = ['titlecase'] __version__ = '0.5' @@ -50,29 +52,29 @@ def titlecase(text): line.append(word) continue else: - word = word.lower() + word = icu_lower(word) if APOS_SECOND.match(word): - word = word.replace(word[0], word[0].upper()) - word = word.replace(word[2], word[2].upper()) + word = word.replace(word[0], icu_upper(word[0])) + word = word.replace(word[2], icu_upper(word[2])) line.append(word) continue if INLINE_PERIOD.search(word) or UC_ELSEWHERE.match(word): line.append(word) continue if SMALL_WORDS.match(word): - line.append(word.lower()) + line.append(icu_lower(word)) continue match = MAC_MC.match(word) if match: - line.append("%s%s" % (match.group(1).capitalize(), - match.group(2).capitalize())) + line.append("%s%s" % (capitalize(match.group(1)), + capitalize(match.group(2)))) continue hyphenated = [] for item in word.split('-'): - hyphenated.append(CAPFIRST.sub(lambda m: m.group(0).upper(), item)) + hyphenated.append(CAPFIRST.sub(lambda m: icu_upper(m.group(0)), item)) line.append("-".join(hyphenated)) @@ -80,14 +82,14 @@ def titlecase(text): result = SMALL_FIRST.sub(lambda m: '%s%s' % ( m.group(1), - m.group(2).capitalize() + capitalize(m.group(2)) ), result) - result = SMALL_LAST.sub(lambda m: m.group(0).capitalize(), result) + result = SMALL_LAST.sub(lambda m: capitalize(m.group(0)), result) result = SUBPHRASE.sub(lambda m: '%s%s' % ( m.group(1), - m.group(2).capitalize() + capitalize(m.group(2)) ), result) return result diff --git a/src/calibre/utils/zipfile.py b/src/calibre/utils/zipfile.py index dbcc125274..5c19444bd6 100644 --- a/src/calibre/utils/zipfile.py +++ b/src/calibre/utils/zipfile.py @@ -1227,7 +1227,7 @@ class ZipFile: self.fp.flush() if zinfo.flag_bits & 0x08: # Write CRC and file sizes after the file data - self.fp.write(struct.pack("<lLL", zinfo.CRC, zinfo.compress_size, + self.fp.write(struct.pack("<LLL", zinfo.CRC, zinfo.compress_size, zinfo.file_size)) self.filelist.append(zinfo) self.NameToInfo[zinfo.filename] = zinfo diff --git a/src/calibre/web/feeds/feedparser.py b/src/calibre/web/feeds/feedparser.py index a80670555a..ead9207b70 100755 --- a/src/calibre/web/feeds/feedparser.py +++ b/src/calibre/web/feeds/feedparser.py @@ -11,8 +11,8 @@ Recommended: Python 2.3 or later Recommended: CJKCodecs and iconv_codec <http://cjkpython.i18n.org/> """ -__version__ = "4.1"# + "$Revision: 1.92 $"[11:15] + "-cvs" -__license__ = """Copyright (c) 2002-2006, Mark Pilgrim, All rights reserved. +__version__ = "4.2-pre-" + "$Revision: 316 $"[11:14] + "-svn" +__license__ = """Copyright (c) 2002-2008, Mark Pilgrim, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -39,7 +39,10 @@ __contributors__ = ["Jason Diamond <http://injektilo.org/>", "John Beimler <http://john.beimler.org/>", "Fazal Majid <http://www.majid.info/mylos/weblog/>", "Aaron Swartz <http://aaronsw.com/>", - "Kevin Marks <http://epeus.blogspot.com/>"] + "Kevin Marks <http://epeus.blogspot.com/>", + "Sam Ruby <http://intertwingly.net/>", + "Ade Oshineye <http://blog.oshineye.com/>", + "Martin Pool <http://sourcefrog.net/>"] _debug = 0 # HTTP "User-Agent" header to send to servers when downloading feeds. @@ -65,6 +68,14 @@ TIDY_MARKUP = 0 # if TIDY_MARKUP = 1 PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] +# If you want feedparser to automatically resolve all relative URIs, set this +# to 1. +RESOLVE_RELATIVE_URIS = 1 + +# If you want feedparser to automatically sanitize all potentially unsafe +# HTML content, set this to 1. +SANITIZE_HTML = 1 + # ---------- required modules (should come with any Python distribution) ---------- import sgmllib, re, sys, copy, urlparse, time, rfc822, types, cgi, urllib, urllib2 try: @@ -95,10 +106,12 @@ try: _XML_AVAILABLE = 1 except: _XML_AVAILABLE = 0 - def _xmlescape(data): + def _xmlescape(data,entities={}): data = data.replace('&', '&') data = data.replace('>', '>') data = data.replace('<', '<') + for char, entity in entities: + data = data.replace(char, entity) return data # base64 support for Atom feeds that contain embedded binary data @@ -121,10 +134,35 @@ except: # chardet library auto-detects character encodings # Download from http://chardet.feedparser.org/ try: - import calibre.ebooks.chardet as chardet # Changed by Kovid + import calibre.ebooks.chardet as chardet # Changed by Kovid + if _debug: + import chardet.constants + chardet.constants._debug = 1 except: chardet = None +# reversable htmlentitydefs mappings for Python 2.2 +try: + from htmlentitydefs import name2codepoint, codepoint2name +except: + import htmlentitydefs + name2codepoint={} + codepoint2name={} + for (name,codepoint) in htmlentitydefs.entitydefs.iteritems(): + if codepoint.startswith('&#'): codepoint=unichr(int(codepoint[2:-1])) + name2codepoint[name]=ord(codepoint) + codepoint2name[ord(codepoint)]=name + +# BeautifulSoup parser used for parsing microformats from embedded HTML content +# http://www.crummy.com/software/BeautifulSoup/ +# feedparser is tested with BeautifulSoup 3.0.x, but it might work with the +# older 2.x series. If it doesn't, and you can figure out why, I'll accept a +# patch and modify the compatibility statement accordingly. +try: + import BeautifulSoup +except: + BeautifulSoup = None + # ---------- don't touch these ---------- class ThingsNobodyCaresAboutButMe(Exception): pass class CharacterEncodingOverride(ThingsNobodyCaresAboutButMe): pass @@ -134,7 +172,17 @@ class UndeclaredNamespace(Exception): pass sgmllib.tagfind = re.compile('[a-zA-Z][-_.:a-zA-Z0-9]*') sgmllib.special = re.compile('<!') -sgmllib.charref = re.compile('&#(x?[0-9A-Fa-f]+)[^0-9A-Fa-f]') +sgmllib.charref = re.compile('&#(\d+|x[0-9a-fA-F]+);') + +if sgmllib.endbracket.search(' <').start(0): + class EndBracketMatch: + endbracket = re.compile('''([^'"<>]|"[^"]*"(?=>|/|\s|\w+=)|'[^']*'(?=>|/|\s|\w+=))*(?=[<>])|.*?(?=[<>])''') + def search(self,string,index=0): + self.match = self.endbracket.match(string,index) + if self.match: return self + def start(self,n): + return self.match.end(n) + sgmllib.endbracket = EndBracketMatch() SUPPORTED_VERSIONS = {'': 'unknown', 'rss090': 'RSS 0.90', @@ -185,6 +233,13 @@ class FeedParserDict(UserDict): def __getitem__(self, key): if key == 'category': return UserDict.__getitem__(self, 'tags')[0]['term'] + if key == 'enclosures': + norel = lambda link: FeedParserDict([(name,value) for (name,value) in link.items() if name!='rel']) + return [norel(link) for link in UserDict.__getitem__(self, 'links') if link['rel']=='enclosure'] + if key == 'license': + for link in UserDict.__getitem__(self, 'links'): + if link['rel']=='license' and link.has_key('href'): + return link['href'] if key == 'categories': return [(tag['scheme'], tag['term']) for tag in UserDict.__getitem__(self, 'tags')] realkey = self.keymap.get(key, key) @@ -214,13 +269,13 @@ class FeedParserDict(UserDict): if not self.has_key(key): self[key] = value return self[key] - + def has_key(self, key): try: return hasattr(self, key) or UserDict.has_key(self, key) except AttributeError: return False - + def __getattr__(self, key): try: return self.__dict__[key] @@ -277,10 +332,43 @@ def _ebcdic_to_ascii(s): ''.join(map(chr, range(256))), ''.join(map(chr, emap))) return s.translate(_ebcdic_to_ascii_map) +_cp1252 = { + unichr(128): unichr(8364), # euro sign + unichr(130): unichr(8218), # single low-9 quotation mark + unichr(131): unichr( 402), # latin small letter f with hook + unichr(132): unichr(8222), # double low-9 quotation mark + unichr(133): unichr(8230), # horizontal ellipsis + unichr(134): unichr(8224), # dagger + unichr(135): unichr(8225), # double dagger + unichr(136): unichr( 710), # modifier letter circumflex accent + unichr(137): unichr(8240), # per mille sign + unichr(138): unichr( 352), # latin capital letter s with caron + unichr(139): unichr(8249), # single left-pointing angle quotation mark + unichr(140): unichr( 338), # latin capital ligature oe + unichr(142): unichr( 381), # latin capital letter z with caron + unichr(145): unichr(8216), # left single quotation mark + unichr(146): unichr(8217), # right single quotation mark + unichr(147): unichr(8220), # left double quotation mark + unichr(148): unichr(8221), # right double quotation mark + unichr(149): unichr(8226), # bullet + unichr(150): unichr(8211), # en dash + unichr(151): unichr(8212), # em dash + unichr(152): unichr( 732), # small tilde + unichr(153): unichr(8482), # trade mark sign + unichr(154): unichr( 353), # latin small letter s with caron + unichr(155): unichr(8250), # single right-pointing angle quotation mark + unichr(156): unichr( 339), # latin small ligature oe + unichr(158): unichr( 382), # latin small letter z with caron + unichr(159): unichr( 376)} # latin capital letter y with diaeresis + _urifixer = re.compile('^([A-Za-z][A-Za-z0-9+-.]*://)(/*)(.*?)') def _urljoin(base, uri): uri = _urifixer.sub(r'\1\3', uri) - return urlparse.urljoin(base, uri) + try: + return urlparse.urljoin(base, uri) + except: + uri = urlparse.urlunparse([urllib.quote(part) for part in urlparse.urlparse(uri)]) + return urlparse.urljoin(base, uri) class _FeedParserMixin: namespaces = {'': '', @@ -296,7 +384,7 @@ class _FeedParserMixin: 'http://purl.org/atom/ns#': '', 'http://www.w3.org/2005/Atom': '', 'http://purl.org/rss/1.0/modules/rss091#': '', - + 'http://webns.net/mvcb/': 'admin', 'http://purl.org/rss/1.0/modules/aggregation/': 'ag', 'http://purl.org/rss/1.0/modules/annotate/': 'annotate', @@ -321,6 +409,8 @@ class _FeedParserMixin: 'http://example.com/DTDs/PodCast-1.0.dtd': 'itunes', 'http://purl.org/rss/1.0/modules/link/': 'l', 'http://search.yahoo.com/mrss': 'media', + #Version 1.1.2 of the Media RSS spec added the trailing slash on the namespace + 'http://search.yahoo.com/mrss/': 'media', 'http://madskills.com/public/xml/rss/module/pingback/': 'pingback', 'http://prismstandard.org/namespaces/1.2/basic/': 'prism', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#': 'rdf', @@ -334,6 +424,7 @@ class _FeedParserMixin: 'http://hacks.benhammersley.com/rss/streaming/': 'str', 'http://purl.org/rss/1.0/modules/subscription/': 'sub', 'http://purl.org/rss/1.0/modules/syndication/': 'sy', + 'http://schemas.pocketsoap.com/rss/myDescModule/': 'szf', 'http://purl.org/rss/1.0/modules/taxonomy/': 'taxo', 'http://purl.org/rss/1.0/modules/threading/': 'thr', 'http://purl.org/rss/1.0/modules/textinput/': 'ti', @@ -341,16 +432,16 @@ class _FeedParserMixin: 'http://wellformedweb.org/commentAPI/': 'wfw', 'http://purl.org/rss/1.0/modules/wiki/': 'wiki', 'http://www.w3.org/1999/xhtml': 'xhtml', - 'http://www.w3.org/XML/1998/namespace': 'xml', - 'http://schemas.pocketsoap.com/rss/myDescModule/': 'szf' + 'http://www.w3.org/1999/xlink': 'xlink', + 'http://www.w3.org/XML/1998/namespace': 'xml' } _matchnamespaces = {} - can_be_relative_uri = ['link', 'id', 'wfw_comment', 'wfw_commentrss', 'docs', 'url', 'href', 'comments', 'license', 'icon', 'logo'] + can_be_relative_uri = ['link', 'id', 'wfw_comment', 'wfw_commentrss', 'docs', 'url', 'href', 'comments', 'icon', 'logo'] can_contain_relative_uris = ['content', 'title', 'summary', 'info', 'tagline', 'subtitle', 'copyright', 'rights', 'description'] can_contain_dangerous_markup = ['content', 'title', 'summary', 'info', 'tagline', 'subtitle', 'copyright', 'rights', 'description'] html_types = ['text/html', 'application/xhtml+xml'] - + def __init__(self, baseuri=None, baselang=None, encoding='utf-8'): if _debug: sys.stderr.write('initializing FeedParser\n') if not self._matchnamespaces: @@ -382,18 +473,25 @@ class _FeedParserMixin: self.langstack = [] self.baseuri = baseuri or '' self.lang = baselang or None + self.svgOK = 0 + self.hasTitle = 0 if baselang: - self.feeddata['language'] = baselang + self.feeddata['language'] = baselang.replace('_','-') def unknown_starttag(self, tag, attrs): if _debug: sys.stderr.write('start %s with %s\n' % (tag, attrs)) # normalize attrs attrs = [(k.lower(), v) for k, v in attrs] attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] - + # track xml:base and xml:lang attrsD = dict(attrs) baseuri = attrsD.get('xml:base', attrsD.get('base')) or self.baseuri + if type(baseuri) != type(u''): + try: + baseuri = unicode(baseuri, self.encoding) + except: + baseuri = unicode(baseuri, 'iso-8859-1') self.baseuri = _urljoin(self.baseuri, baseuri) lang = attrsD.get('xml:lang', attrsD.get('lang')) if lang == '': @@ -404,11 +502,11 @@ class _FeedParserMixin: lang = self.lang if lang: if tag in ('feed', 'rss', 'rdf:RDF'): - self.feeddata['language'] = lang + self.feeddata['language'] = lang.replace('_','-') self.lang = lang self.basestack.append(self.baseuri) self.langstack.append(lang) - + # track namespaces for prefix, uri in attrs: if prefix.startswith('xmlns:'): @@ -418,19 +516,19 @@ class _FeedParserMixin: # track inline content if self.incontent and self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + if tag in ['xhtml:div', 'div']: return # typepad does this 10/2007 # element declared itself as escaped markup, but it isn't really self.contentparams['type'] = 'application/xhtml+xml' if self.incontent and self.contentparams.get('type') == 'application/xhtml+xml': - # Note: probably shouldn't simply recreate localname here, but - # our namespace handling isn't actually 100% correct in cases where - # the feed redefines the default namespace (which is actually - # the usual case for inline content, thanks Sam), so here we - # cheat and just reconstruct the element based on localname - # because that compensates for the bugs in our namespace handling. - # This will horribly munge inline content with non-empty qnames, - # but nobody actually does that, so I'm not fixing it. - tag = tag.split(':')[-1] - return self.handle_data('<%s%s>' % (tag, ''.join([' %s="%s"' % t for t in attrs])), escape=0) + if tag.find(':') <> -1: + prefix, tag = tag.split(':', 1) + namespace = self.namespacesInUse.get(prefix, '') + if tag=='math' and namespace=='http://www.w3.org/1998/Math/MathML': + attrs.append(('xmlns',namespace)) + if tag=='svg' and namespace=='http://www.w3.org/2000/svg': + attrs.append(('xmlns',namespace)) + if tag == 'svg': self.svgOK += 1 + return self.handle_data('<%s%s>' % (tag, self.strattrs(attrs)), escape=0) # match namespaces if tag.find(':') <> -1: @@ -446,14 +544,22 @@ class _FeedParserMixin: self.intextinput = 0 if (not prefix) and tag not in ('title', 'link', 'description', 'url', 'href', 'width', 'height'): self.inimage = 0 - + # call special handler (if defined) or default handler methodname = '_start_' + prefix + suffix try: method = getattr(self, methodname) return method(attrsD) except AttributeError: - return self.push(prefix + suffix, 1) + # Since there's no handler or something has gone wrong we explicitly add the element and its attributes + unknown_tag = prefix + suffix + if len(attrsD) == 0: + # No attributes so merge it into the encosing dictionary + return self.push(unknown_tag, 1) + else: + # Has attributes so create it in its own dictionary + context = self._getContext() + context[unknown_tag] = attrsD def unknown_endtag(self, tag): if _debug: sys.stderr.write('end %s\n' % tag) @@ -465,10 +571,12 @@ class _FeedParserMixin: prefix = self.namespacemap.get(prefix, prefix) if prefix: prefix = prefix + '_' + if suffix == 'svg' and self.svgOK: self.svgOK -= 1 # call special handler (if defined) or default handler methodname = '_end_' + prefix + suffix try: + if self.svgOK: raise AttributeError() method = getattr(self, methodname) method() except AttributeError: @@ -477,6 +585,7 @@ class _FeedParserMixin: # track inline content if self.incontent and self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): # element declared itself as escaped markup, but it isn't really + if tag in ['xhtml:div', 'div']: return # typepad does this 10/2007 self.contentparams['type'] = 'application/xhtml+xml' if self.incontent and self.contentparams.get('type') == 'application/xhtml+xml': tag = tag.split(':')[-1] @@ -512,19 +621,14 @@ class _FeedParserMixin: if _debug: sys.stderr.write('entering handle_entityref with %s\n' % ref) if ref in ('lt', 'gt', 'quot', 'amp', 'apos'): text = '&%s;' % ref + elif ref in self.entities.keys(): + text = self.entities[ref] + if text.startswith('&#') and text.endswith(';'): + return self.handle_entityref(text) else: - # entity resolution graciously donated by Aaron Swartz - def name2cp(k): - import htmlentitydefs - if hasattr(htmlentitydefs, 'name2codepoint'): # requires Python 2.3 - return htmlentitydefs.name2codepoint[k] - k = htmlentitydefs.entitydefs[k] - if k.startswith('&#') and k.endswith(';'): - return int(k[2:-1]) # not in latin-1 - return ord(k) - try: name2cp(ref) + try: name2codepoint[ref] except KeyError: text = '&%s;' % ref - else: text = unichr(name2cp(ref)).encode('utf-8') + else: text = unichr(name2codepoint[ref]).encode('utf-8') self.elementstack[-1][2].append(text) def handle_data(self, text, escape=1): @@ -551,12 +655,19 @@ class _FeedParserMixin: if _debug: sys.stderr.write('entering parse_declaration\n') if self.rawdata[i:i+9] == '<![CDATA[': k = self.rawdata.find(']]>', i) - if k == -1: k = len(self.rawdata) + if k == -1: + # CDATA block began but didn't finish + k = len(self.rawdata) + return k self.handle_data(_xmlescape(self.rawdata[i+9:k]), 0) return k+3 else: k = self.rawdata.find('>', i) - return k+1 + if k >= 0: + return k+1 + else: + # We have an incomplete CDATA block. + return k def mapContentType(self, contentType): contentType = contentType.lower() @@ -567,7 +678,7 @@ class _FeedParserMixin: elif contentType == 'xhtml': contentType = 'application/xhtml+xml' return contentType - + def trackNamespace(self, prefix, uri): loweruri = uri.lower() if (prefix, loweruri) == (None, 'http://my.netscape.com/rdf/simple/0.9/') and not self.version: @@ -588,18 +699,42 @@ class _FeedParserMixin: def resolveURI(self, uri): return _urljoin(self.baseuri or '', uri) - + def decodeEntities(self, element, data): return data + def strattrs(self, attrs): + return ''.join([' %s="%s"' % (t[0],_xmlescape(t[1],{'"':'"'})) for t in attrs]) + def push(self, element, expectingText): self.elementstack.append([element, expectingText, []]) def pop(self, element, stripWhitespace=1): if not self.elementstack: return if self.elementstack[-1][0] != element: return - + element, expectingText, pieces = self.elementstack.pop() + + if self.version == 'atom10' and self.contentparams.get('type','text') == 'application/xhtml+xml': + # remove enclosing child element, but only if it is a <div> and + # only if all the remaining content is nested underneath it. + # This means that the divs would be retained in the following: + # <div>foo</div><div>bar</div> + while pieces and len(pieces)>1 and not pieces[-1].strip(): + del pieces[-1] + while pieces and len(pieces)>1 and not pieces[0].strip(): + del pieces[0] + if pieces and (pieces[0] == '<div>' or pieces[0].startswith('<div ')) and pieces[-1]=='</div>': + depth = 0 + for piece in pieces[:-1]: + if piece.startswith('</'): + depth -= 1 + if depth == 0: break + elif piece.startswith('<') and not piece.endswith('/>'): + depth += 1 + else: + pieces = pieces[1:-1] + output = ''.join(pieces) if stripWhitespace: output = output.strip() @@ -613,15 +748,18 @@ class _FeedParserMixin: pass except binascii.Incomplete: pass - + # resolve relative URIs if (element in self.can_be_relative_uri) and output: output = self.resolveURI(output) - + # decode entities within embedded markup if not self.contentparams.get('base64', 0): output = self.decodeEntities(element, output) + if self.lookslikehtml(output): + self.contentparams['type']='text/html' + # remove temporary cruft from contentparams try: del self.contentparams['mode'] @@ -632,15 +770,32 @@ class _FeedParserMixin: except KeyError: pass + is_htmlish = self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types # resolve relative URIs within embedded markup - if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if is_htmlish and RESOLVE_RELATIVE_URIS: if element in self.can_contain_relative_uris: - output = _resolveRelativeURIs(output, self.baseuri, self.encoding) - + output = _resolveRelativeURIs(output, self.baseuri, self.encoding, self.contentparams.get('type', 'text/html')) + + # parse microformats + # (must do this before sanitizing because some microformats + # rely on elements that we sanitize) + if is_htmlish and element in ['content', 'description', 'summary']: + mfresults = _parseMicroformats(output, self.baseuri, self.encoding) + if mfresults: + for tag in mfresults.get('tags', []): + self._addTag(tag['term'], tag['scheme'], tag['label']) + for enclosure in mfresults.get('enclosures', []): + self._start_enclosure(enclosure) + for xfn in mfresults.get('xfn', []): + self._addXFN(xfn['relationships'], xfn['href'], xfn['name']) + vcard = mfresults.get('vcard') + if vcard: + self._getContext()['vcard'] = vcard + # sanitize embedded markup - if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if is_htmlish and SANITIZE_HTML: if element in self.can_contain_dangerous_markup: - output = _sanitizeHTML(output, self.encoding) + output = _sanitizeHTML(output, self.encoding, self.contentparams.get('type', 'text/html')) if self.encoding and type(output) != type(u''): try: @@ -648,10 +803,25 @@ class _FeedParserMixin: except: pass + # address common error where people take data that is already + # utf-8, presume that it is iso-8859-1, and re-encode it. + if self.encoding=='utf-8' and type(output) == type(u''): + try: + output = unicode(output.encode('iso-8859-1'), 'utf-8') + except: + pass + + # map win-1252 extensions to the proper code points + if type(output) == type(u''): + output = u''.join([c in _cp1252.keys() and _cp1252[c] or c for c in output]) + # categories/tags/keywords/whatever are handled in _end_category if element == 'category': return output - + + if element == 'title' and self.hasTitle: + return output + # store output in appropriate place(s) if self.inentry and not self.insource: if element == 'content': @@ -671,7 +841,7 @@ class _FeedParserMixin: contentparams = copy.deepcopy(self.contentparams) contentparams['value'] = output self.entries[-1][element + '_detail'] = contentparams - elif (self.infeed or self.insource) and (not self.intextinput) and (not self.inimage): + elif (self.infeed or self.insource):# and (not self.intextinput) and (not self.inimage): context = self._getContext() if element == 'description': element = 'subtitle' @@ -686,6 +856,7 @@ class _FeedParserMixin: def pushContent(self, tag, attrsD, defaultContentType, expectingText): self.incontent += 1 + if self.lang: self.lang=self.lang.replace('_','-') self.contentparams = FeedParserDict({ 'type': self.mapContentType(attrsD.get('type', defaultContentType)), 'language': self.lang, @@ -698,7 +869,29 @@ class _FeedParserMixin: self.incontent -= 1 self.contentparams.clear() return value - + + # a number of elements in a number of RSS variants are nominally plain + # text, but this is routinely ignored. This is an attempt to detect + # the most common cases. As false positives often result in silent + # data loss, this function errs on the conservative side. + def lookslikehtml(self, str): + if self.version.startswith('atom'): return + if self.contentparams.get('type','text/html') != 'text/plain': return + + # must have a close tag or a entity reference to qualify + if not (re.search(r'</(\w+)>',str) or re.search("&#?\w+;",str)): return + + # all tags must be in a restricted subset of valid HTML tags + if filter(lambda t: t.lower() not in _HTMLSanitizer.acceptable_elements, + re.findall(r'</?(\w+)',str)): return + + # all entities must have been defined as valid HTML entities + from htmlentitydefs import entitydefs + if filter(lambda e: e not in entitydefs.keys(), + re.findall(r'&(\w+);',str)): return + + return 1 + def _mapToStandardPrefix(self, name): colonpos = name.find(':') if colonpos <> -1: @@ -707,7 +900,7 @@ class _FeedParserMixin: prefix = self.namespacemap.get(prefix, prefix) name = prefix + ':' + suffix return name - + def _getAttribute(self, attrsD, name): return attrsD.get(self._mapToStandardPrefix(name)) @@ -735,7 +928,7 @@ class _FeedParserMixin: pass attrsD['href'] = href return attrsD - + def _save(self, key, value): context = self._getContext() context.setdefault(key, value) @@ -745,7 +938,10 @@ class _FeedParserMixin: '0.92': 'rss092', '0.93': 'rss093', '0.94': 'rss094'} - if not self.version: + #If we're here then this is an RSS feed. + #If we don't have a version or have a version that starts with something + #other than RSS then there's been a mistake. Correct it. + if not self.version or not self.version.startswith('rss'): attr_version = attrsD.get('version', '') version = versionmap.get(attr_version) if version: @@ -754,7 +950,7 @@ class _FeedParserMixin: self.version = 'rss20' else: self.version = 'rss' - + def _start_dlhottitles(self, attrsD): self.version = 'hotrss' @@ -772,7 +968,7 @@ class _FeedParserMixin: self._start_link({}) self.elementstack[-1][-1] = attrsD['href'] self._end_link() - + def _start_feed(self, attrsD): self.infeed = 1 versionmap = {'0.1': 'atom01', @@ -789,24 +985,26 @@ class _FeedParserMixin: def _end_channel(self): self.infeed = 0 _end_feed = _end_channel - + def _start_image(self, attrsD): - self.inimage = 1 - self.push('image', 0) context = self._getContext() context.setdefault('image', FeedParserDict()) - + self.inimage = 1 + self.hasTitle = 0 + self.push('image', 0) + def _end_image(self): self.pop('image') self.inimage = 0 def _start_textinput(self, attrsD): - self.intextinput = 1 - self.push('textinput', 0) context = self._getContext() context.setdefault('textinput', FeedParserDict()) + self.intextinput = 1 + self.hasTitle = 0 + self.push('textinput', 0) _start_textInput = _start_textinput - + def _end_textinput(self): self.pop('textinput') self.intextinput = 0 @@ -874,7 +1072,7 @@ class _FeedParserMixin: self._save_contributor('name', value) elif self.intextinput: context = self._getContext() - context['textinput']['name'] = value + context['name'] = value _end_itunes_name = _end_name def _start_width(self, attrsD): @@ -888,7 +1086,7 @@ class _FeedParserMixin: value = 0 if self.inimage: context = self._getContext() - context['image']['width'] = value + context['width'] = value def _start_height(self, attrsD): self.push('height', 0) @@ -901,7 +1099,7 @@ class _FeedParserMixin: value = 0 if self.inimage: context = self._getContext() - context['image']['height'] = value + context['height'] = value def _start_url(self, attrsD): self.push('href', 1) @@ -914,12 +1112,6 @@ class _FeedParserMixin: self._save_author('href', value) elif self.incontributor: self._save_contributor('href', value) - elif self.inimage: - context = self._getContext() - context['image']['href'] = value - elif self.intextinput: - context = self._getContext() - context['textinput']['link'] = value _end_homepage = _end_url _end_uri = _end_url @@ -940,6 +1132,10 @@ class _FeedParserMixin: def _getContext(self): if self.insource: context = self.sourcedata + elif self.inimage and self.feeddata.has_key('image'): + context = self.feeddata['image'] + elif self.intextinput: + context = self.feeddata['textinput'] elif self.inentry: context = self.entries[-1] else: @@ -970,23 +1166,28 @@ class _FeedParserMixin: elif email: context[key] = email else: - author = context.get(key) + author, email = context.get(key), None if not author: return - emailmatch = re.search(r'''(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))''', author) - if not emailmatch: return - email = emailmatch.group(0) - # probably a better way to do the following, but it passes all the tests - author = author.replace(email, '') - author = author.replace('()', '') - author = author.strip() - if author and (author[0] == '('): - author = author[1:] - if author and (author[-1] == ')'): - author = author[:-1] - author = author.strip() - context.setdefault('%s_detail' % key, FeedParserDict()) - context['%s_detail' % key]['name'] = author - context['%s_detail' % key]['email'] = email + emailmatch = re.search(r'''(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))(\?subject=\S+)?''', author) + if emailmatch: + email = emailmatch.group(0) + # probably a better way to do the following, but it passes all the tests + author = author.replace(email, '') + author = author.replace('()', '') + author = author.replace('<>', '') + author = author.replace('<>', '') + author = author.strip() + if author and (author[0] == '('): + author = author[1:] + if author and (author[-1] == ')'): + author = author[:-1] + author = author.strip() + if author or email: + context.setdefault('%s_detail' % key, FeedParserDict()) + if author: + context['%s_detail' % key]['name'] = author + if email: + context['%s_detail' % key]['email'] = email def _start_subtitle(self, attrsD): self.pushContent('subtitle', attrsD, 'text/plain', 1) @@ -997,7 +1198,7 @@ class _FeedParserMixin: self.popContent('subtitle') _end_tagline = _end_subtitle _end_itunes_subtitle = _end_subtitle - + def _start_rights(self, attrsD): self.pushContent('rights', attrsD, 'text/plain', 1) _start_dc_rights = _start_rights @@ -1013,6 +1214,7 @@ class _FeedParserMixin: self.push('item', 0) self.inentry = 1 self.guidislink = 0 + self.hasTitle = 0 id = self._getAttribute(attrsD, 'rdf:about') if id: context = self._getContext() @@ -1086,17 +1288,33 @@ class _FeedParserMixin: self._save('expired_parsed', _parse_date(self.pop('expired'))) def _start_cc_license(self, attrsD): - self.push('license', 1) + context = self._getContext() value = self._getAttribute(attrsD, 'rdf:resource') - if value: - self.elementstack[-1][2].append(value) - self.pop('license') - + attrsD = FeedParserDict() + attrsD['rel']='license' + if value: attrsD['href']=value + context.setdefault('links', []).append(attrsD) + def _start_creativecommons_license(self, attrsD): self.push('license', 1) + _start_creativeCommons_license = _start_creativecommons_license def _end_creativecommons_license(self): - self.pop('license') + value = self.pop('license') + context = self._getContext() + attrsD = FeedParserDict() + attrsD['rel']='license' + if value: attrsD['href']=value + context.setdefault('links', []).append(attrsD) + del context['license'] + _end_creativeCommons_license = _end_creativecommons_license + + def _addXFN(self, relationships, href, name): + context = self._getContext() + xfn = context.setdefault('xfn', []) + value = FeedParserDict({'relationships': relationships, 'href': href, 'name': name}) + if value not in xfn: + xfn.append(value) def _addTag(self, term, scheme, label): context = self._getContext() @@ -1104,7 +1322,7 @@ class _FeedParserMixin: if (not term) and (not scheme) and (not label): return value = FeedParserDict({'term': term, 'scheme': scheme, 'label': label}) if value not in tags: - tags.append(FeedParserDict({'term': term, 'scheme': scheme, 'label': label})) + tags.append(value) def _start_category(self, attrsD): if _debug: sys.stderr.write('entering _start_category with %s\n' % repr(attrsD)) @@ -1115,15 +1333,15 @@ class _FeedParserMixin: self.push('category', 1) _start_dc_subject = _start_category _start_keywords = _start_category - + def _end_itunes_keywords(self): for term in self.pop('itunes_keywords').split(): self._addTag(term, 'http://www.itunes.com/', None) - + def _start_itunes_category(self, attrsD): self._addTag(attrsD.get('text'), 'http://www.itunes.com/', None) self.push('category', 1) - + def _end_category(self): value = self.pop('category') if not value: return @@ -1139,19 +1357,22 @@ class _FeedParserMixin: def _start_cloud(self, attrsD): self._getContext()['cloud'] = FeedParserDict(attrsD) - + def _start_link(self, attrsD): attrsD.setdefault('rel', 'alternate') - attrsD.setdefault('type', 'text/html') + if attrsD['rel'] == 'self': + attrsD.setdefault('type', 'application/atom+xml') + else: + attrsD.setdefault('type', 'text/html') + context = self._getContext() attrsD = self._itsAnHrefDamnIt(attrsD) if attrsD.has_key('href'): attrsD['href'] = self.resolveURI(attrsD['href']) + if attrsD.get('rel')=='enclosure' and not context.get('id'): + context['id'] = attrsD.get('href') expectingText = self.infeed or self.inentry or self.insource - context = self._getContext() context.setdefault('links', []) context['links'].append(FeedParserDict(attrsD)) - if attrsD['rel'] == 'enclosure': - self._start_enclosure(attrsD) if attrsD.has_key('href'): expectingText = 0 if (attrsD.get('rel') == 'alternate') and (self.mapContentType(attrsD.get('type')) in self.html_types): @@ -1163,10 +1384,6 @@ class _FeedParserMixin: def _end_link(self): value = self.pop('link') context = self._getContext() - if self.intextinput: - context['textinput']['link'] = value - if self.inimage: - context['image']['link'] = value _end_producturl = _end_link def _start_guid(self, attrsD): @@ -1182,19 +1399,23 @@ class _FeedParserMixin: self._save('link', value) def _start_title(self, attrsD): + if self.svgOK: return self.unknown_starttag('title', attrsD.items()) self.pushContent('title', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) _start_dc_title = _start_title _start_media_title = _start_title def _end_title(self): + if self.svgOK: return value = self.popContent('title') + if not value: return context = self._getContext() - if self.intextinput: - context['textinput']['title'] = value - elif self.inimage: - context['image']['title'] = value + self.hasTitle = 1 _end_dc_title = _end_title - _end_media_title = _end_title + + def _end_media_title(self): + hasTitle = self.hasTitle + self._end_title() + self.hasTitle = hasTitle def _start_description(self, attrsD): context = self._getContext() @@ -1203,6 +1424,7 @@ class _FeedParserMixin: self._start_content(attrsD) else: self.pushContent('description', attrsD, 'text/html', self.infeed or self.inentry or self.insource) + _start_dc_description = _start_description def _start_abstract(self, attrsD): self.pushContent('description', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) @@ -1212,13 +1434,9 @@ class _FeedParserMixin: self._end_content() else: value = self.popContent('description') - context = self._getContext() - if self.intextinput: - context['textinput']['description'] = value - elif self.inimage: - context['image']['description'] = value self._summaryKey = None _end_abstract = _end_description + _end_dc_description = _end_description def _start_info(self, attrsD): self.pushContent('info', attrsD, 'text/plain', 1) @@ -1241,7 +1459,7 @@ class _FeedParserMixin: context = self._getContext() if context.has_key('generator_detail'): context['generator_detail']['name'] = value - + def _start_admin_generatoragent(self, attrsD): self.push('generator', 1) value = self._getAttribute(attrsD, 'rdf:resource') @@ -1256,7 +1474,7 @@ class _FeedParserMixin: if value: self.elementstack[-1][2].append(value) self.pop('errorreportsto') - + def _start_summary(self, attrsD): context = self._getContext() if context.has_key('summary'): @@ -1274,21 +1492,29 @@ class _FeedParserMixin: self.popContent(self._summaryKey or 'summary') self._summaryKey = None _end_itunes_summary = _end_summary - + def _start_enclosure(self, attrsD): attrsD = self._itsAnHrefDamnIt(attrsD) - self._getContext().setdefault('enclosures', []).append(FeedParserDict(attrsD)) + context = self._getContext() + attrsD['rel']='enclosure' + context.setdefault('links', []).append(FeedParserDict(attrsD)) href = attrsD.get('href') - if href: - context = self._getContext() - if not context.get('id'): - context['id'] = href - + if href and not context.get('id'): + context['id'] = href + def _start_source(self, attrsD): + if 'url' in attrsD: + # This means that we're processing a source element from an RSS 2.0 feed + self.sourcedata['href'] = attrsD[u'url'] + self.push('source', 1) self.insource = 1 + self.hasTitle = 0 def _end_source(self): self.insource = 0 + value = self.pop('source') + if value: + self.sourcedata['title'] = value self._getContext()['source'] = copy.deepcopy(self.sourcedata) self.sourcedata.clear() @@ -1315,6 +1541,7 @@ class _FeedParserMixin: value = self.popContent('content') if copyToDescription: self._save('description', value) + _end_body = _end_content _end_xhtml_body = _end_content _end_content_encoded = _end_content @@ -1325,7 +1552,7 @@ class _FeedParserMixin: self.push('itunes_image', 0) self._getContext()['image'] = FeedParserDict({'href': attrsD.get('href')}) _start_itunes_link = _start_itunes_image - + def _end_itunes_block(self): value = self.pop('itunes_block', 0) self._getContext()['itunes_block'] = (value == 'yes') and 1 or 0 @@ -1334,6 +1561,33 @@ class _FeedParserMixin: value = self.pop('itunes_explicit', 0) self._getContext()['itunes_explicit'] = (value == 'yes') and 1 or 0 + def _start_media_content(self, attrsD): + context = self._getContext() + context.setdefault('media_content', []) + context['media_content'].append(attrsD) + + def _start_media_thumbnail(self, attrsD): + context = self._getContext() + context.setdefault('media_thumbnail', []) + self.push('url', 1) # new + context['media_thumbnail'].append(attrsD) + + def _end_media_thumbnail(self): + url = self.pop('url') + context = self._getContext() + if url != None and len(url.strip()) != 0: + if not context['media_thumbnail'][-1].has_key('url'): + context['media_thumbnail'][-1]['url'] = url + + def _start_media_player(self, attrsD): + self.push('media_player', 0) + self._getContext()['media_player'] = FeedParserDict(attrsD) + + def _end_media_player(self): + value = self.pop('media_player') + context = self._getContext() + context['media_player']['content'] = value + if _XML_AVAILABLE: class _StrictFeedParser(_FeedParserMixin, xml.sax.handler.ContentHandler): def __init__(self, baseuri, baselang, encoding): @@ -1342,10 +1596,13 @@ if _XML_AVAILABLE: _FeedParserMixin.__init__(self, baseuri, baselang, encoding) self.bozo = 0 self.exc = None - + self.decls = {} + def startPrefixMapping(self, prefix, uri): self.trackNamespace(prefix, uri) - + if uri == 'http://www.w3.org/1999/xlink': + self.decls['xmlns:'+prefix] = uri + def startElementNS(self, name, qname, attrs): namespace, localname = name lowernamespace = str(namespace or '').lower() @@ -1360,10 +1617,7 @@ if _XML_AVAILABLE: prefix = self._matchnamespaces.get(lowernamespace, givenprefix) if givenprefix and (prefix == None or (prefix == '' and lowernamespace == '')) and not self.namespacesInUse.has_key(givenprefix): raise UndeclaredNamespace, "'%s' is not associated with a namespace" % givenprefix - if prefix: - localname = prefix + ':' + localname localname = str(localname).lower() - if _debug: sys.stderr.write('startElementNS: qname = %s, namespace = %s, givenprefix = %s, prefix = %s, attrs = %s, localname = %s\n' % (qname, namespace, givenprefix, prefix, attrs.items(), localname)) # qname implementation is horribly broken in Python 2.1 (it # doesn't report any), and slightly broken in Python 2.2 (it @@ -1372,7 +1626,21 @@ if _XML_AVAILABLE: # the qnames the SAX parser gives us (if indeed it gives us any # at all). Thanks to MatejC for helping me test this and # tirelessly telling me that it didn't work yet. - attrsD = {} + attrsD, self.decls = self.decls, {} + if localname=='math' and namespace=='http://www.w3.org/1998/Math/MathML': + attrsD['xmlns']=namespace + if localname=='svg' and namespace=='http://www.w3.org/2000/svg': + attrsD['xmlns']=namespace + + if prefix: + localname = prefix.lower() + ':' + localname + elif namespace and not qname: #Expat + for name,value in self.namespacesInUse.items(): + if name and value == namespace: + localname = name + ':' + localname + break + if _debug: sys.stderr.write('startElementNS: qname = %s, namespace = %s, givenprefix = %s, prefix = %s, attrs = %s, localname = %s\n' % (qname, namespace, givenprefix, prefix, attrs.items(), localname)) + for (namespace, attrlocalname), attrvalue in attrs._attrs.items(): lowernamespace = (namespace or '').lower() prefix = self._matchnamespaces.get(lowernamespace, '') @@ -1396,26 +1664,37 @@ if _XML_AVAILABLE: prefix = self._matchnamespaces.get(lowernamespace, givenprefix) if prefix: localname = prefix + ':' + localname + elif namespace and not qname: #Expat + for name,value in self.namespacesInUse.items(): + if name and value == namespace: + localname = name + ':' + localname + break localname = str(localname).lower() self.unknown_endtag(localname) def error(self, exc): self.bozo = 1 self.exc = exc - + def fatalError(self, exc): self.error(exc) raise exc class _BaseHTMLProcessor(sgmllib.SGMLParser): - elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', - 'img', 'input', 'isindex', 'link', 'meta', 'param'] - - def __init__(self, encoding): + special = re.compile('''[<>'"]''') + bare_ampersand = re.compile("&(?!#\d+;|#x[0-9a-fA-F]+;|\w+;)") + elements_no_end_tag = [ + 'area', 'base', 'basefont', 'br', 'col', 'command', 'embed', 'frame', + 'hr', 'img', 'input', 'isindex', 'keygen', 'link', 'meta', 'param', + 'source', 'track', 'wbr' + ] + + def __init__(self, encoding, type): self.encoding = encoding + self.type = type if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) sgmllib.SGMLParser.__init__(self) - + def reset(self): self.pieces = [] sgmllib.SGMLParser.reset(self) @@ -1426,21 +1705,31 @@ class _BaseHTMLProcessor(sgmllib.SGMLParser): return '<' + tag + ' />' else: return '<' + tag + '></' + tag + '>' - + + def parse_starttag(self,i): + j=sgmllib.SGMLParser.parse_starttag(self, i) + if self.type == 'application/xhtml+xml': + if j>2 and self.rawdata[j-2:j]=='/>': + self.unknown_endtag(self.lasttag) + return j + def feed(self, data): data = re.compile(r'<!((?!DOCTYPE|--|\[))', re.IGNORECASE).sub(r'<!\1', data) #data = re.sub(r'<(\S+?)\s*?/>', self._shorttag_replace, data) # bug [ 1399464 ] Bad regexp for _shorttag_replace - data = re.sub(r'<([^<\s]+?)\s*/>', self._shorttag_replace, data) + data = re.sub(r'<([^<>\s]+?)\s*/>', self._shorttag_replace, data) data = data.replace(''', "'") data = data.replace('"', '"') if self.encoding and type(data) == type(u''): data = data.encode(self.encoding) sgmllib.SGMLParser.feed(self, data) + sgmllib.SGMLParser.close(self) def normalize_attrs(self, attrs): + if not attrs: return attrs # utility method to be called by descendants - attrs = [(k.lower(), v) for k, v in attrs] + attrs = dict([(k.lower(), v) for k, v in attrs]).items() attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + attrs.sort() return attrs def unknown_starttag(self, tag, attrs): @@ -1449,12 +1738,24 @@ class _BaseHTMLProcessor(sgmllib.SGMLParser): # e.g. for <pre class='screen'>, tag='pre', attrs=[('class', 'screen')] if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag) uattrs = [] - # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds - for key, value in attrs: - if type(value) != type(u''): - value = unicode(value, self.encoding, 'replace') - uattrs.append((unicode(key, self.encoding), value)) - strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding) + strattrs='' + if attrs: + for key, value in attrs: + value=value.replace('>','>').replace('<','<').replace('"','"') + value = self.bare_ampersand.sub("&", value) + # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds + if type(value) != type(u''): + try: + value = unicode(value, self.encoding) + except: + value = unicode(value, 'iso-8859-1') + uattrs.append((unicode(key, self.encoding), value)) + strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]) + if self.encoding: + try: + strattrs=strattrs.encode(self.encoding) + except: + pass if tag in self.elements_no_end_tag: self.pieces.append('<%(tag)s%(strattrs)s />' % locals()) else: @@ -1469,25 +1770,36 @@ class _BaseHTMLProcessor(sgmllib.SGMLParser): def handle_charref(self, ref): # called for each character reference, e.g. for ' ', ref will be '160' # Reconstruct the original character reference. - self.pieces.append('&#%(ref)s;' % locals()) - + if ref.startswith('x'): + value = unichr(int(ref[1:],16)) + else: + value = unichr(int(ref)) + + if value in _cp1252.keys(): + self.pieces.append('&#%s;' % hex(ord(_cp1252[value]))[1:]) + else: + self.pieces.append('&#%(ref)s;' % locals()) + def handle_entityref(self, ref): # called for each entity reference, e.g. for '©', ref will be 'copy' # Reconstruct the original entity reference. - self.pieces.append('&%(ref)s;' % locals()) + if name2codepoint.has_key(ref): + self.pieces.append('&%(ref)s;' % locals()) + else: + self.pieces.append('&%(ref)s' % locals()) def handle_data(self, text): # called for each block of plain text, i.e. outside of any tag and # not containing any character or entity references # Store the original text verbatim. - if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_data, text=%s\n' % text) self.pieces.append(text) - + def handle_comment(self, text): # called for each HTML comment, e.g. <!-- insert Javascript code here --> # Reconstruct the original comment. self.pieces.append('<!--%(text)s-->' % locals()) - + def handle_pi(self, text): # called for each processing instruction, e.g. <?instruction> # Reconstruct original processing instruction. @@ -1499,7 +1811,7 @@ class _BaseHTMLProcessor(sgmllib.SGMLParser): # "http://www.w3.org/TR/html4/loose.dtd"> # Reconstruct original DOCTYPE self.pieces.append('<!%(text)s>' % locals()) - + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match def _scan_name(self, i, declstartpos): rawdata = self.rawdata @@ -1518,20 +1830,30 @@ class _BaseHTMLProcessor(sgmllib.SGMLParser): # self.updatepos(declstartpos, i) return None, -1 + def convert_charref(self, name): + return '&#%s;' % name + + def convert_entityref(self, name): + return '&%s;' % name + def output(self): '''Return processed HTML as a single string''' return ''.join([str(p) for p in self.pieces]) class _LooseFeedParser(_FeedParserMixin, _BaseHTMLProcessor): - def __init__(self, baseuri, baselang, encoding): + def __init__(self, baseuri, baselang, encoding, entities): sgmllib.SGMLParser.__init__(self) _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + _BaseHTMLProcessor.__init__(self, encoding, 'application/xhtml+xml') + self.entities=entities def decodeEntities(self, element, data): data = data.replace('<', '<') data = data.replace('<', '<') + data = data.replace('<', '<') data = data.replace('>', '>') data = data.replace('>', '>') + data = data.replace('>', '>') data = data.replace('&', '&') data = data.replace('&', '&') data = data.replace('"', '"') @@ -1545,7 +1867,423 @@ class _LooseFeedParser(_FeedParserMixin, _BaseHTMLProcessor): data = data.replace('"', '"') data = data.replace(''', "'") return data - + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % (n,v.replace('"','"')) for n,v in attrs]) + +class _MicroformatsParser: + STRING = 1 + DATE = 2 + URI = 3 + NODE = 4 + EMAIL = 5 + + known_xfn_relationships = ['contact', 'acquaintance', 'friend', 'met', 'co-worker', 'coworker', 'colleague', 'co-resident', 'coresident', 'neighbor', 'child', 'parent', 'sibling', 'brother', 'sister', 'spouse', 'wife', 'husband', 'kin', 'relative', 'muse', 'crush', 'date', 'sweetheart', 'me'] + known_binary_extensions = ['zip','rar','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','rar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv'] + + def __init__(self, data, baseuri, encoding): + self.document = BeautifulSoup.BeautifulSoup(data) + self.baseuri = baseuri + self.encoding = encoding + if type(data) == type(u''): + data = data.encode(encoding) + self.tags = [] + self.enclosures = [] + self.xfn = [] + self.vcard = None + + def vcardEscape(self, s): + if type(s) in (type(''), type(u'')): + s = s.replace(',', '\\,').replace(';', '\\;').replace('\n', '\\n') + return s + + def vcardFold(self, s): + s = re.sub(';+$', '', s) + sFolded = '' + iMax = 75 + sPrefix = '' + while len(s) > iMax: + sFolded += sPrefix + s[:iMax] + '\n' + s = s[iMax:] + sPrefix = ' ' + iMax = 74 + sFolded += sPrefix + s + return sFolded + + def normalize(self, s): + return re.sub(r'\s+', ' ', s).strip() + + def unique(self, aList): + results = [] + for element in aList: + if element not in results: + results.append(element) + return results + + def toISO8601(self, dt): + return time.strftime('%Y-%m-%dT%H:%M:%SZ', dt) + + def getPropertyValue(self, elmRoot, sProperty, iPropertyType=4, bAllowMultiple=0, bAutoEscape=0): + all = lambda x: 1 + sProperty = sProperty.lower() + bFound = 0 + bNormalize = 1 + propertyMatch = {'class': re.compile(r'\b%s\b' % sProperty)} + if bAllowMultiple and (iPropertyType != self.NODE): + snapResults = [] + containers = elmRoot(['ul', 'ol'], propertyMatch) + for container in containers: + snapResults.extend(container('li')) + bFound = (len(snapResults) != 0) + if not bFound: + snapResults = elmRoot(all, propertyMatch) + bFound = (len(snapResults) != 0) + if (not bFound) and (sProperty == 'value'): + snapResults = elmRoot('pre') + bFound = (len(snapResults) != 0) + bNormalize = not bFound + if not bFound: + snapResults = [elmRoot] + bFound = (len(snapResults) != 0) + arFilter = [] + if sProperty == 'vcard': + snapFilter = elmRoot(all, propertyMatch) + for node in snapFilter: + if node.findParent(all, propertyMatch): + arFilter.append(node) + arResults = [] + for node in snapResults: + if node not in arFilter: + arResults.append(node) + bFound = (len(arResults) != 0) + if not bFound: + if bAllowMultiple: return [] + elif iPropertyType == self.STRING: return '' + elif iPropertyType == self.DATE: return None + elif iPropertyType == self.URI: return '' + elif iPropertyType == self.NODE: return None + else: return None + arValues = [] + for elmResult in arResults: + sValue = None + if iPropertyType == self.NODE: + if bAllowMultiple: + arValues.append(elmResult) + continue + else: + return elmResult + sNodeName = elmResult.name.lower() + if (iPropertyType == self.EMAIL) and (sNodeName == 'a'): + sValue = (elmResult.get('href') or '').split('mailto:').pop().split('?')[0] + if sValue: + sValue = bNormalize and self.normalize(sValue) or sValue.strip() + if (not sValue) and (sNodeName == 'abbr'): + sValue = elmResult.get('title') + if sValue: + sValue = bNormalize and self.normalize(sValue) or sValue.strip() + if (not sValue) and (iPropertyType == self.URI): + if sNodeName == 'a': sValue = elmResult.get('href') + elif sNodeName == 'img': sValue = elmResult.get('src') + elif sNodeName == 'object': sValue = elmResult.get('data') + if sValue: + sValue = bNormalize and self.normalize(sValue) or sValue.strip() + if (not sValue) and (sNodeName == 'img'): + sValue = elmResult.get('alt') + if sValue: + sValue = bNormalize and self.normalize(sValue) or sValue.strip() + if not sValue: + sValue = elmResult.renderContents() + sValue = re.sub(r'<\S[^>]*>', '', sValue) + sValue = sValue.replace('\r\n', '\n') + sValue = sValue.replace('\r', '\n') + if sValue: + sValue = bNormalize and self.normalize(sValue) or sValue.strip() + if not sValue: continue + if iPropertyType == self.DATE: + sValue = _parse_date_iso8601(sValue) + if bAllowMultiple: + arValues.append(bAutoEscape and self.vcardEscape(sValue) or sValue) + else: + return bAutoEscape and self.vcardEscape(sValue) or sValue + return arValues + + def findVCards(self, elmRoot, bAgentParsing=0): + sVCards = '' + + if not bAgentParsing: + arCards = self.getPropertyValue(elmRoot, 'vcard', bAllowMultiple=1) + else: + arCards = [elmRoot] + + for elmCard in arCards: + arLines = [] + + def processSingleString(sProperty): + sValue = self.getPropertyValue(elmCard, sProperty, self.STRING, bAutoEscape=1) + if sValue: + arLines.append(self.vcardFold(sProperty.upper() + ':' + sValue)) + return sValue or '' + + def processSingleURI(sProperty): + sValue = self.getPropertyValue(elmCard, sProperty, self.URI) + if sValue: + sContentType = '' + sEncoding = '' + sValueKey = '' + if sValue.startswith('data:'): + sEncoding = ';ENCODING=b' + sContentType = sValue.split(';')[0].split('/').pop() + sValue = sValue.split(',', 1).pop() + else: + elmValue = self.getPropertyValue(elmCard, sProperty) + if elmValue: + if sProperty != 'url': + sValueKey = ';VALUE=uri' + sContentType = elmValue.get('type', '').strip().split('/').pop().strip() + sContentType = sContentType.upper() + if sContentType == 'OCTET-STREAM': + sContentType = '' + if sContentType: + sContentType = ';TYPE=' + sContentType.upper() + arLines.append(self.vcardFold(sProperty.upper() + sEncoding + sContentType + sValueKey + ':' + sValue)) + + def processTypeValue(sProperty, arDefaultType, arForceType=None): + arResults = self.getPropertyValue(elmCard, sProperty, bAllowMultiple=1) + for elmResult in arResults: + arType = self.getPropertyValue(elmResult, 'type', self.STRING, 1, 1) + if arForceType: + arType = self.unique(arForceType + arType) + if not arType: + arType = arDefaultType + sValue = self.getPropertyValue(elmResult, 'value', self.EMAIL, 0) + if sValue: + arLines.append(self.vcardFold(sProperty.upper() + ';TYPE=' + ','.join(arType) + ':' + sValue)) + + # AGENT + # must do this before all other properties because it is destructive + # (removes nested class="vcard" nodes so they don't interfere with + # this vcard's other properties) + arAgent = self.getPropertyValue(elmCard, 'agent', bAllowMultiple=1) + for elmAgent in arAgent: + if re.compile(r'\bvcard\b').search(elmAgent.get('class')): + sAgentValue = self.findVCards(elmAgent, 1) + '\n' + sAgentValue = sAgentValue.replace('\n', '\\n') + sAgentValue = sAgentValue.replace(';', '\\;') + if sAgentValue: + arLines.append(self.vcardFold('AGENT:' + sAgentValue)) + elmAgent['class'] = '' + elmAgent.contents = [] + else: + sAgentValue = self.getPropertyValue(elmAgent, 'value', self.URI, bAutoEscape=1); + if sAgentValue: + arLines.append(self.vcardFold('AGENT;VALUE=uri:' + sAgentValue)) + + # FN (full name) + sFN = processSingleString('fn') + + # N (name) + elmName = self.getPropertyValue(elmCard, 'n') + if elmName: + sFamilyName = self.getPropertyValue(elmName, 'family-name', self.STRING, bAutoEscape=1) + sGivenName = self.getPropertyValue(elmName, 'given-name', self.STRING, bAutoEscape=1) + arAdditionalNames = self.getPropertyValue(elmName, 'additional-name', self.STRING, 1, 1) + self.getPropertyValue(elmName, 'additional-names', self.STRING, 1, 1) + arHonorificPrefixes = self.getPropertyValue(elmName, 'honorific-prefix', self.STRING, 1, 1) + self.getPropertyValue(elmName, 'honorific-prefixes', self.STRING, 1, 1) + arHonorificSuffixes = self.getPropertyValue(elmName, 'honorific-suffix', self.STRING, 1, 1) + self.getPropertyValue(elmName, 'honorific-suffixes', self.STRING, 1, 1) + arLines.append(self.vcardFold('N:' + sFamilyName + ';' + + sGivenName + ';' + + ','.join(arAdditionalNames) + ';' + + ','.join(arHonorificPrefixes) + ';' + + ','.join(arHonorificSuffixes))) + elif sFN: + # implied "N" optimization + # http://microformats.org/wiki/hcard#Implied_.22N.22_Optimization + arNames = self.normalize(sFN).split() + if len(arNames) == 2: + bFamilyNameFirst = (arNames[0].endswith(',') or + len(arNames[1]) == 1 or + ((len(arNames[1]) == 2) and (arNames[1].endswith('.')))) + if bFamilyNameFirst: + arLines.append(self.vcardFold('N:' + arNames[0] + ';' + arNames[1])) + else: + arLines.append(self.vcardFold('N:' + arNames[1] + ';' + arNames[0])) + + # SORT-STRING + sSortString = self.getPropertyValue(elmCard, 'sort-string', self.STRING, bAutoEscape=1) + if sSortString: + arLines.append(self.vcardFold('SORT-STRING:' + sSortString)) + + # NICKNAME + arNickname = self.getPropertyValue(elmCard, 'nickname', self.STRING, 1, 1) + if arNickname: + arLines.append(self.vcardFold('NICKNAME:' + ','.join(arNickname))) + + # PHOTO + processSingleURI('photo') + + # BDAY + dtBday = self.getPropertyValue(elmCard, 'bday', self.DATE) + if dtBday: + arLines.append(self.vcardFold('BDAY:' + self.toISO8601(dtBday))) + + # ADR (address) + arAdr = self.getPropertyValue(elmCard, 'adr', bAllowMultiple=1) + for elmAdr in arAdr: + arType = self.getPropertyValue(elmAdr, 'type', self.STRING, 1, 1) + if not arType: + arType = ['intl','postal','parcel','work'] # default adr types, see RFC 2426 section 3.2.1 + sPostOfficeBox = self.getPropertyValue(elmAdr, 'post-office-box', self.STRING, 0, 1) + sExtendedAddress = self.getPropertyValue(elmAdr, 'extended-address', self.STRING, 0, 1) + sStreetAddress = self.getPropertyValue(elmAdr, 'street-address', self.STRING, 0, 1) + sLocality = self.getPropertyValue(elmAdr, 'locality', self.STRING, 0, 1) + sRegion = self.getPropertyValue(elmAdr, 'region', self.STRING, 0, 1) + sPostalCode = self.getPropertyValue(elmAdr, 'postal-code', self.STRING, 0, 1) + sCountryName = self.getPropertyValue(elmAdr, 'country-name', self.STRING, 0, 1) + arLines.append(self.vcardFold('ADR;TYPE=' + ','.join(arType) + ':' + + sPostOfficeBox + ';' + + sExtendedAddress + ';' + + sStreetAddress + ';' + + sLocality + ';' + + sRegion + ';' + + sPostalCode + ';' + + sCountryName)) + + # LABEL + processTypeValue('label', ['intl','postal','parcel','work']) + + # TEL (phone number) + processTypeValue('tel', ['voice']) + + # EMAIL + processTypeValue('email', ['internet'], ['internet']) + + # MAILER + processSingleString('mailer') + + # TZ (timezone) + processSingleString('tz') + + # GEO (geographical information) + elmGeo = self.getPropertyValue(elmCard, 'geo') + if elmGeo: + sLatitude = self.getPropertyValue(elmGeo, 'latitude', self.STRING, 0, 1) + sLongitude = self.getPropertyValue(elmGeo, 'longitude', self.STRING, 0, 1) + arLines.append(self.vcardFold('GEO:' + sLatitude + ';' + sLongitude)) + + # TITLE + processSingleString('title') + + # ROLE + processSingleString('role') + + # LOGO + processSingleURI('logo') + + # ORG (organization) + elmOrg = self.getPropertyValue(elmCard, 'org') + if elmOrg: + sOrganizationName = self.getPropertyValue(elmOrg, 'organization-name', self.STRING, 0, 1) + if not sOrganizationName: + # implied "organization-name" optimization + # http://microformats.org/wiki/hcard#Implied_.22organization-name.22_Optimization + sOrganizationName = self.getPropertyValue(elmCard, 'org', self.STRING, 0, 1) + if sOrganizationName: + arLines.append(self.vcardFold('ORG:' + sOrganizationName)) + else: + arOrganizationUnit = self.getPropertyValue(elmOrg, 'organization-unit', self.STRING, 1, 1) + arLines.append(self.vcardFold('ORG:' + sOrganizationName + ';' + ';'.join(arOrganizationUnit))) + + # CATEGORY + arCategory = self.getPropertyValue(elmCard, 'category', self.STRING, 1, 1) + self.getPropertyValue(elmCard, 'categories', self.STRING, 1, 1) + if arCategory: + arLines.append(self.vcardFold('CATEGORIES:' + ','.join(arCategory))) + + # NOTE + processSingleString('note') + + # REV + processSingleString('rev') + + # SOUND + processSingleURI('sound') + + # UID + processSingleString('uid') + + # URL + processSingleURI('url') + + # CLASS + processSingleString('class') + + # KEY + processSingleURI('key') + + if arLines: + arLines = ['BEGIN:vCard','VERSION:3.0'] + arLines + ['END:vCard'] + sVCards += '\n'.join(arLines) + '\n' + + return sVCards.strip() + + def isProbablyDownloadable(self, elm): + attrsD = elm.attrMap + if not attrsD.has_key('href'): return 0 + linktype = attrsD.get('type', '').strip() + if linktype.startswith('audio/') or \ + linktype.startswith('video/') or \ + (linktype.startswith('application/') and not linktype.endswith('xml')): + return 1 + path = urlparse.urlparse(attrsD['href'])[2] + if path.find('.') == -1: return 0 + fileext = path.split('.').pop().lower() + return fileext in self.known_binary_extensions + + def findTags(self): + all = lambda x: 1 + for elm in self.document(all, {'rel': re.compile(r'\btag\b')}): + href = elm.get('href') + if not href: continue + urlscheme, domain, path, params, query, fragment = \ + urlparse.urlparse(_urljoin(self.baseuri, href)) + segments = path.split('/') + tag = segments.pop() + if not tag: + tag = segments.pop() + tagscheme = urlparse.urlunparse((urlscheme, domain, '/'.join(segments), '', '', '')) + if not tagscheme.endswith('/'): + tagscheme += '/' + self.tags.append(FeedParserDict({"term": tag, "scheme": tagscheme, "label": elm.string or ''})) + + def findEnclosures(self): + all = lambda x: 1 + enclosure_match = re.compile(r'\benclosure\b') + for elm in self.document(all, {'href': re.compile(r'.+')}): + if not enclosure_match.search(elm.get('rel', '')) and not self.isProbablyDownloadable(elm): continue + if elm.attrMap not in self.enclosures: + self.enclosures.append(elm.attrMap) + if elm.string and not elm.get('title'): + self.enclosures[-1]['title'] = elm.string + + def findXFN(self): + all = lambda x: 1 + for elm in self.document(all, {'rel': re.compile('.+'), 'href': re.compile('.+')}): + rels = elm.get('rel', '').split() + xfn_rels = [] + for rel in rels: + if rel in self.known_xfn_relationships: + xfn_rels.append(rel) + if xfn_rels: + self.xfn.append({"relationships": xfn_rels, "href": elm.get('href', ''), "name": elm.string}) + +def _parseMicroformats(htmlSource, baseURI, encoding): + if not BeautifulSoup: return + if _debug: sys.stderr.write('entering _parseMicroformats\n') + p = _MicroformatsParser(htmlSource, baseURI, encoding) + p.vcard = p.findVCards(p.document) + p.findTags() + p.findEnclosures() + p.findXFN() + return {"tags": p.tags, "enclosures": p.enclosures, "xfn": p.xfn, "vcard": p.vcard} + class _RelativeURIResolver(_BaseHTMLProcessor): relative_uris = [('a', 'href'), ('applet', 'codebase'), @@ -1573,65 +2311,226 @@ class _RelativeURIResolver(_BaseHTMLProcessor): ('q', 'cite'), ('script', 'src')] - def __init__(self, baseuri, encoding): - _BaseHTMLProcessor.__init__(self, encoding) + def __init__(self, baseuri, encoding, type): + _BaseHTMLProcessor.__init__(self, encoding, type) self.baseuri = baseuri def resolveURI(self, uri): - return _urljoin(self.baseuri, uri) - + return _urljoin(self.baseuri, uri.strip()) + def unknown_starttag(self, tag, attrs): + if _debug: + sys.stderr.write('tag: [%s] with attributes: [%s]\n' % (tag, str(attrs))) attrs = self.normalize_attrs(attrs) attrs = [(key, ((tag, key) in self.relative_uris) and self.resolveURI(value) or value) for key, value in attrs] _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) - -def _resolveRelativeURIs(htmlSource, baseURI, encoding): - if _debug: sys.stderr.write('entering _resolveRelativeURIs\n') - p = _RelativeURIResolver(baseURI, encoding) + +def _resolveRelativeURIs(htmlSource, baseURI, encoding, type): + if _debug: + sys.stderr.write('entering _resolveRelativeURIs\n') + + p = _RelativeURIResolver(baseURI, encoding, type) p.feed(htmlSource) return p.output() class _HTMLSanitizer(_BaseHTMLProcessor): - acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', - 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', - 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', - 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', - 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', - 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', - 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', - 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'article', + 'aside', 'audio', 'b', 'big', 'blockquote', 'br', 'button', 'canvas', + 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'command', + 'datagrid', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'dir', + 'div', 'dl', 'dt', 'em', 'event-source', 'fieldset', 'figure', 'footer', + 'font', 'form', 'header', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', + 'img', 'input', 'ins', 'keygen', 'kbd', 'label', 'legend', 'li', 'm', 'map', + 'menu', 'meter', 'multicol', 'nav', 'nextid', 'ol', 'output', 'optgroup', + 'option', 'p', 'pre', 'progress', 'q', 's', 'samp', 'section', 'select', + 'small', 'sound', 'source', 'spacer', 'span', 'strike', 'strong', 'sub', + 'sup', 'table', 'tbody', 'td', 'textarea', 'time', 'tfoot', 'th', 'thead', + 'tr', 'tt', 'u', 'ul', 'var', 'video', 'noscript'] acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', - 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', - 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', - 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', - 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', - 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', - 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', - 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', - 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', - 'usemap', 'valign', 'value', 'vspace', 'width'] + 'action', 'align', 'alt', 'autocomplete', 'autofocus', 'axis', + 'background', 'balance', 'bgcolor', 'bgproperties', 'border', + 'bordercolor', 'bordercolordark', 'bordercolorlight', 'bottompadding', + 'cellpadding', 'cellspacing', 'ch', 'challenge', 'char', 'charoff', + 'choff', 'charset', 'checked', 'cite', 'class', 'clear', 'color', 'cols', + 'colspan', 'compact', 'contenteditable', 'controls', 'coords', 'data', + 'datafld', 'datapagesize', 'datasrc', 'datetime', 'default', 'delay', + 'dir', 'disabled', 'draggable', 'dynsrc', 'enctype', 'end', 'face', 'for', + 'form', 'frame', 'galleryimg', 'gutter', 'headers', 'height', 'hidefocus', + 'hidden', 'high', 'href', 'hreflang', 'hspace', 'icon', 'id', 'inputmode', + 'ismap', 'keytype', 'label', 'leftspacing', 'lang', 'list', 'longdesc', + 'loop', 'loopcount', 'loopend', 'loopstart', 'low', 'lowsrc', 'max', + 'maxlength', 'media', 'method', 'min', 'multiple', 'name', 'nohref', + 'noshade', 'nowrap', 'open', 'optimum', 'pattern', 'ping', 'point-size', + 'prompt', 'pqg', 'radiogroup', 'readonly', 'rel', 'repeat-max', + 'repeat-min', 'replace', 'required', 'rev', 'rightspacing', 'rows', + 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', 'span', 'src', + 'start', 'step', 'summary', 'suppress', 'tabindex', 'target', 'template', + 'title', 'toppadding', 'type', 'unselectable', 'usemap', 'urn', 'valign', + 'value', 'variable', 'volume', 'vspace', 'vrml', 'width', 'wrap', + 'xml:lang'] - unacceptable_elements_with_end_tag = ['script', 'applet'] + unacceptable_elements_with_end_tag = ['script', 'applet', 'style'] + + acceptable_css_properties = ['azimuth', 'background-color', + 'border-bottom-color', 'border-collapse', 'border-color', + 'border-left-color', 'border-right-color', 'border-top-color', 'clear', + 'color', 'cursor', 'direction', 'display', 'elevation', 'float', 'font', + 'font-family', 'font-size', 'font-style', 'font-variant', 'font-weight', + 'height', 'letter-spacing', 'line-height', 'overflow', 'pause', + 'pause-after', 'pause-before', 'pitch', 'pitch-range', 'richness', + 'speak', 'speak-header', 'speak-numeral', 'speak-punctuation', + 'speech-rate', 'stress', 'text-align', 'text-decoration', 'text-indent', + 'unicode-bidi', 'vertical-align', 'voice-family', 'volume', + 'white-space', 'width'] + + # survey of common keywords found in feeds + acceptable_css_keywords = ['auto', 'aqua', 'black', 'block', 'blue', + 'bold', 'both', 'bottom', 'brown', 'center', 'collapse', 'dashed', + 'dotted', 'fuchsia', 'gray', 'green', '!important', 'italic', 'left', + 'lime', 'maroon', 'medium', 'none', 'navy', 'normal', 'nowrap', 'olive', + 'pointer', 'purple', 'red', 'right', 'solid', 'silver', 'teal', 'top', + 'transparent', 'underline', 'white', 'yellow'] + + valid_css_values = re.compile('^(#[0-9a-f]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|' + + '\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$') + + mathml_elements = ['annotation', 'annotation-xml', 'maction', 'math', + 'merror', 'mfenced', 'mfrac', 'mi', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', + 'mphantom', 'mprescripts', 'mroot', 'mrow', 'mspace', 'msqrt', 'mstyle', + 'msub', 'msubsup', 'msup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', + 'munderover', 'none', 'semantics'] + + mathml_attributes = ['actiontype', 'align', 'columnalign', 'columnalign', + 'columnalign', 'close', 'columnlines', 'columnspacing', 'columnspan', 'depth', + 'display', 'displaystyle', 'encoding', 'equalcolumns', 'equalrows', + 'fence', 'fontstyle', 'fontweight', 'frame', 'height', 'linethickness', + 'lspace', 'mathbackground', 'mathcolor', 'mathvariant', 'mathvariant', + 'maxsize', 'minsize', 'open', 'other', 'rowalign', 'rowalign', 'rowalign', + 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'scriptlevel', 'selection', + 'separator', 'separators', 'stretchy', 'width', 'width', 'xlink:href', + 'xlink:show', 'xlink:type', 'xmlns', 'xmlns:xlink'] + + # svgtiny - foreignObject + linearGradient + radialGradient + stop + svg_elements = ['a', 'animate', 'animateColor', 'animateMotion', + 'animateTransform', 'circle', 'defs', 'desc', 'ellipse', 'foreignObject', + 'font-face', 'font-face-name', 'font-face-src', 'g', 'glyph', 'hkern', + 'linearGradient', 'line', 'marker', 'metadata', 'missing-glyph', 'mpath', + 'path', 'polygon', 'polyline', 'radialGradient', 'rect', 'set', 'stop', + 'svg', 'switch', 'text', 'title', 'tspan', 'use'] + + # svgtiny + class + opacity + offset + xmlns + xmlns:xlink + svg_attributes = ['accent-height', 'accumulate', 'additive', 'alphabetic', + 'arabic-form', 'ascent', 'attributeName', 'attributeType', + 'baseProfile', 'bbox', 'begin', 'by', 'calcMode', 'cap-height', + 'class', 'color', 'color-rendering', 'content', 'cx', 'cy', 'd', 'dx', + 'dy', 'descent', 'display', 'dur', 'end', 'fill', 'fill-opacity', + 'fill-rule', 'font-family', 'font-size', 'font-stretch', 'font-style', + 'font-variant', 'font-weight', 'from', 'fx', 'fy', 'g1', 'g2', + 'glyph-name', 'gradientUnits', 'hanging', 'height', 'horiz-adv-x', + 'horiz-origin-x', 'id', 'ideographic', 'k', 'keyPoints', 'keySplines', + 'keyTimes', 'lang', 'mathematical', 'marker-end', 'marker-mid', + 'marker-start', 'markerHeight', 'markerUnits', 'markerWidth', 'max', + 'min', 'name', 'offset', 'opacity', 'orient', 'origin', + 'overline-position', 'overline-thickness', 'panose-1', 'path', + 'pathLength', 'points', 'preserveAspectRatio', 'r', 'refX', 'refY', + 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', + 'restart', 'rotate', 'rx', 'ry', 'slope', 'stemh', 'stemv', + 'stop-color', 'stop-opacity', 'strikethrough-position', + 'strikethrough-thickness', 'stroke', 'stroke-dasharray', + 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', + 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'systemLanguage', + 'target', 'text-anchor', 'to', 'transform', 'type', 'u1', 'u2', + 'underline-position', 'underline-thickness', 'unicode', 'unicode-range', + 'units-per-em', 'values', 'version', 'viewBox', 'visibility', 'width', + 'widths', 'x', 'x-height', 'x1', 'x2', 'xlink:actuate', 'xlink:arcrole', + 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', + 'xml:base', 'xml:lang', 'xml:space', 'xmlns', 'xmlns:xlink', 'y', 'y1', + 'y2', 'zoomAndPan'] + + svg_attr_map = None + svg_elem_map = None + + acceptable_svg_properties = [ 'fill', 'fill-opacity', 'fill-rule', + 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', + 'stroke-opacity'] def reset(self): _BaseHTMLProcessor.reset(self) self.unacceptablestack = 0 - + self.mathmlOK = 0 + self.svgOK = 0 + def unknown_starttag(self, tag, attrs): - if not tag in self.acceptable_elements: + acceptable_attributes = self.acceptable_attributes + keymap = {} + if not tag in self.acceptable_elements or self.svgOK: if tag in self.unacceptable_elements_with_end_tag: self.unacceptablestack += 1 - return - attrs = self.normalize_attrs(attrs) - attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] - _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) - + + # add implicit namespaces to html5 inline svg/mathml + if self.type.endswith('html'): + if not dict(attrs).get('xmlns'): + if tag=='svg': + attrs.append( ('xmlns','http://www.w3.org/2000/svg') ) + if tag=='math': + attrs.append( ('xmlns','http://www.w3.org/1998/Math/MathML') ) + + # not otherwise acceptable, perhaps it is MathML or SVG? + if tag=='math' and ('xmlns','http://www.w3.org/1998/Math/MathML') in attrs: + self.mathmlOK += 1 + if tag=='svg' and ('xmlns','http://www.w3.org/2000/svg') in attrs: + self.svgOK += 1 + + # chose acceptable attributes based on tag class, else bail + if self.mathmlOK and tag in self.mathml_elements: + acceptable_attributes = self.mathml_attributes + elif self.svgOK and tag in self.svg_elements: + # for most vocabularies, lowercasing is a good idea. Many + # svg elements, however, are camel case + if not self.svg_attr_map: + lower=[attr.lower() for attr in self.svg_attributes] + mix=[a for a in self.svg_attributes if a not in lower] + self.svg_attributes = lower + self.svg_attr_map = dict([(a.lower(),a) for a in mix]) + + lower=[attr.lower() for attr in self.svg_elements] + mix=[a for a in self.svg_elements if a not in lower] + self.svg_elements = lower + self.svg_elem_map = dict([(a.lower(),a) for a in mix]) + acceptable_attributes = self.svg_attributes + tag = self.svg_elem_map.get(tag,tag) + keymap = self.svg_attr_map + elif not tag in self.acceptable_elements: + return + + # declare xlink namespace, if needed + if self.mathmlOK or self.svgOK: + if filter(lambda (n,v): n.startswith('xlink:'),attrs): + if not ('xmlns:xlink','http://www.w3.org/1999/xlink') in attrs: + attrs.append(('xmlns:xlink','http://www.w3.org/1999/xlink')) + + clean_attrs = [] + for key, value in self.normalize_attrs(attrs): + if key in acceptable_attributes: + key=keymap.get(key,key) + clean_attrs.append((key,value)) + elif key=='style': + clean_value = self.sanitize_style(value) + if clean_value: clean_attrs.append((key,clean_value)) + _BaseHTMLProcessor.unknown_starttag(self, tag, clean_attrs) + def unknown_endtag(self, tag): if not tag in self.acceptable_elements: if tag in self.unacceptable_elements_with_end_tag: self.unacceptablestack -= 1 - return + if self.mathmlOK and tag in self.mathml_elements: + if tag == 'math' and self.mathmlOK: self.mathmlOK -= 1 + elif self.svgOK and tag in self.svg_elements: + tag = self.svg_elem_map.get(tag,tag) + if tag == 'svg' and self.svgOK: self.svgOK -= 1 + else: + return _BaseHTMLProcessor.unknown_endtag(self, tag) def handle_pi(self, text): @@ -1644,8 +2543,35 @@ class _HTMLSanitizer(_BaseHTMLProcessor): if not self.unacceptablestack: _BaseHTMLProcessor.handle_data(self, text) -def _sanitizeHTML(htmlSource, encoding): - p = _HTMLSanitizer(encoding) + def sanitize_style(self, style): + # disallow urls + style=re.compile('url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ',style) + + # gauntlet + if not re.match("""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style): return '' + # This replaced a regexp that used re.match and was prone to pathological back-tracking. + if re.sub("\s*[-\w]+\s*:\s*[^:;]*;?", '', style).strip(): return '' + + clean = [] + for prop,value in re.findall("([-\w]+)\s*:\s*([^:;]*)",style): + if not value: continue + if prop.lower() in self.acceptable_css_properties: + clean.append(prop + ': ' + value + ';') + elif prop.split('-')[0].lower() in ['background','border','margin','padding']: + for keyword in value.split(): + if not keyword in self.acceptable_css_keywords and \ + not self.valid_css_values.match(keyword): + break + else: + clean.append(prop + ': ' + value + ';') + elif self.svgOK and prop.lower() in self.acceptable_svg_properties: + clean.append(prop + ': ' + value + ';') + + return ' '.join(clean) + + +def _sanitizeHTML(htmlSource, encoding, type): + p = _HTMLSanitizer(encoding, type) p.feed(htmlSource) data = p.output() if TIDY_MARKUP: @@ -1712,7 +2638,7 @@ class _FeedURLHandler(urllib2.HTTPDigestAuthHandler, urllib2.HTTPRedirectHandler http_error_300 = http_error_302 http_error_303 = http_error_302 http_error_307 = http_error_302 - + def http_error_401(self, req, fp, code, msg, headers): # Check if # - server requires digest auth, AND @@ -1737,7 +2663,7 @@ class _FeedURLHandler(urllib2.HTTPDigestAuthHandler, urllib2.HTTPRedirectHandler except: return self.http_error_default(req, fp, code, msg, headers) -def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers): +def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, extra_headers): """URL, filename, or string --> stream This function lets you define parsers that take any input source @@ -1749,10 +2675,12 @@ def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, h If the etag argument is supplied, it will be used as the value of an If-None-Match request header. - If the modified argument is supplied, it must be a tuple of 9 integers - as returned by gmtime() in the standard Python time module. This MUST - be in GMT (Greenwich Mean Time). The formatted date/time will be used - as the value of an If-Modified-Since request header. + If the modified argument is supplied, it can be a tuple of 9 integers + (as returned by gmtime() in the standard Python time module) or a date + string in any format supported by feedparser. Regardless, it MUST + be in GMT (Greenwich Mean Time). It will be reformatted into an + RFC 1123-compliant date and used as the value of an If-Modified-Since + request header. If the agent argument is supplied, it will be used as the value of a User-Agent request header. @@ -1762,6 +2690,9 @@ def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, h If handlers is supplied, it is a list of handlers used to build a urllib2 opener. + + if extra_headers is supplied it is a dictionary of HTTP request headers + that will override the values generated by FeedParser. """ if hasattr(url_file_stream_or_string, 'read'): @@ -1783,41 +2714,25 @@ def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, h if user_passwd: url_file_stream_or_string = '%s://%s%s' % (urltype, realhost, rest) auth = base64.encodestring(user_passwd).strip() + + # iri support + try: + if isinstance(url_file_stream_or_string,unicode): + url_file_stream_or_string = url_file_stream_or_string.encode('idna') + else: + url_file_stream_or_string = url_file_stream_or_string.decode('utf-8').encode('idna') + except: + pass + # try to open with urllib2 (to use optional headers) - request = urllib2.Request(url_file_stream_or_string) - request.add_header('User-Agent', agent) - if etag: - request.add_header('If-None-Match', etag) - if modified: - # format into an RFC 1123-compliant timestamp. We can't use - # time.strftime() since the %a and %b directives can be affected - # by the current locale, but RFC 2616 states that dates must be - # in English. - short_weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] - months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] - request.add_header('If-Modified-Since', '%s, %02d %s %04d %02d:%02d:%02d GMT' % (short_weekdays[modified[6]], modified[2], months[modified[1] - 1], modified[0], modified[3], modified[4], modified[5])) - if referrer: - request.add_header('Referer', referrer) - if gzip and zlib: - request.add_header('Accept-encoding', 'gzip, deflate') - elif gzip: - request.add_header('Accept-encoding', 'gzip') - elif zlib: - request.add_header('Accept-encoding', 'deflate') - else: - request.add_header('Accept-encoding', '') - if auth: - request.add_header('Authorization', 'Basic %s' % auth) - if ACCEPT_HEADER: - request.add_header('Accept', ACCEPT_HEADER) - request.add_header('A-IM', 'feed') # RFC 3229 support + request = _build_urllib2_request(url_file_stream_or_string, agent, etag, modified, referrer, auth, extra_headers) opener = apply(urllib2.build_opener, tuple([_FeedURLHandler()] + handlers)) opener.addheaders = [] # RMK - must clear so we only send our custom User-Agent try: return opener.open(request) finally: opener.close() # JohnD - + # try to open with native open function (if url_file_stream_or_string is a filename) try: return open(url_file_stream_or_string) @@ -1827,11 +2742,47 @@ def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, h # treat url_file_stream_or_string as string return _StringIO(str(url_file_stream_or_string)) +def _build_urllib2_request(url, agent, etag, modified, referrer, auth, extra_headers): + request = urllib2.Request(url) + request.add_header('User-Agent', agent) + if etag: + request.add_header('If-None-Match', etag) + if type(modified) == type(''): + modified = _parse_date(modified) + if modified: + # format into an RFC 1123-compliant timestamp. We can't use + # time.strftime() since the %a and %b directives can be affected + # by the current locale, but RFC 2616 states that dates must be + # in English. + short_weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + request.add_header('If-Modified-Since', '%s, %02d %s %04d %02d:%02d:%02d GMT' % (short_weekdays[modified[6]], modified[2], months[modified[1] - 1], modified[0], modified[3], modified[4], modified[5])) + if referrer: + request.add_header('Referer', referrer) + if gzip and zlib: + request.add_header('Accept-encoding', 'gzip, deflate') + elif gzip: + request.add_header('Accept-encoding', 'gzip') + elif zlib: + request.add_header('Accept-encoding', 'deflate') + else: + request.add_header('Accept-encoding', '') + if auth: + request.add_header('Authorization', 'Basic %s' % auth) + if ACCEPT_HEADER: + request.add_header('Accept', ACCEPT_HEADER) + # use this for whatever -- cookies, special headers, etc + # [('Cookie','Something'),('x-special-header','Another Value')] + for header_name, header_value in extra_headers.items(): + request.add_header(header_name, header_value) + request.add_header('A-IM', 'feed') # RFC 3229 support + return request + _date_handlers = [] def registerDateHandler(func): '''Register a date handler function (takes string, returns 9-tuple date in GMT)''' _date_handlers.insert(0, func) - + # ISO-8601 date parsing routines written by Fazal Majid. # The ISO 8601 standard is very convoluted and irregular - a full ISO 8601 # parser is beyond the scope of feedparser and would be a worthwhile addition @@ -1841,8 +2792,8 @@ def registerDateHandler(func): # 0301-04-01), so we use templates instead. # Please note the order in templates is significant because we need a # greedy match. -_iso8601_tmpl = ['YYYY-?MM-?DD', 'YYYY-MM', 'YYYY-?OOO', - 'YY-?MM-?DD', 'YY-?OOO', 'YYYY', +_iso8601_tmpl = ['YYYY-?MM-?DD', 'YYYY-0MM?-?DD', 'YYYY-MM', 'YYYY-?OOO', + 'YY-?MM-?DD', 'YY-?OOO', 'YYYY', '-YY-?MM', '-OOO', '-YY', '--MM-?DD', '--MM', '---DD', @@ -1857,6 +2808,7 @@ _iso8601_re = [ 'CC', r'(?P<century>\d\d$)') + r'(T?(?P<hour>\d{2}):(?P<minute>\d{2})' + r'(:(?P<second>\d{2}))?' + + r'(\.(?P<fracsecond>\d+))?' + r'(?P<tz>[+-](?P<tzhour>\d{2})(:(?P<tzmin>\d{2}))?|Z)?)?' for tmpl in _iso8601_tmpl] del tmpl @@ -1915,14 +2867,10 @@ def _parse_date_iso8601(dateString): params[field] = 0 hour = int(params.get('hour', 0)) minute = int(params.get('minute', 0)) - second = int(params.get('second', 0)) + second = int(float(params.get('second', 0))) # weekday is normalized by mktime(), we can ignore it weekday = 0 - # daylight savings is complex, but not needed for feedparser's purposes - # as time zones, if specified, include mention of whether it is active - # (e.g. PST vs. PDT, CET). Using -1 is implementation-dependent and - # and most implementations have DST bugs - daylight_savings_flag = 0 + daylight_savings_flag = -1 tm = [year, month, day, hour, minute, second, weekday, ordinal, daylight_savings_flag] # ISO 8601 time zone adjustments @@ -1941,7 +2889,7 @@ def _parse_date_iso8601(dateString): # Many implementations have bugs, but we'll pretend they don't. return time.localtime(time.mktime(tm)) registerDateHandler(_parse_date_iso8601) - + # 8-bit date handling routines written by ytrewq1. _korean_year = u'\ub144' # b3e2 in euc-kr _korean_month = u'\uc6d4' # bff9 in euc-kr @@ -2032,7 +2980,7 @@ _greek_wdays = \ u'\u03a4\u03b5\u03c4': u'Wed', # d4e5f4 in iso-8859-7 u'\u03a0\u03b5\u03bc': u'Thu', # d0e5ec in iso-8859-7 u'\u03a0\u03b1\u03c1': u'Fri', # d0e1f1 in iso-8859-7 - u'\u03a3\u03b1\u03b2': u'Sat', # d3e1e2 in iso-8859-7 + u'\u03a3\u03b1\u03b2': u'Sat', # d3e1e2 in iso-8859-7 } _greek_date_format_re = \ @@ -2218,7 +3166,22 @@ def _parse_date_rfc822(dateString): # 'ET' is equivalent to 'EST', etc. _additional_timezones = {'AT': -400, 'ET': -500, 'CT': -600, 'MT': -700, 'PT': -800} rfc822._timezones.update(_additional_timezones) -registerDateHandler(_parse_date_rfc822) +registerDateHandler(_parse_date_rfc822) + +def _parse_date_perforce(aDateString): + """parse a date in yyyy/mm/dd hh:mm:ss TTT format""" + # Fri, 2006/09/15 08:19:53 EDT + _my_date_pattern = re.compile( \ + r'(\w{,3}), (\d{,4})/(\d{,2})/(\d{2}) (\d{,2}):(\d{2}):(\d{2}) (\w{,3})') + + dow, year, month, day, hour, minute, second, tz = \ + _my_date_pattern.search(aDateString).groups() + months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + dateString = "%s, %s %s %s %s:%s:%s %s" % (dow, day, months[int(month) - 1], year, hour, minute, second, tz) + tm = rfc822.parsedate_tz(dateString) + if tm: + return time.gmtime(rfc822.mktime_tz(tm)) +registerDateHandler(_parse_date_perforce) def _parse_date(dateString): '''Parses a variety of date formats into a 9-tuple in GMT''' @@ -2241,7 +3204,7 @@ def _getCharacterEncoding(http_headers, xml_data): http_headers is a dictionary xml_data is a raw string (not Unicode) - + This is so much trickier than it sounds, it's not even funny. According to RFC 3023 ('XML Media Types'), if the HTTP Content-Type is application/xml, application/*+xml, @@ -2260,12 +3223,12 @@ def _getCharacterEncoding(http_headers, xml_data): served with a Content-Type of text/* and no charset parameter must be treated as us-ascii. (We now do this.) And also that it must always be flagged as non-well-formed. (We now do this too.) - + If Content-Type is unspecified (input was local file or non-HTTP source) or unrecognized (server just got it totally wrong), then go by the encoding given in the XML prefix of the document and default to 'iso-8859-1' as per the HTTP specification (RFC 2616). - + Then, assuming we didn't find a character encoding in the HTTP headers (and the HTTP Content-type allowed us to look in the body), we need to sniff the first few bytes of the XML data and try to determine @@ -2370,8 +3333,12 @@ def _getCharacterEncoding(http_headers, xml_data): true_encoding = xml_encoding or 'iso-8859-1' else: true_encoding = xml_encoding or 'utf-8' + # some feeds claim to be gb2312 but are actually gb18030. + # apparently MSIE and Firefox both do the following switch: + if true_encoding.lower() == 'gb2312': + true_encoding = 'gb18030' return true_encoding, http_encoding, xml_encoding, sniffed_xml_encoding, acceptable_content_type - + def _toUTF8(data, encoding): '''Changes an XML data stream on the fly to specify a new encoding @@ -2431,20 +3398,38 @@ def _stripDoctype(data): rss_version may be 'rss091n' or None stripped_data is the same XML document, minus the DOCTYPE ''' - entity_pattern = re.compile(r'<!ENTITY([^>]*?)>', re.MULTILINE) - data = entity_pattern.sub('', data) - doctype_pattern = re.compile(r'<!DOCTYPE([^>]*?)>', re.MULTILINE) - doctype_results = doctype_pattern.findall(data) + start = re.search('<\w',data) + start = start and start.start() or -1 + head,data = data[:start+1], data[start+1:] + + entity_pattern = re.compile(r'^\s*<!ENTITY([^>]*?)>', re.MULTILINE) + entity_results=entity_pattern.findall(head) + head = entity_pattern.sub('', head) + doctype_pattern = re.compile(r'^\s*<!DOCTYPE([^>]*?)>', re.MULTILINE) + doctype_results = doctype_pattern.findall(head) doctype = doctype_results and doctype_results[0] or '' if doctype.lower().count('netscape'): version = 'rss091n' else: version = None - data = doctype_pattern.sub('', data) - return version, data - -def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, referrer=None, handlers=[]): - '''Parse a feed from a URL, file, stream, or string''' + + # only allow in 'safe' inline entity definitions + replacement='' + if len(doctype_results)==1 and entity_results: + safe_pattern=re.compile('\s+(\w+)\s+"(&#\w+;|[^&"]*)"') + safe_entities=filter(lambda e: safe_pattern.match(e),entity_results) + if safe_entities: + replacement='<!DOCTYPE feed [\n <!ENTITY %s>\n]>' % '>\n <!ENTITY '.join(safe_entities) + data = doctype_pattern.sub(replacement, head) + data + + return version, data, dict(replacement and safe_pattern.findall(replacement)) + +def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, referrer=None, handlers=[], extra_headers={}): + '''Parse a feed from a URL, file, stream, or string. + + extra_headers, if given, is a dict from http header name to value to add + to the request; this overrides internally generated values. + ''' result = FeedParserDict() result['feed'] = FeedParserDict() result['entries'] = [] @@ -2453,12 +3438,12 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer if type(handlers) == types.InstanceType: handlers = [handlers] try: - f = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers) + f = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, extra_headers) data = f.read() except Exception, e: result['bozo'] = 1 result['bozo_exception'] = e - data = '' + data = None f = None # if feed is gzip-compressed, decompress it @@ -2485,7 +3470,9 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer # save HTTP headers if hasattr(f, 'info'): info = f.info() - result['etag'] = info.getheader('ETag') + etag = info.getheader('ETag') + if etag: + result['etag'] = etag last_modified = info.getheader('Last-Modified') if last_modified: result['modified'] = _parse_date(last_modified) @@ -2514,8 +3501,9 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer bozo_message = 'no Content-type specified' result['bozo'] = 1 result['bozo_exception'] = NonXMLContentType(bozo_message) - - result['version'], data = _stripDoctype(data) + + if data is not None: + result['version'], data, entities = _stripDoctype(data) baseuri = http_headers.get('content-location', result.get('href')) baselang = http_headers.get('content-language', None) @@ -2528,7 +3516,7 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer return result # if there was a problem downloading, we're done - if not data: + if data is None: return result # determine character encoding @@ -2574,12 +3562,21 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer known_encoding = use_strict_parser = 1 except: pass + # if still no luck and we haven't tried iso-8859-2 yet, try that. + if (not known_encoding) and ('iso-8859-2' not in tried_encodings): + try: + proposed_encoding = 'iso-8859-2' + tried_encodings.append(proposed_encoding) + data = _toUTF8(data, proposed_encoding) + known_encoding = use_strict_parser = 1 + except: + pass # if still no luck, give up if not known_encoding: result['bozo'] = 1 result['bozo_exception'] = CharacterEncodingUnknown( \ 'document encoding unknown, I tried ' + \ - '%s, %s, utf-8, and windows-1252 but nothing worked' % \ + '%s, %s, utf-8, windows-1252, and iso-8859-2 but nothing worked' % \ (result['encoding'], xml_encoding)) result['encoding'] = '' elif proposed_encoding != result['encoding']: @@ -2616,7 +3613,7 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer result['bozo_exception'] = feedparser.exc or e use_strict_parser = 0 if not use_strict_parser: - feedparser = _LooseFeedParser(baseuri, baselang, known_encoding and 'utf-8' or '') + feedparser = _LooseFeedParser(baseuri, baselang, known_encoding and 'utf-8' or '', entities) feedparser.feed(data) result['feed'] = feedparser.feeddata result['entries'] = feedparser.entries @@ -2624,232 +3621,84 @@ def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, refer result['namespaces'] = feedparser.namespacesInUse return result -if __name__ == '__main__': - if not sys.argv[1:]: - print __doc__ - sys.exit(0) - else: - urls = sys.argv[1:] - zopeCompatibilityHack() - from pprint import pprint - for url in urls: - print url - print - result = parse(url) - pprint(result) - print +class Serializer: + def __init__(self, results): + self.results = results -#REVISION HISTORY -#1.0 - 9/27/2002 - MAP - fixed namespace processing on prefixed RSS 2.0 elements, -# added Simon Fell's test suite -#1.1 - 9/29/2002 - MAP - fixed infinite loop on incomplete CDATA sections -#2.0 - 10/19/2002 -# JD - use inchannel to watch out for image and textinput elements which can -# also contain title, link, and description elements -# JD - check for isPermaLink='false' attribute on guid elements -# JD - replaced openAnything with open_resource supporting ETag and -# If-Modified-Since request headers -# JD - parse now accepts etag, modified, agent, and referrer optional -# arguments -# JD - modified parse to return a dictionary instead of a tuple so that any -# etag or modified information can be returned and cached by the caller -#2.0.1 - 10/21/2002 - MAP - changed parse() so that if we don't get anything -# because of etag/modified, return the old etag/modified to the caller to -# indicate why nothing is being returned -#2.0.2 - 10/21/2002 - JB - added the inchannel to the if statement, otherwise its -# useless. Fixes the problem JD was addressing by adding it. -#2.1 - 11/14/2002 - MAP - added gzip support -#2.2 - 1/27/2003 - MAP - added attribute support, admin:generatorAgent. -# start_admingeneratoragent is an example of how to handle elements with -# only attributes, no content. -#2.3 - 6/11/2003 - MAP - added USER_AGENT for default (if caller doesn't specify); -# also, make sure we send the User-Agent even if urllib2 isn't available. -# Match any variation of backend.userland.com/rss namespace. -#2.3.1 - 6/12/2003 - MAP - if item has both link and guid, return both as-is. -#2.4 - 7/9/2003 - MAP - added preliminary Pie/Atom/Echo support based on Sam Ruby's -# snapshot of July 1 <http://www.intertwingly.net/blog/1506.html>; changed -# project name -#2.5 - 7/25/2003 - MAP - changed to Python license (all contributors agree); -# removed unnecessary urllib code -- urllib2 should always be available anyway; -# return actual url, status, and full HTTP headers (as result['url'], -# result['status'], and result['headers']) if parsing a remote feed over HTTP -- -# this should pass all the HTTP tests at <http://diveintomark.org/tests/client/http/>; -# added the latest namespace-of-the-week for RSS 2.0 -#2.5.1 - 7/26/2003 - RMK - clear opener.addheaders so we only send our custom -# User-Agent (otherwise urllib2 sends two, which confuses some servers) -#2.5.2 - 7/28/2003 - MAP - entity-decode inline xml properly; added support for -# inline <xhtml:body> and <xhtml:div> as used in some RSS 2.0 feeds -#2.5.3 - 8/6/2003 - TvdV - patch to track whether we're inside an image or -# textInput, and also to return the character encoding (if specified) -#2.6 - 1/1/2004 - MAP - dc:author support (MarekK); fixed bug tracking -# nested divs within content (JohnD); fixed missing sys import (JohanS); -# fixed regular expression to capture XML character encoding (Andrei); -# added support for Atom 0.3-style links; fixed bug with textInput tracking; -# added support for cloud (MartijnP); added support for multiple -# category/dc:subject (MartijnP); normalize content model: 'description' gets -# description (which can come from description, summary, or full content if no -# description), 'content' gets dict of base/language/type/value (which can come -# from content:encoded, xhtml:body, content, or fullitem); -# fixed bug matching arbitrary Userland namespaces; added xml:base and xml:lang -# tracking; fixed bug tracking unknown tags; fixed bug tracking content when -# <content> element is not in default namespace (like Pocketsoap feed); -# resolve relative URLs in link, guid, docs, url, comments, wfw:comment, -# wfw:commentRSS; resolve relative URLs within embedded HTML markup in -# description, xhtml:body, content, content:encoded, title, subtitle, -# summary, info, tagline, and copyright; added support for pingback and -# trackback namespaces -#2.7 - 1/5/2004 - MAP - really added support for trackback and pingback -# namespaces, as opposed to 2.6 when I said I did but didn't really; -# sanitize HTML markup within some elements; added mxTidy support (if -# installed) to tidy HTML markup within some elements; fixed indentation -# bug in _parse_date (FazalM); use socket.setdefaulttimeout if available -# (FazalM); universal date parsing and normalization (FazalM): 'created', modified', -# 'issued' are parsed into 9-tuple date format and stored in 'created_parsed', -# 'modified_parsed', and 'issued_parsed'; 'date' is duplicated in 'modified' -# and vice-versa; 'date_parsed' is duplicated in 'modified_parsed' and vice-versa -#2.7.1 - 1/9/2004 - MAP - fixed bug handling " and '. fixed memory -# leak not closing url opener (JohnD); added dc:publisher support (MarekK); -# added admin:errorReportsTo support (MarekK); Python 2.1 dict support (MarekK) -#2.7.4 - 1/14/2004 - MAP - added workaround for improperly formed <br/> tags in -# encoded HTML (skadz); fixed unicode handling in normalize_attrs (ChrisL); -# fixed relative URI processing for guid (skadz); added ICBM support; added -# base64 support -#2.7.5 - 1/15/2004 - MAP - added workaround for malformed DOCTYPE (seen on many -# blogspot.com sites); added _debug variable -#2.7.6 - 1/16/2004 - MAP - fixed bug with StringIO importing -#3.0b3 - 1/23/2004 - MAP - parse entire feed with real XML parser (if available); -# added several new supported namespaces; fixed bug tracking naked markup in -# description; added support for enclosure; added support for source; re-added -# support for cloud which got dropped somehow; added support for expirationDate -#3.0b4 - 1/26/2004 - MAP - fixed xml:lang inheritance; fixed multiple bugs tracking -# xml:base URI, one for documents that don't define one explicitly and one for -# documents that define an outer and an inner xml:base that goes out of scope -# before the end of the document -#3.0b5 - 1/26/2004 - MAP - fixed bug parsing multiple links at feed level -#3.0b6 - 1/27/2004 - MAP - added feed type and version detection, result['version'] -# will be one of SUPPORTED_VERSIONS.keys() or empty string if unrecognized; -# added support for creativeCommons:license and cc:license; added support for -# full Atom content model in title, tagline, info, copyright, summary; fixed bug -# with gzip encoding (not always telling server we support it when we do) -#3.0b7 - 1/28/2004 - MAP - support Atom-style author element in author_detail -# (dictionary of 'name', 'url', 'email'); map author to author_detail if author -# contains name + email address -#3.0b8 - 1/28/2004 - MAP - added support for contributor -#3.0b9 - 1/29/2004 - MAP - fixed check for presence of dict function; added -# support for summary -#3.0b10 - 1/31/2004 - MAP - incorporated ISO-8601 date parsing routines from -# xml.util.iso8601 -#3.0b11 - 2/2/2004 - MAP - added 'rights' to list of elements that can contain -# dangerous markup; fiddled with decodeEntities (not right); liberalized -# date parsing even further -#3.0b12 - 2/6/2004 - MAP - fiddled with decodeEntities (still not right); -# added support to Atom 0.2 subtitle; added support for Atom content model -# in copyright; better sanitizing of dangerous HTML elements with end tags -# (script, frameset) -#3.0b13 - 2/8/2004 - MAP - better handling of empty HTML tags (br, hr, img, -# etc.) in embedded markup, in either HTML or XHTML form (<br>, <br/>, <br />) -#3.0b14 - 2/8/2004 - MAP - fixed CDATA handling in non-wellformed feeds under -# Python 2.1 -#3.0b15 - 2/11/2004 - MAP - fixed bug resolving relative links in wfw:commentRSS; -# fixed bug capturing author and contributor URL; fixed bug resolving relative -# links in author and contributor URL; fixed bug resolvin relative links in -# generator URL; added support for recognizing RSS 1.0; passed Simon Fell's -# namespace tests, and included them permanently in the test suite with his -# permission; fixed namespace handling under Python 2.1 -#3.0b16 - 2/12/2004 - MAP - fixed support for RSS 0.90 (broken in b15) -#3.0b17 - 2/13/2004 - MAP - determine character encoding as per RFC 3023 -#3.0b18 - 2/17/2004 - MAP - always map description to summary_detail (Andrei); -# use libxml2 (if available) -#3.0b19 - 3/15/2004 - MAP - fixed bug exploding author information when author -# name was in parentheses; removed ultra-problematic mxTidy support; patch to -# workaround crash in PyXML/expat when encountering invalid entities -# (MarkMoraes); support for textinput/textInput -#3.0b20 - 4/7/2004 - MAP - added CDF support -#3.0b21 - 4/14/2004 - MAP - added Hot RSS support -#3.0b22 - 4/19/2004 - MAP - changed 'channel' to 'feed', 'item' to 'entries' in -# results dict; changed results dict to allow getting values with results.key -# as well as results[key]; work around embedded illformed HTML with half -# a DOCTYPE; work around malformed Content-Type header; if character encoding -# is wrong, try several common ones before falling back to regexes (if this -# works, bozo_exception is set to CharacterEncodingOverride); fixed character -# encoding issues in BaseHTMLProcessor by tracking encoding and converting -# from Unicode to raw strings before feeding data to sgmllib.SGMLParser; -# convert each value in results to Unicode (if possible), even if using -# regex-based parsing -#3.0b23 - 4/21/2004 - MAP - fixed UnicodeDecodeError for feeds that contain -# high-bit characters in attributes in embedded HTML in description (thanks -# Thijs van de Vossen); moved guid, date, and date_parsed to mapped keys in -# FeedParserDict; tweaked FeedParserDict.has_key to return True if asking -# about a mapped key -#3.0fc1 - 4/23/2004 - MAP - made results.entries[0].links[0] and -# results.entries[0].enclosures[0] into FeedParserDict; fixed typo that could -# cause the same encoding to be tried twice (even if it failed the first time); -# fixed DOCTYPE stripping when DOCTYPE contained entity declarations; -# better textinput and image tracking in illformed RSS 1.0 feeds -#3.0fc2 - 5/10/2004 - MAP - added and passed Sam's amp tests; added and passed -# my blink tag tests -#3.0fc3 - 6/18/2004 - MAP - fixed bug in _changeEncodingDeclaration that -# failed to parse utf-16 encoded feeds; made source into a FeedParserDict; -# duplicate admin:generatorAgent/@rdf:resource in generator_detail.url; -# added support for image; refactored parse() fallback logic to try other -# encodings if SAX parsing fails (previously it would only try other encodings -# if re-encoding failed); remove unichr madness in normalize_attrs now that -# we're properly tracking encoding in and out of BaseHTMLProcessor; set -# feed.language from root-level xml:lang; set entry.id from rdf:about; -# send Accept header -#3.0 - 6/21/2004 - MAP - don't try iso-8859-1 (can't distinguish between -# iso-8859-1 and windows-1252 anyway, and most incorrectly marked feeds are -# windows-1252); fixed regression that could cause the same encoding to be -# tried twice (even if it failed the first time) -#3.0.1 - 6/22/2004 - MAP - default to us-ascii for all text/* content types; -# recover from malformed content-type header parameter with no equals sign -# ('text/xml; charset:iso-8859-1') -#3.1 - 6/28/2004 - MAP - added and passed tests for converting HTML entities -# to Unicode equivalents in illformed feeds (aaronsw); added and -# passed tests for converting character entities to Unicode equivalents -# in illformed feeds (aaronsw); test for valid parsers when setting -# XML_AVAILABLE; make version and encoding available when server returns -# a 304; add handlers parameter to pass arbitrary urllib2 handlers (like -# digest auth or proxy support); add code to parse username/password -# out of url and send as basic authentication; expose downloading-related -# exceptions in bozo_exception (aaronsw); added __contains__ method to -# FeedParserDict (aaronsw); added publisher_detail (aaronsw) -#3.2 - 7/3/2004 - MAP - use cjkcodecs and iconv_codec if available; always -# convert feed to UTF-8 before passing to XML parser; completely revamped -# logic for determining character encoding and attempting XML parsing -# (much faster); increased default timeout to 20 seconds; test for presence -# of Location header on redirects; added tests for many alternate character -# encodings; support various EBCDIC encodings; support UTF-16BE and -# UTF16-LE with or without a BOM; support UTF-8 with a BOM; support -# UTF-32BE and UTF-32LE with or without a BOM; fixed crashing bug if no -# XML parsers are available; added support for 'Content-encoding: deflate'; -# send blank 'Accept-encoding: ' header if neither gzip nor zlib modules -# are available -#3.3 - 7/15/2004 - MAP - optimize EBCDIC to ASCII conversion; fix obscure -# problem tracking xml:base and xml:lang if element declares it, child -# doesn't, first grandchild redeclares it, and second grandchild doesn't; -# refactored date parsing; defined public registerDateHandler so callers -# can add support for additional date formats at runtime; added support -# for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1); added -# zopeCompatibilityHack() which turns FeedParserDict into a regular -# dictionary, required for Zope compatibility, and also makes command- -# line debugging easier because pprint module formats real dictionaries -# better than dictionary-like objects; added NonXMLContentType exception, -# which is stored in bozo_exception when a feed is served with a non-XML -# media type such as 'text/plain'; respect Content-Language as default -# language if not xml:lang is present; cloud dict is now FeedParserDict; -# generator dict is now FeedParserDict; better tracking of xml:lang, -# including support for xml:lang='' to unset the current language; -# recognize RSS 1.0 feeds even when RSS 1.0 namespace is not the default -# namespace; don't overwrite final status on redirects (scenarios: -# redirecting to a URL that returns 304, redirecting to a URL that -# redirects to another URL with a different type of redirect); add -# support for HTTP 303 redirects -#4.0 - MAP - support for relative URIs in xml:base attribute; fixed -# encoding issue with mxTidy (phopkins); preliminary support for RFC 3229; -# support for Atom 1.0; support for iTunes extensions; new 'tags' for -# categories/keywords/etc. as array of dict -# {'term': term, 'scheme': scheme, 'label': label} to match Atom 1.0 -# terminology; parse RFC 822-style dates with no time; lots of other -# bug fixes -#4.1 - MAP - removed socket timeout; added support for chardet library +class TextSerializer(Serializer): + def write(self, stream=sys.stdout): + self._writer(stream, self.results, '') + + def _writer(self, stream, node, prefix): + if not node: return + if hasattr(node, 'keys'): + keys = node.keys() + keys.sort() + for k in keys: + if k in ('description', 'link'): continue + if node.has_key(k + '_detail'): continue + if node.has_key(k + '_parsed'): continue + self._writer(stream, node[k], prefix + k + '.') + elif type(node) == types.ListType: + index = 0 + for n in node: + self._writer(stream, n, prefix[:-1] + '[' + str(index) + '].') + index += 1 + else: + try: + s = str(node).encode('utf-8') + s = s.replace('\\', '\\\\') + s = s.replace('\r', '') + s = s.replace('\n', r'\n') + stream.write(prefix[:-1]) + stream.write('=') + stream.write(s) + stream.write('\n') + except: + pass + +class PprintSerializer(Serializer): + def write(self, stream=sys.stdout): + if self.results.has_key('href'): + stream.write(self.results['href'] + '\n\n') + from pprint import pprint + pprint(self.results, stream) + stream.write('\n') + +if __name__ == '__main__': + try: + from optparse import OptionParser + except: + OptionParser = None + + if OptionParser: + optionParser = OptionParser(version=__version__, usage="%prog [options] url_or_filename_or_-") + optionParser.set_defaults(format="pprint") + optionParser.add_option("-A", "--user-agent", dest="agent", metavar="AGENT", help="User-Agent for HTTP URLs") + optionParser.add_option("-e", "--referer", "--referrer", dest="referrer", metavar="URL", help="Referrer for HTTP URLs") + optionParser.add_option("-t", "--etag", dest="etag", metavar="TAG", help="ETag/If-None-Match for HTTP URLs") + optionParser.add_option("-m", "--last-modified", dest="modified", metavar="DATE", help="Last-modified/If-Modified-Since for HTTP URLs (any supported date format)") + optionParser.add_option("-f", "--format", dest="format", metavar="FORMAT", help="output results in FORMAT (text, pprint)") + optionParser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help="write debugging information to stderr") + (options, urls) = optionParser.parse_args() + if options.verbose: + _debug = 1 + if not urls: + optionParser.print_help() + sys.exit(0) + else: + if not sys.argv[1:]: + print __doc__ + sys.exit(0) + class _Options: + etag = modified = agent = referrer = None + format = 'pprint' + options = _Options() + urls = sys.argv[1:] + + zopeCompatibilityHack() + + serializer = globals().get(options.format.capitalize() + 'Serializer', Serializer) + for url in urls: + results = parse(url, etag=options.etag, modified=options.modified, agent=options.agent, referrer=options.referrer) + serializer(results).write(sys.stdout) diff --git a/src/calibre/web/feeds/recipes/collection.py b/src/calibre/web/feeds/recipes/collection.py index 012e24a799..a513cf3880 100644 --- a/src/calibre/web/feeds/recipes/collection.py +++ b/src/calibre/web/feeds/recipes/collection.py @@ -61,8 +61,15 @@ def serialize_recipe(urn, recipe_class): def serialize_collection(mapping_of_recipe_classes): collection = E.recipe_collection() - for urn, recipe_class in mapping_of_recipe_classes.items(): - recipe = serialize_recipe(urn, recipe_class) + '''for u, x in mapping_of_recipe_classes.items(): + print 11111, u, repr(x.title) + if isinstance(x.title, str): + x.title.decode('ascii') + ''' + for urn in sorted(mapping_of_recipe_classes.keys(), + key=lambda key: getattr(mapping_of_recipe_classes[key], 'title', + 'zzz')): + recipe = serialize_recipe(urn, mapping_of_recipe_classes[urn]) collection.append(recipe) collection.set('count', str(len(collection))) return etree.tostring(collection, encoding='utf-8', xml_declaration=True, diff --git a/src/calibre/web/feeds/recipes/model.py b/src/calibre/web/feeds/recipes/model.py index 469b7f17ad..559a5c08dd 100644 --- a/src/calibre/web/feeds/recipes/model.py +++ b/src/calibre/web/feeds/recipes/model.py @@ -9,7 +9,7 @@ __docformat__ = 'restructuredtext en' import os, copy from PyQt4.Qt import QAbstractItemModel, QVariant, Qt, QColor, QFont, QIcon, \ - QModelIndex, SIGNAL, QMetaObject, pyqtSlot + QModelIndex, QMetaObject, pyqtSlot, pyqtSignal from calibre.utils.search_query_parser import SearchQueryParser from calibre.gui2 import NONE @@ -120,6 +120,7 @@ class NewsItem(NewsTreeItem): class RecipeModel(QAbstractItemModel, SearchQueryParser): LOCATIONS = ['all'] + searched = pyqtSignal(object) def __init__(self, db, *args): QAbstractItemModel.__init__(self, *args) @@ -254,14 +255,17 @@ class RecipeModel(QAbstractItemModel, SearchQueryParser): return results def search(self, query): + results = [] try: - results = self.parse(unicode(query)) - if not results: - results = None + query = unicode(query).strip() + if query: + results = self.parse(query) + if not results: + results = None except ParseException: results = [] self.do_refresh(restrict_to_urns=results) - self.emit(SIGNAL('searched(PyQt_PyObject)'), True) + self.searched.emit(True) def columnCount(self, parent): return 1 diff --git a/src/calibre/web/feeds/templates.py b/src/calibre/web/feeds/templates.py index 6e8168be31..eefd897614 100644 --- a/src/calibre/web/feeds/templates.py +++ b/src/calibre/web/feeds/templates.py @@ -115,14 +115,14 @@ class FeedTemplate(Template): hr.tail = '| ' if f+1 < len(feeds): - link = A('Next section', href='../feed_%d/index.html'%(f+1)) + link = A(_('Next section'), href='../feed_%d/index.html'%(f+1)) link.tail = ' | ' navbar.append(link) - link = A('Main menu', href="../index.html") + link = A(_('Main menu'), href="../index.html") link.tail = ' | ' navbar.append(link) if f > 0: - link = A('Previous section', href='../feed_%d/index.html'%(f-1)) + link = A(_('Previous section'), href='../feed_%d/index.html'%(f-1)) link.tail = ' |' navbar.append(link) if top: @@ -208,17 +208,17 @@ class NavBarTemplate(Template): up = '../..' if art == number_of_articles_in_feed - 1 else '..' href = '%s%s/%s/index.html'%(prefix, up, next) navbar.text = '| ' - navbar.append(A('Next', href=href)) + navbar.append(A(_('Next'), href=href)) href = '%s../index.html#article_%d'%(prefix, art) navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Section Menu', href=href)) + navbar.append(A(_('Section Menu'), href=href)) href = '%s../../index.html#feed_%d'%(prefix, feed) navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Main Menu', href=href)) + navbar.append(A(_('Main Menu'), href=href)) if art > 0 and not bottom: href = '%s../article_%d/index.html'%(prefix, art-1) navbar.iterchildren(reversed=True).next().tail = ' | ' - navbar.append(A('Previous', href=href)) + navbar.append(A(_('Previous'), href=href)) navbar.iterchildren(reversed=True).next().tail = ' | ' if not bottom: navbar.append(HR()) @@ -300,7 +300,7 @@ class TouchscreenFeedTemplate(Template): navbar_tr.append(TD(CLASS('feed_prev'),link)) # Up to Sections - link = A('Sections', href="../index.html") + link = A(_('Sections'), href="../index.html") navbar_tr.append(TD(CLASS('feed_up'),link)) # Next Section @@ -381,16 +381,16 @@ class TouchscreenNavBarTemplate(Template): # | Previous if art > 0: - link = A(CLASS('article_link'),'Previous',href='%s../article_%d/index.html'%(prefix, art-1)) + link = A(CLASS('article_link'),_('Previous'),href='%s../article_%d/index.html'%(prefix, art-1)) navbar_tr.append(TD(CLASS('article_prev'),link)) else: navbar_tr.append(TD(CLASS('article_prev'),'')) # | Articles | Sections | - link = A(CLASS('articles_link'),'Articles', href='%s../index.html#article_%d'%(prefix, art)) + link = A(CLASS('articles_link'),_('Articles'), href='%s../index.html#article_%d'%(prefix, art)) navbar_tr.append(TD(CLASS('article_articles_list'),link)) - link = A(CLASS('sections_link'),'Sections', href='%s../../index.html#feed_%d'%(prefix, feed)) + link = A(CLASS('sections_link'),_('Sections'), href='%s../../index.html#feed_%d'%(prefix, feed)) navbar_tr.append(TD(CLASS('article_sections_list'),link)) # | Next @@ -398,7 +398,7 @@ class TouchscreenNavBarTemplate(Template): else 'article_%d'%(art+1) up = '../..' if art == number_of_articles_in_feed - 1 else '..' - link = A(CLASS('article_link'),'Next', href='%s%s/%s/index.html'%(prefix, up, next)) + link = A(CLASS('article_link'), _('Next'), href='%s%s/%s/index.html'%(prefix, up, next)) navbar_tr.append(TD(CLASS('article_next'),link)) navbar_t.append(navbar_tr) navbar.append(navbar_t)