mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-12-25 22:37:22 -05:00
Sync to trunk.
This commit is contained in:
commit
22b5461a10
@ -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
438
imgsrc/mimetypes/djvu.svg
Normal 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
758
imgsrc/random.svg
Normal 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 |
23
recipes/carta_capital.recipe
Normal file
23
recipes/carta_capital.recipe
Normal 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'
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
'''
|
||||
|
||||
|
||||
@ -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'
|
||||
|
||||
|
||||
@ -85,4 +85,5 @@ class NikkeiNet_paper_subscription(BasicNewsRecipe):
|
||||
description='', content=''))
|
||||
result.append([sect_title, sect_result])
|
||||
#pp.pprint(result)
|
||||
return result
|
||||
|
||||
|
||||
@ -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"},]
|
||||
|
||||
|
||||
@ -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"},]
|
||||
|
||||
|
||||
BIN
resources/images/mimetypes/djvu.png
Executable file
BIN
resources/images/mimetypes/djvu.png
Executable file
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
BIN
resources/images/random.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
@ -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:
|
||||
|
||||
@ -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>"
|
||||
|
||||
|
||||
@ -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]
|
||||
|
||||
# }}}
|
||||
|
||||
|
||||
@ -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'
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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')
|
||||
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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'):
|
||||
|
||||
@ -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])
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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', '')
|
||||
|
||||
@ -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
|
||||
----------------
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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])
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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:])
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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 = {}
|
||||
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
28
src/calibre/gui2/actions/random.py
Normal file
28
src/calibre/gui2/actions/random.py
Normal 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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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 = [], ' '
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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)))
|
||||
|
||||
|
||||
@ -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
|
||||
'''
|
||||
|
||||
@ -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 &lowest level of items in the TOC for chapter-to-chapter navigation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
||||
124
src/calibre/gui2/dialogs/device_category_editor.py
Normal file
124
src/calibre/gui2/dialogs/device_category_editor.py
Normal 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))
|
||||
166
src/calibre/gui2/dialogs/device_category_editor.ui
Normal file
166
src/calibre/gui2/dialogs/device_category_editor.ui
Normal 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>
|
||||
@ -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()
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
71
src/calibre/gui2/keyboard.py
Normal file
71
src/calibre/gui2/keyboard.py
Normal 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))
|
||||
|
||||
@ -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"))
|
||||
|
||||
@ -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']]
|
||||
|
||||
@ -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+>', ' ',
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
@ -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?
|
||||
|
||||
@ -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`
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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(' -- ')
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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
@ -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
@ -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."
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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 "
|
||||
|
||||
@ -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."
|
||||
|
||||
@ -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
@ -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
@ -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"
|
||||
|
||||
@ -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 " "
|
||||
|
||||
|
||||
@ -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
Loading…
x
Reference in New Issue
Block a user