From 5dd27c22e631cf80e54f668f25ca32168ed61e02 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 10 Mar 2009 22:04:49 -0700 Subject: [PATCH 1/8] Fix regression with loading custom recipes that use __future__ imports --- src/calibre/web/feeds/recipes/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/web/feeds/recipes/__init__.py b/src/calibre/web/feeds/recipes/__init__.py index 793d5cf45d..94a32a6393 100644 --- a/src/calibre/web/feeds/recipes/__init__.py +++ b/src/calibre/web/feeds/recipes/__init__.py @@ -86,11 +86,15 @@ def compile_recipe(src): match = re.search(r'coding[:=]\s*([-\w.]+)', src[:200]) enc = match.group(1) if match else 'utf-8' src = src.decode(enc) + src = re.sub(r'from __future__.*', '', src) f = open(temp, 'wb') src = 'from %s.web.feeds.news import BasicNewsRecipe, AutomaticNewsRecipe\n'%__appname__ + src src = 'from %s.ebooks.lrf.web.profiles import DefaultProfile, FullContentProfile\n'%__appname__ + src src = '# coding: utf-8\n' + src - f.write(src.replace('from libprs500', 'from calibre').encode('utf-8')) + src = 'from __future__ import with_statement\n' + src + + src = src.replace('from libprs500', 'from calibre').encode('utf-8') + f.write(src) f.close() module = imp.find_module(temp.namebase, [temp.dirname()]) module = imp.load_module(temp.namebase, *module) From e1b3302dcb127b2020f7e7fa399942af6ec265d1 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 11 Mar 2009 11:03:48 -0700 Subject: [PATCH 2/8] Implement #2036 (Add PDB support to the Stanza content server) --- src/calibre/__init__.py | 2 ++ src/calibre/library/server.py | 31 +++++++++++++++++++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index 3bf1f03b42..214c52f14a 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -31,6 +31,8 @@ mimetypes.add_type('application/adobe-page-template+xml', '.xpgt') mimetypes.add_type('application/x-font-opentype', '.otf') mimetypes.add_type('application/x-font-truetype', '.ttf') mimetypes.add_type('application/oebps-package+xml', '.opf') +mimetypes.add_type('application/ereader', '.pdb') +guess_type = mimetypes.guess_type import cssutils cssutils.log.setLevel(logging.WARN) diff --git a/src/calibre/library/server.py b/src/calibre/library/server.py index ba81151517..a93f16d981 100644 --- a/src/calibre/library/server.py +++ b/src/calibre/library/server.py @@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en' HTTP server for remote access to the calibre database. ''' -import sys, textwrap, mimetypes, operator, os, re, logging +import sys, textwrap, operator, os, re, logging from itertools import repeat from logging.handlers import RotatingFileHandler from datetime import datetime @@ -18,7 +18,7 @@ from PyQt4.Qt import QImage, QApplication, QByteArray, Qt, QBuffer from calibre.constants import __version__, __appname__ from calibre.utils.genshi.template import MarkupTemplate -from calibre import fit_image +from calibre import fit_image, guess_type from calibre.resources import jquery, server_resources, build_time from calibre.library import server_config as config from calibre.library.database2 import LibraryDatabase2, FIELD_MAP @@ -77,7 +77,7 @@ class LibraryServer(object): urn:calibre:${record[FM['id']]} ${authors} ${record[FM['timestamp']].strftime('%Y-%m-%dT%H:%M:%S+00:00')} - + @@ -218,7 +218,7 @@ class LibraryServer(object): fmt = self.db.format(id, format, index_is_id=True, as_file=True, mode='rb') if fmt is None: raise cherrypy.HTTPError(404, 'book: %d does not have format: %s'%(id, format)) - mt = mimetypes.guess_type('dummy.'+format.lower())[0] + mt = guess_type('dummy.'+format.lower())[0] if mt is None: mt = 'application/octet-stream' cherrypy.response.headers['Content-Type'] = mt @@ -258,8 +258,9 @@ class LibraryServer(object): for record in iter(self.db): r = record[FIELD_MAP['formats']] r = r.upper() if r else '' - if 'EPUB' in r: - authors = ' & '.join([i.replace('|', ',') for i in record[FIELD_MAP['authors']].split(',')]) + if 'EPUB' in r or 'PDB' in r: + authors = ' & '.join([i.replace('|', ',') for i in + record[FIELD_MAP['authors']].split(',')]) extra = [] rating = record[FIELD_MAP['rating']] if rating > 0: @@ -270,12 +271,18 @@ class LibraryServer(object): extra.append('TAGS: %s
'%', '.join(tags.split(','))) series = record[FIELD_MAP['series']] if series: - extra.append('SERIES: %s [%d]
'%(series, record[FIELD_MAP['series_index']])) - books.append(self.STANZA_ENTRY.generate(authors=authors, - record=record, FM=FIELD_MAP, - port=self.opts.port, - extra = ''.join(extra), - ).render('xml').decode('utf8')) + extra.append('SERIES: %s [%d]
'%(series, + record[FIELD_MAP['series_index']])) + fmt = 'epub' if 'EPUB' in r else 'pdb' + mimetype = guess_type('dummy.'+fmt)[0] + books.append(self.STANZA_ENTRY.generate( + authors=authors, + record=record, FM=FIELD_MAP, + port=self.opts.port, + extra = ''.join(extra), + mimetype=mimetype, + fmt=fmt, + ).render('xml').decode('utf8')) updated = self.db.last_modified() cherrypy.response.headers['Last-Modified'] = self.last_modified(updated) From 291739fc8b127019bf46041f99cd83f20fd2fbb0 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 11 Mar 2009 12:16:52 -0700 Subject: [PATCH 3/8] Fix #2038 (calibre built for Foresight Linux) --- src/calibre/trac/plugins/download.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/trac/plugins/download.py b/src/calibre/trac/plugins/download.py index 020c0a0e3d..ff98123f1d 100644 --- a/src/calibre/trac/plugins/download.py +++ b/src/calibre/trac/plugins/download.py @@ -33,9 +33,10 @@ def get_linux_data(version='1.0.0'): data['title'] = 'Download calibre for linux' data['supported'] = [] for name, title in [ - ('ubuntu', 'Ubuntu Jaunty Jackalope'), ('debian', 'Debian Sid'), ('exherbo', 'Exherbo'), + ('foresight', 'Foresight 2.1'), + ('ubuntu', 'Ubuntu Jaunty Jackalope'), ]: data['supported'].append(CoolDistro(name, title, prefix='http://calibre.kovidgoyal.net')) From 0813f616c266628e4e64d4fdb0113397641c8d73 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 11 Mar 2009 12:17:23 -0700 Subject: [PATCH 4/8] IGN:Updated translations --- src/calibre/translations/ar.po | 560 ++++++++-------- src/calibre/translations/bg.po | 2 +- src/calibre/translations/ca.po | 2 +- src/calibre/translations/cs.po | 10 +- src/calibre/translations/de.po | 2 +- src/calibre/translations/el.po | 2 +- src/calibre/translations/es.po | 2 +- src/calibre/translations/fr.po | 39 +- src/calibre/translations/gl.po | 2 +- src/calibre/translations/he.po | 2 +- src/calibre/translations/hu.po | 2 +- src/calibre/translations/it.po | 2 +- src/calibre/translations/nb.po | 2 +- src/calibre/translations/nds.po | 2 +- src/calibre/translations/nl.po | 2 +- src/calibre/translations/pl.po | 14 +- src/calibre/translations/pt.po | 1058 ++++++++++++++++++------------- src/calibre/translations/ro.po | 2 +- src/calibre/translations/ru.po | 2 +- src/calibre/translations/sk.po | 2 +- src/calibre/translations/sl.po | 2 +- src/calibre/translations/sv.po | 2 +- src/calibre/translations/te.po | 2 +- 23 files changed, 956 insertions(+), 761 deletions(-) diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index 5838f96530..32f9257804 100644 --- a/src/calibre/translations/ar.po +++ b/src/calibre/translations/ar.po @@ -8,18 +8,18 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2009-02-26 19:09+0000\n" -"PO-Revision-Date: 2009-02-04 10:04+0000\n" -"Last-Translator: عبد الله شلي (Abdellah Chelli) \n" +"PO-Revision-Date: 2009-03-11 12:39+0000\n" +"Last-Translator: صقر بن عبدالله \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-03-06 17:12+0000\n" +"X-Launchpad-Export-Date: 2009-03-11 18:28+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 msgid "Does absolutely nothing" -msgstr "" +msgstr "لا يفعل شيءً" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:44 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 @@ -102,7 +102,7 @@ msgstr "مجهول" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:62 msgid "Base" -msgstr "أساس" +msgstr "قاعدة" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:148 msgid "File type" @@ -110,11 +110,11 @@ msgstr "نوع الملف" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:182 msgid "Metadata reader" -msgstr "" +msgstr "قارئ الميتاداتا" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:209 msgid "Metadata writer" -msgstr "كاتب البيانات الوصفية" +msgstr "كاتب الميتاداتا" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:12 msgid "" @@ -137,7 +137,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:146 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:156 msgid "Read metadata from %s files" -msgstr "إقرأ البيانات الوصفية من الملفات %s" +msgstr "يقرأ الميتاداتا من الملفات %s" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:166 msgid "Extract cover from comic files" @@ -145,7 +145,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:186 msgid "Read metadata from ebooks in ZIP archives" -msgstr "إقرأ البيانات الوصفية من كتب إلكترونية في محفوظات ZIP" +msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:196 msgid "Read metadata from ebooks in RAR archives" @@ -156,7 +156,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:227 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:237 msgid "Set metadata in %s files" -msgstr "" +msgstr "ضبط الميتاداتا في الملفات %s" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:28 msgid "Installed plugins" @@ -168,7 +168,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:30 msgid "Local plugin customization" -msgstr "تخصيص ملحقات محلية" +msgstr "تخصيص الملحقات المحلية" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 msgid "Disabled plugins" @@ -176,7 +176,7 @@ msgstr "ملحقات معطلة" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:66 msgid "No valid plugin found in " -msgstr "لم يعثر على أي ملحق صالح في " +msgstr "لا يجد ملحق صالح " #: /home/kovid/work/calibre/src/calibre/customize/ui.py:185 msgid "Initialization of plugin %s failed with traceback:" @@ -192,35 +192,35 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:268 msgid "Add a plugin by specifying the path to the zip file containing it." -msgstr "أضف ملحقا بتعيين المسار إلى ملف zip الذي يحتويه." +msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:270 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" -msgstr "" +msgstr "حذف الملحق المخصص عن طريق اسمه. لا يؤثر على الملحقات المضمنة" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:272 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." -msgstr "" +msgstr "تخصيص الملحق حدد اسم الملحق وسلسلة التخصيص وفرقهما بفاصلة." #: /home/kovid/work/calibre/src/calibre/customize/ui.py:274 msgid "List all installed plugins" -msgstr "أسرد كل الملحقات المثبتة" +msgstr "قائمة كل الملحقات المثبتة" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:276 msgid "Enable the named plugin" -msgstr "شغل الملحق المسمى" +msgstr "تمكين الملحق المسمى" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:278 msgid "Disable the named plugin" -msgstr "عطل الملحق المسمى" +msgstr "تعطيل الملحق المسمى" #: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:42 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:390 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 msgid "The reader has no storage card connected." -msgstr "" +msgstr "ليس للقارئ بطاقة تخزين." #: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:61 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:89 @@ -239,17 +239,17 @@ msgstr "لا توجد مساحة كافية في الذاكرة الرئيسية #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:231 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:258 msgid "Unable to detect the %s disk drive. Try rebooting." -msgstr "" +msgstr "لم يتمكن من كشف القرص %s. حاول إعادة التشغيل." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:94 msgid "Options to control the conversion to EPUB" -msgstr "" +msgstr "الخيارات للتحكّم على التحويل لتهيئة EPUB" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:105 msgid "" "The output EPUB file. If not specified, it is derived from the input file " "name." -msgstr "" +msgstr "خرج الملف EPUB. إذا لم يتم التحديد، سوف يستخرج من اسم ملف الدخل." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:108 msgid "" @@ -292,7 +292,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:139 msgid "Path to the cover to be used for this book" -msgstr "" +msgstr "المسار إلى الغلاف الذي سيستخدم لهذا الكتاب" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:142 msgid "" @@ -305,6 +305,8 @@ msgid "" "Remove the first image from the input ebook. Useful if the first image in " "the source file is a cover and you are specifying an external cover." msgstr "" +"حذف أول صورة من دخل الكتاب الإلكتروني. هذا يفيد حين تريد استخدام غلاف مختلف " +"من الغلاف المضمون." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:149 msgid "" @@ -346,13 +348,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:175 msgid "Don't add auto-detected chapters to the Table of Contents." -msgstr "" +msgstr "لا تضف الفصول المكشوفة آلياً إلى قائمة المحتويات." #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:177 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" msgstr "" +"إذا يتم كشف عدد أقل من هذا بين الفصول فسوف يضيف وصلات إلى قائمة المحتويات. " +"الإفتراضي هو: %default" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/__init__.py:180 msgid "" @@ -568,7 +572,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/html.py:949 msgid "A summary of this book." -msgstr "" +msgstr "تلخيص عن هذا الكتاب." #: /home/kovid/work/calibre/src/calibre/ebooks/html.py:951 msgid "Load metadata from the specified OPF file" @@ -640,40 +644,42 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:76 msgid "Set the title. Default: filename." -msgstr "" +msgstr "تحديد العنوان. الإفتراضي: اسم الملف." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:78 msgid "" "Set the author(s). Multiple authors should be set as a comma separated list. " "Default: %default" msgstr "" +"تحديد المؤلف، إن كان هناك أكثر من مؤلف واحد، فرق بين أسماءهم بفاصلة. " +"الإفتراضي هو: %default" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:81 msgid "Set the comment." -msgstr "" +msgstr "تحديد التعليق." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:83 msgid "Set the category" -msgstr "" +msgstr "تحديد التصنيف" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:85 msgid "Sort key for the title" -msgstr "" +msgstr "Sort key for the title" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:87 msgid "Sort key for the author" -msgstr "" +msgstr "Sort key for the author" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:89 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:288 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:111 msgid "Publisher" -msgstr "ناشر" +msgstr "الناشر" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:91 msgid "Path to file containing image to be used as cover" -msgstr "" +msgstr "المسار إلى الملف الذي يحتوي صورة الغلاف" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:93 msgid "" @@ -683,7 +689,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:96 msgid "Output file name. Default is derived from input filename" -msgstr "" +msgstr "اسم ملف الخرج. الإفتراضي يستخرج من ملف الدخل" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:98 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/writer.py:554 @@ -709,7 +715,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:108 msgid "Separate paragraphs by blank lines." -msgstr "" +msgstr "فرّق بين الفقرات بأسطر فارغة." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:110 msgid "Add a header to all the pages with title and author." @@ -766,19 +772,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:139 msgid "Left margin of page. Default is %default px." -msgstr "" +msgstr "الهامش الأيسر من الصفحة. الإفتراضي هو %default px." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:141 msgid "Right margin of page. Default is %default px." -msgstr "" +msgstr "الهامش الأيمن من الصفحة. الإفتراضي هو %default px." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:143 msgid "Top margin of page. Default is %default px." -msgstr "" +msgstr "الهامش الأعلى من الصفحة. الإفتراضي هو %default px." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:145 msgid "Bottom margin of page. Default is %default px." -msgstr "" +msgstr "الهامش الأسفل من الصفحة. الإفتراضي هو %default px." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:147 msgid "" @@ -807,11 +813,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:162 msgid "Don't add links to the table of contents." -msgstr "" +msgstr "لا تضف وصلات في قائمة المحتويات." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:166 msgid "Prevent the automatic detection chapters." -msgstr "" +msgstr "منع كشف آلي للفصول." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:169 msgid "" @@ -855,7 +861,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:189 msgid "Add detected chapters to the table of contents." -msgstr "" +msgstr "إضافة فصول مكشوفة إلى قائمة المحتويات." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:192 msgid "Preprocess Baen HTML files to improve generated LRF." @@ -897,7 +903,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:219 msgid "Convert to LRS" -msgstr "" +msgstr "حول إلى LRS" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:221 msgid "" @@ -930,7 +936,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/any/convert_from.py:190 msgid "No file to convert specified." -msgstr "" +msgstr "لم يتم تحديد الملف لتحويله." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:224 msgid "Rendered %s" @@ -938,7 +944,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:227 msgid "Failed %s" -msgstr "" +msgstr "فشل %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:279 msgid "" @@ -954,12 +960,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:292 msgid "Title for generated ebook. Default is to use the filename." -msgstr "" +msgstr "تم إنشاء عنوان للكتاب. الإفتراضي يؤخذ من اسم الملف." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:294 msgid "" "Set the author in the metadata of the generated ebook. Default is %default" msgstr "" +"تحديد المؤلف في ميتاداتا الكتاب الذي تم إنشاءه. الإفتراضي هو %default" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:297 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftrim.py:22 @@ -1043,7 +1050,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:389 msgid "Output written to" -msgstr "" +msgstr "تم كتابة الخرج إلى" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/comic/convert_from.py:549 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/from_comic.py:35 @@ -1105,7 +1112,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:376 msgid "Processing %s" -msgstr "" +msgstr "يعالج %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:390 msgid "\tConverting to BBeB..." @@ -1118,7 +1125,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:541 msgid "%s is an empty file" -msgstr "" +msgstr "%s ملف فارغ" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:561 msgid "Failed to parse link %s %s" @@ -1141,6 +1148,8 @@ msgid "" "Could not process image: %s\n" "%s" msgstr "" +"لم يتمكن من معالجة: %s\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1768 msgid "" @@ -1152,6 +1161,8 @@ msgid "" "Bad table:\n" "%s" msgstr "" +"جدول غير صالح:\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1792 msgid "Table has cell that is too large" @@ -1165,15 +1176,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Could not read cover image: %s" -msgstr "" +msgstr "لم يتمكن من قراءة صورة الغلاف: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1868 msgid "Cannot read from: %s" -msgstr "" +msgstr "لا يمكن القراءة من: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1993 msgid "Failed to process opf file" -msgstr "" +msgstr "فشل في معالجة ملف opf" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1999 msgid "" @@ -1202,11 +1213,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 msgid "Output LRS file" -msgstr "" +msgstr "خرج ملف LRS" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 msgid "Do not save embedded image and font files to disk" -msgstr "" +msgstr "لا تحفظ ملفات الصور والخظوظ المضمنة في القرص" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 msgid "Parsing LRF..." @@ -1218,7 +1229,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 msgid "LRS written to " -msgstr "" +msgstr "تم كتابة LRS في " #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:249 msgid "Could not read from thumbnail file:" @@ -1232,7 +1243,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:270 msgid "Path to output file" -msgstr "" +msgstr "المسار إلى ملف الخرج" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:272 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:115 @@ -1259,7 +1270,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:587 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:43 msgid "Set the book title" -msgstr "" +msgstr "تحديد عنوان الكتاب" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 msgid "Set sort key for the title" @@ -1267,7 +1278,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 msgid "Set the author" -msgstr "" +msgstr "تحديد المؤلف" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 msgid "Set sort key for the author" @@ -1276,7 +1287,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:47 msgid "The category this book belongs to. E.g.: History" -msgstr "" +msgstr "تصنيف الكتاب. مثلاً: تاريخ" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:598 msgid "Path to a graphic that will be set as this files' thumbnail" @@ -1294,7 +1305,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:606 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:191 msgid "Set the publisher" -msgstr "" +msgstr "تحديد الناشر" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 msgid "Set the book classification" @@ -1306,7 +1317,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 msgid "Set the book producer" -msgstr "" +msgstr "تحديد منتج الكتاب" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 msgid "" @@ -1316,7 +1327,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 msgid "Set book ID" -msgstr "" +msgstr "تحديد هوية الكتاب" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/mobi/convert_from.py:43 msgid "" @@ -1355,7 +1366,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/pdf/reflow.py:417 msgid "You must specify a single PDF file." -msgstr "" +msgstr "يجب أن تحدد ملف PDF واحد." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/rtf/convert_from.py:21 msgid "" @@ -1381,11 +1392,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:45 msgid "Set the authors" -msgstr "" +msgstr "تحديد المؤلفين" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:49 msgid "Set the comment" -msgstr "" +msgstr "تحديد التعليق" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:286 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 @@ -1395,7 +1406,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:966 msgid "Title" -msgstr "" +msgstr "العنوان" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:287 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:37 @@ -1403,11 +1414,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:967 msgid "Author(s)" -msgstr "" +msgstr "المؤلف أو المؤلفون" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:289 msgid "Producer" -msgstr "" +msgstr "المنتج" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:290 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 @@ -1418,7 +1429,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:320 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:58 msgid "Comments" -msgstr "" +msgstr "التعليقات" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:292 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:112 @@ -1428,7 +1439,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/status.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/tags.py:50 msgid "Tags" -msgstr "" +msgstr "الوسوم" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:294 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:113 @@ -1440,7 +1451,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:295 msgid "Language" -msgstr "" +msgstr "اللغة" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:297 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:909 @@ -1461,15 +1472,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/epub.py:208 msgid "The book language" -msgstr "" +msgstr "لغة الكتاب" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/epub.py:210 msgid "Extract the cover" -msgstr "" +msgstr "استخراج الغلاف" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:54 msgid "Usage:" -msgstr "" +msgstr "الاستخدام:" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/imp.py:53 msgid "Usage: imp-meta file.imp" @@ -1479,7 +1490,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:59 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/rb.py:60 msgid "No filename specified." -msgstr "" +msgstr "لم يتم تحديد اسم الملف." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:97 msgid "" @@ -1501,19 +1512,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:110 msgid "The author whose book to search for." -msgstr "" +msgstr "المؤلف الذي تريد البحث عنه." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:112 msgid "The title of the book to search for." -msgstr "" +msgstr "العنوان الذي تريد البحث عنه." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:114 msgid "The publisher of the book to search for." -msgstr "" +msgstr "الناشر الذي تريد البحث عنه." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:46 msgid "LibraryThing.com timed out. Try again later." -msgstr "" +msgstr "LibraryThing.com لم يرد. حاول لاحقاً." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:53 msgid "" @@ -1523,12 +1534,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:54 msgid " not found." -msgstr "" +msgstr " لم يوجد." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:57 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:88 msgid "LibraryThing.com server error. Try again later." -msgstr "" +msgstr "خطأ في خادم LibraryThing.com. حاول لاحقاً." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:66 msgid "" @@ -1540,24 +1551,24 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/lit.py:35 msgid "Usage: %s file.lit" -msgstr "" +msgstr "الاستخدام: %s file.lit" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/lit.py:45 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:236 msgid "Cover saved to" -msgstr "" +msgstr "تم حفظ الغلاف في" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:187 msgid "Set the subject tags" -msgstr "" +msgstr "تحديد وسوم الموضوع" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:189 msgid "Set the language" -msgstr "" +msgstr "تحديد اللغة" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:193 msgid "Set the ISBN" -msgstr "" +msgstr "تحديد الـISBN" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1014 msgid "Set the dc:language field" @@ -1627,7 +1638,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/writer.py:576 msgid "[options]" -msgstr "" +msgstr "[الخيارات]" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/writer.py:594 msgid "Unknown source profile %r" @@ -1639,38 +1650,38 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/odt/to_oeb.py:57 msgid "The output directory. Defaults to the current directory." -msgstr "" +msgstr "ا" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:822 msgid "Cover" -msgstr "" +msgstr "الغلاف" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:823 msgid "Title Page" -msgstr "" +msgstr "صقحة العنوان" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:824 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:160 msgid "Table of Contents" -msgstr "" +msgstr "المحتويات" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:825 msgid "Index" -msgstr "" +msgstr "الفهرس" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:826 msgid "Glossary" -msgstr "" +msgstr "المسرد" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:827 msgid "Acknowledgements" -msgstr "" +msgstr "شكر وتقدير" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:828 msgid "Bibliography" -msgstr "" +msgstr "ببليوغرافيا" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:829 msgid "Colophon" @@ -1682,7 +1693,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:831 msgid "Dedication" -msgstr "" +msgstr "الإهداء" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:832 msgid "Epigraph" @@ -1694,15 +1705,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:834 msgid "List of Illustrations" -msgstr "" +msgstr "قائمة الرسوم" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:835 msgid "List of Tables" -msgstr "" +msgstr "قائمة الجداول" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:836 msgid "Notes" -msgstr "" +msgstr "الملاحظات" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:837 msgid "Preface" @@ -1710,7 +1721,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:838 msgid "Main Text" -msgstr "" +msgstr "النصّ الرئيسي" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftrim.py:13 msgid "Options to control the transformation of pdf" @@ -1777,7 +1788,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 msgid "Notify when a new version is available" -msgstr "" +msgstr "Notify when a new version is available" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 msgid "Use Roman numerals for series number" @@ -1839,7 +1850,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:87 msgid "Added %s to library" -msgstr "" +msgstr "تم إضافة %s إلى المكتبة" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/add.py:162 @@ -1852,6 +1863,7 @@ msgid "" "

Books with the same title as the following already exist in the database. " "Add them anyway?