Sync to trunk.

This commit is contained in:
John Schember 2011-08-07 13:52:22 -04:00
commit 22b5461a10
149 changed files with 19854 additions and 26588 deletions

View File

@ -19,6 +19,59 @@
# new recipes:
# - title:
- version: 0.8.13
date: 2011-08-05
new features:
- title: "Add a new action 'Pick Random Book' that can be added to the toolbar via Preferences->Toolbars."
tickets: [818315]
- title: "Driver for Droid X2"
tickets: [821053]
- title: "PDF metadata: Support reading/writing of tags from the Keywords field in PDF files."
- title: "MOBI Input: Speedup reading of HUFF/CDIC compressed files"
- title: "MOBI Output: Add a command line option --extract-to that uses the inspect MOBI tool to extract the created MOBI file to the specified directory"
- title: "Template language: Add a few new functions to manipulate lists (list_difference, list_intersection, list_sort)"
- title: "Make the Manage Tags/Publishers/etc. dialog show a column with counts for each item, to easily sort by number of items"
- title: "MOBI Output: Generate navpoints for items at every level in the TOC, not just the deepest level"
bug fixes:
- title: "MOBI Output: Remove option to choose masthead font as the font selection control causes crashes on some windows systems"
- title: "MOBI Output: Fix bug that caused paragraphs that had only a non breaking space as text before the first child element to be removed."
tickets: [819058]
- title: "Display undefined dates properly in the Book details panel."
tickets: [819222]
- title: "Fix regression that broke deleting of books from first generation Kobos with un-upgraded firmware"
tickets: [818704]
- title: "Get books: Fix Gutenberg store and improvements to chitanka.info and e-knigni.net"
- title: "News download: Support https proxies"
- title: "Check library did not know about original_* files"
- title: "Fix crash caused by having very large numbers of authors > 100 for a book"
improved recipes:
- Nikkei News
new recipes:
- title: Carta Capital
author: Pablo Aldama
- title: El Tiempo, El Colombiano and Portafolio Colombia
author: Cavalencia
- version: 0.8.12
date: 2011-07-29

438
imgsrc/mimetypes/djvu.svg Normal file
View File

@ -0,0 +1,438 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="128"
height="128"
id="svg2606"
inkscape:version="0.48.1 "
sodipodi:docname="C:\cygwin\home\mperry\calibre\imgsrc\mimetypes\djvu.svg">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="975"
inkscape:window-height="735"
id="namedview3077"
showgrid="false"
inkscape:zoom="2.0390625"
inkscape:cx="64"
inkscape:cy="64"
inkscape:window-x="298"
inkscape:window-y="122"
inkscape:window-maximized="0"
inkscape:current-layer="svg2606" />
<defs
id="defs2608">
<linearGradient
id="linearGradient10207">
<stop
id="stop10209"
style="stop-color:#a2a2a2;stop-opacity:1"
offset="0" />
<stop
id="stop10211"
style="stop-color:#ffffff;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
x1="96"
y1="104"
x2="88.000198"
y2="96.000198"
id="XMLID_12_"
gradientUnits="userSpaceOnUse">
<stop
id="stop83"
style="stop-color:#888a85;stop-opacity:1"
offset="0" />
<stop
id="stop85"
style="stop-color:#8c8e89;stop-opacity:1"
offset="0.0072" />
<stop
id="stop87"
style="stop-color:#abaca9;stop-opacity:1"
offset="0.0673" />
<stop
id="stop89"
style="stop-color:#c5c6c4;stop-opacity:1"
offset="0.1347" />
<stop
id="stop91"
style="stop-color:#dbdbda;stop-opacity:1"
offset="0.2652576" />
<stop
id="stop93"
style="stop-color:#ebebeb;stop-opacity:1"
offset="0.37646064" />
<stop
id="stop95"
style="stop-color:#f7f7f6;stop-opacity:1"
offset="0.48740286" />
<stop
id="stop97"
style="stop-color:#fdfdfd;stop-opacity:1"
offset="0.6324091" />
<stop
id="stop99"
style="stop-color:#ffffff;stop-opacity:1"
offset="1" />
</linearGradient>
<radialGradient
cx="102"
cy="112.3047"
r="139.55859"
id="XMLID_8_"
gradientUnits="userSpaceOnUse">
<stop
id="stop41"
style="stop-color:#b7b8b9;stop-opacity:1"
offset="0" />
<stop
id="stop47"
style="stop-color:#ececec;stop-opacity:1"
offset="0.18851049" />
<stop
id="stop49"
style="stop-color:#fafafa;stop-opacity:1"
offset="0.25718147" />
<stop
id="stop51"
style="stop-color:#ffffff;stop-opacity:1"
offset="0.30111277" />
<stop
id="stop53"
style="stop-color:#fafafa;stop-opacity:1"
offset="0.53130001" />
<stop
id="stop55"
style="stop-color:#ebecec;stop-opacity:1"
offset="0.84490001" />
<stop
id="stop57"
style="stop-color:#e1e2e3;stop-opacity:1"
offset="1" />
</radialGradient>
<filter
x="-0.19200002"
y="-0.19199999"
width="1.3839999"
height="1.3839999"
color-interpolation-filters="sRGB"
id="filter6697">
<feGaussianBlur
id="feGaussianBlur6699"
stdDeviation="1.9447689" />
</filter>
<clipPath
id="clipPath7084">
<path
d="m 72,88 -32,32 -8,0 0,-40 40,0 0,8 z"
id="path7086"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" />
</clipPath>
<radialGradient
cx="102"
cy="112.3047"
r="139.55859"
id="radialGradient9437"
xlink:href="#XMLID_8_"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.9996653,2e-6,0.00301608)" />
<linearGradient
x1="98.617439"
y1="106.41443"
x2="91.228737"
y2="99.254974"
id="linearGradient10213"
xlink:href="#linearGradient10207"
gradientUnits="userSpaceOnUse" />
<filter
color-interpolation-filters="sRGB"
id="filter2770">
<feGaussianBlur
id="feGaussianBlur2772"
stdDeviation="2.0786429" />
</filter>
<linearGradient
x1="45.033901"
y1="44.966038"
x2="11.675456"
y2="1.4610662"
id="linearGradient2774"
xlink:href="#linearGradient2545"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0115079,0,0,1.0161106,5.5234761,9.1336546)" />
<linearGradient
x1="25.553648"
y1="34.006008"
x2="0"
y2="34.153435"
id="linearGradient2756"
xlink:href="#linearGradient11545"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0237894,0,0,1.0414051,4.9857129,9.0513362)" />
<linearGradient
x1="40.864098"
y1="40.518246"
x2="33.136433"
y2="32.651588"
id="linearGradient2749"
xlink:href="#linearGradient11663"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0237894,0,0,1.0414051,4.9857129,9.0513362)" />
<linearGradient
x1="45.033901"
y1="44.966038"
x2="11.675456"
y2="1.4610662"
id="linearGradient2543"
xlink:href="#linearGradient2545"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9880039,0,0,0.9757112,0.5252674,0.07904551)" />
<linearGradient
id="linearGradient2545">
<stop
id="stop2547"
style="stop-color:#342679;stop-opacity:1"
offset="0" />
<stop
id="stop2553"
style="stop-color:#7b51ae;stop-opacity:0.96862745"
offset="0.72235626" />
<stop
id="stop2549"
style="stop-color:#d9cce8;stop-opacity:0.96862745"
offset="1" />
</linearGradient>
<linearGradient
x1="25.553648"
y1="34.006008"
x2="0"
y2="34.153435"
id="linearGradient11653"
xlink:href="#linearGradient11545"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.4601868,0,0,0.9728475,2.2307835,28.622031)" />
<linearGradient
id="linearGradient11545">
<stop
id="stop11547"
style="stop-color:#f89c11;stop-opacity:1"
offset="0" />
<stop
id="stop11549"
style="stop-color:#fabf60;stop-opacity:1"
offset="1" />
</linearGradient>
<clipPath
id="clip7">
<path
d="m 10.84375,39.414062 -10.84375,0 0,-10.953124 10.84375,0 0,-28.45703175 35.542969,0 0,32.73437475 -13.058594,13.058594 -22.484375,0 0,-6.382813"
id="path25" />
</clipPath>
<clipPath
id="clip32">
<path
d="m 10.84375,39.414062 -10.84375,0 0,-10.953124 10.84375,0 0,-28.45703175 35.542969,0 0,32.73437475 -13.058594,13.058594 -22.484375,0 0,-6.382813"
id="path100" />
</clipPath>
<clipPath
id="clip48">
<path
d="m 10.84375,39.414062 -10.84375,0 0,-10.953124 10.84375,0 0,-28.45703175 35.542969,0 0,32.73437475 -13.058594,13.058594 -22.484375,0 0,-6.382813"
id="path148" />
</clipPath>
<linearGradient
x1="25.553648"
y1="34.006008"
x2="0"
y2="34.153435"
id="linearGradient2525"
xlink:href="#linearGradient11545"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="40.864098"
y1="40.518246"
x2="33.136433"
y2="32.651588"
id="linearGradient2518"
xlink:href="#linearGradient11663"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient11663">
<stop
id="stop11665"
style="stop-color:#342679;stop-opacity:1"
offset="0" />
<stop
id="stop11667"
style="stop-color:#dacfe4;stop-opacity:1"
offset="1" />
</linearGradient>
</defs>
<metadata
id="metadata2611">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1">
<path
d="m 16,8 0,112 c 0,0 63.15625,0 63.15625,0 l 0.03125,0 c 3e-6,0 11.90625,-9.90625 17.40625,-15.40625 C 102.09375,99.09375 112,87.1875 112,87.1875 L 112,87.15625 112,8 16,8 z"
transform="matrix(1.0416667,0,0,1.0267857,-2.6666667,-1.2142891)"
id="path7865"
style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)" />
<path
d="M 16.000001,8 16,120 c 0,0 63.146418,0 63.146418,0 L 112,87.14642 112,8 16.000001,8 z"
id="path34"
style="fill:#ffffff;fill-opacity:1" />
<path
d="m 18.000002,9.0000034 c -0.551,0 -1,0.44885 -1,0.999665 l 0,107.9638516 c 0,0.55181 0.449,0.99966 1,0.99966 l 59.171997,0 c 0.263,0 2.76268,0.11813 2.948681,-0.0688 L 110.707,88.094202 C 110.894,87.907264 111,85.40942 111,85.146508 l 0,-75.1468396 c 0,-0.550815 -0.448,-0.999665 -1,-0.999665 l -91.999998,0 z"
id="path59"
style="fill:url(#radialGradient9437);fill-opacity:1" />
<path
d="m 41.879531,115.98249 c 0,0 24.309609,-24.309614 24.309609,-24.309614 0,0 -9.35314,2.913124 -19.60314,2.913124 0,10.25 -4.706469,21.39649 -4.706469,21.39649 z"
transform="translate(40,0)"
clip-path="url(#clipPath7084)"
id="path5540"
style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)" />
<path
d="m 79.172,120 c 0,0 11.914,-9.914 17.414,-15.414 5.5,-5.5 15.414,-17.414 15.414,-17.414 0,0 -13.75,8.828 -24,8.828 0,10.25 -8.828,24 -8.828,24 z"
id="path14523"
style="fill:url(#linearGradient10213);fill-opacity:1" />
<g
transform="matrix(2.6666667,0,0,2.6666667,-26.364309,-16.219923)"
id="layer1-2">
<g
transform="matrix(1.000026,0,0,0.9968473,-1.2968723e-4,0.405534)"
id="g2454">
<g
transform="matrix(1.0237894,0,0,1.0414051,9.6816161,-27.57005)"
id="g11649">
<rect
width="11.895136"
height="11.569371"
ry="2.7001941e-017"
x="3.1296141"
y="57.056187"
transform="matrix(0.9396926,-0.3420201,0.3420201,0.9396926,0,0)"
id="rect11645"
style="fill:#000000;fill-opacity:1" />
<rect
width="11.895135"
height="11.56937"
ry="2.7001941e-017"
x="2.2307839"
y="56.063431"
transform="matrix(0.9396926,-0.3420201,0.3420201,0.9396926,0,0)"
id="rect11641"
style="fill:url(#linearGradient11653);fill-opacity:1" />
</g>
<g
transform="matrix(1.0237894,0,0,1.0414051,4.9857129,9.0513362)"
clip-path="url(#clip7)"
id="g1139" />
<g
transform="matrix(1.0237894,0,0,1.0414051,0.779179,8.770206)"
id="g11677"
style="fill:#816392;fill-opacity:0.86179516">
<g
transform="translate(4.2261802,1.3274155)"
clip-path="url(#clip32)"
id="g11679"
style="fill:#816392;fill-opacity:0.86179516">
<path
d="m 26.128906,23.296875 c 2.015625,1.242187 4.480469,1.78125 6.523438,0.195313 1.574218,-1.210938 1.84375,-3.335938 1.324218,-5.414063 -0.917968,-3.585937 -4.5625,-7.527344 -4.5625,-7.527344 L 18.972656,-2.15625 c 0,0 -0.136718,-0.171875 -0.433594,-0.261719 -0.414062,-0.117187 -1.035156,0.261719 -0.683593,1.027344 l 10.910156,13.445313 c 0,0 3.265625,3.304687 3.886719,6.472656 0.296875,1.484375 0.214844,2.960937 -0.917969,3.871094 C 30.214844,23.621094 28.289062,22.9375 26.605469,21.863281 24.34375,20.417969 22.429688,18.09375 22.429688,18.09375 L 7.777344,0.679688 7.613281,2.613281 21.472656,19.136719 c 0,0 2.082032,2.566406 4.65625,4.160156"
id="path11681"
style="fill:#816392;fill-opacity:0.86179516;fill-rule:nonzero;stroke:none" />
</g>
<g
transform="translate(4.2261807,1.4535628)"
clip-path="url(#clip48)"
id="g11683"
style="fill:#816392;fill-opacity:0.86179516">
<path
d="m 28.304688,15.984375 c 2.003906,2.550781 0.160156,3.707031 -1.125,3.027344 -1.875,-1 -4.425782,-4.386719 -4.425782,-4.386719 L 15.613281,6.003906 C 15.070312,5.257812 14.429688,5.644531 14.296875,6.09375 c -0.09766,0.347656 0.238281,0.683594 0.238281,0.683594 l 7.191406,8.703125 c 0,0 2.207032,2.601562 3.398438,3.738281 3.5,3.367188 7.761719,0.152344 4.050781,-4.558594 C 27.074219,12 23.867188,8.175781 23.867188,8.175781 L 13.371094,-4.707031 11.859375,-4.839844 11.789062,-4.050781 22.511719,8.71875 c 0,0 3.636719,4.523438 5.792969,7.265625"
id="path11685"
style="fill:#816392;fill-opacity:0.86179516;fill-rule:nonzero;stroke:none" />
</g>
</g>
<g
transform="matrix(1.0237894,0,0,1.0414051,0.659598,7.725718)"
id="g11671">
<g
transform="translate(4.2261802,1.3274155)"
clip-path="url(#clip32)"
id="g3875">
<path
d="m 26.128906,23.296875 c 2.015625,1.242187 4.480469,1.78125 6.523438,0.195313 1.574218,-1.210938 1.84375,-3.335938 1.324218,-5.414063 -0.917968,-3.585937 -4.5625,-7.527344 -4.5625,-7.527344 L 18.972656,-2.15625 c 0,0 -0.136718,-0.171875 -0.433594,-0.261719 -0.414062,-0.117187 -1.035156,0.261719 -0.683593,1.027344 l 10.910156,13.445313 c 0,0 3.265625,3.304687 3.886719,6.472656 0.296875,1.484375 0.214844,2.960937 -0.917969,3.871094 C 30.214844,23.621094 28.289062,22.9375 26.605469,21.863281 24.34375,20.417969 22.429688,18.09375 22.429688,18.09375 L 7.777344,0.679688 7.613281,2.613281 21.472656,19.136719 c 0,0 2.082032,2.566406 4.65625,4.160156"
id="path3877"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
</g>
<g
transform="translate(4.2261807,1.4535628)"
clip-path="url(#clip48)"
id="g6171">
<path
d="m 28.304688,15.984375 c 2.003906,2.550781 0.160156,3.707031 -1.125,3.027344 -1.875,-1 -4.425782,-4.386719 -4.425782,-4.386719 L 15.613281,6.003906 C 15.070312,5.257812 14.429688,5.644531 14.296875,6.09375 c -0.09766,0.347656 0.238281,0.683594 0.238281,0.683594 l 7.191406,8.703125 c 0,0 2.207032,2.601562 3.398438,3.738281 3.5,3.367188 7.761719,0.152344 4.050781,-4.558594 C 27.074219,12 23.867188,8.175781 23.867188,8.175781 L 13.371094,-4.707031 11.859375,-4.839844 11.789062,-4.050781 22.511719,8.71875 c 0,0 3.636719,4.523438 5.792969,7.265625"
id="path6173"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
</g>
</g>
<text
x="6.855123"
y="40.434292"
transform="scale(0.9915063,1.0085665)"
id="text11553"
xml:space="preserve"
style="font-size:41.30238724px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><tspan
x="6.855123"
y="40.434292"
id="tspan11555" /></text>
</g>
</g>
<g
transform="matrix(0.10181328,0,0,0.10181328,23.503861,90.420112)"
id="g8370">
<path
d="m 20.795,23.442 c 41.244,-1.555 81.688,-2.171 104.79,17.582 10.619,27.832 15.009,83.404 4.99,117.209 -18.421,31.11 -62.996,31.504 -109.78,29.303 0,-54.699 0,-109.396 0,-164.094 z m 34.93,134.79 c 11.643,0 23.287,0 34.93,0 16.604,-30.859 22.254,-125.032 -34.93,-105.488 0,35.163 0,70.326 0,105.488 z"
id="path8372"
style="fill-rule:evenodd" />
<path
d="m 165.505,23.442 c 33.267,0 66.533,0 99.8,0 7.251,46.182 16.995,89.436 34.931,123.07 14.479,-35.739 17.123,-85.377 29.939,-123.07 11.644,0 23.287,0 34.93,0 -12.062,58.113 -35.35,103.042 -44.909,164.093 -14.971,0 -29.94,0 -44.91,0 -9.471,-49.436 -28.165,-88.039 -39.92,-134.791 -23.287,0 -46.573,0 -69.86,0 -0.001,-9.767 -0.001,-19.535 -0.001,-29.302 z"
id="path8374"
style="fill-rule:evenodd" />
<path
d="m 385.065,76.186 c 12.301,-0.773 24.042,-0.888 29.939,5.86 -2.146,26.978 -3.585,49.781 4.99,76.186 45.408,12.307 33.898,-42.234 34.93,-82.046 9.98,0 19.96,0 29.94,0 0,37.116 0,74.232 0,111.349 -22.437,6.814 -26.368,-8.103 -29.94,-23.442 -14.933,22.293 -52.771,32.37 -69.859,5.86 0,-31.255 0,-62.511 0,-93.767 z"
id="path8376"
style="fill-rule:evenodd" />
<path
d="m 165.505,87.907 c 9.98,0 19.96,0 29.94,0 -2.328,48.057 6.913,109.699 -9.98,140.651 -23.857,2.642 -21.052,2.642 -44.91,0 24.686,-27.659 29.399,-78.774 24.95,-140.651 z"
id="path8378"
style="fill-rule:evenodd" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

758
imgsrc/random.svg Normal file
View File

@ -0,0 +1,758 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="128"
height="128"
id="svg10643"
sodipodi:version="0.32"
inkscape:version="0.46+devel"
sodipodi:docname="pointer.svgz"
inkscape:output_extension="org.inkscape.output.svgz.inkscape"
inkscape:export-filename="/home/pinheiro/pics/oxygen-icons/scalable/actions/small/32x32/pointer.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
version="1.0">
<defs
id="defs10645">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 12 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="24 : 12 : 1"
inkscape:persp3d-origin="12 : 8 : 1"
id="perspective108" />
<linearGradient
id="linearGradient3233">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3235" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3237" />
</linearGradient>
<linearGradient
id="linearGradient3866">
<stop
id="stop3868"
offset="0"
style="stop-color:#fff299;stop-opacity:1;" />
<stop
id="stop3870"
offset="1"
style="stop-color:#dcd8bd;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient11059">
<stop
style="stop-color:#727272;stop-opacity:1;"
offset="0"
id="stop11061" />
<stop
id="stop11067"
offset="0.5"
style="stop-color:#a6a6a6;stop-opacity:1;" />
<stop
style="stop-color:#cdcdcd;stop-opacity:1;"
offset="0.75"
id="stop11069" />
<stop
style="stop-color:#acacac;stop-opacity:1;"
offset="1"
id="stop11063" />
</linearGradient>
<linearGradient
id="linearGradient10925">
<stop
style="stop-color:#bf0303;stop-opacity:0;"
offset="0"
id="stop10927" />
<stop
id="stop10978"
offset="0.39309064"
style="stop-color:#bf0303;stop-opacity:0;" />
<stop
id="stop10935"
offset="0.46538317"
style="stop-color:#bf0303;stop-opacity:0.49803922;" />
<stop
style="stop-color:#bf0303;stop-opacity:1;"
offset="0.5"
id="stop10976" />
<stop
id="stop10933"
offset="0.5"
style="stop-color:#bf0303;stop-opacity:1;" />
<stop
style="stop-color:#bf0303;stop-opacity:0.49803922;"
offset="0.55339807"
id="stop10937" />
<stop
id="stop10980"
offset="0.60542935"
style="stop-color:#bf0303;stop-opacity:0;" />
<stop
style="stop-color:#bf0303;stop-opacity:0;"
offset="1"
id="stop10929" />
</linearGradient>
<linearGradient
id="linearGradient10901">
<stop
id="stop10903"
offset="0"
style="stop-color:#fff299;stop-opacity:0;" />
<stop
style="stop-color:#fff299;stop-opacity:1;"
offset="0.5"
id="stop10909" />
<stop
id="stop10905"
offset="1"
style="stop-color:#fff299;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient10854">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop10856" />
<stop
id="stop10862"
offset="0.5"
style="stop-color:#000000;stop-opacity:0;" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop10858" />
</linearGradient>
<linearGradient
id="linearGradient10711">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop10713" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop10715" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient10875"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.8967678,0.05935673,-0.05873468,0.8873664,-5.4012494,0.1392525)"
spreadMethod="reflect"
cx="18.708233"
cy="24.759357"
fx="18.708233"
fy="24.759357"
r="13.169441" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10925"
id="radialGradient10931"
cx="9.996233"
cy="23.364098"
fx="7.6629176"
fy="18.295921"
r="8.7188435"
gradientTransform="matrix(3.0577456,1.8802807,-0.9054531,1.4724637,3.4545267,-24.480143)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient10968"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.8967678,0.05935673,-0.05873468,0.8873664,-5.4012494,0.1392525)"
spreadMethod="reflect"
cx="18.708233"
cy="24.759357"
fx="18.708233"
fy="24.759357"
r="13.169441" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10925"
id="radialGradient10971"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.7002217,0.5715519,-0.4374946,2.0668853,-4.8632848,-26.818351)"
cx="9.1802711"
cy="24.942194"
fx="6.0336409"
fy="17.669048"
r="8.7188435" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath10999">
<path
sodipodi:nodetypes="ccccc"
id="path11001"
d="M 3.6413483,1.9681703 3.779696,17.490509 14.887308,19.785771 21.079035,17.498126 3.6413483,1.9681703 z"
style="fill:#ff80ff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
</clipPath>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10925"
id="radialGradient11003"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.7002217,0.5715519,-0.4374946,2.0668853,-4.8632848,-26.818351)"
cx="8.2921495"
cy="23.935163"
fx="8.2488832"
fy="19.781427"
r="8.7188435" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10925"
id="radialGradient11030"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.7002217,0.5715519,-0.4374946,2.0668853,-4.8632848,-26.818351)"
cx="8.2921495"
cy="23.935163"
fx="8.2488832"
fy="19.781427"
r="8.7188435" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient11032"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.8967678,0.05935673,-0.05873468,0.8873664,-5.4012494,0.1392525)"
spreadMethod="reflect"
cx="18.708233"
cy="24.759357"
fx="18.708233"
fy="24.759357"
r="13.169441" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10925"
id="radialGradient11034"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.7002217,0.5715519,-0.4374946,2.0668853,-4.8632848,-26.818351)"
cx="8.2921495"
cy="23.935163"
fx="8.2488832"
fy="19.781427"
r="8.7188435" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient3294"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7030075,0.6357809,-0.8060735,0.8913044,14.84311,-8.1934483)"
spreadMethod="reflect"
cx="16.993044"
cy="20.648924"
fx="16.993044"
fy="20.648924"
r="13.169441" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="linearGradient3297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9823337,0,0,0.9823337,0.03300739,0.6182451)"
spreadMethod="pad"
x1="19.879225"
y1="12.061514"
x2="16.034332"
y2="15.552854" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="linearGradient3353"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9823337,0,0,0.9823337,0.03300739,0.6182451)"
spreadMethod="pad"
x1="19.879225"
y1="12.061514"
x2="16.034332"
y2="15.552854" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient3355"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7030075,0.6357809,-0.8060735,0.8913044,14.84311,-8.1934483)"
spreadMethod="reflect"
cx="16.993044"
cy="20.648924"
fx="16.993044"
fy="20.648924"
r="13.169441" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="linearGradient3362"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9823337,0,0,0.9823337,0.03300739,0.6182451)"
spreadMethod="pad"
x1="19.879225"
y1="12.061514"
x2="16.034332"
y2="15.552854" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient3364"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.8341244,0.2489558,-0.2435026,0.8158514,0.7851109,-0.01382395)"
spreadMethod="reflect"
cx="17.54755"
cy="21.708042"
fx="17.54755"
fy="21.708042"
r="13.169441" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient3367"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.8151394,0.2358626,-0.2306962,0.7972824,0.7011221,-1.0582457)"
spreadMethod="reflect"
cx="17.54755"
cy="21.708042"
fx="17.54755"
fy="21.708042"
r="13.169441" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="linearGradient3370"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9575785,-0.00803118,0.00803118,0.9575785,-0.0268605,-0.4359562)"
spreadMethod="pad"
x1="19.879225"
y1="12.061514"
x2="16.034332"
y2="15.552854" />
<linearGradient
y2="19.626715"
x2="10.711697"
y1="18.63658"
x1="9.7192469"
gradientTransform="matrix(3.547255,-0.03993894,0.03993894,3.547255,-27.397339,-48.790495)"
gradientUnits="userSpaceOnUse"
id="linearGradient3488"
xlink:href="#linearGradient10711"
inkscape:collect="always" />
<radialGradient
r="1.15625"
fy="20.478674"
fx="11.413477"
cy="20.478674"
cx="11.413477"
spreadMethod="pad"
gradientTransform="matrix(1.7083003,-0.01851949,0.01798426,1.6589328,-8.4797796,-13.189665)"
gradientUnits="userSpaceOnUse"
id="radialGradient3486"
xlink:href="#linearGradient3330"
inkscape:collect="always" />
<linearGradient
y2="19.626715"
x2="10.711697"
y1="18.63658"
x1="9.7192469"
gradientTransform="matrix(3.5474799,0,0,3.5474799,-26.927898,-62.356391)"
gradientUnits="userSpaceOnUse"
id="linearGradient3475"
xlink:href="#linearGradient10711"
inkscape:collect="always" />
<radialGradient
r="1.15625"
fy="20.478674"
fx="11.413477"
cy="20.478674"
cx="11.413477"
spreadMethod="pad"
gradientTransform="matrix(1.7083003,-0.01851949,0.01798426,1.6589328,-8.4797796,-13.189665)"
gradientUnits="userSpaceOnUse"
id="radialGradient3473"
xlink:href="#linearGradient3330"
inkscape:collect="always" />
<radialGradient
spreadMethod="reflect"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7809876,0.01449707,-0.0055455,0.2987498,-0.2924169,2.0957246)"
r="11.765625"
fy="10.911069"
fx="1.1416299"
cy="10.911069"
cx="1.1416299"
id="radialGradient3317"
xlink:href="#linearGradient3206"
inkscape:collect="always" />
<linearGradient
y2="26.641653"
x2="16.836901"
y1="6.8943019"
x1="5.6869311"
gradientTransform="translate(0,-7.2094174)"
gradientUnits="userSpaceOnUse"
id="linearGradient3265"
xlink:href="#linearGradient3267"
inkscape:collect="always" />
<linearGradient
y2="17.133453"
x2="16.836901"
y1="-2.6138983"
x1="5.6869311"
gradientTransform="translate(0,2.298783)"
gradientUnits="userSpaceOnUse"
id="linearGradient3261"
xlink:href="#linearGradient3267"
inkscape:collect="always" />
<linearGradient
gradientTransform="translate(0,-4.8361309)"
y2="24.268368"
x2="16.836901"
y1="4.5210156"
x1="5.6869311"
gradientUnits="userSpaceOnUse"
id="linearGradient3257"
xlink:href="#linearGradient3267"
inkscape:collect="always" />
<linearGradient
gradientTransform="translate(0,-2.4628444)"
y2="21.895081"
x2="16.836901"
y1="2.1477292"
x1="5.6869311"
gradientUnits="userSpaceOnUse"
id="linearGradient3249"
xlink:href="#linearGradient3267"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="19.432236"
x2="16.836901"
y1="-0.31511527"
x1="5.6869311"
id="linearGradient3239"
xlink:href="#linearGradient3267"
inkscape:collect="always" />
<linearGradient
y2="19.626715"
x2="10.711697"
y1="18.384007"
x1="9.8687286"
gradientTransform="matrix(3.6334443,0,0,3.6334443,-27.580699,-51.677773)"
gradientUnits="userSpaceOnUse"
id="linearGradient3220"
xlink:href="#linearGradient10711"
inkscape:collect="always" />
<radialGradient
r="1.15625"
fy="20.478674"
fx="11.413477"
cy="20.478674"
cx="11.413477"
spreadMethod="pad"
gradientTransform="matrix(1.7083003,-0.01851949,0.01798426,1.6589328,-8.4797796,-13.189665)"
gradientUnits="userSpaceOnUse"
id="radialGradient3218"
xlink:href="#linearGradient10711"
inkscape:collect="always" />
<linearGradient
id="linearGradient2657">
<stop
id="stop2659"
offset="0"
style="stop-color:#ff80ff;stop-opacity:1;" />
<stop
id="stop2661"
offset="1"
style="stop-color:#ff80ff;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3206">
<stop
style="stop-color:#b1d28f;stop-opacity:1;"
offset="0"
id="stop3208" />
<stop
style="stop-color:#b1d28f;stop-opacity:1;"
offset="1"
id="stop3210" />
</linearGradient>
<linearGradient
id="linearGradient3241">
<stop
id="stop3243"
offset="0"
style="stop-color:#000000;stop-opacity:1;" />
<stop
id="stop3245"
offset="1"
style="stop-color:#debc85;stop-opacity:0" />
</linearGradient>
<linearGradient
id="linearGradient3267">
<stop
style="stop-color:#debc85;stop-opacity:1;"
offset="0"
id="stop3269" />
<stop
style="stop-color:#debc85;stop-opacity:0;"
offset="1"
id="stop3271" />
</linearGradient>
<linearGradient
id="linearGradient3273">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3275" />
<stop
style="stop-color:#debc85;stop-opacity:0"
offset="1"
id="stop3277" />
</linearGradient>
<linearGradient
id="linearGradient3279">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3281" />
<stop
style="stop-color:#debc85;stop-opacity:0"
offset="1"
id="stop3283" />
</linearGradient>
<linearGradient
id="linearGradient3285">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3287" />
<stop
style="stop-color:#debc85;stop-opacity:0"
offset="1"
id="stop3289" />
</linearGradient>
<linearGradient
id="linearGradient3330">
<stop
style="stop-color:#ff80ff;stop-opacity:0;"
offset="0"
id="stop3332" />
<stop
style="stop-color:#666666;stop-opacity:1;"
offset="1"
id="stop3334" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient4021"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9318803,-0.2210697,0.2308678,0.9731826,-3.9252239,2.7241703)"
spreadMethod="pad"
cx="11.074039"
cy="20.428291"
fx="11.074039"
fy="20.428291"
r="1.15625" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="linearGradient4023"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.8514941,0.5243642,-0.5243642,0.8514941,24.154135,2.8247022)"
x1="21.461079"
y1="23.349636"
x2="22.96941"
y2="28.038134" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="linearGradient4030"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.8514941,0.5243642,-0.5243642,0.8514941,18.007546,-15.657615)"
x1="21.461079"
y1="23.349636"
x2="22.96941"
y2="28.038134" />
<filter
inkscape:collect="always"
x="-0.20028582"
width="1.4005716"
y="-0.11837127"
height="1.2367425"
id="filter3484">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.97202214"
id="feGaussianBlur3486" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient3490"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1086176,-0.4093269,0.6608062,1.7897223,-9.2289678,-4.0397151)"
spreadMethod="reflect"
cx="8.8133469"
cy="14.235861"
fx="8.8133469"
fy="14.235861"
r="5.3238101" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3496">
<rect
style="opacity:0.62633481;fill:none;stroke:#000000;stroke-width:0.19602102;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3498"
width="13.277639"
height="22.63365"
x="5.309958"
y="1.2316679"
ry="1.171887" />
</clipPath>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient3508"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1106976,-0.4036489,0.6516398,1.7930801,-9.2127514,-4.7972628)"
spreadMethod="reflect"
cx="8.8133469"
cy="14.235861"
fx="8.8133469"
fy="14.235861"
r="5.3238101" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3233"
id="linearGradient3240"
x1="9.4485903"
y1="2.761672"
x2="7.6776314"
y2="19.013866"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(4.1741381,0,0,4.1613891,14.977639,14.527008)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient10711"
id="radialGradient3253"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(4.7157796,-1.4428762,2.6160831,8.4980426,-22.699134,-22.277012)"
spreadMethod="reflect"
cx="8.2230186"
cy="14.316785"
fx="8.2230186"
fy="14.316785"
r="5.3238101" />
<filter
inkscape:collect="always"
id="filter3757"
x="-0.14567212"
width="1.2913442"
y="-0.098205952"
height="1.1964119">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.79012916"
id="feGaussianBlur3759" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2"
inkscape:cx="8.5584572"
inkscape:cy="52.628863"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:grid-bbox="true"
inkscape:document-units="px"
inkscape:window-width="1280"
inkscape:window-height="742"
inkscape:window-x="296"
inkscape:window-y="56"
showguides="true"
inkscape:guide-bbox="true"
width="24px"
height="24px"
inkscape:object-paths="false"
inkscape:object-nodes="true"
inkscape:snap-nodes="false"
inkscape:snap-global="false">
<inkscape:grid
type="xygrid"
id="grid3664"
empspacing="2"
visible="true"
enabled="true"
spacingx="2.6666px"
spacingy="2.6666px" />
<sodipodi:guide
orientation="1,0"
position="10.507812,7.328125"
id="guide3666" />
<sodipodi:guide
orientation="0,1"
position="10.292968,7.5546875"
id="guide3668" />
</sodipodi:namedview>
<metadata
id="metadata10648">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:0.18099551;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3757);enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
d="m 5,19 c 5.24e-5,0.523584 0.4764155,0.999948 1,1 l 3.59375,0 2.5,2.5625 c 0.272702,0.267764 0.706204,0.357015 1.0625,0.21875 l 1.25,-0.46875 c 0.353635,-0.127466 0.619754,-0.46962 0.65625,-0.84375 l 0.34375,-3.3125 2.40625,-3 c 0.296435,-0.374818 0.26821,-0.967546 -0.0625,-1.3125 L 5.2034921,1.0488435 5,19 z"
id="path3670"
sodipodi:nodetypes="cccccccccccc"
transform="matrix(3.8351065,0,0,3.8305733,20.000787,24.35592)" />
<path
style="fill:#201020;fill-rule:evenodd;stroke:#595959;stroke-width:5.33333349;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 40.022468,18.688398 0,66.582224 16.696553,0 L 68.436432,97.122145 73.70512,95.153883 75.247683,80.05609 86.03678,66.636329 40.022468,18.688398 z"
id="path3502"
sodipodi:nodetypes="cccccccc" />
<path
sodipodi:nodetypes="cccccccc"
id="path3504"
d="m 40.022468,18.688397 0,66.58222 16.696554,0 11.717412,11.851511 5.268688,-1.968253 1.54256,-15.09779 L 85.892267,66.67168 40.022468,18.688397 z"
style="fill:#c4c4c4;fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path
style="fill:url(#radialGradient3253);fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 40.022468,18.688397 0,66.58222 16.696554,0 11.717412,11.851511 5.268688,-1.968253 1.54256,-15.09779 10.56036,-13.22296 -45.785574,-48.144728 z"
id="path3506"
sodipodi:nodetypes="cccccccc" />
<path
style="fill:none;stroke:url(#linearGradient3240);stroke-width:2.667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 41.38037,83.915714 58.396539,84.11082 69.204513,94.929961 72.193882,93.656427 73.839587,79.399575 84.08764,66.742537 41.448646,22.246495 41.38037,83.915714 z"
id="path2253"
sodipodi:nodetypes="cccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,23 @@
from calibre.web.feeds.news import BasicNewsRecipe
class AdvancedUserRecipe1312361378(BasicNewsRecipe):
title = u'Carta capital'
__author__ = 'Pablo Aldama'
language = 'pt_BR'
oldest_article = 9
max_articles_per_feed = 100
feeds = [(u'Politica', u'http://www.cartacapital.com.br/category/politica/feed')
,(u'Economia', u'http://www.cartacapital.com.br/category/economia/feed')
,(u'Cultura', u'http://www.cartacapital.com.br/category/cultura/feed')
,(u'Internacional', u'http://www.cartacapital.com.br/category/internacional/feed')
,(u'Saude', u'http://www.cartacapital.com.br/category/saude/feed')
,(u'Sociedade', u'http://www.cartacapital.com.br/category/sociedade/feed')
,(u'Tecnologia', u'http://www.cartacapital.com.br/category/tecnologia/feed')
,(u'Carta na escola', u'http://www.cartacapital.com.br/category/carta-na-escola/feed')
,(u'Carta fundamental', u'http://www.cartacapital.com.br/category/carta-fundamental/feed')
,(u'Carta verde', u'http://www.cartacapital.com.br/category/carta-verde/feed')
]
def print_version(self, url):
return url + '/print'

View File

@ -70,6 +70,11 @@ class Economist(BasicNewsRecipe):
def economist_parse_index(self):
soup = self.index_to_soup(self.INDEX)
div = soup.find('div', attrs={'class':'issue-image'})
if div is not None:
img = div.find('img', src=True)
if img is not None:
self.cover_url = img['src']
feeds = OrderedDict()
for section in soup.findAll(attrs={'class':lambda x: x and 'section' in
x}):
@ -109,7 +114,9 @@ class Economist(BasicNewsRecipe):
'description':'', 'date':''})
if articles:
feeds[section_title] = articles
if section_title not in feeds:
feeds[section_title] = []
feeds[section_title] += articles
ans = [(key, val) for key, val in feeds.iteritems()]
if not ans:

View File

@ -1,3 +1,157 @@
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
'''
economist.com
'''
from calibre.web.feeds.news import BasicNewsRecipe
from calibre.ebooks.BeautifulSoup import Tag, NavigableString
from collections import OrderedDict
import time, re
class Economist(BasicNewsRecipe):
title = 'The Economist'
language = 'en'
__author__ = "Kovid Goyal"
INDEX = 'http://www.economist.com/printedition'
description = ('Global news and current affairs from a European'
' perspective. Best downloaded on Friday mornings (GMT)')
extra_css = '.headline {font-size: x-large;} \n h2 { font-size: small; } \n h1 { font-size: medium; }'
oldest_article = 7.0
cover_url = 'http://media.economist.com/sites/default/files/imagecache/print-cover-thumbnail/print-covers/currentcoverus_large.jpg'
#cover_url = 'http://www.economist.com/images/covers/currentcoverus_large.jpg'
remove_tags = [
dict(name=['script', 'noscript', 'title', 'iframe', 'cf_floatingcontent']),
dict(attrs={'class':['dblClkTrk', 'ec-article-info',
'share_inline_header', 'related-items']}),
{'class': lambda x: x and 'share-links-header' in x},
]
keep_only_tags = [dict(id='ec-article-body')]
needs_subscription = False
no_stylesheets = True
preprocess_regexps = [(re.compile('</html>.*', re.DOTALL),
lambda x:'</html>')]
'''
def get_browser(self):
br = BasicNewsRecipe.get_browser()
br.open('http://www.economist.com')
req = mechanize.Request(
'http://www.economist.com/members/members.cfm?act=exec_login',
headers = {
'Referer':'http://www.economist.com/',
},
data=urllib.urlencode({
'logging_in' : 'Y',
'returnURL' : '/',
'email_address': self.username,
'fakepword' : 'Password',
'pword' : self.password,
'x' : '0',
'y' : '0',
}))
br.open(req).read()
return br
'''
def parse_index(self):
try:
return self.economist_parse_index()
except:
raise
self.log.warn(
'Initial attempt to parse index failed, retrying in 30 seconds')
time.sleep(30)
return self.economist_parse_index()
def economist_parse_index(self):
soup = self.index_to_soup(self.INDEX)
div = soup.find('div', attrs={'class':'issue-image'})
if div is not None:
img = div.find('img', src=True)
if img is not None:
self.cover_url = img['src']
feeds = OrderedDict()
for section in soup.findAll(attrs={'class':lambda x: x and 'section' in
x}):
h4 = section.find('h4')
if h4 is None:
continue
section_title = self.tag_to_string(h4).strip()
if not section_title:
continue
self.log('Found section: %s'%section_title)
articles = []
for h5 in section.findAll('h5'):
article_title = self.tag_to_string(h5).strip()
if not article_title:
continue
data = h5.findNextSibling(attrs={'class':'article'})
if data is None: continue
a = data.find('a', href=True)
if a is None: continue
url = a['href']
if url.startswith('/'): url = 'http://www.economist.com'+url
url += '/print'
article_title += ': %s'%self.tag_to_string(a).strip()
articles.append({'title':article_title, 'url':url,
'description':'', 'date':''})
if not articles:
# We have last or first section
for art in section.findAll(attrs={'class':'article'}):
a = art.find('a', href=True)
if a is not None:
url = a['href']
if url.startswith('/'): url = 'http://www.economist.com'+url
url += '/print'
title = self.tag_to_string(a)
if title:
articles.append({'title':title, 'url':url,
'description':'', 'date':''})
if articles:
if section_title not in feeds:
feeds[section_title] = []
feeds[section_title] += articles
ans = [(key, val) for key, val in feeds.iteritems()]
if not ans:
raise Exception('Could not find any articles, either the '
'economist.com server is having trouble and you should '
'try later or the website format has changed and the '
'recipe needs to be updated.')
return ans
def eco_find_image_tables(self, soup):
for x in soup.findAll('table', align=['right', 'center']):
if len(x.findAll('font')) in (1,2) and len(x.findAll('img')) == 1:
yield x
def postprocess_html(self, soup, first):
body = soup.find('body')
for name, val in body.attrs:
del body[name]
for table in list(self.eco_find_image_tables(soup)):
caption = table.find('font')
img = table.find('img')
div = Tag(soup, 'div')
div['style'] = 'text-align:left;font-size:70%'
ns = NavigableString(self.tag_to_string(caption))
div.insert(0, ns)
div.insert(1, Tag(soup, 'br'))
del img['width']
del img['height']
img.extract()
div.insert(2, img)
table.replaceWith(div)
return soup
'''
from calibre.web.feeds.news import BasicNewsRecipe
from calibre.utils.threadpool import ThreadPool, makeRequests
from calibre.ebooks.BeautifulSoup import Tag, NavigableString
@ -145,3 +299,5 @@ class Economist(BasicNewsRecipe):
div.insert(2, img)
table.replaceWith(div)
return soup
'''

View File

@ -8,6 +8,9 @@ class Newsweek(BasicNewsRecipe):
language = 'en'
encoding = 'utf-8'
no_stylesheets = True
recipe_disabled = ('Newsweek was taken over by The Daily Beast,'
' newsweek.com no longer exists, so this recipe '
' has been disabled.')
BASE_URL = 'http://www.newsweek.com'

View File

@ -85,4 +85,5 @@ class NikkeiNet_paper_subscription(BasicNewsRecipe):
description='', content=''))
result.append([sect_title, sect_result])
#pp.pprint(result)
return result

View File

@ -38,6 +38,7 @@ class WallStreetJournal(BasicNewsRecipe):
dict(id=["articleTabs_tab_article", "articleTabs_tab_comments", "articleTabs_tab_interactive","articleTabs_tab_video","articleTabs_tab_map","articleTabs_tab_slideshow","articleTabs_tab_quotes","articleTabs_tab_document"]),
{'class':['footer_columns','network','insetCol3wide','interactive','video','slideshow','map','insettip','insetClose','more_in', "insetContent", 'articleTools_bottom', 'aTools', "tooltip", "adSummary", "nav-inline"]},
dict(rel='shortcut icon'),
{'class':lambda x: x and 'sTools' in x},
]
remove_tags_after = [dict(id="article_story_body"), {'class':"article story"},]

View File

@ -40,6 +40,7 @@ class WallStreetJournal(BasicNewsRecipe):
dict(name='div', attrs={'data-flash-settings':True}),
{'class':['insetContent embedType-interactive insetCol3wide','insetCol6wide','insettipUnit']},
dict(rel='shortcut icon'),
{'class':lambda x: x and 'sTools' in x},
]
remove_tags_after = [dict(id="article_story_body"), {'class':"article story"},]

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
resources/images/random.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -205,8 +205,8 @@ class Resources(Command):
dest = self.j(self.RESOURCES, 'template-functions.json')
function_dict = {}
import inspect
from calibre.utils.formatter_functions import all_builtin_functions
for obj in all_builtin_functions:
from calibre.utils.formatter_functions import formatter_functions
for obj in formatter_functions.get_builtins().values():
eval_func = inspect.getmembers(obj,
lambda x: inspect.ismethod(x) and x.__name__ == 'evaluate')
try:

View File

@ -4,7 +4,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en'
__appname__ = u'calibre'
numeric_version = (0, 8, 12)
numeric_version = (0, 8, 13)
__version__ = u'.'.join(map(unicode, numeric_version))
__author__ = u"Kovid Goyal <kovid@kovidgoyal.net>"

View File

@ -843,6 +843,12 @@ class ActionNextMatch(InterfaceActionBase):
description = _('Find the next or previous match when searching in '
'your calibre library in highlight mode')
class ActionPickRandom(InterfaceActionBase):
name = 'Pick Random Book'
actual_plugin = 'calibre.gui2.actions.random:PickRandomAction'
description = _('Choose a random book from your calibre library')
class ActionStore(InterfaceActionBase):
name = 'Store'
author = 'John Schember'
@ -873,7 +879,7 @@ plugins += [ActionAdd, ActionFetchAnnotations, ActionGenerateCatalog,
ActionSendToDevice, ActionHelp, ActionPreferences, ActionSimilarBooks,
ActionAddToLibrary, ActionEditCollections, ActionChooseLibrary,
ActionCopyToLibrary, ActionTweakEpub, ActionNextMatch, ActionStore,
ActionPluginUpdater]
ActionPluginUpdater, ActionPickRandom]
# }}}

View File

@ -40,6 +40,7 @@ class ANDROID(USBMS):
0x41db : [0x216], 0x4285 : [0x216], 0x42a3 : [0x216],
0x4286 : [0x216], 0x42b3 : [0x216], 0x42b4 : [0x216],
0x7086 : [0x0226], 0x70a8: [0x9999], 0x42c4 : [0x216],
0x70c6 : [0x226]
},
# Sony Ericsson
@ -128,11 +129,11 @@ class ANDROID(USBMS):
'7', 'A956', 'A955', 'A43', 'ANDROID_PLATFORM', 'TEGRA_2',
'MB860', 'MULTI-CARD', 'MID7015A', 'INCREDIBLE', 'A7EB', 'STREAK',
'MB525', 'ANDROID2.3', 'SGH-I997', 'GT-I5800_CARD', 'MB612',
'GT-S5830_CARD', 'GT-S5570_CARD']
'GT-S5830_CARD', 'GT-S5570_CARD', 'MB870']
WINDOWS_CARD_A_MEM = ['ANDROID_PHONE', 'GT-I9000_CARD', 'SGH-I897',
'FILE-STOR_GADGET', 'SGH-T959', 'SAMSUNG_ANDROID', 'GT-P1000_CARD',
'A70S', 'A101IT', '7', 'INCREDIBLE', 'A7EB', 'SGH-T849_CARD',
'__UMS_COMPOSITE', 'SGH-I997_CARD']
'__UMS_COMPOSITE', 'SGH-I997_CARD', 'MB870']
OSX_MAIN_MEM = 'Android Device Main Memory'

View File

@ -59,7 +59,7 @@ class BAMBOOK(DeviceConfig, DevicePlugin):
def reset(self, key='-1', log_packets=False, report_progress=None,
detected_device=None) :
self.open()
self.open(None)
def open(self, library_uuid):
# Make sure the Bambook library is ready

View File

@ -333,8 +333,14 @@ class KOBO(USBMS):
except Exception as e:
if 'no such column' not in str(e):
raise
cursor.execute('update content set ReadStatus=0, FirstTimeReading = \'true\', ___PercentRead=0 ' \
'where BookID is Null and ContentID =?',t)
try:
cursor.execute('update content set ReadStatus=0, FirstTimeReading = \'true\', ___PercentRead=0 ' \
'where BookID is Null and ContentID =?',t)
except Exception as e:
if 'no such column' not in str(e):
raise
cursor.execute('update content set ReadStatus=0, FirstTimeReading = \'true\' ' \
'where BookID is Null and ContentID =?',t)
connection.commit()

View File

@ -8,6 +8,7 @@ from various formats.
'''
import traceback, os, re
from cStringIO import StringIO
from calibre import CurrentDir
class ConversionError(Exception):
@ -209,4 +210,45 @@ def unit_convert(value, base, font, dpi):
result = value * 0.40
return result
def generate_masthead(title, output_path=None, width=600, height=60):
from calibre.ebooks.conversion.config import load_defaults
from calibre.utils.fonts import fontconfig
font_path = default_font = P('fonts/liberation/LiberationSerif-Bold.ttf')
recs = load_defaults('mobi_output')
masthead_font_family = recs.get('masthead_font', 'Default')
if masthead_font_family != 'Default':
masthead_font = fontconfig.files_for_family(masthead_font_family)
# Assume 'normal' always in dict, else use default
# {'normal': (path_to_font, friendly name)}
if 'normal' in masthead_font:
font_path = masthead_font['normal'][0]
if not font_path or not os.access(font_path, os.R_OK):
font_path = default_font
try:
from PIL import Image, ImageDraw, ImageFont
Image, ImageDraw, ImageFont
except ImportError:
import Image, ImageDraw, ImageFont
img = Image.new('RGB', (width, height), 'white')
draw = ImageDraw.Draw(img)
try:
font = ImageFont.truetype(font_path, 48)
except:
font = ImageFont.truetype(default_font, 48)
text = title.encode('utf-8')
width, height = draw.textsize(text, font=font)
left = max(int((width - width)/2.), 0)
top = max(int((height - height)/2.), 0)
draw.text((left, top), text, fill=(0,0,0), font=font)
if output_path is None:
f = StringIO()
img.save(f, 'JPEG')
return f.getvalue()
else:
with open(output_path, 'wb') as f:
img.save(f, 'JPEG')

View File

@ -557,7 +557,7 @@ OptionRecommendation(name='delete_blank_paragraphs',
OptionRecommendation(name='format_scene_breaks',
recommended_value=True, level=OptionRecommendation.LOW,
help=_('Left aligned scene break markers are center aligned. '
'Replace soft scene breaks that use multiple blank lines with'
'Replace soft scene breaks that use multiple blank lines with '
'horizontal rules.')),
OptionRecommendation(name='replace_scene_breaks',

View File

@ -38,17 +38,17 @@ def get_metadata_(src, encoding=None):
if match:
title = match.group(2)
else:
pat = re.compile('<title>([^<>]+?)</title>', re.IGNORECASE)
match = pat.search(src)
if match:
title = match.group(1)
if not title:
for x in ('Title','DC.title','DCTERMS.title'):
for x in ('DC.title','DCTERMS.title','Title'):
pat = get_meta_regexp_(x)
match = pat.search(src)
if match:
title = match.group(1)
break
if not title:
pat = re.compile('<title>([^<>]+?)</title>', re.IGNORECASE)
match = pat.search(src)
if match:
title = match.group(1)
# Author
author = None
@ -57,7 +57,7 @@ def get_metadata_(src, encoding=None):
if match:
author = match.group(2).replace(',', ';')
else:
for x in ('Author','DC.creator.aut','DCTERMS.creator.aut'):
for x in ('Author','DC.creator.aut','DCTERMS.creator.aut', 'DC.creator'):
pat = get_meta_regexp_(x)
match = pat.search(src)
if match:

View File

@ -67,10 +67,6 @@ def _metadata_from_formats(formats, force_read_metadata=False, pattern=None):
return mi
def is_recipe(filename):
return filename.startswith('calibre') and \
filename.rpartition('.')[0].endswith('_recipe_out')
def get_metadata(stream, stream_type='lrf', use_libprs_metadata=False,
force_read_metadata=False, pattern=None):
pos = 0
@ -106,7 +102,7 @@ def _get_metadata(stream, stream_type, use_libprs_metadata,
mi = MetaInformation(None, None)
name = os.path.basename(getattr(stream, 'name', ''))
base = metadata_from_filename(name, pat=pattern)
if force_read_metadata or is_recipe(name) or prefs['read_file_metadata']:
if force_read_metadata or prefs['read_file_metadata']:
mi = get_file_type_metadata(stream, stream_type)
if base.title == os.path.splitext(name)[0] and \
base.is_null('authors') and base.is_null('isbn'):

View File

@ -18,6 +18,11 @@ from calibre.ebooks.mobi.utils import (decode_hex_number, decint,
get_trailing_data, decode_tbs)
from calibre.utils.magick.draw import identify_data
def format_bytes(byts):
byts = bytearray(byts)
byts = [hex(b)[2:] for b in byts]
return ' '.join(byts)
# PalmDB {{{
class PalmDOCAttributes(object):
@ -76,7 +81,7 @@ class PalmDB(object):
self.ident = self.type + self.creator
if self.ident not in (b'BOOKMOBI', b'TEXTREAD'):
raise ValueError('Unknown book ident: %r'%self.ident)
self.uid_seed, = struct.unpack(b'>I', self.raw[68:72])
self.last_record_uid, = struct.unpack(b'>I', self.raw[68:72])
self.next_rec_list_id = self.raw[72:76]
self.number_of_records, = struct.unpack(b'>H', self.raw[76:78])
@ -97,7 +102,7 @@ class PalmDB(object):
ans.append('Sort Info ID: %r'%self.sort_info_id)
ans.append('Type: %r'%self.type)
ans.append('Creator: %r'%self.creator)
ans.append('UID seed: %r'%self.uid_seed)
ans.append('Last record UID +1: %r'%self.last_record_uid)
ans.append('Next record list id: %r'%self.next_rec_list_id)
ans.append('Number of records: %s'%self.number_of_records)
@ -272,7 +277,8 @@ class MOBIHeader(object): # {{{
self.first_image_index, = struct.unpack(b'>I', self.raw[108:112])
self.huffman_record_offset, = struct.unpack(b'>I', self.raw[112:116])
self.huffman_record_count, = struct.unpack(b'>I', self.raw[116:120])
self.unknown2 = self.raw[120:128]
self.datp_record_offset, = struct.unpack(b'>I', self.raw[120:124])
self.datp_record_count, = struct.unpack(b'>I', self.raw[124:128])
self.exth_flags, = struct.unpack(b'>I', self.raw[128:132])
self.has_exth = bool(self.exth_flags & 0x40)
self.has_drm_data = self.length >= 174 and len(self.raw) >= 180
@ -314,7 +320,7 @@ class MOBIHeader(object): # {{{
self.exth = EXTHHeader(self.raw[self.exth_offset:])
self.end_of_exth = self.exth_offset + self.exth.length
self.bytes_after_exth = self.fullname_offset - self.end_of_exth
self.bytes_after_exth = self.raw[self.end_of_exth:self.fullname_offset]
def __str__(self):
ans = ['*'*20 + ' MOBI Header '+ '*'*20]
@ -347,7 +353,8 @@ class MOBIHeader(object): # {{{
ans.append('First Image index: %d'%self.first_image_index)
ans.append('Huffman record offset: %d'%self.huffman_record_offset)
ans.append('Huffman record count: %d'%self.huffman_record_count)
ans.append('Unknown2: %r'%self.unknown2)
ans.append('DATP record offset: %r'%self.datp_record_offset)
ans.append('DATP record count: %r'%self.datp_record_count)
ans.append('EXTH flags: %s (%s)'%(bin(self.exth_flags)[2:], self.has_exth))
if self.has_drm_data:
ans.append('Unknown3: %r'%self.unknown3)
@ -379,7 +386,9 @@ class MOBIHeader(object): # {{{
if self.has_exth:
ans += '\n\n' + str(self.exth)
ans += '\n\nBytes after EXTH: %d'%self.bytes_after_exth
ans += '\n\nBytes after EXTH (%d bytes): %s'%(
len(self.bytes_after_exth),
format_bytes(self.bytes_after_exth))
ans += '\nNumber of bytes after full name: %d' % (len(self.raw) - (self.fullname_offset +
self.fullname_length))
@ -406,6 +415,109 @@ class TagX(object): # {{{
self.num_values, bin(self.bitmask), self.eof)
# }}}
class SecondaryIndexHeader(object): # {{{
def __init__(self, record):
self.record = record
raw = self.record.raw
#open('/t/index_header.bin', 'wb').write(raw)
if raw[:4] != b'INDX':
raise ValueError('Invalid Secondary Index Record')
self.header_length, = struct.unpack('>I', raw[4:8])
self.unknown1 = raw[8:16]
self.index_type, = struct.unpack('>I', raw[16:20])
self.index_type_desc = {0: 'normal', 2:
'inflection', 6: 'calibre'}.get(self.index_type, 'unknown')
self.idxt_start, = struct.unpack('>I', raw[20:24])
self.index_count, = struct.unpack('>I', raw[24:28])
self.index_encoding_num, = struct.unpack('>I', raw[28:32])
self.index_encoding = {65001: 'utf-8', 1252:
'cp1252'}.get(self.index_encoding_num, 'unknown')
if self.index_encoding == 'unknown':
raise ValueError(
'Unknown index encoding: %d'%self.index_encoding_num)
self.unknown2 = raw[32:36]
self.num_index_entries, = struct.unpack('>I', raw[36:40])
self.ordt_start, = struct.unpack('>I', raw[40:44])
self.ligt_start, = struct.unpack('>I', raw[44:48])
self.num_of_ligt_entries, = struct.unpack('>I', raw[48:52])
self.num_of_cncx_blocks, = struct.unpack('>I', raw[52:56])
self.unknown3 = raw[56:180]
self.tagx_offset, = struct.unpack(b'>I', raw[180:184])
if self.tagx_offset != self.header_length:
raise ValueError('TAGX offset and header length disagree')
self.unknown4 = raw[184:self.header_length]
tagx = raw[self.header_length:]
if not tagx.startswith(b'TAGX'):
raise ValueError('Invalid TAGX section')
self.tagx_header_length, = struct.unpack('>I', tagx[4:8])
self.tagx_control_byte_count, = struct.unpack('>I', tagx[8:12])
tag_table = tagx[12:self.tagx_header_length]
if len(tag_table) % 4 != 0:
raise ValueError('Invalid Tag table')
num_tagx_entries = len(tag_table) // 4
self.tagx_entries = []
for i in range(num_tagx_entries):
self.tagx_entries.append(TagX(tag_table[i*4:(i+1)*4],
self.tagx_control_byte_count))
if self.tagx_entries and not self.tagx_entries[-1].is_eof:
raise ValueError('TAGX last entry is not EOF')
idxt0_pos = self.header_length+self.tagx_header_length
num = ord(raw[idxt0_pos])
count_pos = idxt0_pos+1+num
self.last_entry = raw[idxt0_pos+1:count_pos]
self.ncx_count, = struct.unpack(b'>H', raw[count_pos:count_pos+2])
# There may be some alignment zero bytes between the end of the idxt0
# and self.idxt_start
idxt = raw[self.idxt_start:]
if idxt[:4] != b'IDXT':
raise ValueError('Invalid IDXT header')
length_check, = struct.unpack(b'>H', idxt[4:6])
if length_check != self.header_length + self.tagx_header_length:
raise ValueError('Length check failed')
if idxt[6:].replace(b'\0', b''):
raise ValueError('Non null trailing bytes after IDXT')
def __str__(self):
ans = ['*'*20 + ' Secondary Index Header '+ '*'*20]
a = ans.append
def u(w):
a('Unknown: %r (%d bytes) (All zeros: %r)'%(w,
len(w), not bool(w.replace(b'\0', b'')) ))
a('Header length: %d'%self.header_length)
u(self.unknown1)
a('Index Type: %s (%d)'%(self.index_type_desc, self.index_type))
a('Offset to IDXT start: %d'%self.idxt_start)
a('Number of index records: %d'%self.index_count)
a('Index encoding: %s (%d)'%(self.index_encoding,
self.index_encoding_num))
u(self.unknown2)
a('Number of index entries: %d'% self.num_index_entries)
a('ORDT start: %d'%self.ordt_start)
a('LIGT start: %d'%self.ligt_start)
a('Number of LIGT entries: %d'%self.num_of_ligt_entries)
a('Number of cncx blocks: %d'%self.num_of_cncx_blocks)
u(self.unknown3)
a('TAGX offset: %d'%self.tagx_offset)
u(self.unknown4)
a('\n\n')
a('*'*20 + ' TAGX Header (%d bytes)'%self.tagx_header_length+ '*'*20)
a('Header length: %d'%self.tagx_header_length)
a('Control byte count: %d'%self.tagx_control_byte_count)
for i in self.tagx_entries:
a('\t' + repr(i))
a('Index of last IndexEntry in secondary index record: %s'% self.last_entry)
a('Number of entries in the NCX: %d'% self.ncx_count)
return '\n'.join(ans)
# }}}
class IndexHeader(object): # {{{
def __init__(self, record):
@ -455,12 +567,12 @@ class IndexHeader(object): # {{{
self.tagx_control_byte_count))
if self.tagx_entries and not self.tagx_entries[-1].is_eof:
raise ValueError('TAGX last entry is not EOF')
self.tagx_entries = self.tagx_entries[:-1]
idxt0_pos = self.header_length+self.tagx_header_length
last_num, consumed = decode_hex_number(raw[idxt0_pos:])
count_pos = idxt0_pos + consumed
self.ncx_count, = struct.unpack(b'>H', raw[count_pos:count_pos+2])
self.last_entry = last_num
if last_num != self.ncx_count - 1:
raise ValueError('Last id number in the NCX != NCX count - 1')
@ -473,9 +585,12 @@ class IndexHeader(object): # {{{
length_check, = struct.unpack(b'>H', idxt[4:6])
if length_check != self.header_length + self.tagx_header_length:
raise ValueError('Length check failed')
if idxt[6:].replace(b'\0', b''):
raise ValueError('Non null trailing bytes after IDXT')
def __str__(self):
ans = ['*'*20 + ' Index Header '+ '*'*20]
ans = ['*'*20 + ' Index Header (%d bytes)'%len(self.record.raw)+ '*'*20]
a = ans.append
def u(w):
a('Unknown: %r (%d bytes) (All zeros: %r)'%(w,
@ -503,6 +618,7 @@ class IndexHeader(object): # {{{
a('Control byte count: %d'%self.tagx_control_byte_count)
for i in self.tagx_entries:
a('\t' + repr(i))
a('Index of last IndexEntry in primary index record: %s'% self.last_entry)
a('Number of entries in the NCX: %d'% self.ncx_count)
return '\n'.join(ans)
@ -521,20 +637,30 @@ class Tag(object): # {{{
3: ('label_offset', 'Offset to label in CNCX'),
4: ('depth', 'Depth of this entry in TOC'),
11: ('secondary', '[unknown, unknown, '
'tag type from TAGX in primary index header]'),
# The remaining tag types have to be interpreted subject to the type
# of index entry they are present in
}
INTERPRET_MAP = {
'subchapter': {
5 : ('Parent chapter index', 'parent_index')
21 : ('Parent chapter index', 'parent_index')
},
'article' : {
5 : ('Class offset in cncx', 'class_offset'),
21 : ('Parent section index', 'parent_index'),
22 : ('Description offset in cncx', 'desc_offset'),
23 : ('Author offset in cncx', 'author_offset'),
69 : ('Offset from first image record num to the'
' image record associated with this article',
'image_index'),
70 : ('Description offset in cncx', 'desc_offset'),
71 : ('Image attribution offset in cncx',
'image_attr_offset'),
72 : ('Image caption offset in cncx',
'image_caption_offset'),
73 : ('Author offset in cncx', 'author_offset'),
},
'chapter_with_subchapters' : {
@ -546,6 +672,8 @@ class Tag(object): # {{{
5 : ('Class offset in cncx', 'class_offset'),
22 : ('First section index', 'first_child_index'),
23 : ('Last section index', 'last_child_index'),
69 : ('Offset from first image record num to masthead'
' record', 'image_index'),
},
'section' : {
@ -558,21 +686,25 @@ class Tag(object): # {{{
def __init__(self, tagx, vals, entry_type, cncx):
self.value = vals if len(vals) > 1 else vals[0]
self.value = vals if len(vals) > 1 else vals[0] if vals else None
self.entry_type = entry_type
tag_type = tagx.tag
self.cncx_value = None
if tagx.tag in self.TAG_MAP:
self.attr, self.desc = self.TAG_MAP[tagx.tag]
if tag_type in self.TAG_MAP:
self.attr, self.desc = self.TAG_MAP[tag_type]
else:
try:
td = self.INTERPRET_MAP[entry_type]
except:
raise ValueError('Unknown entry type: %s'%entry_type)
try:
self.desc, self.attr = td[tagx.tag]
self.desc, self.attr = td[tag_type]
except:
raise ValueError('Unknown tag: %d for entry type: %s'%(
tagx.tag, entry_type))
print ('Unknown tag value: %d'%tag_type)
self.desc = '??Unknown (tag value: %d type: %s)'%(
tag_type, entry_type)
self.attr = 'unknown'
if '_offset' in self.attr:
self.cncx_value = cncx[self.value]
@ -593,6 +725,9 @@ class IndexEntry(object): # {{{
'''
TYPES = {
# Present in secondary index record
0x01 : 'null',
0x02 : 'publication_meta',
# Present in book type files
0x0f : 'chapter',
0x6f : 'chapter_with_subchapters',
@ -603,7 +738,8 @@ class IndexEntry(object): # {{{
0x3f : 'article',
}
def __init__(self, ident, entry_type, raw, cncx, tagx_entries, flags=0):
def __init__(self, ident, entry_type, raw, cncx, tagx_entries,
control_byte_count):
self.index = ident
self.raw = raw
self.tags = []
@ -615,13 +751,29 @@ class IndexEntry(object): # {{{
try:
self.entry_type = self.TYPES[entry_type]
except KeyError:
raise ValueError('Unknown Index Entry type: %s'%hex(entry_type))
raise ValueError('Unknown Index Entry type: %s'%bin(entry_type))
if control_byte_count not in (1, 2):
raise ValueError('Unknown control byte count: %d'%
control_byte_count)
self.flags = 0
if control_byte_count == 2:
self.flags = ord(raw[0])
raw = raw[1:]
expected_tags = [tag for tag in tagx_entries if tag.bitmask &
entry_type]
flags = self.flags
for tag in expected_tags:
vals = []
if tag.tag > 64:
has_tag = flags & 0b1
flags = flags >> 1
if not has_tag: continue
for i in range(tag.num_values):
if not raw:
raise ValueError('Index entry does not match TAGX header')
@ -630,26 +782,11 @@ class IndexEntry(object): # {{{
vals.append(val)
self.tags.append(Tag(tag, vals, self.entry_type, cncx))
if flags & 0b10:
# Look for optional description and author
desc_tag = [t for t in tagx_entries if t.tag == 22]
if desc_tag and raw:
val, consumed = decint(raw)
raw = raw[consumed:]
if val:
self.tags.append(Tag(desc_tag[0], [val], self.entry_type,
cncx))
if flags & 0b100:
aut_tag = [t for t in tagx_entries if t.tag == 23]
if aut_tag and raw:
val, consumed = decint(raw)
raw = raw[consumed:]
if val:
self.tags.append(Tag(aut_tag[0], [val], self.entry_type,
cncx))
self.consumed = len(orig_raw) - len(raw)
self.trailing_bytes = raw
if self.trailing_bytes.replace(b'\0', b''):
raise ValueError('%s has leftover bytes: %s'%(self, format_bytes(
self.trailing_bytes)))
@property
def label(self):
@ -701,11 +838,13 @@ class IndexEntry(object): # {{{
return -1
def __str__(self):
ans = ['Index Entry(index=%s, entry_type=%s (%s), length=%d, byte_size=%d)'%(
self.index, self.entry_type, bin(self.entry_type_raw)[2:],
ans = ['Index Entry(index=%s, entry_type=%s, flags=%s, '
'length=%d, byte_size=%d)'%(
self.index, self.entry_type, bin(self.flags)[2:],
len(self.tags), self.byte_size)]
for tag in self.tags:
ans.append('\t'+str(tag))
if tag.value is not None:
ans.append('\t'+str(tag))
if self.first_child_index != -1:
ans.append('\tNumber of children: %d'%(self.last_child_index -
self.first_child_index + 1))
@ -715,6 +854,90 @@ class IndexEntry(object): # {{{
# }}}
class SecondaryIndexRecord(object): # {{{
def __init__(self, record, index_header, cncx):
self.record = record
raw = self.record.raw
if raw[:4] != b'INDX':
raise ValueError('Invalid Primary Index Record')
u = struct.unpack
self.header_length, = u('>I', raw[4:8])
self.unknown1 = raw[8:12]
self.header_type, = u('>I', raw[12:16])
self.unknown2 = raw[16:20]
self.idxt_offset, self.idxt_count = u(b'>II', raw[20:28])
if self.idxt_offset < 192:
raise ValueError('Unknown Index record structure')
self.unknown3 = raw[28:36]
self.unknown4 = raw[36:192] # Should be 156 bytes
self.index_offsets = []
indices = raw[self.idxt_offset:]
if indices[:4] != b'IDXT':
raise ValueError("Invalid IDXT index table")
indices = indices[4:]
for i in range(self.idxt_count):
off, = u(b'>H', indices[i*2:(i+1)*2])
self.index_offsets.append(off-192)
rest = indices[(i+1)*2:]
if rest.replace(b'\0', ''): # There can be padding null bytes
raise ValueError('Extra bytes after IDXT table: %r'%rest)
indxt = raw[192:self.idxt_offset]
self.size_of_indxt_block = len(indxt)
self.indices = []
for i, off in enumerate(self.index_offsets):
try:
next_off = self.index_offsets[i+1]
except:
next_off = len(indxt)
num = ord(indxt[off])
index = indxt[off+1:off+1+num]
consumed = 1 + num
entry_type = ord(indxt[off+consumed])
pos = off+consumed+1
idxe = IndexEntry(index, entry_type,
indxt[pos:next_off], cncx,
index_header.tagx_entries,
index_header.tagx_control_byte_count)
self.indices.append(idxe)
rest = indxt[pos+self.indices[-1].consumed:]
if rest.replace(b'\0', b''): # There can be padding null bytes
raise ValueError('Extra bytes after IDXT table: %r'%rest)
def __str__(self):
ans = ['*'*20 + ' Secondary Index Record (%d bytes) '%len(self.record.raw)+ '*'*20]
a = ans.append
def u(w):
a('Unknown: %r (%d bytes) (All zeros: %r)'%(w,
len(w), not bool(w.replace(b'\0', b'')) ))
a('Header length: %d'%self.header_length)
u(self.unknown1)
a('Unknown (header type? index record number? always 1?): %d'%self.header_type)
u(self.unknown2)
a('IDXT Offset (%d block size): %d'%(self.size_of_indxt_block,
self.idxt_offset))
a('IDXT Count: %d'%self.idxt_count)
u(self.unknown3)
u(self.unknown4)
a('Index offsets: %r'%self.index_offsets)
a('\nIndex Entries (%d entries):'%len(self.indices))
for entry in self.indices:
a(str(entry))
a('')
return '\n'.join(ans)
# }}}
class IndexRecord(object): # {{{
'''
@ -724,6 +947,7 @@ class IndexRecord(object): # {{{
def __init__(self, record, index_header, cncx):
self.record = record
self.alltext = None
raw = self.record.raw
if raw[:4] != b'INDX':
@ -763,17 +987,15 @@ class IndexRecord(object): # {{{
next_off = len(indxt)
index, consumed = decode_hex_number(indxt[off:])
entry_type = ord(indxt[off+consumed])
d, flags = 1, 0
if index_header.index_type == 6:
flags = ord(indxt[off+consumed+d])
d += 1
pos = off+consumed+d
self.indices.append(IndexEntry(index, entry_type,
indxt[pos:next_off], cncx,
index_header.tagx_entries, flags=flags))
pos = off+consumed+1
idxe = IndexEntry(index, entry_type,
indxt[pos:next_off], cncx,
index_header.tagx_entries,
index_header.tagx_control_byte_count)
self.indices.append(idxe)
rest = indxt[pos+self.indices[-1].consumed:]
if rest.replace(b'\0', ''): # There can be padding null bytes
if rest.replace(b'\0', b''): # There can be padding null bytes
raise ValueError('Extra bytes after IDXT table: %r'%rest)
def get_parent(self, index):
@ -803,13 +1025,23 @@ class IndexRecord(object): # {{{
a('Index offsets: %r'%self.index_offsets)
a('\nIndex Entries (%d entries):'%len(self.indices))
for entry in self.indices:
a(str(entry)+'\n')
offset = entry.offset
a(str(entry))
t = self.alltext
if offset is not None and self.alltext is not None:
a('\tHTML before offset: %r'%t[offset-50:offset])
a('\tHTML after offset: %r'%t[offset:offset+50])
p = offset+entry.size
a('\tHTML before end: %r'%t[p-50:p])
a('\tHTML after end: %r'%t[p:p+50])
a('')
return '\n'.join(ans)
# }}}
class CNCX(object) : # {{{
class CNCX(object): # {{{
'''
Parses the records that contain the compiled NCX (all strings from the
@ -826,8 +1058,16 @@ class CNCX(object) : # {{{
while pos < len(raw):
length, consumed = decint(raw[pos:])
if length > 0:
self.records[pos+record_offset] = raw[
try:
self.records[pos+record_offset] = raw[
pos+consumed:pos+consumed+length].decode(codec)
except:
byts = raw[pos:]
r = format_bytes(byts)
print ('CNCX entry at offset %d has unknown format %s'%(
pos+record_offset, r))
self.records[pos+record_offset] = r
pos = len(raw)
pos += consumed+length
record_offset += 0x10000
@ -849,6 +1089,7 @@ class TextRecord(object): # {{{
self.trailing_data, self.raw = get_trailing_data(record.raw, extra_data_flags)
raw_trailing_bytes = record.raw[len(self.raw):]
self.raw = decompress(self.raw)
if 0 in self.trailing_data:
self.trailing_data['multibyte_overlap'] = self.trailing_data.pop(0)
if 1 in self.trailing_data:
@ -857,6 +1098,11 @@ class TextRecord(object): # {{{
self.trailing_data['uncrossable_breaks'] = self.trailing_data.pop(2)
self.trailing_data['raw_bytes'] = raw_trailing_bytes
for typ, val in self.trailing_data.iteritems():
if isinstance(typ, int):
print ('Record %d has unknown trailing data of type: %d : %r'%
(idx, typ, val))
self.idx = idx
def dump(self, folder):
@ -890,7 +1136,7 @@ class BinaryRecord(object): # {{{
self.raw = record.raw
sig = self.raw[:4]
name = '%06d'%idx
if sig in (b'FCIS', b'FLIS', b'SRCS'):
if sig in (b'FCIS', b'FLIS', b'SRCS', b'DATP'):
name += '-' + sig.decode('ascii')
elif sig == b'\xe9\x8e\r\n':
name += '-' + 'EOF'
@ -960,8 +1206,7 @@ class TBSIndexing(object): # {{{
'(%d ends, %d complete, %d starts)')%tuple(map(len, (s+e+c, e,
c, s))))
byts = bytearray(r.trailing_data.get('indexing', b''))
sbyts = tuple(hex(b)[2:] for b in byts)
ans.append('TBS bytes: %s'%(' '.join(sbyts)))
ans.append('TBS bytes: %s'%format_bytes(byts))
for typ, entries in (('Ends', e), ('Complete', c), ('Starts', s)):
if entries:
ans.append('\t%s:'%typ)
@ -979,8 +1224,7 @@ class TBSIndexing(object): # {{{
tbs_type = 0
is_periodical = self.doc_type in (257, 258, 259)
if len(byts):
outermost_index, extra, consumed = decode_tbs(byts, flag_size=4 if
is_periodical else 3)
outermost_index, extra, consumed = decode_tbs(byts, flag_size=3)
byts = byts[consumed:]
for k in extra:
tbs_type |= k
@ -988,8 +1232,14 @@ class TBSIndexing(object): # {{{
ans.append('Outermost index: %d'%outermost_index)
ans.append('Unknown extra start bytes: %s'%repr_extra(extra))
if is_periodical: # Hierarchical periodical
byts, a = self.interpret_periodical(tbs_type, byts,
try:
byts, a = self.interpret_periodical(tbs_type, byts,
dat['geom'][0])
except:
import traceback
traceback.print_exc()
a = []
print ('Failed to decode TBS bytes for record: %d'%r.idx)
ans += a
if byts:
sbyts = tuple(hex(b)[2:] for b in byts)
@ -1112,15 +1362,16 @@ class MOBIFile(object): # {{{
self.records.append(Record(section(i), self.record_headers[i]))
self.mobi_header = MOBIHeader(self.records[0])
self.huffman_record_nums = []
if 'huff' in self.mobi_header.compression.lower():
huffrecs = [r.raw for r in
xrange(self.mobi_header.huffman_record_offset,
self.huffman_record_nums = list(xrange(self.mobi_header.huffman_record_offset,
self.mobi_header.huffman_record_offset +
self.mobi_header.huffman_record_count)]
self.mobi_header.huffman_record_count))
huffrecs = [self.records[r].raw for r in self.huffman_record_nums]
from calibre.ebooks.mobi.huffcdic import HuffReader
huffs = HuffReader(huffrecs)
decompress = huffs.decompress
decompress = huffs.unpack
elif 'palmdoc' in self.mobi_header.compression.lower():
from calibre.ebooks.compression.palmdoc import decompress_doc
decompress = decompress_doc
@ -1139,6 +1390,14 @@ class MOBIFile(object): # {{{
self.index_header, self.cncx)
self.indexing_record_nums = set(xrange(pir,
pir+2+self.index_header.num_of_cncx_blocks))
self.secondary_index_record = self.secondary_index_header = None
sir = self.mobi_header.secondary_index_record
if sir != 0xffffffff:
self.secondary_index_header = SecondaryIndexHeader(self.records[sir])
self.indexing_record_nums.add(sir)
self.secondary_index_record = SecondaryIndexRecord(
self.records[sir+1], self.secondary_index_header, self.cncx)
self.indexing_record_nums.add(sir+1)
ntr = self.mobi_header.number_of_text_records
@ -1151,7 +1410,7 @@ class MOBIFile(object): # {{{
min(len(self.records), ntr+1))]
self.image_records, self.binary_records = [], []
for i in xrange(fntbr, len(self.records)):
if i in self.indexing_record_nums:
if i in self.indexing_record_nums or i in self.huffman_record_nums:
continue
r = self.records[i]
fmt = None
@ -1181,35 +1440,19 @@ class MOBIFile(object): # {{{
print (str(self.mobi_header).encode('utf-8'), file=f)
# }}}
def inspect_mobi(path_or_stream, prefix='decompiled'):
def inspect_mobi(path_or_stream, ddir=None): # {{{
stream = (path_or_stream if hasattr(path_or_stream, 'read') else
open(path_or_stream, 'rb'))
f = MOBIFile(stream)
ddir = prefix + '_' + os.path.splitext(os.path.basename(stream.name))[0]
if ddir is None:
ddir = 'decompiled_' + os.path.splitext(os.path.basename(stream.name))[0]
try:
shutil.rmtree(ddir)
except:
pass
os.mkdir(ddir)
os.makedirs(ddir)
with open(os.path.join(ddir, 'header.txt'), 'wb') as out:
f.print_header(f=out)
if f.index_header is not None:
with open(os.path.join(ddir, 'index.txt'), 'wb') as out:
print(str(f.index_header), file=out)
print('\n\n', file=out)
print(str(f.cncx).encode('utf-8'), file=out)
print('\n\n', file=out)
print(str(f.index_record), file=out)
with open(os.path.join(ddir, 'tbs_indexing.txt'), 'wb') as out:
print(str(f.tbs_indexing), file=out)
f.tbs_indexing.dump(ddir)
for tdir, attr in [('text', 'text_records'), ('images', 'image_records'),
('binary', 'binary_records')]:
tdir = os.path.join(ddir, tdir)
os.mkdir(tdir)
for rec in getattr(f, attr):
rec.dump(tdir)
alltext = os.path.join(ddir, 'text.html')
with open(alltext, 'wb') as of:
@ -1224,8 +1467,36 @@ def inspect_mobi(path_or_stream, prefix='decompiled'):
include_meta_content_type=True))
if f.index_header is not None:
f.index_record.alltext = alltext
with open(os.path.join(ddir, 'index.txt'), 'wb') as out:
print(str(f.index_header), file=out)
print('\n\n', file=out)
if f.secondary_index_header is not None:
print(str(f.secondary_index_header).encode('utf-8'), file=out)
print('\n\n', file=out)
if f.secondary_index_record is not None:
print(str(f.secondary_index_record).encode('utf-8'), file=out)
print('\n\n', file=out)
print(str(f.cncx).encode('utf-8'), file=out)
print('\n\n', file=out)
print(str(f.index_record), file=out)
with open(os.path.join(ddir, 'tbs_indexing.txt'), 'wb') as out:
print(str(f.tbs_indexing), file=out)
f.tbs_indexing.dump(ddir)
for tdir, attr in [('text', 'text_records'), ('images', 'image_records'),
('binary', 'binary_records')]:
tdir = os.path.join(ddir, tdir)
os.mkdir(tdir)
for rec in getattr(f, attr):
rec.dump(tdir)
print ('Debug data saved to:', ddir)
# }}}
def main():
inspect_mobi(sys.argv[1])

View File

@ -1,8 +1,12 @@
#!/usr/bin/env python
#!/usr/bin/env python
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
from __future__ import (unicode_literals, division, absolute_import,
print_function)
__license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
__copyright__ = '2011, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
'''
Decompress MOBI files compressed with the Huff/cdic algorithm. Code thanks to darkninja
and igorsk.
@ -12,82 +16,92 @@ import struct
from calibre.ebooks.mobi import MobiError
class BitReader(object):
def __init__(self, data):
self.data, self.pos, self.nbits = data + "\x00\x00\x00\x00", 0, len(data) * 8
def peek(self, n):
r, g = 0, 0
while g < n:
r, g = (r << 8) | ord(self.data[(self.pos+g)>>3]), g + 8 - ((self.pos+g) & 7)
return (r >> (g - n)) & ((1 << n) - 1)
def eat(self, n):
self.pos += n
return self.pos <= self.nbits
def left(self):
return self.nbits - self.pos
class Reader(object):
class HuffReader(object):
def __init__(self, huffs):
self.huffs = huffs
if huffs[0][0:4] != 'HUFF' or huffs[0][4:8] != '\x00\x00\x00\x18':
def __init__(self):
self.q = struct.Struct(b'>Q').unpack_from
def load_huff(self, huff):
if huff[0:8] != b'HUFF\x00\x00\x00\x18':
raise MobiError('Invalid HUFF header')
if huffs[1][0:4] != 'CDIC' or huffs[1][4:8] != '\x00\x00\x00\x10':
raise ValueError('Invalid CDIC header')
self.entry_bits, = struct.unpack('>L', huffs[1][12:16])
off1,off2 = struct.unpack('>LL', huffs[0][16:24])
self.dict1 = struct.unpack('<256L', huffs[0][off1:off1+256*4])
self.dict2 = struct.unpack('<64L', huffs[0][off2:off2+64*4])
self.dicts = huffs[1:]
self.r = ''
def _unpack(self, bits, depth = 0):
if depth > 32:
raise MobiError('Corrupt file')
while bits.left():
dw = bits.peek(32)
v = self.dict1[dw >> 24]
codelen = v & 0x1F
off1, off2 = struct.unpack_from(b'>LL', huff, 8)
def dict1_unpack(v):
codelen, term, maxcode = v&0x1f, v&0x80, v>>8
assert codelen != 0
code = dw >> (32 - codelen)
r = (v >> 8)
if not (v & 0x80):
while code < self.dict2[(codelen-1)*2]:
codelen += 1
code = dw >> (32 - codelen)
r = self.dict2[(codelen-1)*2+1]
r -= code
assert codelen != 0
if not bits.eat(codelen):
return
dicno = r >> self.entry_bits
off1 = 16 + (r - (dicno << self.entry_bits)) * 2
dic = self.dicts[dicno]
off2 = 16 + ord(dic[off1]) * 256 + ord(dic[off1+1])
blen = ord(dic[off2]) * 256 + ord(dic[off2+1])
slice = dic[off2+2:off2+2+(blen&0x7fff)]
if blen & 0x8000:
self.r += slice
else:
self._unpack(BitReader(slice), depth + 1)
if codelen <= 8:
assert term
maxcode = ((maxcode + 1) << (32 - codelen)) - 1
return (codelen, term, maxcode)
self.dict1 = map(dict1_unpack, struct.unpack_from(b'>256L', huff, off1))
dict2 = struct.unpack_from(b'>64L', huff, off2)
self.mincode, self.maxcode = (), ()
for codelen, mincode in enumerate((0,) + dict2[0::2]):
self.mincode += (mincode << (32 - codelen), )
for codelen, maxcode in enumerate((0,) + dict2[1::2]):
self.maxcode += (((maxcode + 1) << (32 - codelen)) - 1, )
self.dictionary = []
def load_cdic(self, cdic):
if cdic[0:8] != b'CDIC\x00\x00\x00\x10':
raise MobiError('Invalid CDIC header')
phrases, bits = struct.unpack_from(b'>LL', cdic, 8)
n = min(1<<bits, phrases-len(self.dictionary))
h = struct.Struct(b'>H').unpack_from
def getslice(off):
blen, = h(cdic, 16+off)
slice = cdic[18+off:18+off+(blen&0x7fff)]
return (slice, blen&0x8000)
self.dictionary += map(getslice, struct.unpack_from(b'>%dH' % n, cdic, 16))
def unpack(self, data):
self.r = ''
self._unpack(BitReader(data))
return self.r
def decompress(self, sections):
r = ''
for data in sections:
r += self.unpack(data)
if r.endswith('#'):
r = r[:-1]
return r
q = self.q
bitsleft = len(data) * 8
data += b'\x00\x00\x00\x00\x00\x00\x00\x00'
pos = 0
x, = q(data, pos)
n = 32
s = []
while True:
if n <= 0:
pos += 4
x, = q(data, pos)
n += 32
code = (x >> n) & ((1 << 32) - 1)
codelen, term, maxcode = self.dict1[code >> 24]
if not term:
while code < self.mincode[codelen]:
codelen += 1
maxcode = self.maxcode[codelen]
n -= codelen
bitsleft -= codelen
if bitsleft < 0:
break
r = (maxcode - code) >> (32 - codelen)
slice_, flag = self.dictionary[r]
if not flag:
self.dictionary[r] = None
slice_ = self.unpack(slice_)
self.dictionary[r] = (slice_, 1)
s.append(slice_)
return b''.join(s)
class HuffReader(object):
def __init__(self, huffs):
self.reader = Reader()
self.reader.load_huff(huffs[0])
for cdic in huffs[1:]:
self.reader.load_cdic(cdic)
def unpack(self, section):
return self.reader.unpack(section)

View File

@ -532,7 +532,7 @@ class MobiMLizer(object):
bstate.pbreak = True
if isblock:
para = bstate.para
if para is not None and para.text == u'\xa0':
if para is not None and para.text == u'\xa0' and len(para) < 1:
para.getparent().replace(para, etree.Element(XHTML('br')))
bstate.para = None
bstate.istate = None

View File

@ -50,13 +50,11 @@ class MOBIOutput(OutputFormatPlugin):
help=_('When adding the Table of Contents to the book, add it at the start of the '
'book instead of the end. Not recommended.')
),
OptionRecommendation(name='mobi_navpoints_only_deepest',
recommended_value=False,
help=_('When adding navpoints for the chapter-to-chapter'
' navigation on the kindle, use only the lowest level '
'of items in the TOC, instead of items at every level.')
OptionRecommendation(name='extract_to', recommended_value=None,
help=_('Extract the contents of the MOBI file to the'
' specified directory. If the directory already '
'exists, it will be deleted.')
),
OptionRecommendation(name='kindlegen',
recommended_value=False,
help=('Use kindlegen (must be in your PATH) to generate the'
@ -185,3 +183,8 @@ class MOBIOutput(OutputFormatPlugin):
write_page_breaks_after_item=write_page_breaks_after_item)
writer(oeb, output_path)
if opts.extract_to is not None:
from calibre.ebooks.mobi.debug import inspect_mobi
ddir = opts.extract_to
inspect_mobi(output_path, ddir=ddir)

View File

@ -859,16 +859,19 @@ class MobiReader(object):
processed_records += list(range(self.book_header.huff_offset,
self.book_header.huff_offset + self.book_header.huff_number))
huff = HuffReader(huffs)
self.mobi_html = huff.decompress(text_sections)
unpack = huff.unpack
elif self.book_header.compression_type == '\x00\x02':
for section in text_sections:
self.mobi_html += decompress_doc(section)
unpack = decompress_doc
elif self.book_header.compression_type == '\x00\x01':
self.mobi_html = ''.join(text_sections)
unpack = lambda x: x
else:
raise MobiError('Unknown compression algorithm: %s' % repr(self.book_header.compression_type))
self.mobi_html = b''.join(map(unpack, text_sections))
if self.mobi_html.endswith(b'#'):
self.mobi_html = self.mobi_html[:-1]
if self.book_header.ancient and '<html' not in self.mobi_html[:300].lower():
self.mobi_html = self.mobi_html.replace('\r ', '\n\n ')
self.mobi_html = self.mobi_html.replace('\0', '')

View File

@ -13,9 +13,9 @@ First sequences:
0b0110 : 80 2
0b0111 : 80 2 80
Other sequences:
0b0101 : 4 1a
0b0001 : c b1
0b0001 = 0
0b0010 = 0
0b0100 = 2
Opening record
----------------

View File

@ -169,19 +169,26 @@ def get_trailing_data(record, extra_data_flags):
:return: Trailing data, record - trailing data
'''
data = OrderedDict()
for i in xrange(16, -1, -1):
flag = 1 << i # 2**i
if flag & extra_data_flags:
if i == 0:
# Only the first two bits are used for the size since there can
# never be more than 3 trailing multibyte chars
sz = (ord(record[-1]) & 0b11) + 1
consumed = 1
else:
sz, consumed = decint(record, forward=False)
flags = extra_data_flags >> 1
num = 0
while flags:
num += 1
if flags & 0b1:
sz, consumed = decint(record, forward=False)
if sz > consumed:
data[i] = record[-sz:-consumed]
data[num] = record[-sz:-consumed]
record = record[:-sz]
flags >>= 1
# Read multibyte chars if any
if extra_data_flags & 0b1:
# Only the first two bits are used for the size since there can
# never be more than 3 trailing multibyte chars
sz = (ord(record[-1]) & 0b11) + 1
consumed = 1
if sz > consumed:
data[0] = record[-sz:-consumed]
record = record[:-sz]
return data, record
def encode_trailing_data(raw):

View File

@ -430,6 +430,7 @@ class MobiWriter(object):
text.seek(npos)
return data, overlap
# TBS {{{
def _generate_flat_indexed_navpoints(self):
# Assemble a HTMLRecordData instance for each HTML record
# Return True if valid, False if invalid
@ -1174,6 +1175,8 @@ class MobiWriter(object):
self._tbSequence = tbSequence
# }}}
def _evaluate_periodical_toc(self):
'''
Periodical:
@ -1634,7 +1637,7 @@ class MobiWriter(object):
now = int(time.time())
nrecords = len(self._records)
self._write(title, pack('>HHIIIIII', 0, 0, now, now, 0, 0, 0, 0),
'BOOK', 'MOBI', pack('>IIH', nrecords, 0, nrecords))
'BOOK', 'MOBI', pack('>IIH', (2*nrecords)-1, 0, nrecords))
offset = self._tell() + (8 * nrecords) + 2
for i, record in enumerate(self._records):
self._write(pack('>I', offset), '\0', pack('>I', 2*i)[1:])
@ -1707,8 +1710,6 @@ class MobiWriter(object):
'''
from calibre.ebooks.oeb.base import TOC
items = list(self._oeb.toc.iterdescendants())
if self.opts.mobi_navpoints_only_deepest:
items = [i for i in items if i.depth == 1]
offsets = {i:self._id_offsets.get(i.href, -1) for i in items if i.href}
items = [i for i in items if offsets[i] > -1]
items.sort(key=lambda i:offsets[i])

View File

@ -2,7 +2,7 @@
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
from __future__ import (unicode_literals, division, absolute_import,
print_function)
from future_builtins import filter
from future_builtins import filter, map
__license__ = 'GPL v3'
__copyright__ = '2011, Kovid Goyal <kovid@kovidgoyal.net>'
@ -14,8 +14,7 @@ from collections import OrderedDict, defaultdict
from calibre.ebooks.mobi.writer2 import RECORD_SIZE
from calibre.ebooks.mobi.utils import (encint, encode_number_as_hex,
encode_tbs, align_block, utf8_text, detect_periodical)
encode_tbs, align_block, utf8_text)
class CNCX(object): # {{{
@ -34,6 +33,10 @@ class CNCX(object): # {{{
self.strings[item.title] = 0
if is_periodical:
self.strings[item.klass] = 0
if item.author:
self.strings[item.author] = 0
if item.description:
self.strings[item.description] = 0
self.records = []
offset = 0
@ -61,7 +64,79 @@ class CNCX(object): # {{{
return self.strings[string]
# }}}
class IndexEntry(object): # {{{
class TAGX(object): # {{{
BITMASKS = {11:0b1}
BITMASKS.update({x:(1 << i) for i, x in enumerate([1, 2, 3, 4, 5, 21, 22, 23])})
BITMASKS.update({x:(1 << i) for i, x in enumerate([69, 70, 71, 72, 73])})
NUM_VALUES = defaultdict(lambda :1)
NUM_VALUES[11] = 3
NUM_VALUES[0] = 0
def __init__(self):
self.byts = bytearray()
def add_tag(self, tag):
buf = self.byts
buf.append(tag)
buf.append(self.NUM_VALUES[tag])
# bitmask
buf.append(self.BITMASKS[tag] if tag else 0)
# eof
buf.append(0 if tag else 1)
def header(self, control_byte_count):
header = b'TAGX'
# table length, control byte count
header += pack(b'>II', 12+len(self.byts), control_byte_count)
return header
@property
def periodical(self):
'''
TAGX block for the Primary index header of a periodical
'''
list(map(self.add_tag, (1, 2, 3, 4, 5, 21, 22, 23, 0, 69, 70, 71, 72,
73, 0)))
return self.header(2) + bytes(self.byts)
@property
def secondary(self):
'''
TAGX block for the secondary index header of a periodical
'''
list(map(self.add_tag, (11, 0)))
return self.header(1) + bytes(self.byts)
class TAGX_BOOK(TAGX):
BITMASKS = dict(TAGX.BITMASKS)
BITMASKS.update({x:(1 << i) for i, x in enumerate([1, 2, 3, 4, 21, 22, 23])})
@property
def hierarchical_book(self):
'''
TAGX block for the primary index header of a hierarchical book
'''
list(map(self.add_tag, (1, 2, 3, 4, 21, 22, 23, 0)))
return self.header(1) + bytes(self.byts)
@property
def flat_book(self):
'''
TAGX block for the primary index header of a flat book
'''
list(map(self.add_tag, (1, 2, 3, 4, 0)))
return self.header(1) + bytes(self.byts)
# }}}
# Index Entries {{{
class IndexEntry(object):
TAG_VALUES = {
'offset': 1,
@ -69,17 +144,21 @@ class IndexEntry(object): # {{{
'label_offset': 3,
'depth': 4,
'class_offset': 5,
'secondary': 11,
'parent_index': 21,
'first_child_index': 22,
'last_child_index': 23,
'image_index': 69,
'desc_offset': 70,
'author_offset': 73,
}
RTAG_MAP = {v:k for k, v in TAG_VALUES.iteritems()}
BITMASKS = [1, 2, 3, 4, 5, 21, 22, 23,]
def __init__(self, offset, label_offset, depth=0, class_offset=None):
def __init__(self, offset, label_offset):
self.offset, self.label_offset = offset, label_offset
self.depth, self.class_offset = depth, class_offset
self.depth, self.class_offset = 0, None
self.control_byte_count = 1
self.length = 0
self.index = 0
@ -88,6 +167,10 @@ class IndexEntry(object): # {{{
self.first_child_index = None
self.last_child_index = None
self.image_index = None
self.author_offset = None
self.desc_offset = None
def __repr__(self):
return ('IndexEntry(offset=%r, depth=%r, length=%r, index=%r,'
' parent_index=%r)')%(self.offset, self.depth, self.length,
@ -99,35 +182,6 @@ class IndexEntry(object): # {{{
def fset(self, val): self.length = val
return property(fget=fget, fset=fset, doc='Alias for length')
@classmethod
def tagx_block(cls, for_periodical=True):
buf = bytearray()
def add_tag(tag, num_values=1):
buf.append(tag)
buf.append(num_values)
# bitmask
buf.append(1 << (cls.BITMASKS.index(tag)))
# eof
buf.append(0)
for tag in xrange(1, 5):
add_tag(tag)
if for_periodical:
for tag in (5, 21, 22, 23):
add_tag(tag)
# End of TAGX record
for i in xrange(3): buf.append(0)
buf.append(1)
header = b'TAGX'
header += pack(b'>I', 12+len(buf)) # table length
header += pack(b'>I', 1) # control byte count
return header + bytes(buf)
@property
def next_offset(self):
return self.offset + self.length
@ -145,24 +199,100 @@ class IndexEntry(object): # {{{
def entry_type(self):
ans = 0
for tag in self.tag_nums:
ans |= (1 << self.BITMASKS.index(tag)) # 1 << x == 2**x
ans |= TAGX.BITMASKS[tag]
return ans
def attr_for_tag(self, tag):
return self.RTAG_MAP[tag]
@property
def bytestring(self):
buf = StringIO()
buf.write(encode_number_as_hex(self.index))
if isinstance(self.index, int):
buf.write(encode_number_as_hex(self.index))
else:
raw = bytearray(self.index.encode('ascii'))
raw.insert(0, len(raw))
buf.write(bytes(raw))
et = self.entry_type
buf.write(bytes(bytearray([et])))
if self.control_byte_count == 2:
flags = 0
for attr in ('image_index', 'desc_offset', 'author_offset'):
val = getattr(self, attr)
if val is not None:
tag = self.TAG_VALUES[attr]
bm = TAGX.BITMASKS[tag]
flags |= bm
buf.write(bytes(bytearray([flags])))
for tag in self.tag_nums:
attr = self.RTAG_MAP[tag]
attr = self.attr_for_tag(tag)
val = getattr(self, attr)
buf.write(encint(val))
if isinstance(val, int):
val = [val]
for x in val:
buf.write(encint(x))
if self.control_byte_count == 2:
for attr in ('image_index', 'desc_offset', 'author_offset'):
val = getattr(self, attr)
if val is not None:
buf.write(encint(val))
ans = buf.getvalue()
return ans
class BookIndexEntry(IndexEntry):
@property
def entry_type(self):
tagx = TAGX_BOOK()
ans = 0
for tag in self.tag_nums:
ans |= tagx.BITMASKS[tag]
return ans
class PeriodicalIndexEntry(IndexEntry):
def __init__(self, offset, label_offset, class_offset, depth):
IndexEntry.__init__(self, offset, label_offset)
self.depth = depth
self.class_offset = class_offset
self.control_byte_count = 2
class SecondaryIndexEntry(IndexEntry):
INDEX_MAP = {'author':73, 'caption':72, 'credit':71, 'description':70,
'mastheadImage':69}
def __init__(self, index):
IndexEntry.__init__(self, 0, 0)
self.index = index
tag = self.INDEX_MAP[index]
# The values for this index entry
# I dont know what the 5 means, it is not the number of entries
self.secondary = [5 if tag == min(
self.INDEX_MAP.itervalues()) else 0, 0, tag]
@property
def tag_nums(self):
yield 11
@property
def entry_type(self):
return 1
@classmethod
def entries(cls):
rmap = {v:k for k,v in cls.INDEX_MAP.iteritems()}
for tag in sorted(rmap, reverse=True):
yield cls(rmap[tag])
# }}}
class TBS(object): # {{{
@ -323,16 +453,23 @@ class TBS(object): # {{{
class Indexer(object): # {{{
def __init__(self, serializer, number_of_text_records,
size_of_last_text_record, opts, oeb):
size_of_last_text_record, masthead_offset, is_periodical,
opts, oeb):
self.serializer = serializer
self.number_of_text_records = number_of_text_records
self.text_size = (RECORD_SIZE * (self.number_of_text_records-1) +
size_of_last_text_record)
self.masthead_offset = masthead_offset
self.secondary_record_offset = None
self.oeb = oeb
self.log = oeb.log
self.opts = opts
self.is_periodical = detect_periodical(self.oeb.toc, self.log)
self.is_periodical = is_periodical
if self.is_periodical and self.masthead_offset is None:
raise ValueError('Periodicals must have a masthead')
self.log('Generating MOBI index for a %s'%('periodical' if
self.is_periodical else 'book'))
self.is_flat_periodical = False
@ -343,6 +480,16 @@ class Indexer(object): # {{{
self.records = []
if self.is_periodical:
# Ensure all articles have an author and description before
# creating the CNCX
for node in oeb.toc.iterdescendants():
if node.klass == 'article':
aut, desc = node.author, node.description
if not aut: aut = _('Unknown')
if not desc: desc = _('No details available')
node.author, node.description = aut, desc
self.cncx = CNCX(oeb.toc, self.is_periodical)
if self.is_periodical:
@ -354,12 +501,17 @@ class Indexer(object): # {{{
self.records.insert(0, self.create_header())
self.records.extend(self.cncx.records)
if is_periodical:
self.secondary_record_offset = len(self.records)
self.records.append(self.create_header(secondary=True))
self.records.append(self.create_index_record(secondary=True))
self.calculate_trailing_byte_sequences()
def create_index_record(self): # {{{
def create_index_record(self, secondary=False): # {{{
header_length = 192
buf = StringIO()
indices = self.indices
indices = list(SecondaryIndexEntry.entries()) if secondary else self.indices
# Write index entries
offsets = []
@ -399,9 +551,15 @@ class Indexer(object): # {{{
return ans
# }}}
def create_header(self): # {{{
def create_header(self, secondary=False): # {{{
buf = StringIO()
tagx_block = IndexEntry.tagx_block(self.is_periodical)
if secondary:
tagx_block = TAGX().secondary
else:
tagx_block = (TAGX().periodical if self.is_periodical else
(TAGX_BOOK().hierarchical_book if
self.book_has_subchapters else
TAGX_BOOK().flat_book))
header_length = 192
# Ident 0 - 4
@ -420,7 +578,7 @@ class Indexer(object): # {{{
buf.write(pack(b'>I', 0)) # Filled in later
# Number of index records 24-28
buf.write(pack(b'>I', len(self.records)))
buf.write(pack(b'>I', 1 if secondary else len(self.records)))
# Index Encoding 28-32
buf.write(pack(b'>I', 65001)) # utf-8
@ -429,7 +587,8 @@ class Indexer(object): # {{{
buf.write(b'\xff'*4)
# Number of index entries 36-40
buf.write(pack(b'>I', len(self.indices)))
indices = list(SecondaryIndexEntry.entries()) if secondary else self.indices
buf.write(pack(b'>I', len(indices)))
# ORDT offset 40-44
buf.write(pack(b'>I', 0))
@ -441,7 +600,7 @@ class Indexer(object): # {{{
buf.write(pack(b'>I', 0))
# Number of CNCX records 52-56
buf.write(pack(b'>I', len(self.cncx.records)))
buf.write(pack(b'>I', 0 if secondary else len(self.cncx.records)))
# Unknown 56-180
buf.write(b'\0'*124)
@ -455,10 +614,16 @@ class Indexer(object): # {{{
# TAGX block
buf.write(tagx_block)
num = len(self.indices)
num = len(indices)
# The index of the last entry in the NCX
buf.write(encode_number_as_hex(num-1))
idx = indices[-1].index
if isinstance(idx, int):
idx = encode_number_as_hex(idx)
else:
idx = idx.encode('ascii')
idx = (bytes(bytearray([len(idx)]))) + idx
buf.write(idx)
# The number of entries in the NCX
buf.write(pack(b'>H', num))
@ -480,47 +645,98 @@ class Indexer(object): # {{{
# }}}
def create_book_index(self): # {{{
self.book_has_subchapters = False
indices = []
seen = set()
seen, sub_seen = set(), set()
id_offsets = self.serializer.id_offsets
for node in self.oeb.toc.iterdescendants():
# Flatten toc to contain only chapters and subchapters
# Anything deeper than a subchapter is made into a subchapter
chapters = []
for node in self.oeb.toc:
try:
offset = id_offsets[node.href]
label = self.cncx[node.title]
except:
self.log.warn('TOC item %s not found in document'%node.href)
self.log.warn('TOC item %s [%s] not found in document'%(
node.title, node.href))
continue
if offset in seen:
continue
seen.add(offset)
index = IndexEntry(offset, label)
indices.append(index)
indices.sort(key=lambda x:x.offset)
subchapters = []
chapters.append((offset, label, subchapters))
# Set lengths
for i, index in enumerate(indices):
try:
next_offset = indices[i+1].offset
except:
next_offset = self.serializer.body_end_offset
index.length = next_offset - index.offset
for descendant in node.iterdescendants():
try:
offset = id_offsets[descendant.href]
label = self.cncx[descendant.title]
except:
self.log.warn('TOC item %s [%s] not found in document'%(
descendant.title, descendant.href))
continue
# Remove empty nodes
indices = [i for i in indices if i.length > 0]
if offset in sub_seen:
continue
sub_seen.add(offset)
subchapters.append((offset, label))
# Set index values
for i, index in enumerate(indices):
index.index = i
subchapters.sort(key=lambda x:x[0])
# Set lengths again to close up any gaps left by filtering
for i, index in enumerate(indices):
try:
next_offset = indices[i+1].offset
except:
next_offset = self.serializer.body_end_offset
index.length = next_offset - index.offset
chapters.sort(key=lambda x:x[0])
chapters = [(BookIndexEntry(x[0], x[1]), [
BookIndexEntry(y[0], y[1]) for y in x[2]]) for x in chapters]
def set_length(indices):
for i, index in enumerate(indices):
try:
next_offset = indices[i+1].offset
except:
next_offset = self.serializer.body_end_offset
index.length = next_offset - index.offset
# Set chapter and subchapter lengths
set_length([x[0] for x in chapters])
for x in chapters:
set_length(x[1])
# Remove empty chapters
chapters = [x for x in chapters if x[0].length > 0]
# Remove invalid subchapters
for i, x in enumerate(list(chapters)):
chapter, subchapters = x
ok_subchapters = []
for sc in subchapters:
if sc.offset < chapter.next_offset and sc.length > 0:
ok_subchapters.append(sc)
chapters[i] = (chapter, ok_subchapters)
# Reset chapter and subchapter lengths in case any were removed
set_length([x[0] for x in chapters])
for x in chapters:
set_length(x[1])
# Set index and depth values
indices = []
for index, x in enumerate(chapters):
x[0].index = index
indices.append(x[0])
for chapter, subchapters in chapters:
for sc in subchapters:
index += 1
sc.index = index
sc.parent_index = chapter.index
indices.append(sc)
sc.depth = 1
self.book_has_subchapters = True
if subchapters:
chapter.first_child_index = subchapters[0].index
chapter.last_child_index = subchapters[-1].index
return indices
@ -536,11 +752,12 @@ class Indexer(object): # {{{
id_offsets = self.serializer.id_offsets
periodical = IndexEntry(periodical_node_offset,
periodical = PeriodicalIndexEntry(periodical_node_offset,
self.cncx[periodical_node.title],
class_offset=self.cncx[periodical_node.klass])
self.cncx[periodical_node.klass], 0)
periodical.length = periodical_node_size
periodical.first_child_index = 1
periodical.image_index = self.masthead_offset
seen_sec_offsets = set()
seen_art_offsets = set()
@ -556,7 +773,7 @@ class Indexer(object): # {{{
if offset in seen_sec_offsets:
continue
seen_sec_offsets.add(offset)
section = IndexEntry(offset, label, class_offset=klass, depth=1)
section = PeriodicalIndexEntry(offset, label, klass, 1)
section.parent_index = 0
for art in sec:
try:
@ -568,9 +785,11 @@ class Indexer(object): # {{{
if offset in seen_art_offsets:
continue
seen_art_offsets.add(offset)
article = IndexEntry(offset, label, class_offset=klass,
depth=2)
article = PeriodicalIndexEntry(offset, label, klass, 2)
normalized_articles.append(article)
article.author_offset = self.cncx[art.author]
article.desc_offset = self.cncx[art.description]
if normalized_articles:
normalized_articles.sort(key=lambda x:x.offset)
normalized_sections.append((section, normalized_articles))

View File

@ -11,7 +11,7 @@ import re, random, time
from cStringIO import StringIO
from struct import pack
from calibre.ebooks import normalize
from calibre.ebooks import normalize, generate_masthead
from calibre.ebooks.oeb.base import OEB_RASTER_IMAGES
from calibre.ebooks.mobi.writer2.serializer import Serializer
from calibre.ebooks.compression.palmdoc import compress_doc
@ -19,7 +19,7 @@ from calibre.ebooks.mobi.langcodes import iana2mobi
from calibre.utils.filenames import ascii_filename
from calibre.ebooks.mobi.writer2 import (PALMDOC, UNCOMPRESSED, RECORD_SIZE)
from calibre.ebooks.mobi.utils import (rescale_image, encint,
encode_trailing_data, align_block)
encode_trailing_data, align_block, detect_periodical)
from calibre.ebooks.mobi.writer2.indexer import Indexer
EXTH_CODES = {
@ -34,6 +34,12 @@ EXTH_CODES = {
'rights': 109,
'type': 111,
'source': 112,
'versionnumber': 114,
'startreading': 116,
'coveroffset': 201,
'thumboffset': 202,
'hasfakecover': 203,
'lastupdatetime': 502,
'title': 503,
}
@ -77,13 +83,16 @@ class MobiWriter(object):
self.write_content()
def generate_content(self):
self.map_image_names()
self.is_periodical = detect_periodical(self.oeb.toc, self.oeb.log)
# Image records are stored in their own list, they are merged into the
# main record list at the end
self.generate_images()
self.generate_text()
# The uncrossable breaks trailing entries come before the indexing
# trailing entries
self.write_uncrossable_breaks()
# Index records come after text records
self.generate_index()
self.write_uncrossable_breaks()
# Image records come after index records
self.generate_images()
# Indexing {{{
def generate_index(self):
@ -91,22 +100,18 @@ class MobiWriter(object):
try:
self.indexer = Indexer(self.serializer, self.last_text_record_idx,
len(self.records[self.last_text_record_idx]),
self.masthead_offset, self.is_periodical,
self.opts, self.oeb)
except:
self.log.exception('Failed to generate MOBI index:')
else:
self.primary_index_record_idx = len(self.records)
for i in xrange(len(self.records)):
for i in xrange(self.last_text_record_idx + 1):
if i == 0: continue
tbs = self.indexer.get_trailing_byte_sequence(i)
self.records[i] += encode_trailing_data(tbs)
self.records.extend(self.indexer.records)
@property
def is_periodical(self):
return (self.primary_index_record_idx is None or not
self.indexer.is_periodical)
# }}}
def write_uncrossable_breaks(self): # {{{
@ -136,58 +141,54 @@ class MobiWriter(object):
# }}}
# Images {{{
def map_image_names(self):
'''
Map image names to record indices, ensuring that the masthead image if
present has index number 1.
'''
index = 1
self.images = images = {}
mh_href = None
if 'masthead' in self.oeb.guide:
mh_href = self.oeb.guide['masthead'].href
images[mh_href] = 1
index += 1
for item in self.oeb.manifest.values():
if item.media_type in OEB_RASTER_IMAGES:
if item.href == mh_href: continue
images[item.href] = index
index += 1
def generate_images(self):
self.oeb.logger.info('Serializing images...')
images = [(index, href) for href, index in self.images.iteritems()]
images.sort()
self.first_image_record = None
for _, href in images:
item = self.oeb.manifest.hrefs[href]
oeb = self.oeb
oeb.logger.info('Serializing images...')
self.image_records = []
self.image_map = {}
mh_href = self.masthead_offset = None
if 'masthead' in oeb.guide:
mh_href = oeb.guide['masthead'].href
elif self.is_periodical:
# Generate a default masthead
data = generate_masthead(unicode(self.oeb.metadata('title')[0]))
self.image_records.append(data)
self.masthead_offset = 0
cover_href = self.cover_offset = self.thumbnail_offset = None
if (oeb.metadata.cover and
unicode(oeb.metadata.cover[0]) in oeb.manifest.ids):
cover_id = unicode(oeb.metadata.cover[0])
item = oeb.manifest.ids[cover_id]
cover_href = item.href
for item in self.oeb.manifest.values():
if item.media_type not in OEB_RASTER_IMAGES: continue
try:
data = rescale_image(item.data)
except:
self.oeb.logger.warn('Bad image file %r' % item.href)
oeb.logger.warn('Bad image file %r' % item.href)
continue
else:
self.image_map[item.href] = len(self.image_records)
self.image_records.append(data)
if item.href == mh_href:
self.masthead_offset = len(self.image_records) - 1
elif item.href == cover_href:
self.cover_offset = len(self.image_records) - 1
try:
data = rescale_image(item.data, dimen=MAX_THUMB_DIMEN,
maxsizeb=MAX_THUMB_SIZE)
except:
oeb.logger.warn('Failed to generate thumbnail')
else:
self.image_records.append(data)
self.thumbnail_offset = len(self.image_records) - 1
finally:
item.unload_data_from_memory()
self.records.append(data)
if self.first_image_record is None:
self.first_image_record = len(self.records) - 1
def add_thumbnail(self, item):
try:
data = rescale_image(item.data, dimen=MAX_THUMB_DIMEN,
maxsizeb=MAX_THUMB_SIZE)
except IOError:
self.oeb.logger.warn('Bad image file %r' % item.href)
return None
manifest = self.oeb.manifest
id, href = manifest.generate('thumbnail', 'thumbnail.jpeg')
manifest.add(id, href, 'image/jpeg', data=data)
index = len(self.images) + 1
self.images[href] = index
self.records.append(data)
return index
# }}}
@ -195,12 +196,13 @@ class MobiWriter(object):
def generate_text(self):
self.oeb.logger.info('Serializing markup content...')
self.serializer = Serializer(self.oeb, self.images,
self.serializer = Serializer(self.oeb, self.image_map,
write_page_breaks_after_item=self.write_page_breaks_after_item)
text = self.serializer()
self.text_length = len(text)
text = StringIO(text)
nrecords = 0
records_size = 0
if self.compression != UNCOMPRESSED:
self.oeb.logger.info(' Compressing markup content...')
@ -214,9 +216,15 @@ class MobiWriter(object):
data += pack(b'>B', len(overlap))
self.records.append(data)
records_size += len(data)
nrecords += 1
self.last_text_record_idx = nrecords
self.first_non_text_record_idx = nrecords + 1
# Pad so that the next records starts at a 4 byte boundary
if records_size % 4 != 0:
self.records.append(b'\x00'*(records_size % 4))
self.first_non_text_record_idx += 1
def read_text_record(self, text):
'''
@ -273,9 +281,13 @@ class MobiWriter(object):
def generate_record0(self): # MOBI header {{{
metadata = self.oeb.metadata
exth = self.build_exth()
first_image_record = None
if self.image_records:
first_image_record = len(self.records)
self.records.extend(self.image_records)
last_content_record = len(self.records) - 1
# FCIS/FLIS (Seem to server no purpose)
# FCIS/FLIS (Seems to serve no purpose)
flis_number = len(self.records)
self.records.append(
b'FLIS\0\0\0\x08\0\x41\0\0\0\0\0\0\xff\xff\xff\xff\0\x01\0\x03\0\0\0\x03\0\0\0\x01'+
@ -322,6 +334,8 @@ class MobiWriter(object):
if self.indexer.is_flat_periodical:
bt = 0x102
elif self.indexer.is_periodical:
# If you change this, remember to change the cdetype in the EXTH
# header as well
bt = 0x103
record0.write(pack(b'>IIIII',
@ -331,14 +345,19 @@ class MobiWriter(object):
record0.write(b'\xff' * 8)
# 0x20 - 0x23 : Secondary index record
record0.write(pack(b'>I', 0xffffffff))
sir = 0xffffffff
if (self.primary_index_record_idx is not None and
self.indexer.secondary_record_offset is not None):
sir = (self.primary_index_record_idx +
self.indexer.secondary_record_offset)
record0.write(pack(b'>I', sir))
# 0x24 - 0x3f : Unknown
record0.write(b'\xff' * 28)
# 0x40 - 0x43 : Offset of first non-text record
record0.write(pack(b'>I',
self.last_text_record_idx + 1))
self.first_non_text_record_idx))
# 0x44 - 0x4b : title offset, title length
record0.write(pack(b'>II',
@ -354,8 +373,7 @@ class MobiWriter(object):
# 0x58 - 0x5b : Format version
# 0x5c - 0x5f : First image record number
record0.write(pack(b'>II',
6, self.first_image_record if self.first_image_record else
len(self.records)-1))
6, first_image_record if first_image_record else len(self.records)))
# 0x60 - 0x63 : First HUFF/CDIC record number
# 0x64 - 0x67 : Number of HUFF/CDIC records
@ -493,10 +511,14 @@ class MobiWriter(object):
# Write cdetype
if self.is_periodical:
# If you set the book type header field to 0x101 use NWPR here if
# you use 0x103 use MAGZ
data = b'MAGZ'
else:
data = b'EBOK'
exth.write(pack(b'>II', 501, len(data)+8))
exth.write(data)
nrecs += 1
exth.write(pack(b'>II', 501, len(data)+8))
exth.write(data)
nrecs += 1
# Add a publication date entry
if oeb.metadata['date']:
@ -504,34 +526,42 @@ class MobiWriter(object):
elif oeb.metadata['timestamp']:
datestr = str(oeb.metadata['timestamp'][0])
if datestr is not None:
datestr = bytes(datestr)
exth.write(pack(b'>II', EXTH_CODES['pubdate'], len(datestr) + 8))
if datestr is None:
raise ValueError("missing date or timestamp")
datestr = bytes(datestr)
exth.write(pack(b'>II', EXTH_CODES['pubdate'], len(datestr) + 8))
exth.write(datestr)
nrecs += 1
if self.is_periodical:
exth.write(pack(b'>II', EXTH_CODES['lastupdatetime'], len(datestr) + 8))
exth.write(datestr)
nrecs += 1
else:
raise NotImplementedError("missing date or timestamp needed for mobi_periodical")
# Write the same creator info as kindlegen 1.2
for code, val in [(204, 201), (205, 1), (206, 2), (207, 33307)]:
exth.write(pack(b'>II', code, 12))
exth.write(pack(b'>I', val))
if self.is_periodical:
# Pretend to be amazon's super secret periodical generator
vals = {204:201, 205:2, 206:0, 207:101}
else:
# Pretend to be kindlegen 1.2
vals = {204:201, 205:1, 206:2, 207:33307}
for code, val in vals.iteritems():
exth.write(pack(b'>III', code, 12, val))
nrecs += 1
if (oeb.metadata.cover and
unicode(oeb.metadata.cover[0]) in oeb.manifest.ids):
id = unicode(oeb.metadata.cover[0])
item = oeb.manifest.ids[id]
href = item.href
if href in self.images:
index = self.images[href] - 1
exth.write(pack(b'>III', 0xc9, 0x0c, index))
exth.write(pack(b'>III', 0xcb, 0x0c, 0))
nrecs += 2
index = self.add_thumbnail(item)
if index is not None:
exth.write(pack(b'>III', 0xca, 0x0c, index - 1))
nrecs += 1
if self.cover_offset is not None:
exth.write(pack(b'>III', EXTH_CODES['coveroffset'], 12,
self.cover_offset))
exth.write(pack(b'>III', EXTH_CODES['hasfakecover'], 12, 0))
nrecs += 2
if self.thumbnail_offset is not None:
exth.write(pack(b'>III', EXTH_CODES['thumboffset'], 12,
self.thumbnail_offset))
nrecs += 1
if self.serializer.start_offset is not None:
exth.write(pack(b'>III', EXTH_CODES['startreading'], 12,
self.serializer.start_offset))
nrecs += 1
exth = exth.getvalue()
trail = len(exth) % 4
@ -550,7 +580,7 @@ class MobiWriter(object):
now = int(time.time())
nrecords = len(self.records)
self.write(title, pack(b'>HHIIIIII', 0, 0, now, now, 0, 0, 0, 0),
b'BOOK', b'MOBI', pack(b'>IIH', nrecords, 0, nrecords))
b'BOOK', b'MOBI', pack(b'>IIH', (2*nrecords)-1, 0, nrecords))
offset = self.tell() + (8 * nrecords) + 2
for i, record in enumerate(self.records):
self.write(pack(b'>I', offset), b'\0', pack(b'>I', 2*i)[1:])

View File

@ -39,6 +39,10 @@ class Serializer(object):
self.logger = oeb.logger
self.write_page_breaks_after_item = write_page_breaks_after_item
# If not None, this is a number pointing to the location at which to
# open the MOBI file on the Kindle
self.start_offset = None
# Mapping of hrefs (urlnormalized) to the offset in the buffer where
# the resource pointed to by the href lives. Used at the end to fill in
# the correct values into all filepos="..." links.
@ -106,6 +110,7 @@ class Serializer(object):
self.serialize_head()
self.serialize_body()
buf.write(b'</html>')
self.end_offset = buf.tell()
self.fixup_links()
return buf.getvalue()
@ -144,6 +149,8 @@ class Serializer(object):
buf.write(b'title="')
self.serialize_text(ref.title, quot=True)
buf.write(b'" ')
if ref.title == 'start':
self._start_href = ref.href
self.serialize_href(ref.href)
# Space required or won't work, I kid you not
buf.write(b' />')
@ -200,20 +207,18 @@ class Serializer(object):
self.breaks.append(buf.tell() - 1)
self.id_offsets[urlnormalize(item.href)] = buf.tell()
if item.is_section_start:
buf.write(b'<div>')
buf.write(b'<a ></a> ')
if item.is_article_start:
buf.write(b'<div>')
buf.write(b'<a ></a> <a ></a>')
for elem in item.data.find(XHTML('body')):
self.serialize_elem(elem, item)
if item.is_article_end:
# Kindle periodical article end marker
buf.write(b'<div></div>')
if self.write_page_breaks_after_item:
buf.write(b'<mbp:pagebreak/>')
if item.is_article_end:
buf.write(b'</div>')
# Kindle periodical article end marker
buf.write(b'<a ></a> <a ></a>')
if item.is_section_end:
buf.write(b'</div>')
buf.write(b' <a ></a>')
self.anchor_offset = None
def serialize_elem(self, elem, item, nsrmap=NSRMAP):
@ -283,6 +288,7 @@ class Serializer(object):
buf = self.buf
id_offsets = self.id_offsets
for href, hoffs in self.href_offsets.items():
is_start = (href and href == getattr(self, '_start_href', None))
# Iterate over all filepos items
if href not in id_offsets:
self.logger.warn('Hyperlink target %r not found' % href)
@ -290,6 +296,8 @@ class Serializer(object):
href, _ = urldefrag(href)
if href in self.id_offsets:
ioff = self.id_offsets[href]
if is_start:
self.start_offset = ioff
for hoff in hoffs:
buf.seek(hoff)
buf.write(b'%010d' % ioff)

View File

@ -7,7 +7,6 @@ __docformat__ = 'restructuredtext en'
import sys, struct, zlib, bz2, os
from calibre import guess_type
from calibre.utils.filenames import ascii_filename
class FileStream:
def IsBinary(self):
@ -158,7 +157,7 @@ class SNBFile:
f.fileBody = open(os.path.join(tdir,fileName), 'rb').read()
f.fileName = fileName.replace(os.sep, '/')
if isinstance(f.fileName, unicode):
f.fileName = ascii_filename(f.fileName).encode('ascii')
f.fileName = f.fileName.encode("ascii", "ignore");
self.files.append(f)
def AppendBinary(self, fileName, tdir):
@ -168,7 +167,7 @@ class SNBFile:
f.fileBody = open(os.path.join(tdir,fileName), 'rb').read()
f.fileName = fileName.replace(os.sep, '/')
if isinstance(f.fileName, unicode):
f.fileName = ascii_filename(f.fileName).encode('ascii')
f.fileName = f.fileName.encode("ascii", "ignore");
self.files.append(f)
def GetFileStream(self, fileName):

View File

@ -40,7 +40,7 @@ if isosx:
gprefs.defaults['action-layout-toolbar-device'] = (
'Add Books', 'Edit Metadata', None, 'Convert Books', 'View',
'Send To Device', None, None, 'Location Manager', None, None,
'Fetch News', 'Save To Disk', 'Connect Share', None,
'Fetch News', 'Store', 'Save To Disk', 'Connect Share', None,
'Remove Books',
)
else:
@ -55,7 +55,7 @@ else:
gprefs.defaults['action-layout-toolbar-device'] = (
'Add Books', 'Edit Metadata', None, 'Convert Books', 'View',
'Send To Device', None, None, 'Location Manager', None, None,
'Fetch News', 'Save To Disk', 'Connect Share', None,
'Fetch News', 'Save To Disk', 'Store', 'Connect Share', None,
'Remove Books', None, 'Help', 'Preferences',
)
@ -423,6 +423,8 @@ class FileIconProvider(QFileIconProvider):
'rtf' : 'rtf',
'odt' : 'odt',
'snb' : 'snb',
'djv' : 'djvu',
'djvu' : 'djvu',
}
def __init__(self):

View File

@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
from functools import partial
from zipfile import ZipFile
from PyQt4.Qt import QToolButton, QAction, QIcon, QObject
from PyQt4.Qt import QToolButton, QAction, QIcon, QObject, QMenu
from calibre.gui2 import Dispatcher
@ -66,6 +66,14 @@ class InterfaceAction(QObject):
#: shortcut must be a translated string if not None
action_spec = ('text', 'icon', None, None)
#: If True, a menu is automatically created and added to self.qaction
action_add_menu = False
#: If True, a clone of self.qaction is added to the menu of self.qaction
#: If you want the text of this action to be different from that of
#: self.qaction, set this variable to the new text
action_menu_clone_qaction = False
#: Set of locations to which this action must not be added.
#: See :attr:`all_locations` for a list of possible locations
dont_add_to = frozenset([])
@ -75,7 +83,8 @@ class InterfaceAction(QObject):
dont_remove_from = frozenset([])
all_locations = frozenset(['toolbar', 'toolbar-device', 'context-menu',
'context-menu-device', 'toolbar-child', 'menubar', 'menubar-device'])
'context-menu-device', 'toolbar-child', 'menubar', 'menubar-device',
'context-menu-cover-browser'])
#: Type of action
#: 'current' means acts on the current view
@ -94,8 +103,13 @@ class InterfaceAction(QObject):
self.Dispatcher = partial(Dispatcher, parent=self)
self.create_action()
self.gui.addAction(self.qaction)
self.gui.addAction(self.menuless_qaction)
self.genesis()
@property
def unique_name(self):
return u'%s(%s)'%(self.__class__.__name__, self.name)
def create_action(self, spec=None, attr='qaction'):
if spec is None:
spec = self.action_spec
@ -104,20 +118,62 @@ class InterfaceAction(QObject):
action = QAction(QIcon(I(icon)), text, self.gui)
else:
action = QAction(text, self.gui)
action.setAutoRepeat(self.auto_repeat)
text = tooltip if tooltip else text
action.setToolTip(text)
action.setStatusTip(text)
action.setWhatsThis(text)
action.setAutoRepeat(False)
if shortcut:
if isinstance(shortcut, list):
action.setShortcuts(shortcut)
else:
action.setShortcut(shortcut)
setattr(self, attr, action)
if attr == 'qaction':
mt = (action.text() if self.action_menu_clone_qaction is True else
unicode(self.action_menu_clone_qaction))
self.menuless_qaction = ma = QAction(action.icon(), mt, self.gui)
ma.triggered.connect(action.trigger)
for a in ((action, ma) if attr == 'qaction' else (action,)):
a.setAutoRepeat(self.auto_repeat)
text = tooltip if tooltip else text
a.setToolTip(text)
a.setStatusTip(text)
a.setWhatsThis(text)
keys = ()
shortcut_action = action
desc = tooltip if tooltip else None
if attr == 'qaction':
shortcut_action = ma
if shortcut is not None:
keys = ((shortcut,) if isinstance(shortcut, basestring) else
tuple(shortcut))
self.gui.keyboard.register_shortcut(self.unique_name + ' - ' + attr,
unicode(shortcut_action.text()), default_keys=keys,
action=shortcut_action, description=desc)
if attr is not None:
setattr(self, attr, action)
if attr == 'qaction' and self.action_add_menu:
menu = QMenu()
action.setMenu(menu)
if self.action_menu_clone_qaction:
menu.addAction(self.menuless_qaction)
return action
def create_menu_action(self, menu, unique_name, text, icon=None, shortcut=None,
description=None, triggered=None):
ac = menu.addAction(text)
if icon is not None:
if not isinstance(icon, QIcon):
icon = QIcon(I(icon))
ac.setIcon(icon)
keys = ()
if shortcut is not None and shortcut is not False:
keys = ((shortcut,) if isinstance(shortcut, basestring) else
tuple(shortcut))
unique_name = '%s : menu action : %s'%(self.unique_name, unique_name)
if description is not None:
ac.setToolTip(description)
ac.setStatusTip(description)
ac.setWhatsThis(description)
if shortcut is not False:
self.gui.keyboard.register_shortcut(unique_name,
unicode(text), default_keys=keys,
action=ac, description=description)
if triggered is not None:
ac.triggered.connect(triggered)
return ac
def load_resources(self, names):
'''
If this plugin comes in a ZIP file (user added plugin), this method

View File

@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
import os
from functools import partial
from PyQt4.Qt import QPixmap, QMenu, QTimer
from PyQt4.Qt import QPixmap, QTimer
from calibre.gui2 import error_dialog, choose_files, \
@ -48,28 +48,29 @@ class AddAction(InterfaceAction):
_('Add books to the calibre library/device from files on your computer')
, _('A'))
action_type = 'current'
action_add_menu = True
action_menu_clone_qaction = _('Add books from a single directory')
def genesis(self):
self._add_filesystem_book = self.Dispatcher(self.__add_filesystem_book)
self.add_menu = QMenu()
self.add_menu.addAction(_('Add books from a single directory'),
self.add_books)
self.add_menu.addAction(_('Add books from directories, including '
self.add_menu = self.qaction.menu()
ma = partial(self.create_menu_action, self.add_menu)
ma('recursive-single', _('Add books from directories, including '
'sub-directories (One book per directory, assumes every ebook '
'file is the same book in a different format)'),
'file is the same book in a different format)')).triggered.connect(
self.add_recursive_single)
self.add_menu.addAction(_('Add books from directories, including '
ma('recursive-multiple', _('Add books from directories, including '
'sub directories (Multiple books per directory, assumes every '
'ebook file is a different book)'), self.add_recursive_multiple)
'ebook file is a different book)')).triggered.connect(
self.add_recursive_multiple)
self.add_menu.addSeparator()
self.add_menu.addAction(_('Add Empty book. (Book entry with no '
'formats)'), self.add_empty, _('Shift+Ctrl+E'))
self.add_menu.addAction(_('Add from ISBN'), self.add_from_isbn)
ma('add-empty', _('Add Empty book. (Book entry with no formats)'),
shortcut=_('Shift+Ctrl+E')).triggered.connect(self.add_empty)
ma('add-isbn', _('Add from ISBN')).triggered.connect(self.add_from_isbn)
self.add_menu.addSeparator()
self.add_menu.addAction(_('Add files to selected book records'),
self.add_formats, _('Shift+A'))
ma('add-formats', _('Add files to selected book records'),
triggered=self.add_formats, shortcut=_('Shift+A'))
self.qaction.setMenu(self.add_menu)
self.qaction.triggered.connect(self.add_books)
def location_selected(self, loc):
@ -83,7 +84,8 @@ class AddAction(InterfaceAction):
view = self.gui.library_view
rows = view.selectionModel().selectedRows()
if not rows:
return
return error_dialog(self.gui, _('No books selected'),
_('Cannot add files as no books are selected'), show=True)
ids = [view.model().id(r) for r in rows]
if len(ids) > 1 and not question_dialog(self.gui,

View File

@ -82,23 +82,20 @@ class ChooseLibraryAction(InterfaceAction):
action_spec = (_('%d books'), 'lt.png',
_('Choose calibre library to work with'), None)
dont_add_to = frozenset(['menubar-device', 'toolbar-device', 'context-menu-device'])
action_add_menu = True
action_menu_clone_qaction = _('Switch/create library...')
def genesis(self):
self.count_changed(0)
self.qaction.triggered.connect(self.choose_library,
type=Qt.QueuedConnection)
self.action_choose = self.menuless_qaction
self.stats = LibraryUsageStats()
self.popup_type = (QToolButton.InstantPopup if len(self.stats.stats) > 1 else
QToolButton.MenuButtonPopup)
self.create_action(spec=(_('Switch/create library...'), 'lt.png', None,
None), attr='action_choose')
self.action_choose.triggered.connect(self.choose_library,
type=Qt.QueuedConnection)
self.choose_menu = QMenu(self.gui)
self.qaction.setMenu(self.choose_menu)
self.choose_menu = self.qaction.menu()
if not os.environ.get('CALIBRE_OVERRIDE_DATABASE_PATH', None):
self.choose_menu.addAction(self.action_choose)
@ -110,7 +107,7 @@ class ChooseLibraryAction(InterfaceAction):
self.delete_menu = QMenu(_('Remove library'))
self.delete_menu_action = self.choose_menu.addMenu(self.delete_menu)
ac = self.create_action(spec=(_('Pick a random book'), 'catalog.png',
ac = self.create_action(spec=(_('Pick a random book'), 'random.png',
None, None), attr='action_pick_random')
ac.triggered.connect(self.pick_random)
self.choose_menu.addAction(ac)
@ -152,10 +149,7 @@ class ChooseLibraryAction(InterfaceAction):
self.choose_menu.addMenu(self.maintenance_menu)
def pick_random(self, *args):
import random
pick = random.randint(0, self.gui.library_view.model().rowCount(None))
self.gui.library_view.set_current_row(pick)
self.gui.library_view.scroll_to_row(pick)
self.gui.iactions['Pick Random Book'].pick_random()
def library_name(self):
db = self.gui.library_view.model().db

View File

@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
import os
from functools import partial
from PyQt4.Qt import QModelIndex, QMenu
from PyQt4.Qt import QModelIndex
from calibre.gui2 import error_dialog, Dispatcher
from calibre.gui2.tools import convert_single_ebook, convert_bulk_ebook
@ -22,20 +22,22 @@ class ConvertAction(InterfaceAction):
action_spec = (_('Convert books'), 'convert.png', None, _('C'))
dont_add_to = frozenset(['menubar-device', 'toolbar-device', 'context-menu-device'])
action_type = 'current'
action_add_menu = True
def genesis(self):
cm = QMenu()
cm.addAction(_('Convert individually'), partial(self.convert_ebook,
m = self.convert_menu = self.qaction.menu()
cm = partial(self.create_menu_action, self.convert_menu)
cm('convert-individual', _('Convert individually'),
icon=self.qaction.icon(), triggered=partial(self.convert_ebook,
False, bulk=False))
cm.addAction(_('Bulk convert'),
partial(self.convert_ebook, False, bulk=True))
cm.addSeparator()
ac = cm.addAction(
_('Create a catalog of the books in your calibre library'))
ac.triggered.connect(self.gui.iactions['Generate Catalog'].generate_catalog)
self.qaction.setMenu(cm)
cm('convert-bulk', _('Bulk convert'),
triggered=partial(self.convert_ebook, False, bulk=True))
m.addSeparator()
cm('create-catalog',
_('Create a catalog of the books in your calibre library'),
icon='catalog.png', shortcut=False,
triggered=self.gui.iactions['Generate Catalog'].generate_catalog)
self.qaction.triggered.connect(self.convert_ebook)
self.convert_menu = cm
self.conversion_jobs = {}
def location_selected(self, loc):

View File

@ -9,7 +9,7 @@ import os
from functools import partial
from threading import Thread
from PyQt4.Qt import QMenu, QToolButton
from PyQt4.Qt import QToolButton
from calibre.gui2.actions import InterfaceAction
from calibre.gui2 import error_dialog, Dispatcher, warning_dialog
@ -95,10 +95,10 @@ class CopyToLibraryAction(InterfaceAction):
popup_type = QToolButton.InstantPopup
dont_add_to = frozenset(['toolbar-device', 'context-menu-device'])
action_type = 'current'
action_add_menu = True
def genesis(self):
self.menu = QMenu(self.gui)
self.qaction.setMenu(self.menu)
self.menu = self.qaction.menu()
@property
def stats(self):

View File

@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en'
from functools import partial
from PyQt4.Qt import QMenu, QObject, QTimer
from PyQt4.Qt import QObject, QTimer
from calibre.gui2 import error_dialog, question_dialog
from calibre.gui2.dialogs.delete_matching_from_device import DeleteMatchingFromDeviceDialog
@ -18,7 +18,7 @@ from calibre.utils.recycle_bin import can_recycle
single_shot = partial(QTimer.singleShot, 10)
class MultiDeleter(QObject):
class MultiDeleter(QObject): # {{{
def __init__(self, gui, ids, callback):
from calibre.gui2.dialogs.progress import ProgressDialog
@ -77,32 +77,36 @@ class MultiDeleter(QObject):
error_dialog(self.gui, _('Failed to delete'),
_('Failed to delete some books, click the Show Details button'
' for details.'), det_msg='\n\n'.join(msg), show=True)
# }}}
class DeleteAction(InterfaceAction):
name = 'Remove Books'
action_spec = (_('Remove books'), 'trash.png', None, 'Del')
action_type = 'current'
action_add_menu = True
action_menu_clone_qaction = _('Remove selected books')
def genesis(self):
self.qaction.triggered.connect(self.delete_books)
self.delete_menu = QMenu()
self.delete_menu.addAction(_('Remove selected books'), self.delete_books)
self.delete_menu.addAction(
self.delete_menu = self.qaction.menu()
m = partial(self.create_menu_action, self.delete_menu)
m('delete-specific',
_('Remove files of a specific format from selected books..'),
self.delete_selected_formats)
self.delete_menu.addAction(
triggered=self.delete_selected_formats)
m('delete-except',
_('Remove all formats from selected books, except...'),
self.delete_all_but_selected_formats)
self.delete_menu.addAction(
triggered=self.delete_all_but_selected_formats)
m('delete-all',
_('Remove all formats from selected books'),
self.delete_all_formats)
self.delete_menu.addAction(
_('Remove covers from selected books'), self.delete_covers)
triggered=self.delete_all_formats)
m('delete-covers',
_('Remove covers from selected books'),
triggered=self.delete_covers)
self.delete_menu.addSeparator()
self.delete_menu.addAction(
m('delete-matching',
_('Remove matching books from device'),
self.remove_matching_books_from_device)
triggered=self.remove_matching_books_from_device)
self.qaction.setMenu(self.delete_menu)
self.delete_memory = {}

View File

@ -60,6 +60,15 @@ class ShareConnMenu(QMenu): # {{{
self.email_actions = []
if hasattr(parent, 'keyboard'):
r = parent.keyboard.register_shortcut
prefix = 'Share/Connect Menu '
for attr in ('folder', 'bambook', 'itunes'):
if not (iswindows or isosx) and attr == 'itunes':
continue
ac = getattr(self, 'connect_to_%s_action'%attr)
r(prefix + attr, unicode(ac.text()), action=ac)
def server_state_changed(self, running):
text = _('Start Content Server')
if running:

View File

@ -8,12 +8,12 @@ __docformat__ = 'restructuredtext en'
import os
from functools import partial
from PyQt4.Qt import Qt, QMenu, QModelIndex, QTimer
from PyQt4.Qt import QMenu, QModelIndex, QTimer
from calibre.gui2 import error_dialog, Dispatcher, question_dialog
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.dialogs.device_category_editor import DeviceCategoryEditor
from calibre.gui2.actions import InterfaceAction
from calibre.ebooks.metadata import authors_to_string
from calibre.utils.icu import sort_key
@ -24,40 +24,41 @@ class EditMetadataAction(InterfaceAction):
name = 'Edit Metadata'
action_spec = (_('Edit metadata'), 'edit_input.png', None, _('E'))
action_type = 'current'
action_add_menu = True
def genesis(self):
self.create_action(spec=(_('Merge book records'), 'merge_books.png',
None, _('M')), attr='action_merge')
md = QMenu()
md.addAction(_('Edit metadata individually'),
partial(self.edit_metadata, False, bulk=False))
md = self.qaction.menu()
cm = partial(self.create_menu_action, md)
cm('individual', _('Edit metadata individually'), icon=self.qaction.icon(),
triggered=partial(self.edit_metadata, False, bulk=False))
md.addSeparator()
md.addAction(_('Edit metadata in bulk'),
partial(self.edit_metadata, False, bulk=True))
cm('bulk', _('Edit metadata in bulk'),
triggered=partial(self.edit_metadata, False, bulk=True))
md.addSeparator()
md.addAction(_('Download metadata and covers'), self.download_metadata,
Qt.ControlModifier+Qt.Key_D)
cm('download', _('Download metadata and covers'),
triggered=partial(self.download_metadata, ids=None),
shortcut='Ctrl+D')
self.metadata_menu = md
mb = QMenu()
mb.addAction(_('Merge into first selected book - delete others'),
self.merge_books)
cm2 = partial(self.create_menu_action, mb)
cm2('merge delete', _('Merge into first selected book - delete others'),
triggered=self.merge_books)
mb.addSeparator()
mb.addAction(_('Merge into first selected book - keep others'),
partial(self.merge_books, safe_merge=True),
Qt.AltModifier+Qt.Key_M)
cm2('merge keep', _('Merge into first selected book - keep others'),
triggered=partial(self.merge_books, safe_merge=True),
shortcut='Alt+M')
mb.addSeparator()
mb.addAction(_('Merge only formats into first selected book - delete others'),
partial(self.merge_books, merge_only_formats=True),
Qt.AltModifier+Qt.ShiftModifier+Qt.Key_M)
cm2('merge formats', _('Merge only formats into first selected book - delete others'),
triggered=partial(self.merge_books, merge_only_formats=True),
shortcut='Alt+Shift+M')
self.merge_menu = mb
self.action_merge.setMenu(mb)
md.addSeparator()
md.addAction(self.action_merge)
self.action_merge = cm('merge', _('Merge book records'), icon='merge_books.png',
shortcut=_('M'), triggered=self.merge_books)
self.action_merge.setMenu(mb)
self.qaction.triggered.connect(self.edit_metadata)
self.qaction.setMenu(md)
self.action_merge.triggered.connect(self.merge_books)
def location_selected(self, loc):
enabled = loc == 'library'
@ -417,7 +418,7 @@ class EditMetadataAction(InterfaceAction):
db.set_custom(dest_id, dest_value, num=colnum)
if db.field_metadata[key]['datatype'] in \
('bool', 'int', 'float', 'rating', 'datetime') \
and not dest_value:
and dest_value is None:
db.set_custom(dest_id, src_value, num=colnum)
if db.field_metadata[key]['datatype'] == 'series' \
and not dest_value:
@ -441,7 +442,7 @@ class EditMetadataAction(InterfaceAction):
def edit_device_collections(self, view, oncard=None):
model = view.model()
result = model.get_collections_with_ids()
d = TagListEditor(self.gui, tag_to_match=None, data=result, key=sort_key)
d = DeviceCategoryEditor(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

View File

@ -5,7 +5,9 @@ __license__ = 'GPL v3'
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
from PyQt4.Qt import QIcon, QMenu, Qt
from functools import partial
from PyQt4.Qt import QIcon, Qt
from calibre.gui2.actions import InterfaceAction
from calibre.gui2.preferences.main import Preferences
@ -16,24 +18,23 @@ class PreferencesAction(InterfaceAction):
name = 'Preferences'
action_spec = (_('Preferences'), 'config.png', None, _('Ctrl+P'))
action_add_menu = True
action_menu_clone_qaction = _('Change calibre behavior')
def genesis(self):
pm = QMenu()
pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config)
pm = self.qaction.menu()
cm = partial(self.create_menu_action, pm)
if isosx:
pm.addAction(QIcon(I('config.png')), _('Change calibre behavior'), self.do_config)
pm.addAction(QIcon(I('wizard.png')), _('Run welcome wizard'),
self.gui.run_wizard)
pm.addAction(QIcon(I('plugins/plugin_updater.png')),
_('Get plugins to enhance calibre'), self.get_plugins)
pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config)
cm('welcome wizard', _('Run welcome wizard'),
icon='wizard.png', triggered=self.gui.run_wizard)
cm('plugin updater', _('Get plugins to enhance calibre'),
icon='plugins/plugin_updater.png', triggered=self.get_plugins)
if not DEBUG:
pm.addSeparator()
ac = pm.addAction(QIcon(I('debug.png')), _('Restart in debug mode'),
self.debug_restart)
ac.setShortcut('Ctrl+Shift+R')
self.gui.addAction(ac)
cm('restart', _('Restart in debug mode'), icon='debug.png',
triggered=self.debug_restart, shortcut='Ctrl+Shift+R')
self.qaction.setMenu(pm)
self.preferences_menu = pm
for x in (self.gui.preferences_action, self.qaction):
x.triggered.connect(self.do_config)

View File

@ -0,0 +1,28 @@
#!/usr/bin/env python
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
from __future__ import (unicode_literals, division, absolute_import,
print_function)
__license__ = 'GPL v3'
__copyright__ = '2011, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import random
from calibre.gui2.actions import InterfaceAction
class PickRandomAction(InterfaceAction):
name = 'Pick Random Book'
action_spec = (_('Pick a random book'), 'random.png', 'Catalog builder', None)
dont_add_to = frozenset(['menubar-device', 'toolbar-device', 'context-menu-device'])
def genesis(self):
self.qaction.triggered.connect(self.pick_random)
def pick_random(self):
pick = random.randint(0, self.gui.library_view.model().rowCount(None))
self.gui.library_view.set_current_row(pick)
self.gui.library_view.scroll_to_row(pick)

View File

@ -38,25 +38,25 @@ class SaveToDiskAction(InterfaceAction):
name = "Save To Disk"
action_spec = (_('Save to disk'), 'save.png', None, _('S'))
action_type = 'current'
action_add_menu = True
action_menu_clone_qaction = True
def genesis(self):
self.qaction.triggered.connect(self.save_to_disk)
self.save_menu = QMenu()
self.save_menu.addAction(_('Save to disk'), partial(self.save_to_disk,
False))
self.save_menu.addAction(_('Save to disk in a single directory'),
partial(self.save_to_single_dir, False))
self.save_menu.addAction(_('Save only %s format to disk')%
self.save_menu = self.qaction.menu()
cm = partial(self.create_menu_action, self.save_menu)
cm('single dir', _('Save to disk in a single directory'),
triggered=partial(self.save_to_single_dir, False))
cm('single format', _('Save only %s format to disk')%
prefs['output_format'].upper(),
partial(self.save_single_format_to_disk, False))
self.save_menu.addAction(
triggered=partial(self.save_single_format_to_disk, False))
cm('single dir and format',
_('Save only %s format to disk in a single directory')%
prefs['output_format'].upper(),
partial(self.save_single_fmt_to_single_dir, False))
triggered=partial(self.save_single_fmt_to_single_dir, False))
self.save_sub_menu = SaveMenu(self.gui)
self.save_sub_menu_action = self.save_menu.addMenu(self.save_sub_menu)
self.save_sub_menu.save_fmt.connect(self.save_specific_format_disk)
self.qaction.setMenu(self.save_menu)
def location_selected(self, loc):
enabled = loc == 'library'
@ -115,10 +115,7 @@ class SaveToDiskAction(InterfaceAction):
opts.save_cover = False
opts.write_opf = False
opts.template = opts.send_template
if single_dir:
opts.template = opts.template.split('/')[-1].strip()
if not opts.template:
opts.template = '{title} - {authors}'
opts.single_dir = single_dir
self._saver = Saver(self.gui, self.gui.library_view.model().db,
Dispatcher(self._books_saved), rows, path, opts,
spare_server=self.gui.spare_server)

View File

@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en'
from functools import partial
from PyQt4.Qt import QMenu, QToolButton
from PyQt4.Qt import QToolButton
from calibre.gui2.actions import InterfaceAction
@ -17,9 +17,10 @@ class SimilarBooksAction(InterfaceAction):
action_spec = (_('Similar books...'), None, None, None)
popup_type = QToolButton.InstantPopup
action_type = 'current'
action_add_menu = True
def genesis(self):
m = QMenu(self.gui)
m = self.qaction.menu()
for text, icon, target, shortcut in [
(_('Books by same author'), 'user_profile.png', 'authors', _('Alt+A')),
(_('Books in this series'), 'books_in_series.png', 'series',
@ -31,7 +32,6 @@ class SimilarBooksAction(InterfaceAction):
m.addAction(ac)
ac.triggered.connect(partial(self.show_similar_books, target))
self.qaction.setMenu(m)
self.similar_menu = m
def show_similar_books(self, type, *args):
search, join = [], ' '

View File

@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
from functools import partial
from PyQt4.Qt import QMenu, QIcon, QSize
from PyQt4.Qt import QIcon, QSize
from calibre.gui2 import error_dialog
from calibre.gui2.actions import InterfaceAction
@ -17,21 +17,28 @@ from calibre.gui2.dialogs.confirm_delete import confirm
class StoreAction(InterfaceAction):
name = 'Store'
action_spec = (_('Get books'), 'store.png', None, None)
action_spec = (_('Get books'), 'store.png', None, _('G'))
action_add_menu = True
action_menu_clone_qaction = _('Search for ebooks')
def genesis(self):
self.qaction.triggered.connect(self.do_search)
self.store_menu = QMenu()
self.load_menu()
def load_menu(self):
self.store_menu.clear()
self.store_menu.addAction(_('Search for ebooks'), self.search)
self.store_menu.addAction(_('Search for this author'), self.search_author)
self.store_menu.addAction(_('Search for this title'), self.search_title)
self.store_menu.addAction(_('Search for this book'), self.search_author_title)
self.store_menu = self.qaction.menu()
cm = partial(self.create_menu_action, self.store_menu)
for x, t in [('author', _('author')), ('title', _('title')),
('book', _('book'))]:
func = getattr(self, 'search_%s'%('author_title' if x == 'book'
else x))
ac = cm(x, _('Search for this %s'%t), triggered=func)
setattr(self, 'action_search_by_'+x, ac)
self.store_menu.addSeparator()
self.store_list_menu = self.store_menu.addMenu(_('Stores'))
self.load_menu()
self.store_menu.addSeparator()
cm('choose stores', _('Choose stores'), triggered=self.choose)
def load_menu(self):
self.store_list_menu.clear()
icon = QIcon()
icon.addFile(I('donate.png'), QSize(16, 16))
for n, p in sorted(self.gui.istores.items(), key=lambda x: x[0].lower()):
@ -39,9 +46,6 @@ class StoreAction(InterfaceAction):
self.store_list_menu.addAction(icon, n, partial(self.open_store, p))
else:
self.store_list_menu.addAction(n, partial(self.open_store, p))
self.store_menu.addSeparator()
self.store_menu.addAction(_('Choose stores'), self.choose)
self.qaction.setMenu(self.store_menu)
def do_search(self):
return self.search()

View File

@ -6,8 +6,9 @@ __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import os, time
from functools import partial
from PyQt4.Qt import Qt, QMenu, QAction, pyqtSignal
from PyQt4.Qt import Qt, QAction, pyqtSignal
from calibre.constants import isosx
from calibre.gui2 import error_dialog, Dispatcher, question_dialog, config, \
@ -35,45 +36,41 @@ class ViewAction(InterfaceAction):
name = 'View'
action_spec = (_('View'), 'view.png', None, _('V'))
action_type = 'current'
action_add_menu = True
action_menu_clone_qaction = True
def genesis(self):
self.persistent_files = []
self.qaction.triggered.connect(self.view_book)
self.view_menu = QMenu()
ac = self.view_specific_action = QAction(_('View specific format'),
self.gui)
self.qaction.setMenu(self.view_menu)
ac.setShortcut(Qt.AltModifier+Qt.Key_V)
ac.triggered.connect(self.view_specific_format, type=Qt.QueuedConnection)
ac = self.view_action = QAction(self.qaction.icon(),
self.qaction.text(), self.gui)
ac.triggered.connect(self.view_book)
ac = self.create_action(spec=(_('Read a random book'), 'catalog.png',
None, None), attr='action_pick_random')
ac.triggered.connect(self.view_random)
ac = self.clear_history_action = QAction(
_('Clear recently viewed list'), self.gui)
ac.triggered.connect(self.clear_history)
self.view_action = self.menuless_qaction
self.view_menu = self.qaction.menu()
cm = partial(self.create_menu_action, self.view_menu)
self.view_specific_action = cm('specific', _('View specific format'),
shortcut='Alt+V', triggered=self.view_specific_format)
self.action_pick_random = cm('pick random', _('Read a random book'),
icon='random.png', triggered=self.view_random)
self.clear_sep1 = self.view_menu.addSeparator()
self.clear_sep2 = self.view_menu.addSeparator()
self.clear_history_action = cm('clear history',
_('Clear recently viewed list'), triggered=self.clear_history)
self.history_actions = [self.clear_sep1]
def initialization_complete(self):
self.build_menus(self.gui.current_db)
def build_menus(self, db):
self.view_menu.clear()
self.view_menu.addAction(self.view_action)
self.view_menu.addAction(self.view_specific_action)
self.view_menu.addSeparator()
self.view_menu.addAction(self.action_pick_random)
for ac in self.history_actions:
self.view_menu.removeAction(ac)
self.history_actions = []
history = db.prefs.get('gui_view_history', [])
if history:
self.view_menu.addSeparator()
self.view_menu.insertAction(self.clear_sep2, self.clear_sep1)
self.history_actions.append(self.clear_sep1)
for id_, title in history:
ac = HistoryAction(id_, title, self.view_menu)
self.view_menu.addAction(ac)
self.view_menu.insertAction(self.clear_sep2, ac)
ac.view_historical.connect(self.view_historical)
self.view_menu.addSeparator()
self.view_menu.addAction(self.clear_history_action)
self.history_actions.append(ac)
def clear_history(self):
db = self.gui.current_db
@ -207,7 +204,7 @@ class ViewAction(InterfaceAction):
self._view_books([index])
def view_random(self, *args):
self.gui.iactions['Choose Library'].pick_random()
self.gui.iactions['Pick Random Book'].pick_random()
self._view_books([self.gui.library_view.currentIndex()])
def _view_calibre_books(self, ids):

View File

@ -23,6 +23,7 @@ from calibre.gui2 import (config, open_local_file, open_url, pixmap_to_data,
gprefs)
from calibre.utils.icu import sort_key
from calibre.utils.formatter import EvalFormatter
from calibre.utils.date import is_date_undefined
def render_html(mi, css, vertical, widget, all_fields=False): # {{{
table = render_data(mi, all_fields=all_fields,
@ -163,6 +164,10 @@ def render_data(mi, use_roman_numbers=True, all_fields=False):
val = _('Book %(sidx)s of <span class="series_name">%(series)s</span>')%dict(
sidx=fmt_sidx(sidx, use_roman=use_roman_numbers),
series=prepare_string_for_xml(getattr(mi, field)))
elif metadata['datatype'] == 'datetime':
aval = getattr(mi, field)
if is_date_undefined(aval):
continue
ans.append((field, u'<td class="title">%s</td><td>%s</td>'%(name, val)))

View File

@ -6,11 +6,9 @@ __license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
from PyQt4.Qt import Qt
from calibre.gui2.convert.mobi_output_ui import Ui_Form
from calibre.gui2.convert import Widget
from calibre.gui2.widgets import FontFamilyModel
font_family_model = None
@ -26,11 +24,13 @@ class PluginWidget(Widget, Ui_Form):
['prefer_author_sort', 'rescale_images', 'toc_title',
'mobi_ignore_margins', 'mobi_toc_at_start',
'dont_compress', 'no_inline_toc',
'masthead_font','personal_doc', 'mobi_navpoints_only_deepest']
'personal_doc']#, 'mobi_navpoints_only_deepest']
)
from calibre.utils.fonts import fontconfig
self.db, self.book_id = db, book_id
'''
from calibre.utils.fonts import fontconfig
global font_family_model
if font_family_model is None:
font_family_model = FontFamilyModel()
@ -46,9 +46,11 @@ class PluginWidget(Widget, Ui_Form):
self.font_family_model = font_family_model
self.opt_masthead_font.setModel(self.font_family_model)
'''
self.initialize_options(get_option, get_help, db, book_id)
'''
def set_value_handler(self, g, val):
if unicode(g.objectName()) in 'opt_masthead_font':
idx = -1
@ -59,3 +61,4 @@ class PluginWidget(Widget, Ui_Form):
g.setCurrentIndex(idx)
return True
return False
'''

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>521</width>
<height>331</height>
<height>342</height>
</rect>
</property>
<property name="windowTitle">
@ -55,22 +55,12 @@
</property>
</widget>
</item>
<item row="9" column="0" colspan="2">
<item row="8" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Kindle options</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Periodical masthead font:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="opt_masthead_font"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@ -101,7 +91,7 @@
</layout>
</widget>
</item>
<item row="10" column="0">
<item row="9" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
@ -128,13 +118,6 @@
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="opt_mobi_navpoints_only_deepest">
<property name="text">
<string>Use only &amp;lowest level of items in the TOC for chapter-to-chapter navigation</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>

View File

@ -0,0 +1,124 @@
__license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
from PyQt4.QtCore import Qt, QString
from PyQt4.QtGui import QDialog, QListWidgetItem
from calibre.gui2.dialogs.device_category_editor_ui import Ui_DeviceCategoryEditor
from calibre.gui2 import question_dialog, error_dialog
class ListWidgetItem(QListWidgetItem):
def __init__(self, txt):
QListWidgetItem.__init__(self, txt)
self.initial_value = QString(txt)
self.current_value = QString(txt)
self.previous_value = QString(txt)
def data(self, role):
if role == Qt.DisplayRole:
if self.initial_value != self.current_value:
return _('%(curr)s (was %(initial)s)')%dict(
curr=self.current_value, initial=self.initial_value)
else:
return self.current_value
elif role == Qt.EditRole:
return self.current_value
else:
return QListWidgetItem.data(self, role)
def setData(self, role, data):
if role == Qt.EditRole:
self.previous_value = self.current_value
self.current_value = data.toString()
QListWidgetItem.setData(self, role, data)
def text(self):
return self.current_value
def initial_text(self):
return self.initial_value
def previous_text(self):
return self.previous_value
def setText(self, txt):
self.current_value = txt
QListWidgetItem.setText(txt)
class DeviceCategoryEditor(QDialog, Ui_DeviceCategoryEditor):
def __init__(self, window, tag_to_match, data, key):
QDialog.__init__(self, window)
Ui_DeviceCategoryEditor.__init__(self)
self.setupUi(self)
# Remove help icon on title bar
icon = self.windowIcon()
self.setWindowFlags(self.windowFlags()&(~Qt.WindowContextHelpButtonHint))
self.setWindowIcon(icon)
self.to_rename = {}
self.to_delete = set([])
self.original_names = {}
self.all_tags = {}
for k,v in data:
self.all_tags[v] = k
self.original_names[k] = v
for tag in sorted(self.all_tags.keys(), key=key):
item = ListWidgetItem(tag)
item.setData(Qt.UserRole, self.all_tags[tag])
item.setFlags (item.flags() | Qt.ItemIsEditable)
self.available_tags.addItem(item)
if tag_to_match is not None:
items = self.available_tags.findItems(tag_to_match, Qt.MatchExactly)
if len(items) == 1:
self.available_tags.setCurrentItem(items[0])
self.delete_button.clicked.connect(self.delete_tags)
self.rename_button.clicked.connect(self.rename_tag)
self.available_tags.itemDoubleClicked.connect(self._rename_tag)
self.available_tags.itemChanged.connect(self.finish_editing)
def finish_editing(self, item):
if not item.text():
error_dialog(self, _('Item is blank'),
_('An item cannot be set to nothing. Delete it instead.')).exec_()
item.setText(item.previous_text())
return
if item.text() != item.initial_text():
id_ = item.data(Qt.UserRole).toInt()[0]
self.to_rename[id_] = unicode(item.text())
def rename_tag(self):
item = self.available_tags.currentItem()
self._rename_tag(item)
def _rename_tag(self, item):
if item is None:
error_dialog(self, _('No item selected'),
_('You must select one item from the list of Available items.')).exec_()
return
self.available_tags.editItem(item)
def delete_tags(self):
deletes = self.available_tags.selectedItems()
if not deletes:
error_dialog(self, _('No items selected'),
_('You must select at least one item from the list.')).exec_()
return
ct = ', '.join([unicode(item.text()) for item in deletes])
if not question_dialog(self, _('Are you sure?'),
'<p>'+_('Are you sure you want to delete the following items?')+'<br>'+ct):
return
row = self.available_tags.row(deletes[0])
for item in deletes:
(id,ign) = item.data(Qt.UserRole).toInt()
self.to_delete.add(id)
self.available_tags.takeItem(self.available_tags.row(item))
if row >= self.available_tags.count():
row = self.available_tags.count() - 1
if row >= 0:
self.available_tags.scrollToItem(self.available_tags.item(row))

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DeviceCategoryEditor</class>
<widget class="QDialog" name="DeviceCategoryEditor">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>397</width>
<height>335</height>
</rect>
</property>
<property name="windowTitle">
<string>Category Editor</string>
</property>
<property name="windowIcon">
<iconset>
<normaloff>:/images/chapters.png</normaloff>:/images/chapters.png</iconset>
</property>
<layout class="QGridLayout">
<item row="0" column="0">
<layout class="QVBoxLayout">
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Items in use</string>
</property>
<property name="buddy">
<cstring>available_tags</cstring>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QToolButton" name="delete_button">
<property name="toolTip">
<string>Delete item from database. This will unapply the item from all books and then remove it from the database.</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normaloff>:/images/trash.png</normaloff>:/images/trash.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="rename_button">
<property name="toolTip">
<string>Rename the item in every book where it is used.</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normaloff>:/images/edit_input.png</normaloff>:/images/edit_input.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="shortcut">
<string>Ctrl+S</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="available_tags">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="1" column="0" colspan="2">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>DeviceCategoryEditor</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>DeviceCategoryEditor</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -1,16 +1,17 @@
__license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
from PyQt4.QtCore import Qt, QString
from PyQt4.QtGui import QDialog, QListWidgetItem
from PyQt4.Qt import (Qt, QDialog, QTableWidgetItem, QIcon, QByteArray,
QString, QSize)
from calibre.gui2.dialogs.tag_list_editor_ui import Ui_TagListEditor
from calibre.gui2 import question_dialog, error_dialog
from calibre.gui2 import question_dialog, error_dialog, gprefs
from calibre.utils.icu import sort_key
class ListWidgetItem(QListWidgetItem):
class NameTableWidgetItem(QTableWidgetItem):
def __init__(self, txt):
QListWidgetItem.__init__(self, txt)
QTableWidgetItem.__init__(self, txt)
self.initial_value = QString(txt)
self.current_value = QString(txt)
self.previous_value = QString(txt)
@ -25,13 +26,13 @@ class ListWidgetItem(QListWidgetItem):
elif role == Qt.EditRole:
return self.current_value
else:
return QListWidgetItem.data(self, role)
return QTableWidgetItem.data(self, role)
def setData(self, role, data):
if role == Qt.EditRole:
self.previous_value = self.current_value
self.current_value = data.toString()
QListWidgetItem.setData(self, role, data)
QTableWidgetItem.setData(self, role, data)
def text(self):
return self.current_value
@ -44,42 +45,138 @@ class ListWidgetItem(QListWidgetItem):
def setText(self, txt):
self.current_value = txt
QListWidgetItem.setText(txt)
QTableWidgetItem.setText(txt)
def __ge__(self, other):
return sort_key(unicode(self.text())) >= sort_key(unicode(other.text()))
def __lt__(self, other):
return sort_key(unicode(self.text())) < sort_key(unicode(other.text()))
class CountTableWidgetItem(QTableWidgetItem):
def __init__(self, count):
QTableWidgetItem.__init__(self, str(count))
self._count = count
def __ge__(self, other):
return self._count >= other._count
def __lt__(self, other):
return self._count < other._count
class TagListEditor(QDialog, Ui_TagListEditor):
def __init__(self, window, tag_to_match, data, key):
def __init__(self, window, cat_name, tag_to_match, data, sorter):
QDialog.__init__(self, window)
Ui_TagListEditor.__init__(self)
self.setupUi(self)
# Put the category name into the title bar
t = self.windowTitle()
self.setWindowTitle(t + ' (' + cat_name + ')')
# Remove help icon on title bar
icon = self.windowIcon()
self.setWindowFlags(self.windowFlags()&(~Qt.WindowContextHelpButtonHint))
self.setWindowIcon(icon)
# Get saved geometry info
try:
self.table_column_widths = \
gprefs.get('tag_list_editor_table_widths', None)
except:
pass
# initialization
self.to_rename = {}
self.to_delete = set([])
self.original_names = {}
self.all_tags = {}
self.counts = {}
for k,v in data:
for k,v,count in data:
self.all_tags[v] = k
self.counts[v] = count
self.original_names[k] = v
for tag in sorted(self.all_tags.keys(), key=key):
item = ListWidgetItem(tag)
item.setData(Qt.UserRole, self.all_tags[tag])
item.setFlags (item.flags() | Qt.ItemIsEditable)
self.available_tags.addItem(item)
if tag_to_match is not None:
items = self.available_tags.findItems(tag_to_match, Qt.MatchExactly)
if len(items) == 1:
self.available_tags.setCurrentItem(items[0])
# Set up the column headings
self.down_arrow_icon = QIcon(I('arrow-down.png'))
self.up_arrow_icon = QIcon(I('arrow-up.png'))
self.blank_icon = QIcon(I('blank.png'))
self.table.setColumnCount(2)
self.name_col = QTableWidgetItem(_('Tag'))
self.table.setHorizontalHeaderItem(0, self.name_col)
self.name_col.setIcon(self.up_arrow_icon)
self.count_col = QTableWidgetItem(_('Count'))
self.table.setHorizontalHeaderItem(1, self.count_col)
self.count_col.setIcon(self.blank_icon)
# Capture clicks on the horizontal header to sort the table columns
hh = self.table.horizontalHeader();
hh.setClickable(True)
hh.sectionClicked.connect(self.header_clicked)
hh.sectionResized.connect(self.table_column_resized)
self.name_order = 0
self.count_order = 1
# Add the data
select_item = None
self.table.setRowCount(len(self.all_tags))
for row,tag in enumerate(sorted(self.all_tags.keys(), key=sorter)):
item = NameTableWidgetItem(tag)
item.setData(Qt.UserRole, self.all_tags[tag])
item.setFlags (item.flags() | Qt.ItemIsSelectable | Qt.ItemIsEditable)
self.table.setItem(row, 0, item)
if tag == tag_to_match:
select_item = item
item = CountTableWidgetItem(self.counts[tag])
# only the name column can be selected
item.setFlags (item.flags() & ~Qt.ItemIsSelectable)
self.table.setItem(row, 1, item)
# Scroll to the selected item if there is one
if select_item is not None:
self.table.setCurrentItem(select_item)
self.delete_button.clicked.connect(self.delete_tags)
self.rename_button.clicked.connect(self.rename_tag)
self.available_tags.itemDoubleClicked.connect(self._rename_tag)
self.available_tags.itemChanged.connect(self.finish_editing)
self.table.itemDoubleClicked.connect(self._rename_tag)
self.table.itemChanged.connect(self.finish_editing)
self.buttonBox.accepted.connect(self.accepted)
try:
geom = gprefs.get('tag_list_editor_dialog_geometry', None)
if geom is not None:
self.restoreGeometry(QByteArray(geom))
else:
self.resize(self.sizeHint()+QSize(150, 100))
except:
pass
def table_column_resized(self, col, old, new):
self.table_column_widths = []
for c in range(0, self.table.columnCount()):
self.table_column_widths.append(self.table.columnWidth(c))
def resizeEvent(self, *args):
QDialog.resizeEvent(self, *args)
if self.table_column_widths is not None:
for c,w in enumerate(self.table_column_widths):
self.table.setColumnWidth(c, w)
else:
# the vertical scroll bar might not be rendered, so might not yet
# have a width. Assume 25. Not a problem because user-changed column
# widths will be remembered
w = self.table.width() - 25 - self.table.verticalHeader().width()
w /= self.table.columnCount()
for c in range(0, self.table.columnCount()):
self.table.setColumnWidth(c, w)
def save_geometry(self):
gprefs['tag_list_editor_table_widths'] = self.table_column_widths
gprefs['tag_list_editor_dialog_geometry'] = bytearray(self.saveGeometry())
def finish_editing(self, item):
if not item.text():
@ -92,7 +189,7 @@ class TagListEditor(QDialog, Ui_TagListEditor):
self.to_rename[id_] = unicode(item.text())
def rename_tag(self):
item = self.available_tags.currentItem()
item = self.table.item(self.table.currentRow(), 0)
self._rename_tag(item)
def _rename_tag(self, item):
@ -100,25 +197,48 @@ class TagListEditor(QDialog, Ui_TagListEditor):
error_dialog(self, _('No item selected'),
_('You must select one item from the list of Available items.')).exec_()
return
self.available_tags.editItem(item)
self.table.editItem(item)
def delete_tags(self):
deletes = self.available_tags.selectedItems()
deletes = self.table.selectedItems()
if not deletes:
error_dialog(self, _('No items selected'),
_('You must select at least one items from the list.')).exec_()
_('You must select at least one item from the list.')).exec_()
return
ct = ', '.join([unicode(item.text()) for item in deletes])
if not question_dialog(self, _('Are your sure?'),
'<p>'+_('Are you certain you want to delete the following items?')+'<br>'+ct):
if not question_dialog(self, _('Are you sure?'),
'<p>'+_('Are you sure you want to delete the following items?')+'<br>'+ct):
return
row = self.available_tags.row(deletes[0])
row = self.table.row(deletes[0])
for item in deletes:
(id,ign) = item.data(Qt.UserRole).toInt()
self.to_delete.add(id)
self.available_tags.takeItem(self.available_tags.row(item))
self.table.removeRow(self.table.row(item))
if row >= self.available_tags.count():
row = self.available_tags.count() - 1
if row >= self.table.rowCount():
row = self.table.rowCount() - 1
if row >= 0:
self.available_tags.scrollToItem(self.available_tags.item(row))
self.table.scrollToItem(self.table.item(row, 0))
def header_clicked(self, idx):
if idx == 0:
self.do_sort_by_name()
else:
self.do_sort_by_count()
def do_sort_by_name(self):
self.name_order = 1 if self.name_order == 0 else 0
self.table.sortByColumn(0, self.name_order)
self.name_col.setIcon(self.down_arrow_icon if self.name_order
else self.up_arrow_icon)
self.count_col.setIcon(self.blank_icon)
def do_sort_by_count (self):
self.count_order = 1 if self.count_order == 0 else 0
self.table.sortByColumn(1, self.count_order)
self.count_col.setIcon(self.down_arrow_icon if self.count_order
else self.up_arrow_icon)
self.name_col.setIcon(self.blank_icon)
def accepted(self):
self.save_geometry()

View File

@ -20,33 +20,6 @@
<layout class="QGridLayout">
<item row="0" column="0">
<layout class="QVBoxLayout">
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Items in use</string>
</property>
<property name="buddy">
<cstring>available_tags</cstring>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
@ -97,7 +70,7 @@
</layout>
</item>
<item>
<widget class="QListWidget" name="available_tags">
<widget class="QTableWidget" name="table">
<property name="alternatingRowColors">
<bool>true</bool>
</property>

View File

@ -289,9 +289,8 @@ class TemplateDialog(QDialog, Ui_TemplateDialog):
self.documentation.clear()
if name in self.funcs:
self.documentation.setPlainText(self.funcs[name].doc)
if name in self.builtins:
if name in self.builtin_source_dict:
self.source_code.setPlainText(self.builtin_source_dict[name])
if name in self.builtins and name in self.builtin_source_dict:
self.source_code.setPlainText(self.builtin_source_dict[name])
else:
self.source_code.setPlainText(self.funcs[name].program_text)

View File

@ -66,8 +66,8 @@ class EbookDownload(object):
raise Exception(_('Not a support ebook format.'))
from calibre.ebooks.metadata.meta import get_metadata
with open(filename) as f:
mi = get_metadata(f, ext)
with open(filename, 'rb') as f:
mi = get_metadata(f, ext, force_read_metadata=True)
mi.tags.extend(tags)
id = gui.library_view.model().db.create_book_entry(mi)

View File

@ -218,7 +218,7 @@ class LayoutMixin(object): # {{{
self.bd_splitter = Splitter('book_details_splitter',
_('Book Details'), I('book.png'),
orientation=Qt.Vertical, parent=self, side_index=1,
shortcut=_('Alt+D'))
shortcut=_('Shift+Alt+D'))
self.bd_splitter.addWidget(self.stack)
self.bd_splitter.addWidget(self.book_details)
self.bd_splitter.setCollapsible(self.bd_splitter.other_index, False)

View File

@ -0,0 +1,71 @@
#!/usr/bin/env python
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
from __future__ import (unicode_literals, division, absolute_import,
print_function)
__license__ = 'GPL v3'
__copyright__ = '2011, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
from collections import OrderedDict
from PyQt4.Qt import (QObject, QKeySequence)
from calibre.utils.config import JSONConfig
from calibre.constants import DEBUG
from calibre import prints
class NameConflict(ValueError):
pass
class Manager(QObject):
def __init__(self, parent=None):
QObject.__init__(self, parent)
self.config = JSONConfig('shortcuts/main')
self.custom_keys_map = {}
self.shortcuts = OrderedDict()
self.keys_map = {}
for unique_name, keys in self.config.get(
'map', {}).iteritems():
self.custom_keys_map[unique_name] = tuple(keys)
def register_shortcut(self, unique_name, name, default_keys=(),
description=None, action=None):
if unique_name in self.shortcuts:
name = self.shortcuts[unique_name]['name']
raise NameConflict('Shortcut for %r already registered by %s'%(
unique_name, name))
shortcut = {'name':name, 'desc':description, 'action': action,
'default_keys':tuple(default_keys)}
self.shortcuts[unique_name] = shortcut
def finalize(self):
seen = {}
for unique_name, shortcut in self.shortcuts.iteritems():
custom_keys = self.custom_keys_map.get(unique_name, None)
if custom_keys is None:
candidates = shortcut['default_keys']
else:
candidates = custom_keys
keys = []
for x in candidates:
ks = QKeySequence(x, QKeySequence.PortableText)
x = unicode(ks.toString(QKeySequence.PortableText))
if x in seen:
if DEBUG:
prints('Key %r for shortcut %s is already used by'
' %s, ignoring'%(x, shortcut['name'], seen[x]['name']))
continue
seen[x] = shortcut
keys.append(ks)
keys = tuple(keys)
#print (111111, unique_name, candidates, keys)
self.keys_map[unique_name] = keys
ac = shortcut['action']
if ac is not None:
ac.setShortcuts(list(keys))

View File

@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
from functools import partial
from PyQt4.Qt import (QIcon, Qt, QWidget, QSize,
pyqtSignal, QToolButton, QMenu,
pyqtSignal, QToolButton, QMenu, QAction,
QObject, QVBoxLayout, QSizePolicy, QLabel, QHBoxLayout, QActionGroup)
@ -178,7 +178,12 @@ class SearchBar(QWidget): # {{{
x.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
parent.advanced_search_button = x = QToolButton(self)
parent.advanced_search_button.setShortcut(_("Shift+Ctrl+F"))
parent.advanced_search_toggle_action = ac = QAction(parent)
parent.addAction(ac)
parent.keyboard.register_shortcut('advanced search toggle',
_('Advanced search'), default_keys=(_("Shift+Ctrl+F"),),
action=ac)
ac.triggered.connect(x.click)
x.setIcon(QIcon(I('search.png')))
l.addWidget(x)
x.setToolTip(_("Advanced search"))

View File

@ -310,6 +310,12 @@ class CcNumberDelegate(QStyledItemDelegate): # {{{
editor.setDecimals(2)
return editor
def setModelData(self, editor, model, index):
val = editor.value()
if val == editor.minimum():
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']]

View File

@ -376,9 +376,12 @@ class SearchBoxMixin(object): # {{{
self.search.clear()
self.search.setMaximumWidth(self.width()-150)
self.action_focus_search = QAction(self)
shortcuts = QKeySequence.keyBindings(QKeySequence.Find)
shortcuts = list(shortcuts) + [QKeySequence('/'), QKeySequence('Alt+S')]
self.action_focus_search.setShortcuts(shortcuts)
shortcuts = list(
map(lambda x:unicode(x.toString()),
QKeySequence.keyBindings(QKeySequence.Find)))
shortcuts += ['/', 'Alt+S']
self.keyboard.register_shortcut('start search', _('Start search'),
default_keys=shortcuts, action=self.action_focus_search)
self.action_focus_search.triggered.connect(self.focus_search_box)
self.addAction(self.action_focus_search)
self.search.setStatusTip(re.sub(r'<\w+>', ' ',

View File

@ -500,6 +500,7 @@ class TagsModel(QAbstractItemModel): # {{{
if i < len(components)-1:
t = copy.copy(tag)
t.original_name = '.'.join(components[:i+1])
t.count = 0
if key != 'search':
# This 'manufactured' intermediate node can
# be searched, but cannot be edited.
@ -524,6 +525,12 @@ class TagsModel(QAbstractItemModel): # {{{
for category in self.category_nodes:
process_one_node(category, state_map.get(category.category_key, {}))
def get_category_editor_data(self, category):
for cat in self.root_item.children:
if cat.category_key == category:
return [(t.tag.id, t.tag.original_name, t.tag.count)
for t in cat.child_tags() if t.tag.count > 0]
# Drag'n Drop {{{
def mimeTypes(self):
return ["application/calibre+from_library",

View File

@ -196,26 +196,20 @@ class TagBrowserMixin(object): # {{{
Open the 'manage_X' dialog where X == category. If tag is not None, the
dialog will position the editor on that item.
'''
db=self.library_view.model().db
if category == 'tags':
result = db.get_tags_with_ids()
key = sort_key
elif category == 'series':
result = db.get_series_with_ids()
tags_model = self.tags_view.model()
result = tags_model.get_category_editor_data(category)
if result is None:
return
if category == 'series':
key = lambda x:sort_key(title_sort(x))
elif category == 'publisher':
result = db.get_publishers_with_ids()
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 = db.get_custom_items_with_ids(label=cc_label)
else:
result = []
else:
key = sort_key
d = TagListEditor(self, tag_to_match=tag, data=result, key=key)
db=self.library_view.model().db
d = TagListEditor(self, cat_name=db.field_metadata[category]['name'],
tag_to_match=tag, data=result, sorter=key)
d.exec_()
if d.result() == d.Accepted:
to_rename = d.to_rename # dict of old id to new name
@ -232,7 +226,8 @@ class TagBrowserMixin(object): # {{{
elif category == 'publisher':
rename_func = db.rename_publisher
delete_func = db.delete_publisher_using_id
else:
else: # must be custom
cc_label = db.field_metadata[category]['label']
rename_func = partial(db.rename_custom_item, label=cc_label)
delete_func = partial(db.delete_custom_item_using_id, label=cc_label)
m = self.tags_view.model()

View File

@ -16,7 +16,7 @@ from collections import OrderedDict
from PyQt4.Qt import (Qt, SIGNAL, QTimer, QHelpEvent, QAction,
QMenu, QIcon, pyqtSignal, QUrl,
QDialog, QSystemTrayIcon, QApplication, QKeySequence)
QDialog, QSystemTrayIcon, QApplication)
from calibre import prints
from calibre.constants import __appname__, isosx
@ -40,6 +40,7 @@ from calibre.gui2.init import LibraryViewMixin, LayoutMixin
from calibre.gui2.search_box import SearchBoxMixin, SavedSearchBoxMixin
from calibre.gui2.search_restriction_mixin import SearchRestrictionMixin
from calibre.gui2.tag_browser.ui import TagBrowserMixin
from calibre.gui2.keyboard import Manager
class Listener(Thread): # {{{
@ -104,6 +105,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
def __init__(self, opts, parent=None, gui_debug=None):
global _gui
MainWindow.__init__(self, opts, parent=parent, disable_automatic_gc=True)
self.keyboard = Manager(self)
_gui = self
self.opts = opts
self.device_connected = None
@ -238,7 +240,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
self.eject_action.setEnabled(False)
self.addAction(self.quit_action)
self.system_tray_menu.addAction(self.quit_action)
self.quit_action.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_Q))
self.keyboard.register_shortcut('quit calibre', _('Quit calibre'),
default_keys=('Ctrl+Q',), action=self.quit_action)
self.system_tray_icon.setContextMenu(self.system_tray_menu)
self.connect(self.quit_action, SIGNAL('triggered(bool)'), self.quit)
self.connect(self.donate_action, SIGNAL('triggered(bool)'), self.donate)
@ -249,7 +252,9 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
self.esc_action = QAction(self)
self.addAction(self.esc_action)
self.esc_action.setShortcut(QKeySequence(Qt.Key_Escape))
self.keyboard.register_shortcut('clear current search',
_('Clear the current search'), default_keys=('Esc',),
action=self.esc_action)
self.esc_action.triggered.connect(self.esc)
####################### Start spare job server ########################
@ -340,6 +345,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
raise
self.device_manager.set_current_library_uuid(db.library_id)
self.keyboard.finalize()
# Collect cycles now
gc.collect()

View File

@ -1063,9 +1063,16 @@ class Splitter(QSplitter):
self.action_toggle = QAction(QIcon(icon), _('Toggle') + ' ' + label,
self)
self.action_toggle.triggered.connect(self.toggle_triggered)
self.action_toggle.setShortcut(shortcut)
if parent is not None:
parent.addAction(self.action_toggle)
if hasattr(parent, 'keyboard'):
parent.keyboard.register_shortcut('splitter %s %s'%(name,
label), unicode(self.action_toggle.text()),
default_keys=(shortcut,), action=self.action_toggle)
else:
self.action_toggle.setShortcut(shortcut)
else:
self.action_toggle.setShortcut(shortcut)
def toggle_triggered(self, *args):
self.toggle_side_pane()

View File

@ -1810,6 +1810,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
for t in categories[sc]:
user_categories[c].append([t.name, sc, 0])
gst_icon = icon_map['gst'] if icon_map else None
for user_cat in sorted(user_categories.keys(), key=sort_key):
items = []
names_seen = {}
@ -1825,7 +1826,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
t.tooltip = t.tooltip.replace(')', ', ' + label + ')')
else:
t = copy.copy(taglist[label][n])
t.icon = icon_map['gst']
t.icon = gst_icon
names_seen[t.name] = t
items.append(t)
else:
@ -3023,7 +3024,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
format = os.path.splitext(path)[1][1:].lower()
stream = path if hasattr(path, 'read') else lopen(path, 'rb')
stream.seek(0)
mi = get_metadata(stream, format, use_libprs_metadata=False)
mi = get_metadata(stream, format, use_libprs_metadata=False,
force_read_metadata=True)
stream.seek(0)
if mi.series_index is None:
mi.series_index = self.get_next_series_num_for(mi.series)

View File

@ -121,6 +121,9 @@ def config(defaults=None):
help=_('Convert paths to lowercase.'))
x('replace_whitespace', default=False,
help=_('Replace whitespace with underscores.'))
x('single_dir', default=False,
help=_('Save into a single directory, ignoring the template'
' directory structure'))
return c
def preprocess_template(template):
@ -131,7 +134,7 @@ def preprocess_template(template):
template = template.decode(preferred_encoding, 'replace')
return template
class SafeFormat(TemplateFormatter):
class Formatter(TemplateFormatter):
'''
Provides a format function that substitutes '' for any missing value
'''
@ -165,7 +168,7 @@ class SafeFormat(TemplateFormatter):
def get_components(template, mi, id, timefmt='%b %Y', length=250,
sanitize_func=ascii_filename, replace_whitespace=False,
to_lowercase=False):
to_lowercase=False, safe_format=True):
tsorder = tweaks['save_template_title_series_sorting']
format_args = FORMAT_ARGS.copy()
@ -225,8 +228,11 @@ def get_components(template, mi, id, timefmt='%b %Y', length=250,
format_args[key] = unicode(format_args[key])
else:
format_args[key] = ''
components = SafeFormat().safe_format(template, format_args,
if safe_format:
components = Formatter().safe_format(template, format_args,
'G_C-EXCEPTION!', mi)
else:
components = Formatter().unsafe_format(template, format_args, mi)
components = [x.strip() for x in components.split('/')]
components = [sanitize_func(x) for x in components if x]
if not components:
@ -283,10 +289,20 @@ def do_save_book_to_disk(id_, mi, cover, plugboards,
if not formats:
return True, id_, mi.title
components = get_components(opts.template, mi, id_, opts.timefmt, length,
try:
components = get_components(opts.template, mi, id_, opts.timefmt, length,
ascii_filename if opts.asciiize else sanitize_file_name_unicode,
to_lowercase=opts.to_lowercase,
replace_whitespace=opts.replace_whitespace)
replace_whitespace=opts.replace_whitespace, safe_format=False)
except Exception, e:
raise ValueError(_('Failed to calculate path for '
'save to disk. Template: %s\n'
'Error: %s'%(opts.template, e)))
if opts.single_dir:
components = components[-1:]
if not components:
raise ValueError(_('Template evaluation resulted in no'
' path components. Template: %s')%opts.template)
base_path = os.path.join(root, *components)
base_name = os.path.basename(base_path)
dirpath = os.path.dirname(base_path)

View File

@ -65,6 +65,8 @@ to the latest code, use the command::
bzr merge
You can also download the source code as a tarball (archive) from `here <http://status.calibre-ebook.com/dist/src>`_.
Submitting your changes to be included
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -508,7 +508,7 @@ There are three possible things I know of, that can cause this:
* You are using a Wacom branded mouse. There is an incompatibility between Wacom mice and the graphics toolkit |app| uses. Try using a non-Wacom mouse.
* You have invalid files in your fonts folder. If this is the case, start |app| in debug mode as desribed in the previous answer and you will get messages about invalid files in :file:`C:\\Windows\\fonts`. Delete these files and you will be fine.
* Sometimes if some software has installed lots of new files in your fonts folder, |app| can crash until it finishes indexing them. Just start |app|, then leave it alone for about 20 minutes, without clicking on anything. After that you should be able to use |app| as normal.
|app| is not starting on OS X?

View File

@ -527,6 +527,8 @@ Calibre has several keyboard shortcuts to save you time and mouse movement. Thes
- Remove selected Books
* - :kbd:`E`
- Edit metadata of selected books
* - :kbd:`G`
- Get Books
* - :kbd:`I`
- Show book details
* - :kbd:`M`
@ -545,6 +547,8 @@ Calibre has several keyboard shortcuts to save you time and mouse movement. Thes
- Toggle jobs list
* - :kbd:`Alt+Shift+B`
- Toggle Cover Browser
* - :kbd:`Alt+Shift+B`
- Toggle Book Details panel
* - :kbd:`Alt+Shift+T`
- Toggle Tag Browser
* - :kbd:`Alt+A`

View File

@ -263,14 +263,19 @@ The following functions are available in addition to those described in single-f
* ``formats_sizes()`` -- return a comma-separated list of colon_separated items representing sizes in bytes of the formats of a book. You can use the select function to get the size for a specific format. Note that format names are always uppercase, as in EPUB.
* ``has_cover()`` -- return ``Yes`` if the book has a cover, otherwise return the empty string
* ``not(value)`` -- returns the string "1" if the value is empty, otherwise returns the empty string. This function works well with test or first_non_empty. You can have as many values as you want.
* ``merge_lists(list1, list2, separator)`` -- return a list made by merging the items in list1 and list2, removing duplicate items using a case-insensitive compare. If items differ in case, the one in list1 is used. The items in list1 and list2 are separated by separator, as are the items in the returned list.
* ``list_difference(list1, list2, separator)`` -- return a list made by removing from `list1` any item found in `list2`, using a case-insensitive compare. The items in `list1` and `list2` are separated by separator, as are the items in the returned list.
* ``list_intersection(list1, list2, separator)`` -- return a list made by removing from `list1` any item not found in `list2`, using a case-insensitive compare. The items in `list1` and `list2` are separated by separator, as are the items in the returned list.
* ``list_sort(list, direction, separator)`` -- return list sorted using a case-insensitive sort. If `direction` is zero, the list is sorted ascending, otherwise descending. The list items are separated by separator, as are the items in the returned list.
* ``list_union(list1, list2, separator)`` -- return a list made by merging the items in list1 and list2, removing duplicate items using a case-insensitive compare. If items differ in case, the one in list1 is used. The items in list1 and list2 are separated by separator, as are the items in the returned list.
* ``multiply(x, y)`` -- returns x * y. Throws an exception if either x or y are not numbers.
* ``ondevice()`` -- return the string "Yes" if ondevice is set, otherwise return the empty string
* ``or(value, value, ...)`` -- returns the string "1" if any value is not empty, otherwise returns the empty string. This function works well with test or first_non_empty. You can have as many values as you want.
* ``print(a, b, ...)`` -- prints the arguments to standard output. Unless you start calibre from the command line (``calibre-debug -g``), the output will go to a black hole.
* ``raw_field(name)`` -- returns the metadata field named by name without applying any formatting.
* ``strcat(a, b, ...)`` -- can take any number of arguments. Returns a string formed by concatenating all the arguments.
* ``strcat_max(max, string1, prefix2, string2, ...)`` -- Returns a string formed by concatenating the arguments. The returned value is initialized to string1. `Prefix, string` pairs are added to the end of the value as long as the resulting string length is less than `max`. String1 is returned even if string1 is longer than max. You can pass as many `prefix, string` pairs as you wish.
* ``strcmp(x, y, lt, eq, gt)`` -- does a case-insensitive comparison x and y as strings. Returns ``lt`` if x < y. Returns ``eq`` if x == y. Otherwise returns ``gt``.
* ``strlen(a)`` -- Returns the length of the string passed as the argument.
* ``substr(str, start, end)`` -- returns the ``start``'th through the ``end``'th characters of ``str``. The first character in ``str`` is the zero'th character. If end is negative, then it indicates that many characters counting from the right. If end is zero, then it indicates the last character. For example, ``substr('12345', 1, 0)`` returns ``'2345'``, and ``substr('12345', 1, -1)`` returns ``'234'``.
* ``subtract(x, y)`` -- returns x - y. Throws an exception if either x or y are not numbers.
* ``today()`` -- return a date string for today. This value is designed for use in format_date or days_between, but can be manipulated like any other string. The date is in ISO format.

View File

@ -61,11 +61,11 @@ The python implementation of the template functions is passed in a Metadata obje
def generate_template_language_help():
from calibre.utils.formatter_functions import all_builtin_functions
from calibre.utils.formatter_functions import formatter_functions
funcs = defaultdict(dict)
for func in all_builtin_functions:
for func in formatter_functions.get_builtins().values():
class_name = func.__class__.__name__
func_sig = getattr(func, 'doc')
x = func_sig.find(' -- ')

View File

@ -27,6 +27,9 @@ def remove_dir(x):
except:
pass
def app_prefix(prefix):
return '%s_%s_%s'%(__appname__, __version__, prefix)
def base_dir():
global _base_dir
if _base_dir is not None and not os.path.exists(_base_dir):
@ -44,7 +47,7 @@ def base_dir():
_base_dir = td
else:
base = os.environ.get('CALIBRE_TEMP_DIR', None)
prefix = u'%s_%s_tmp_'%(__appname__, __version__)
prefix = app_prefix(u'tmp_')
try:
# First try an ascii path as that is what was done historically
# and we dont want to break working code
@ -60,6 +63,32 @@ def base_dir():
atexit.register(remove_dir, _base_dir)
return _base_dir
def _make_file(suffix, prefix, base):
try:
fd, name = tempfile.mkstemp(suffix, prefix, dir=base)
except UnicodeDecodeError:
global _base_dir
from calibre.constants import filesystem_encoding
base_dir()
if not isinstance(_base_dir, unicode):
_base_dir = _base_dir.decode(filesystem_encoding)
base = base.decode(filesystem_encoding)
fd, name = tempfile.mkstemp(suffix, prefix, dir=dir)
return fd, name
def _make_dir(suffix, prefix, base):
try:
tdir = tempfile.mkdtemp(suffix, prefix, base)
except ValueError:
global _base_dir
from calibre.constants import filesystem_encoding
base_dir()
if not isinstance(_base_dir, unicode):
_base_dir = _base_dir.decode(filesystem_encoding)
base = base.decode(filesystem_encoding)
tdir = tempfile.mkdtemp(suffix, prefix, base)
return tdir
class PersistentTemporaryFile(object):
"""
A file-like object that is a temporary file that is available even after being closed on
@ -72,18 +101,7 @@ class PersistentTemporaryFile(object):
prefix = ""
if dir is None:
dir = base_dir()
try:
fd, name = tempfile.mkstemp(suffix, __appname__+"_"+ __version__+"_" + prefix,
dir=dir)
except UnicodeDecodeError:
global _base_dir
from calibre.constants import filesystem_encoding
base_dir()
if not isinstance(_base_dir, unicode):
_base_dir = _base_dir.decode(filesystem_encoding)
dir = dir.decode(filesystem_encoding)
fd, name = tempfile.mkstemp(suffix, __appname__+"_"+ __version__+"_" + prefix,
dir=dir)
fd, name = _make_file(suffix, prefix, dir)
self._file = os.fdopen(fd, mode)
self._name = name
@ -114,16 +132,7 @@ def PersistentTemporaryDirectory(suffix='', prefix='', dir=None):
'''
if dir is None:
dir = base_dir()
try:
tdir = tempfile.mkdtemp(suffix, __appname__+"_"+ __version__+"_" +prefix, dir)
except ValueError:
global _base_dir
from calibre.constants import filesystem_encoding
base_dir()
if not isinstance(_base_dir, unicode):
_base_dir = _base_dir.decode(filesystem_encoding)
dir = dir.decode(filesystem_encoding)
tdir = tempfile.mkdtemp(suffix, __appname__+"_"+ __version__+"_" +prefix, dir)
tdir = _make_dir(suffix, prefix, dir)
atexit.register(remove_dir, tdir)
return tdir
@ -141,7 +150,7 @@ class TemporaryDirectory(object):
self.keep = keep
def __enter__(self):
self.tdir = tempfile.mkdtemp(self.suffix, __appname__+"_"+ __version__+"_" +self.prefix, self.dir)
self.tdir = _make_dir(self.suffix, self.prefix, self.dir)
return self.tdir
def __exit__(self, *args):
@ -161,9 +170,7 @@ class TemporaryFile(object):
self._file = None
def __enter__(self):
fd, name = tempfile.mkstemp(self.suffix,
__appname__+"_"+ __version__+"_" + self.prefix,
dir=self.dir)
fd, name = _make_file(self.suffix, self.prefix, self.dir)
self._file = os.fdopen(fd, self.mode)
self._name = name
self._file.close()

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2009-11-06 19:11+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Afrikaans <af@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:35+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:36+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ msgstr "Doen absolute niks"
#: /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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Doen absolute niks"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Doen absolute niks"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Doen absolute niks"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Doen absolute niks"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1025,7 +1026,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1033,8 +1034,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1419,6 +1420,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1943,11 +1948,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2959,7 +2966,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3139,10 +3146,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3283,7 +3290,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4438,7 +4445,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5309,72 +5316,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5537,37 +5555,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7259,11 +7277,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9049,20 +9067,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10560,7 +10578,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10895,10 +10913,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13655,7 +13669,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13701,7 +13715,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13817,19 +13831,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13837,7 +13851,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13845,7 +13859,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13853,13 +13867,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14353,53 +14367,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16171,17 +16185,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17717,7 +17731,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17737,14 +17751,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17753,11 +17780,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17775,11 +17802,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17798,12 +17825,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17816,11 +17843,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17848,11 +17875,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17863,11 +17890,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17888,11 +17915,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17912,11 +17939,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17933,11 +17960,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17951,11 +17978,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17968,11 +17995,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18043,11 +18070,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18074,26 +18101,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18112,11 +18139,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18128,11 +18155,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18140,11 +18167,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18156,11 +18183,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18174,11 +18201,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18186,11 +18213,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18199,33 +18226,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18235,11 +18262,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18250,11 +18277,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18266,11 +18293,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2010-01-31 21:37+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Asturian <ast@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:35+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:37+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1028,7 +1029,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1036,8 +1037,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1422,6 +1423,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1946,11 +1951,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2959,7 +2966,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3139,10 +3146,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3283,7 +3290,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4438,7 +4445,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5309,72 +5316,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5537,37 +5555,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7259,11 +7277,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9049,20 +9067,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10560,7 +10578,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10895,10 +10913,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13655,7 +13669,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13701,7 +13715,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13817,19 +13831,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13837,7 +13851,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13845,7 +13859,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13853,13 +13867,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14353,53 +14367,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16171,17 +16185,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17717,7 +17731,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17737,14 +17751,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17753,11 +17780,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17775,11 +17802,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17798,12 +17825,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17816,11 +17843,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17848,11 +17875,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17863,11 +17890,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17888,11 +17915,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17912,11 +17939,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17933,11 +17960,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17951,11 +17978,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17968,11 +17995,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18043,11 +18070,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18074,26 +18101,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18112,11 +18139,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18128,11 +18155,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18140,11 +18167,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18156,11 +18183,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18174,11 +18201,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18186,11 +18213,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18199,33 +18226,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18235,11 +18262,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18250,11 +18277,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18266,11 +18293,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-06-03 05:54+0000\n"
"Last-Translator: Farid Zarbaliyev <faridz13@gmail.com>\n"
"Language-Team: Azerbaijani <az@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:36+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:37+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1025,7 +1026,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1033,8 +1034,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1419,6 +1420,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1943,11 +1948,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2956,7 +2963,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3136,10 +3143,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3280,7 +3287,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4435,7 +4442,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5306,72 +5313,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5534,37 +5552,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7256,11 +7274,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9046,20 +9064,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10557,7 +10575,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10892,10 +10910,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13652,7 +13666,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13698,7 +13712,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13814,19 +13828,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13834,7 +13848,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13842,7 +13856,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13850,13 +13864,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14350,53 +14364,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16168,17 +16182,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17714,7 +17728,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17734,14 +17748,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17750,11 +17777,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17772,11 +17799,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17795,12 +17822,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17813,11 +17840,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17845,11 +17872,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17860,11 +17887,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17885,11 +17912,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17909,11 +17936,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17930,11 +17957,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17948,11 +17975,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17965,11 +17992,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18040,11 +18067,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18071,26 +18098,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18109,11 +18136,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18125,11 +18152,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18137,11 +18164,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18153,11 +18180,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18171,11 +18198,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18183,11 +18210,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18196,33 +18223,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18232,11 +18259,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18247,11 +18274,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18263,11 +18290,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre 0.4.51\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-07-20 18:52+0000\n"
"Last-Translator: Alex Stanev <alex@stanev.org>\n"
"Language-Team: bg\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:37+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:38+0000\n"
"X-Generator: Launchpad (build 13405)\n"
"Generated-By: pygettext.py 1.5\n"
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Не прави абсолютно нищо"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Не прави абсолютно нищо"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Не прави абсолютно нищо"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Не прави абсолютно нищо"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr "Предпочитания"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr "Съхраняване"
@ -1068,7 +1069,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr "Новини"
@ -1076,8 +1077,8 @@ msgstr "Новини"
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr "Каталог"
@ -1462,6 +1463,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1988,11 +1993,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -3004,7 +3011,7 @@ msgstr "Не"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3184,10 +3191,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr "Корица"
@ -3328,7 +3335,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4483,7 +4490,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr "Не е позволено"
@ -5354,72 +5361,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr "Търсене в"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr "Добавяне ..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr "Търсене във всички поддиректории..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr "Няма книги"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr "Не са намерени книги"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr "Няма разрешение"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr "Добавена"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr "Добавянето е неуспешно"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr "Записване..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr "Запазен"
@ -5582,37 +5600,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr "Колекции"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr "Път"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7304,11 +7322,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9094,20 +9112,20 @@ msgstr "Прекъсване..."
msgid "Authors"
msgstr "Автори"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10605,7 +10623,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10940,10 +10958,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr "Няма разрешение"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr "Нямате права за четене на следните файлове:"
@ -13704,7 +13718,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13750,7 +13764,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13866,19 +13880,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13886,7 +13900,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13894,7 +13908,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13902,13 +13916,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14402,53 +14416,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16220,17 +16234,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17766,7 +17780,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17786,14 +17800,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17802,11 +17829,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17824,11 +17851,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17847,12 +17874,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17865,11 +17892,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17897,11 +17924,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17912,11 +17939,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17937,11 +17964,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17961,11 +17988,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17982,11 +18009,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -18000,11 +18027,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -18017,11 +18044,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18092,11 +18119,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18123,26 +18150,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18161,11 +18188,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18177,11 +18204,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18189,11 +18216,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18205,11 +18232,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18223,11 +18250,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18235,11 +18262,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18248,33 +18275,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18284,11 +18311,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18299,11 +18326,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18315,11 +18342,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2010-12-11 02:29+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Bengali <bn@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:36+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:38+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "আসলে কিছুই করে না"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "আসলে কিছুই করে না"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "আসলে কিছুই করে না"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "আসলে কিছুই করে না"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr "পছন্দসমূহ"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1025,7 +1026,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1033,8 +1034,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1419,6 +1420,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1943,11 +1948,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2956,7 +2963,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3136,10 +3143,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3280,7 +3287,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4435,7 +4442,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5306,72 +5313,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5534,37 +5552,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7256,11 +7274,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9046,20 +9064,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10557,7 +10575,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10892,10 +10910,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13652,7 +13666,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13698,7 +13712,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13814,19 +13828,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13834,7 +13848,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13842,7 +13856,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13850,13 +13864,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14350,53 +14364,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16168,17 +16182,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17714,7 +17728,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17734,14 +17748,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17750,11 +17777,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17772,11 +17799,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17795,12 +17822,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17813,11 +17840,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17845,11 +17872,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17860,11 +17887,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17885,11 +17912,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17909,11 +17936,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17930,11 +17957,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17948,11 +17975,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17965,11 +17992,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18040,11 +18067,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18071,26 +18098,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18109,11 +18136,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18125,11 +18152,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18137,11 +18164,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18153,11 +18180,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18171,11 +18198,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18183,11 +18210,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18196,33 +18223,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18232,11 +18259,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18247,11 +18274,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18263,11 +18290,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-07-03 19:43+0000\n"
"Last-Translator: Alan <Unknown>\n"
"Language-Team: Breton <br@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:37+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:38+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ msgstr "Ne ra netra da vat"
#: /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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Ne ra netra da vat"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Ne ra netra da vat"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Ne ra netra da vat"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Ne ra netra da vat"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr "Gwellvezvioù"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr "Stal"
@ -1028,7 +1029,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr "Keleier"
@ -1036,8 +1037,8 @@ msgstr "Keleier"
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr "Katalog"
@ -1422,6 +1423,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1946,11 +1951,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2962,7 +2969,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3142,10 +3149,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3286,7 +3293,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4441,7 +4448,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5312,72 +5319,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5540,37 +5558,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7262,11 +7280,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9052,20 +9070,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10563,7 +10581,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10898,10 +10916,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13658,7 +13672,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13704,7 +13718,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13820,19 +13834,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13840,7 +13854,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13848,7 +13862,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13856,13 +13870,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14356,53 +14370,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16174,17 +16188,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17720,7 +17734,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17740,14 +17754,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17756,11 +17783,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17778,11 +17805,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17801,12 +17828,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17819,11 +17846,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17851,11 +17878,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17866,11 +17893,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17891,11 +17918,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17915,11 +17942,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17936,11 +17963,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17954,11 +17981,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17971,11 +17998,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18046,11 +18073,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18077,26 +18104,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18115,11 +18142,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18131,11 +18158,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18143,11 +18170,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18159,11 +18186,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18177,11 +18204,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18189,11 +18216,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18202,33 +18229,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18238,11 +18265,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18253,11 +18280,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18269,11 +18296,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-01-18 21:03+0000\n"
"Last-Translator: Senad Sopovic <Unknown>\n"
"Language-Team: Bosnian <bs@li.org>\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:37+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:38+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -60,15 +60,15 @@ msgstr "Radi apsolutno 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -84,10 +84,10 @@ msgstr "Radi apsolutno ništa"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -98,6 +98,7 @@ msgstr "Radi apsolutno ništa"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -137,9 +138,9 @@ msgstr "Radi apsolutno ništa"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -167,21 +168,21 @@ msgstr "Radi apsolutno ništa"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -241,7 +242,7 @@ msgid "Preferences"
msgstr "Podešavanja"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1026,7 +1027,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr "Vijesti"
@ -1034,8 +1035,8 @@ msgstr "Vijesti"
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr "Katalog"
@ -1420,6 +1421,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1944,11 +1949,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2957,7 +2964,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3137,10 +3144,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3281,7 +3288,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4436,7 +4443,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5307,72 +5314,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5535,37 +5553,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7257,11 +7275,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9047,20 +9065,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10558,7 +10576,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10893,10 +10911,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13653,7 +13667,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13699,7 +13713,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13815,19 +13829,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13835,7 +13849,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13843,7 +13857,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13851,13 +13865,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14351,53 +14365,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16169,17 +16183,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17715,7 +17729,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17735,14 +17749,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17751,11 +17778,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17773,11 +17800,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17796,12 +17823,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17814,11 +17841,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17846,11 +17873,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17861,11 +17888,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17886,11 +17913,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17910,11 +17937,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17931,11 +17958,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17949,11 +17976,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17966,11 +17993,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18041,11 +18068,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18072,26 +18099,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18110,11 +18137,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18126,11 +18153,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18138,11 +18165,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18154,11 +18181,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18172,11 +18199,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18184,11 +18211,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18197,33 +18224,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18233,11 +18260,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18248,11 +18275,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18264,11 +18291,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-07-08 15:07+0000\n"
"Last-Translator: Simon <Unknown>\n"
"Language-Team: Danish <da@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:38+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:40+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Gør absolut ingenting"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Gør absolut ingenting"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Gør absolut ingenting"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Gør absolut ingenting"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr "Indstillinger"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr "Butik"
@ -1079,7 +1080,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr "Nyheder"
@ -1087,8 +1088,8 @@ msgstr "Nyheder"
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr "Katalog"
@ -1492,6 +1493,10 @@ msgstr "Kommunikér med Nextbook Reader"
msgid "Communicate with the Moovybook Reader"
msgstr "Kommuniker med Moovybook Reader"
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /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."
@ -2077,11 +2082,13 @@ msgstr "Muligheder for at angive metadata i output"
msgid "Options to help with debugging the conversion"
msgstr "Muligheder der kan hjælpe med konverteringsfejlfinding"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
msgstr "Fremvis indbyggede opskrifter"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr "Output gemt til"
@ -3261,7 +3268,7 @@ msgstr "Nej"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3456,10 +3463,10 @@ msgstr ""
"Hent et omslagsbillede/sociale metadata til denne bog identificeret ved ISBN "
"fra LibraryThing.com\n"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr "Omslag"
@ -3606,7 +3613,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr "Alle artikler"
@ -4857,7 +4864,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr "Ikke tilladt"
@ -5747,44 +5754,55 @@ msgstr ""
msgid "%s has no available formats."
msgstr "%s har ingen tilgængelige formater."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr "Søger i"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr "Tilføjer..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr "Søger i alle underkataloger..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr "Sti fejl"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr "Den angivne mappe kunne ikke behandles."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr "Ingen bøger"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr "Ingen bøger fundet"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr "Ingen tilladelse"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr "Tilføjet"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr "Tilføjning fejlede"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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."
@ -5792,11 +5810,11 @@ msgstr ""
"\"Tilføj bøger\"-processen synes at hænge. Prøv at genstarte calibre og "
"tilføj bøgerne i mindre bundter, indtil du har fundet en problembog."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr "Dubletter fundet!"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
msgid ""
"Books with the same title as the following already exist in the database. "
"Add them anyway?"
@ -5804,19 +5822,19 @@ msgstr ""
"Bøger med den samme titel som den følgende eksisterer allerede i databasen. "
"Tilføj dem alligevel?"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr "Tilføjer dubletter..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr "Gemmer..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr "Gemt"
@ -5992,37 +6010,37 @@ msgstr "Klik for at åbne"
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr "Samlinger"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr "Indsæt omslag"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr "Kopiér omslag"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr "Dobbeltklik for at åbne Book Details vinduet"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr "Sti"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7753,11 +7771,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr "Browse efter omslag"
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr "Omslag browser kunne ikke loades"
@ -9622,20 +9640,20 @@ msgstr "Afbryder..."
msgid "Authors"
msgstr "Forfattere"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -11169,7 +11187,7 @@ msgstr ""
msgid "Restore default layout"
msgstr "Gendan standard layout"
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -11520,10 +11538,6 @@ msgstr ""
msgid "Choose formats for "
msgstr "Vælg formater for "
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr "Ingen tilladelse"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr "Du har ikke læseadgang til følgende filer:"
@ -14387,7 +14401,7 @@ msgid "Invert"
msgstr "Invertér"
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -14433,7 +14447,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -14549,19 +14563,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr "Tit&el/Forfatter/Pris ..."
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr "DRM"
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr "Pris"
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -14569,7 +14583,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -14577,7 +14591,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -14585,13 +14599,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -15100,53 +15114,53 @@ msgstr ""
"vil fortsætte med at køre i systembakken. For at afslutte dem, vælg "
"<b>Quit/Afslut</b> i systembakkens context menu."
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr "Updatering tilgængelig!"
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr "Vis denne notifikation for fremtidige opdateringer"
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr "&Hent opdatering"
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr "Opdatering fundet"
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -17179,17 +17193,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
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:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr "Kopierer <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr "Komprimerer database"
@ -18794,7 +18808,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -18814,14 +18828,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -18830,11 +18857,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -18852,11 +18879,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -18875,12 +18902,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -18893,11 +18920,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -18925,11 +18952,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -18940,11 +18967,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -18965,11 +18992,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -18989,11 +19016,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -19010,11 +19037,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -19028,11 +19055,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -19045,11 +19072,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -19120,11 +19147,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -19151,26 +19178,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -19189,11 +19216,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -19205,11 +19232,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -19217,11 +19244,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -19233,11 +19260,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr "Sprog der skal anvendes ved sortering."
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -19251,11 +19278,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -19263,11 +19290,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr "Antal sekunder der skal ventes inden email sendes"
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -19276,33 +19303,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr "Fjern de lyse gule linjer ved kanterne på bog listen"
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -19312,11 +19339,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -19327,11 +19354,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -19343,11 +19370,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"
@ -20807,6 +20834,9 @@ msgstr ""
#~ msgid "Communicate with the Sony PRS-600/700 eBook reader."
#~ msgstr "Kommuniker med Sony PRS-600/700 e-bogslæseren."
#~ msgid "List builtin recipes"
#~ msgstr "Fremvis indbyggede opskrifter"
#~ msgid "This profile is intended for the Hanlin V3/V5 and its clones."
#~ msgstr "Denne profil er rettet mod Hanlin V3/V5 og dens kloner."

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-07-12 15:40+0000\n"
"Last-Translator: ilias <Unknown>\n"
"Language-Team: Greek <el@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:41+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:43+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Δεν κάνει τίποτα"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Δεν κάνει τίποτα"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Δεν κάνει τίποτα"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Δεν κάνει τίποτα"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr "Προτιμήσεις"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr "Κατάστημα"
@ -1072,7 +1073,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr "Νέα"
@ -1080,8 +1081,8 @@ msgstr "Νέα"
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr "Κατάλογος"
@ -1466,6 +1467,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
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."
@ -2050,11 +2055,13 @@ msgstr "Παράμετροι για τον καθορισμό των μεταδ
msgid "Options to help with debugging the conversion"
msgstr "Παράμετροι που βοηθούν στη διόρθωση (αποσφαλμάτωση) της μετατροπής"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
msgstr "Κατάλογος ενσωματωμένων συνταγών"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr "Τα εξαγόμενα αποθηκεύτηκαν στον/στην"
@ -3133,7 +3140,7 @@ msgstr "Όχι"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3313,10 +3320,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr "Εξώφυλλο"
@ -3457,7 +3464,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4612,7 +4619,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5483,72 +5490,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr "Προστέθηκε"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr "Αποθήκευση..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr "Αποθηκεύτηκε"
@ -5711,37 +5729,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr "Συλλογές"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr "Διαδρομή"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7433,11 +7451,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9223,20 +9241,20 @@ msgstr "Εγκατάλειψη..."
msgid "Authors"
msgstr "Συγγραφείς"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10734,7 +10752,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -11069,10 +11087,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13829,7 +13843,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13875,7 +13889,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13991,19 +14005,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -14011,7 +14025,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -14019,7 +14033,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -14027,13 +14041,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14527,53 +14541,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16345,17 +16359,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr "Συμπίεση βάσης δεδομένων"
@ -17891,7 +17905,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17911,14 +17925,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17927,11 +17954,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17949,11 +17976,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17972,12 +17999,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17990,11 +18017,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -18022,11 +18049,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -18037,11 +18064,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -18062,11 +18089,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -18086,11 +18113,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -18107,11 +18134,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -18125,11 +18152,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -18142,11 +18169,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18217,11 +18244,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18248,26 +18275,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18286,11 +18313,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18302,11 +18329,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18314,11 +18341,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18330,11 +18357,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18348,11 +18375,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18360,11 +18387,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18373,33 +18400,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18409,11 +18436,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18424,11 +18451,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18440,11 +18467,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"
@ -18502,6 +18529,9 @@ msgstr ""
#~ msgid "%prog [options] mybook.chm"
#~ msgstr "%prog [παράμετροι] mybook.chm"
#~ msgid "List builtin recipes"
#~ msgstr "Κατάλογος ενσωματωμένων συνταγών"
#~ msgid ""
#~ "The line height in pts. Controls spacing between consecutive lines of text. "
#~ "By default no line height manipulation is performed."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2010-05-21 07:30+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: English (Australia) <en_AU@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:53+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:55+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1025,7 +1026,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1033,8 +1034,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1419,6 +1420,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1943,11 +1948,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2956,7 +2963,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3136,10 +3143,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3280,7 +3287,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4435,7 +4442,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5306,72 +5313,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5534,37 +5552,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7256,11 +7274,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9046,20 +9064,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10557,7 +10575,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10892,10 +10910,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13652,7 +13666,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13698,7 +13712,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13814,19 +13828,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13834,7 +13848,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13842,7 +13856,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13850,13 +13864,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14350,53 +14364,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16168,17 +16182,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17714,7 +17728,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17734,14 +17748,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17750,11 +17777,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17772,11 +17799,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17795,12 +17822,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17813,11 +17840,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17845,11 +17872,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17860,11 +17887,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17885,11 +17912,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17909,11 +17936,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17930,11 +17957,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17948,11 +17975,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17965,11 +17992,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18040,11 +18067,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18071,26 +18098,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18109,11 +18136,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18125,11 +18152,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18137,11 +18164,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18153,11 +18180,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18171,11 +18198,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18183,11 +18210,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18196,33 +18223,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18232,11 +18259,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18247,11 +18274,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18263,11 +18290,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2010-02-27 02:43+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: English (Canada) <en_CA@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:54+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:56+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Does absolutely nothing"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Does absolutely nothing"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Does absolutely nothing"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Does absolutely nothing"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1031,7 +1032,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr "News"
@ -1039,8 +1040,8 @@ msgstr "News"
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1425,6 +1426,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /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."
@ -1966,11 +1971,13 @@ msgstr "Options to set metadata in the output"
msgid "Options to help with debugging the conversion"
msgstr "Options to help with debugging the conversion"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
msgstr "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr "Output saved to"
@ -3042,7 +3049,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3222,10 +3229,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3366,7 +3373,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4521,7 +4528,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5392,72 +5399,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5620,37 +5638,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7342,11 +7360,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9132,20 +9150,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10643,7 +10661,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10978,10 +10996,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13738,7 +13752,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13784,7 +13798,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13900,19 +13914,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13920,7 +13934,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13928,7 +13942,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13936,13 +13950,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14436,53 +14450,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16254,17 +16268,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17800,7 +17814,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17820,14 +17834,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17836,11 +17863,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17858,11 +17885,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17881,12 +17908,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17899,11 +17926,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17931,11 +17958,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17946,11 +17973,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17971,11 +17998,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17995,11 +18022,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -18016,11 +18043,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -18034,11 +18061,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -18051,11 +18078,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18126,11 +18153,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18157,26 +18184,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18195,11 +18222,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18211,11 +18238,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18223,11 +18250,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18239,11 +18266,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18257,11 +18284,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18269,11 +18296,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18282,33 +18309,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18318,11 +18345,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18333,11 +18360,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18349,11 +18376,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"
@ -18383,6 +18410,9 @@ msgstr ""
#~ "Unable to detect the %s disk drive. Your kernel is probably exporting a "
#~ "deprecated version of SYSFS."
#~ msgid "List builtin recipes"
#~ msgstr "List builtin recipes"
#~ 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 "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-02-15 08:46+0000\n"
"Last-Translator: Vladimir Oka <Unknown>\n"
"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:53+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:55+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Does absolutely nothing"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Does absolutely nothing"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Does absolutely nothing"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Does absolutely nothing"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr "Preferences"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1069,7 +1070,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr "News"
@ -1077,8 +1078,8 @@ msgstr "News"
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr "Catalogue"
@ -1473,6 +1474,10 @@ msgstr "Communicate with the Nextbook Reader"
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /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."
@ -2063,11 +2068,13 @@ msgstr "Options to set metadata in the output"
msgid "Options to help with debugging the conversion"
msgstr "Options to help with debugging the conversion"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
msgstr "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr "Output saved to"
@ -3284,7 +3291,7 @@ msgstr "No"
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3480,10 +3487,10 @@ 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/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr "Cover"
@ -3627,7 +3634,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr "All articles"
@ -4900,7 +4907,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr "Not allowed"
@ -5804,44 +5811,55 @@ msgstr ""
msgid "%s has no available formats."
msgstr "%s has no available formats."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr "Searching in"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr "Adding..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr "Searching in all sub-directories..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr "Path error"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
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:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr "No books"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr "No books found"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr "No permission"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr "Added"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr "Adding failed"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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."
@ -5849,11 +5867,11 @@ msgstr ""
"The add books process seems to have hung. Try restarting calibre and adding "
"the books in smaller increments, until you find the problem book."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr "Duplicates found!"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
msgid ""
"Books with the same title as the following already exist in the database. "
"Add them anyway?"
@ -5861,19 +5879,19 @@ msgstr ""
"Books with the same title as the following already exist in the database. "
"Add them anyway?"
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr "Adding duplicates..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr "Saving..."
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr "Saved"
@ -6049,37 +6067,37 @@ msgstr "Click to open"
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr "Collections"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr "Double-click to open Book Details window"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr "Path"
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7821,11 +7839,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr "Browse by covers"
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr "Cover browser could not be loaded"
@ -9709,20 +9727,20 @@ msgstr "Aborting..."
msgid "Authors"
msgstr "Authors"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -11265,7 +11283,7 @@ msgstr ""
msgid "Restore default layout"
msgstr "Restore default layout"
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -11625,10 +11643,6 @@ msgstr ""
msgid "Choose formats for "
msgstr "Choose formats for "
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr "No permission"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr "You do not have permission to read the following files:"
@ -14609,7 +14623,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -14655,7 +14669,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -14771,19 +14785,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -14791,7 +14805,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -14799,7 +14813,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -14807,13 +14821,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -15328,53 +15342,53 @@ msgstr ""
"will keep running in the system tray. To close it, choose <b>Quit</b> in the "
"context menu of the system tray."
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr "Update available!"
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr "Show this notification for future updates"
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr "&Get update"
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr "Update found"
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -17455,17 +17469,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
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:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr "Copying <b>%s</b>"
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr "Compacting database"
@ -19149,7 +19163,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -19169,14 +19183,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -19185,11 +19212,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -19207,11 +19234,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -19230,12 +19257,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -19248,11 +19275,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -19280,11 +19307,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -19295,11 +19322,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -19320,11 +19347,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -19344,11 +19371,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -19365,11 +19392,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -19383,11 +19410,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -19400,11 +19427,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -19475,11 +19502,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -19506,26 +19533,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -19544,11 +19571,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -19560,11 +19587,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -19572,11 +19599,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -19588,11 +19615,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -19606,11 +19633,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -19618,11 +19645,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -19631,33 +19658,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -19667,11 +19694,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -19682,11 +19709,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -19698,11 +19725,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"
@ -22301,6 +22328,9 @@ msgstr ""
#~ msgid "Communicate with the Booq Avant"
#~ msgstr "Communicate with the Booq Avant"
#~ msgid "List builtin recipes"
#~ msgstr "List builtin recipes"
#~ msgid ""
#~ "The line height in pts. Controls spacing between consecutive lines of text. "
#~ "By default no line height manipulation is performed."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2010-01-09 00:03+0000\n"
"Last-Translator: Kalle Kniivilä <kalle@kniivila.net>\n"
"Language-Team: Esperanto <eo@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:39+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:40+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ msgstr "Faras absolute nenion"
#: /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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Faras absolute nenion"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Faras absolute nenion"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Faras absolute nenion"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Faras absolute nenion"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1056,7 +1057,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1064,8 +1065,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1450,6 +1451,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr "Komuniki kun la reta tabuleto Nokia 770."
@ -1974,11 +1979,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2990,7 +2997,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3170,10 +3177,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3314,7 +3321,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4469,7 +4476,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5340,72 +5347,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5568,37 +5586,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7290,11 +7308,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9080,20 +9098,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10591,7 +10609,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10926,10 +10944,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13686,7 +13700,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13732,7 +13746,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13848,19 +13862,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13868,7 +13882,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13876,7 +13890,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13884,13 +13898,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14384,53 +14398,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16202,17 +16216,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17748,7 +17762,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17768,14 +17782,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17784,11 +17811,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17806,11 +17833,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17829,12 +17856,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17847,11 +17874,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17879,11 +17906,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17894,11 +17921,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17919,11 +17946,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17943,11 +17970,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17964,11 +17991,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17982,11 +18009,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17999,11 +18026,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18074,11 +18101,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18105,26 +18132,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18143,11 +18170,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18159,11 +18186,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18171,11 +18198,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18187,11 +18214,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18205,11 +18232,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18217,11 +18244,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18230,33 +18257,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18266,11 +18293,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18281,11 +18308,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18297,11 +18324,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-07-25 08:15+0000\n"
"Last-Translator: keski <Unknown>\n"
"Language-Team: Estonian <et@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-26 04:37+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:41+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ msgstr "Ei tee midagi"
#: /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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Ei tee midagi"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Ei tee midagi"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Ei tee midagi"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Ei tee midagi"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr "Eelistused"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr "Salvesta"
@ -1030,7 +1031,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1038,8 +1039,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1424,6 +1425,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1948,11 +1953,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2963,7 +2970,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3143,10 +3150,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3287,7 +3294,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4442,7 +4449,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5313,72 +5320,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5541,37 +5559,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7263,11 +7281,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9053,20 +9071,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10564,7 +10582,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10899,10 +10917,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13659,7 +13673,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13705,7 +13719,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13821,19 +13835,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13841,7 +13855,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13849,7 +13863,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13857,13 +13871,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14357,53 +14371,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16175,17 +16189,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17721,7 +17735,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17741,14 +17755,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17757,11 +17784,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17779,11 +17806,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17802,12 +17829,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17820,11 +17847,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17852,11 +17879,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17867,11 +17894,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17892,11 +17919,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17916,11 +17943,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17937,11 +17964,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17955,11 +17982,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17972,11 +17999,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18047,11 +18074,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18078,26 +18105,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18116,11 +18143,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18132,11 +18159,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18144,11 +18171,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18160,11 +18187,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18178,11 +18205,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18190,11 +18217,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18203,33 +18230,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18239,11 +18266,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18254,11 +18281,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18270,11 +18297,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-04-09 04:20+0000\n"
"Last-Translator: Milad Naseri <m.m.naseri@gmail.com>\n"
"Language-Team: Persian <fa@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:46+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:48+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "هیچ کار ویژ ه ای انجام نمی دهد"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "هیچ کار ویژ ه ای انجام نمی دهد"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "هیچ کار ویژ ه ای انجام نمی دهد"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "هیچ کار ویژ ه ای انجام نمی دهد"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1041,7 +1042,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1049,8 +1050,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1435,6 +1436,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1959,11 +1964,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2975,7 +2982,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3155,10 +3162,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3299,7 +3306,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4454,7 +4461,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5325,72 +5332,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5553,37 +5571,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7275,11 +7293,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9065,20 +9083,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10576,7 +10594,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10911,10 +10929,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13671,7 +13685,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13717,7 +13731,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13833,19 +13847,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13853,7 +13867,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13861,7 +13875,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13869,13 +13883,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14369,53 +14383,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16187,17 +16201,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17733,7 +17747,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17753,14 +17767,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17769,11 +17796,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17791,11 +17818,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17814,12 +17841,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17832,11 +17859,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17864,11 +17891,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17879,11 +17906,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17904,11 +17931,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17928,11 +17955,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17949,11 +17976,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17967,11 +17994,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17984,11 +18011,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18059,11 +18086,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18090,26 +18117,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18128,11 +18155,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18144,11 +18171,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18156,11 +18183,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18172,11 +18199,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18190,11 +18217,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18202,11 +18229,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18215,33 +18242,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18251,11 +18278,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18266,11 +18293,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18282,11 +18309,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2011-06-13 16:55+0000\n"
"Last-Translator: Esa Parta <Unknown>\n"
"Language-Team: Finnish <fi@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:39+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:41+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ msgstr "Ei tee mitään"
#: /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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr "Ei tee mitään"
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr "Ei tee mitään"
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr "Ei tee mitään"
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr "Ei tee mitään"
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1073,7 +1074,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr "Uutiset"
@ -1081,8 +1082,8 @@ msgstr "Uutiset"
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1469,6 +1470,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr "Kommunikoi Nokia 770 internet tablet -laitteen kanssa."
@ -2041,11 +2046,13 @@ msgstr "Asetukset ulostulon metatiedoille"
msgid "Options to help with debugging the conversion"
msgstr "Asetukset, joilla käännöksen debuggausta helpotetaan"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
msgstr "Listaa sisäänrakennetut reseptit"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr "Ulostulo tallennettu osoitteeseen"
@ -3070,7 +3077,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3250,10 +3257,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3394,7 +3401,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4549,7 +4556,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5420,72 +5427,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5648,37 +5666,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7370,11 +7388,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9160,20 +9178,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10671,7 +10689,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -11006,10 +11024,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13766,7 +13780,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13812,7 +13826,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13928,19 +13942,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13948,7 +13962,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13956,7 +13970,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13964,13 +13978,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14464,53 +14478,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16282,17 +16296,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17832,7 +17846,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17852,14 +17866,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17868,11 +17895,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17890,11 +17917,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17913,12 +17940,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17931,11 +17958,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17963,11 +17990,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17978,11 +18005,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -18003,11 +18030,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -18027,11 +18054,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -18048,11 +18075,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -18066,11 +18093,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -18083,11 +18110,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18158,11 +18185,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18189,26 +18216,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18227,11 +18254,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18243,11 +18270,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18255,11 +18282,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18271,11 +18298,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18289,11 +18316,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18301,11 +18328,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18314,33 +18341,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18350,11 +18377,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18365,11 +18392,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18381,11 +18408,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"
@ -18456,6 +18483,9 @@ msgstr ""
#~ msgid "Communicate with the Booq Avant"
#~ msgstr "Kommunikoi Booq Avantin kanssa"
#~ msgid "List builtin recipes"
#~ msgstr "Listaa sisäänrakennetut reseptit"
#~ msgid " "
#~ msgstr " "

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-07-22 17:11+0000\n"
"POT-Creation-Date: 2011-07-29 18:01+0000\n"
"PO-Revision-Date: 2010-06-11 18:48+0000\n"
"Last-Translator: Kovid Goyal <Unknown>\n"
"Language-Team: Faroese <fo@li.org>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Launchpad-Export-Date: 2011-07-23 04:39+0000\n"
"X-Launchpad-Export-Date: 2011-07-30 04:41+0000\n"
"X-Generator: Launchpad (build 13405)\n"
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:56
@ -59,15 +59,15 @@ 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/extz.py:23
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:40
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:100
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:39
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:99
#: /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:1072
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1182
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1080
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1190
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:41
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:29
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/plucker.py:25
@ -83,10 +83,10 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/covers.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/douban.py:80
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/google.py:81
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:256
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:361
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:363
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:464
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:257
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:362
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:364
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/sources/identify.py:465
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:18
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:43
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:69
@ -97,6 +97,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:964
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:966
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:968
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/utils.py:292
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:99
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:101
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1001
@ -136,9 +137,9 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/add.py:156
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:376
#: /home/kovid/work/calibre/src/calibre/gui2/actions/edit_metadata.py:379
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:549
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:168
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:550
#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:42
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:151
@ -166,21 +167,21 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:364
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:161
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:165
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:166
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:90
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:170
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:108
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:200
#: /home/kovid/work/calibre/src/calibre/library/cli.py:217
#: /home/kovid/work/calibre/src/calibre/library/database.py:914
#: /home/kovid/work/calibre/src/calibre/library/database2.py:535
#: /home/kovid/work/calibre/src/calibre/library/database2.py:543
#: /home/kovid/work/calibre/src/calibre/library/database2.py:554
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2003
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2150
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3164
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3166
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3299
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:212
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:213
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2005
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2152
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3169
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3171
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3304
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:225
#: /home/kovid/work/calibre/src/calibre/library/server/content.py:226
#: /home/kovid/work/calibre/src/calibre/library/server/mobile.py:243
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:156
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:159
@ -240,7 +241,7 @@ msgid "Preferences"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:609
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Store"
msgstr ""
@ -1025,7 +1026,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:1134
#: /home/kovid/work/calibre/src/calibre/library/database2.py:330
#: /home/kovid/work/calibre/src/calibre/library/database2.py:343
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3028
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3030
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:171
msgid "News"
msgstr ""
@ -1033,8 +1034,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2685
#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:65
#: /home/kovid/work/calibre/src/calibre/library/catalog.py:652
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2988
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3006
#: /home/kovid/work/calibre/src/calibre/library/database2.py:2990
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3008
msgid "Catalog"
msgstr ""
@ -1419,6 +1420,10 @@ msgstr ""
msgid "Communicate with the Moovybook Reader"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/misc.py:358
msgid "Communicate with the COBY"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17
msgid "Communicate with the Nokia 770 internet tablet."
msgstr ""
@ -1943,11 +1948,13 @@ msgstr ""
msgid "Options to help with debugging the conversion"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:214
msgid "List builtin recipes"
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:216
msgid ""
"List builtin recipe names. You can create an ebook from a builtin recipe "
"like this: ebook-convert \"Recipe Name.recipe\" output.epub"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:287
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:288
msgid "Output saved to"
msgstr ""
@ -2956,7 +2963,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1016
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
#: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/models.py:23
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:349
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:578
@ -3136,10 +3143,10 @@ msgid ""
"LibraryThing.com\n"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1366
#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1374
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1498
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:900
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Cover"
msgstr ""
@ -3280,7 +3287,7 @@ msgid ""
"book instead of the end. Not recommended."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:119
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105
msgid "All articles"
msgstr ""
@ -4435,7 +4442,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:419
#: /home/kovid/work/calibre/src/calibre/gui2/actions/copy_to_library.py:178
#: /home/kovid/work/calibre/src/calibre/gui2/actions/save_to_disk.py:100
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:883
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:886
msgid "Not allowed"
msgstr ""
@ -5306,72 +5313,83 @@ msgstr ""
msgid "%s has no available formats."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:68
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:69
msgid "Searching in"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:245
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:246
msgid "Adding..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:258
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:259
msgid "Searching in all sub-directories..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:269
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
msgid "Path error"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:270
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:271
msgid "The specified directory could not be processed."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/device.py:895
msgid "No books"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276
msgid "No books found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:339
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290
msgid ""
"Cannot add some files as you do not have permission to access them. Click "
"Show Details to see the list of such files."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:358
msgid "Added"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:371
msgid "Adding failed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:372
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:368
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:387
msgid "Duplicates found!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:369
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:388
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:372
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:391
msgid "Adding duplicates..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:441
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:460
msgid "Saving..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:448
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:467
msgid "Collecting data, please wait..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:520
#: /home/kovid/work/calibre/src/calibre/gui2/add.py:539
msgid "Saved"
msgstr ""
@ -5534,37 +5552,37 @@ msgstr ""
msgid "Ids"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:162
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:163
#, python-format
msgid "Book %(sidx)s of <span class=\"series_name\">%(series)s</span>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:173
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:174
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1020
msgid "Collections"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:275
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:247
msgid "Paste Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:276
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:277
#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:248
msgid "Copy Cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:542
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
msgid "Double-click to open Book Details window"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:543
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:279
msgid "Path"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:544
#: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:545
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109
#, python-format
msgid "Cover size: %(width)d x %(height)d"
@ -7256,11 +7274,11 @@ msgid ""
"href=\"http://manual.calibre-ebook.com/xpath.html\">XPath Tutorial</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:140
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:145
msgid "Browse by covers"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:171
#: /home/kovid/work/calibre/src/calibre/gui2/cover_flow.py:176
msgid "Cover browser could not be loaded"
msgstr ""
@ -9046,20 +9064,20 @@ msgstr ""
msgid "Authors"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:188
msgid "**No items found**"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:190
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:189
msgid ""
"Click in a column in the library view to see the information for that book"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:205
msgid "Books with selected item \"{0}\": {1}"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:212
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:211
msgid ""
"Double-click on a book to change the selection in the library view. Shift- "
"or control-double-click to edit the metadata of a book"
@ -10557,7 +10575,7 @@ msgstr ""
msgid "Restore default layout"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:884
#: /home/kovid/work/calibre/src/calibre/gui2/library/views.py:887
msgid ""
"Dropping onto a device is not supported. First add the book to the calibre "
"library."
@ -10892,10 +10910,6 @@ msgstr ""
msgid "Choose formats for "
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:777
msgid "No permission"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:778
msgid "You do not have permission to read the following files:"
msgstr ""
@ -13652,7 +13666,7 @@ msgid "Invert"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Affiliate"
msgstr ""
@ -13698,7 +13712,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:143
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:211
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:215
#, python-format
msgid "Buying from this store supports the calibre developer: %s."
msgstr ""
@ -13814,19 +13828,19 @@ msgstr ""
msgid "Titl&e/Author/Price ..."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "DRM"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Download"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:37
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:41
msgid "Price"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:196
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:200
#, python-format
msgid ""
"Detected price as: %s. Check with the store before making a purchase to "
@ -13834,7 +13848,7 @@ msgid ""
"the store may be running."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:199
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
msgid ""
"This book as been detected as having DRM restrictions. This book may not "
"work with your reader and you will have limitations placed upon you as to "
@ -13842,7 +13856,7 @@ msgid ""
"purchases to ensure you can actually read this book."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:201
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:205
msgid ""
"This book has been detected as being DRM Free. You should be able to use "
"this book on any device provided it is in a format calibre supports for "
@ -13850,13 +13864,13 @@ msgid ""
"with the store. The store may not be disclosing the use of DRM."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:203
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:207
msgid ""
"The DRM status of this book could not be determined. There is a very high "
"likelihood that this book is actually DRM restricted."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:208
#: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:212
#, python-format
msgid "The following formats can be downloaded directly: %s."
msgstr ""
@ -14350,53 +14364,53 @@ msgid ""
"context menu of the system tray."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:73
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:74
#, python-format
msgid ""
"%(app)s has been updated to version <b>%(ver)s</b>. See the <a "
"href=\"http://calibre-ebook.com/whats-new\">new features</a>."
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:80
msgid "Update available!"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85
msgid "Show this notification for future updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:89
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90
msgid "&Get update"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:93
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:94
msgid "Update &plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:152
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:153
#, python-format
msgid " (%d plugin updates)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:155
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:156
msgid "Update found"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:159
msgid "updated plugins"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:184
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:189
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:185
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:190
msgid "Plugin Updates"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:187
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:188
#, python-format
msgid "There are %d plugin updates available"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:191
#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192
msgid "Install and configure user plugins"
msgstr ""
@ -16168,17 +16182,17 @@ msgstr ""
msgid "%(tt)sAverage rating is %(rating)3.1f"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3325
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3330
#, python-format
msgid "<p>Migrating old database to ebook library in %s<br><center>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3354
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3359
#, python-format
msgid "Copying <b>%s</b>"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3371
#: /home/kovid/work/calibre/src/calibre/library/database2.py:3376
msgid "Compacting database"
msgstr ""
@ -17714,7 +17728,7 @@ msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:13
msgid ""
"The algorithm used to assign a new book in an existing series a series "
"The algorithm used to assign a book added to an existing series a series "
"number.\n"
"New series numbers assigned using this tweak are always integer values, "
"except\n"
@ -17734,14 +17748,27 @@ msgid ""
"Examples:\n"
"series_index_auto_increment = 'next'\n"
"series_index_auto_increment = 'next_free'\n"
"series_index_auto_increment = 16.5"
"series_index_auto_increment = 16.5\n"
"\n"
"Set the use_series_auto_increment_tweak_when_importing tweak to True to\n"
"use the above values when importing/adding books. If this tweak is set to\n"
"False (the default) then the series number will be set to 1 if it is not\n"
"explicitly set to during the import. If set to True, then the\n"
"series index will be set according to the series_index_auto_increment "
"setting.\n"
"Note that the use_series_auto_increment_tweak_when_importing tweak is used\n"
"only when a value is not provided during import. If the importing regular\n"
"expression produces a value for series_index, or if you are reading "
"metadata\n"
"from books and the import plugin produces a value, than that value will\n"
"be used irrespective of the setting of the tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:31
#: /home/kovid/work/calibre/resources/default_tweaks.py:43
msgid "Add separator after completing an author name"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:32
#: /home/kovid/work/calibre/resources/default_tweaks.py:44
msgid ""
"Should the completion separator be append\n"
"to the end of the completed text to\n"
@ -17750,11 +17777,11 @@ msgid ""
"Can be either True or False"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:39
#: /home/kovid/work/calibre/resources/default_tweaks.py:51
msgid "Author sort name algorithm"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:40
#: /home/kovid/work/calibre/resources/default_tweaks.py:52
msgid ""
"The algorithm used to copy author to author_sort\n"
"Possible values are:\n"
@ -17772,11 +17799,11 @@ msgid ""
"periods are automatically handled."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:57
#: /home/kovid/work/calibre/resources/default_tweaks.py:69
msgid "Use author sort in Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:58
#: /home/kovid/work/calibre/resources/default_tweaks.py:70
msgid ""
"Set which author field to display in the tags pane (the list of authors,\n"
"series, publishers etc on the left hand side). The choices are author and\n"
@ -17795,12 +17822,12 @@ msgid ""
"categories_use_field_for_author_name = 'author_sort'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:72
#: /home/kovid/work/calibre/resources/default_tweaks.py:84
msgid ""
"Completion sort order: choose when to change from lexicographic to ASCII-like"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:73
#: /home/kovid/work/calibre/resources/default_tweaks.py:85
msgid ""
"Calibre normally uses locale-dependent lexicographic ordering when showing\n"
"completion values. This means that the sort order is correct for the user's\n"
@ -17813,11 +17840,11 @@ msgid ""
"to ascii ordering for performance reasons."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:81
#: /home/kovid/work/calibre/resources/default_tweaks.py:93
msgid "Control partitioning of Tag Browser"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:82
#: /home/kovid/work/calibre/resources/default_tweaks.py:94
msgid ""
"When partitioning the tags browser, the format of the subcategory label is\n"
"controlled by a template: categories_collapsed_name_template if sorting by\n"
@ -17845,11 +17872,11 @@ msgid ""
"even if there aren't any backslashes."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:103
#: /home/kovid/work/calibre/resources/default_tweaks.py:115
msgid "Specify columns to sort the booklist by on startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:104
#: /home/kovid/work/calibre/resources/default_tweaks.py:116
msgid ""
"Provide a set of columns to be sorted on when calibre starts\n"
"The argument is None if saved sort history is to be used\n"
@ -17860,11 +17887,11 @@ msgid ""
"title within authors."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:113
#: /home/kovid/work/calibre/resources/default_tweaks.py:125
msgid "Control how dates are displayed"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:114
#: /home/kovid/work/calibre/resources/default_tweaks.py:126
msgid ""
"Format to be used for publication date and the timestamp (date).\n"
"A string controlling how the publication date is displayed in the GUI\n"
@ -17885,11 +17912,11 @@ msgid ""
"timestamp default if not set: dd MMM yyyy"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:135
#: /home/kovid/work/calibre/resources/default_tweaks.py:147
msgid "Control sorting of titles and series in the library display"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:136
#: /home/kovid/work/calibre/resources/default_tweaks.py:148
msgid ""
"Control title and series sorting in the library view. If set to\n"
"'library_order', the title sort field will be used instead of the title.\n"
@ -17909,11 +17936,11 @@ msgid ""
"without changing anything is sufficient to change the sort."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:149
#: /home/kovid/work/calibre/resources/default_tweaks.py:161
msgid "Control formatting of title and series when used in templates"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:150
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
msgid ""
"Control how title and series names are formatted when saving to "
"disk/sending\n"
@ -17930,11 +17957,11 @@ msgid ""
"strictly_alphabetic, it would remain \"The Lord of the Rings\"."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:162
#: /home/kovid/work/calibre/resources/default_tweaks.py:174
msgid "Set the list of words considered to be \"articles\" for sort strings"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:163
#: /home/kovid/work/calibre/resources/default_tweaks.py:175
msgid ""
"Set the list of words that are to be considered 'articles' when computing "
"the\n"
@ -17948,11 +17975,11 @@ msgid ""
"Default: '^(A|The|An)\\s+'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:172
#: /home/kovid/work/calibre/resources/default_tweaks.py:184
msgid "Specify a folder calibre should connect to at startup"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:173
#: /home/kovid/work/calibre/resources/default_tweaks.py:185
msgid ""
"Specify a folder that calibre should connect to at startup using\n"
"connect_to_folder. This must be a full path to the folder. If the folder "
@ -17965,11 +17992,11 @@ msgid ""
"auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:182
#: /home/kovid/work/calibre/resources/default_tweaks.py:194
msgid "Specify renaming rules for SONY collections"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:183
#: /home/kovid/work/calibre/resources/default_tweaks.py:195
msgid ""
"Specify renaming rules for sony collections. This tweak is only applicable "
"if\n"
@ -18040,11 +18067,11 @@ msgid ""
"sony_collection_name_template='{category:||: }{value}'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:235
#: /home/kovid/work/calibre/resources/default_tweaks.py:247
msgid "Specify how SONY collections are sorted"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:236
#: /home/kovid/work/calibre/resources/default_tweaks.py:248
msgid ""
"Specify how sony collections are sorted. This tweak is only applicable if\n"
"metadata management is set to automatic. You can indicate which metadata is "
@ -18071,26 +18098,26 @@ msgid ""
"Default: empty (no rules), so no collection attributes are named."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:253
#: /home/kovid/work/calibre/resources/default_tweaks.py:265
msgid "Control how tags are applied when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:254
#: /home/kovid/work/calibre/resources/default_tweaks.py:266
msgid ""
"Set this to True to ensure that tags in 'Tags to add when adding\n"
"a book' are added when copying books to another library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:258
#: /home/kovid/work/calibre/resources/default_tweaks.py:270
msgid "Set the maximum number of tags to show per book in the content server"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:261
#: /home/kovid/work/calibre/resources/default_tweaks.py:273
msgid ""
"Set custom metadata fields that the content server will or will not display."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:262
#: /home/kovid/work/calibre/resources/default_tweaks.py:274
msgid ""
"content_server_will_display is a list of custom fields to be displayed.\n"
"content_server_wont_display is a list of custom fields not to be displayed.\n"
@ -18109,11 +18136,11 @@ msgid ""
"content_server_wont_display['#mycomments']"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:279
#: /home/kovid/work/calibre/resources/default_tweaks.py:291
msgid "Set the maximum number of sort 'levels'"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:280
#: /home/kovid/work/calibre/resources/default_tweaks.py:292
msgid ""
"Set the maximum number of sort 'levels' that calibre will use to resort the\n"
"library after certain operations such as searches or device insertion. Each\n"
@ -18125,11 +18152,11 @@ msgid ""
"tweak."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:287
#: /home/kovid/work/calibre/resources/default_tweaks.py:299
msgid "Specify which font to use when generating a default cover"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:288
#: /home/kovid/work/calibre/resources/default_tweaks.py:300
msgid ""
"Absolute path to .ttf font files to use as the fonts for the title, author\n"
"and footer when generating a default cover. Useful if the default font "
@ -18137,11 +18164,11 @@ msgid ""
"Serif) does not contain glyphs for the language of the books in your library."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:294
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
msgid "Control behavior of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:295
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
msgid ""
"You can control the behavior of doubleclicks on the books list.\n"
"Choices: open_viewer, do_nothing,\n"
@ -18153,11 +18180,11 @@ msgid ""
"per pixel. Default is per column."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:306
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
msgid "Language to use when sorting."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:307
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
msgid ""
"Setting this tweak will force sorting to use the\n"
"collating order for the specified language. This might be useful if you run\n"
@ -18171,11 +18198,11 @@ msgid ""
"Example: locale_for_sorting = 'nb' -- sort using Norwegian rules."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:318
#: /home/kovid/work/calibre/resources/default_tweaks.py:330
msgid "Number of columns for custom metadata in the edit metadata dialog"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:319
#: /home/kovid/work/calibre/resources/default_tweaks.py:331
msgid ""
"Set whether to use one or two columns for custom metadata when editing\n"
"metadata one book at a time. If True, then the fields are laid out using "
@ -18183,11 +18210,11 @@ msgid ""
"columns. If False, one column is used."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:324
#: /home/kovid/work/calibre/resources/default_tweaks.py:336
msgid "The number of seconds to wait before sending emails"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:325
#: /home/kovid/work/calibre/resources/default_tweaks.py:337
msgid ""
"The number of seconds to wait before sending emails when using a\n"
"public email server like gmail or hotmail. Default is: 5 minutes\n"
@ -18196,33 +18223,33 @@ msgid ""
"calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:332
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
msgid "Remove the bright yellow lines at the edges of the book list"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:333
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
msgid ""
"Control whether the bright yellow lines at the edges of book list are drawn\n"
"when a section of the user interface is hidden. Changes will take effect\n"
"after a restart of calibre."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:338
#: /home/kovid/work/calibre/resources/default_tweaks.py:350
msgid "The maximum width and height for covers saved in the calibre library"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:339
#: /home/kovid/work/calibre/resources/default_tweaks.py:351
msgid ""
"All covers in the calibre library will be resized, preserving aspect ratio,\n"
"to fit within this size. This is to prevent slowdowns caused by extremely\n"
"large covers"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:344
#: /home/kovid/work/calibre/resources/default_tweaks.py:356
msgid "Where to send downloaded news"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:345
#: /home/kovid/work/calibre/resources/default_tweaks.py:357
msgid ""
"When automatically sending downloaded news to a connected device, calibre\n"
"will by default send it to the main memory. By changing this tweak, you can\n"
@ -18232,11 +18259,11 @@ msgid ""
"the files will be sent to the location with the most free space."
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:352
#: /home/kovid/work/calibre/resources/default_tweaks.py:364
msgid "What interfaces should the content server listen on"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:353
#: /home/kovid/work/calibre/resources/default_tweaks.py:365
msgid ""
"By default, the calibre content server listens on '0.0.0.0' which means that "
"it\n"
@ -18247,11 +18274,11 @@ msgid ""
"work on all operating systems)"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:360
#: /home/kovid/work/calibre/resources/default_tweaks.py:372
msgid "Unified toolbar on OS X"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:361
#: /home/kovid/work/calibre/resources/default_tweaks.py:373
msgid ""
"If you enable this option and restart calibre, the toolbar will be "
"'unified'\n"
@ -18263,11 +18290,11 @@ msgid ""
"on at your own risk!"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:368
#: /home/kovid/work/calibre/resources/default_tweaks.py:380
msgid "Save original file when converting from same format to same format"
msgstr ""
#: /home/kovid/work/calibre/resources/default_tweaks.py:369
#: /home/kovid/work/calibre/resources/default_tweaks.py:381
msgid ""
"When calibre does a conversion from the same format to the same format, for\n"
"example, from EPUB to EPUB, the original file is saved, so that in case the\n"

Some files were not shown because too many files have changed in this diff Show More