mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Make PRS 500 driver thread safe. Fixes #4307 (PRS-500 not recognized in 0.6.30)
This commit is contained in:
commit
d7c24b9896
@ -39,6 +39,7 @@ from tempfile import TemporaryFile
|
|||||||
from array import array
|
from array import array
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
from threading import RLock
|
||||||
|
|
||||||
from calibre.devices.interface import DevicePlugin
|
from calibre.devices.interface import DevicePlugin
|
||||||
from calibre.devices.libusb import Error as USBError
|
from calibre.devices.libusb import Error as USBError
|
||||||
@ -52,6 +53,7 @@ from calibre.devices.usbms.deviceconfig import DeviceConfig
|
|||||||
# Protocol versions this driver has been tested with
|
# Protocol versions this driver has been tested with
|
||||||
KNOWN_USB_PROTOCOL_VERSIONS = [0x3030303030303130L]
|
KNOWN_USB_PROTOCOL_VERSIONS = [0x3030303030303130L]
|
||||||
|
|
||||||
|
lock = RLock()
|
||||||
|
|
||||||
class File(object):
|
class File(object):
|
||||||
"""
|
"""
|
||||||
@ -161,9 +163,12 @@ class PRS500(DeviceConfig, DevicePlugin):
|
|||||||
"""
|
"""
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
def run_session(*args, **kwargs):
|
def run_session(*args, **kwargs):
|
||||||
|
with lock:
|
||||||
dev = args[0]
|
dev = args[0]
|
||||||
res = None
|
res = None
|
||||||
try:
|
try:
|
||||||
|
if not hasattr(dev, 'in_session'):
|
||||||
|
dev.reset()
|
||||||
if not dev.handle:
|
if not dev.handle:
|
||||||
dev.open()
|
dev.open()
|
||||||
if not getattr(dev, 'in_session', False):
|
if not getattr(dev, 'in_session', False):
|
||||||
@ -204,6 +209,7 @@ class PRS500(DeviceConfig, DevicePlugin):
|
|||||||
If it is called with -1 that means that the
|
If it is called with -1 that means that the
|
||||||
task does not have any progress information
|
task does not have any progress information
|
||||||
"""
|
"""
|
||||||
|
with lock:
|
||||||
self.device = get_device_by_id(self.VENDOR_ID, self.PRODUCT_ID)
|
self.device = get_device_by_id(self.VENDOR_ID, self.PRODUCT_ID)
|
||||||
# Handle that is used to communicate with device. Setup in L{open}
|
# Handle that is used to communicate with device. Setup in L{open}
|
||||||
self.handle = None
|
self.handle = None
|
||||||
@ -244,8 +250,9 @@ class PRS500(DeviceConfig, DevicePlugin):
|
|||||||
Also initialize the device.
|
Also initialize the device.
|
||||||
See the source code for the sequence of initialization commands.
|
See the source code for the sequence of initialization commands.
|
||||||
"""
|
"""
|
||||||
|
with lock:
|
||||||
if not hasattr(self, 'key'):
|
if not hasattr(self, 'key'):
|
||||||
self.key = '-1\0\0\0\0\0\0'
|
self.reset()
|
||||||
self.device = get_device_by_id(self.VENDOR_ID, self.PRODUCT_ID)
|
self.device = get_device_by_id(self.VENDOR_ID, self.PRODUCT_ID)
|
||||||
if not self.device:
|
if not self.device:
|
||||||
raise DeviceError()
|
raise DeviceError()
|
||||||
@ -295,6 +302,7 @@ class PRS500(DeviceConfig, DevicePlugin):
|
|||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
""" Release device interface """
|
""" Release device interface """
|
||||||
|
with lock:
|
||||||
try:
|
try:
|
||||||
self.handle.reset()
|
self.handle.reset()
|
||||||
self.handle.release_interface(self.INTERFACE_ID)
|
self.handle.release_interface(self.INTERFACE_ID)
|
||||||
@ -313,6 +321,7 @@ class PRS500(DeviceConfig, DevicePlugin):
|
|||||||
@param timeout: The time to wait for a response from the
|
@param timeout: The time to wait for a response from the
|
||||||
device, in milliseconds. If there is no response, a L{usb.USBError} is raised.
|
device, in milliseconds. If there is no response, a L{usb.USBError} is raised.
|
||||||
"""
|
"""
|
||||||
|
with lock:
|
||||||
if self.log_packets:
|
if self.log_packets:
|
||||||
self.log_packet(command, "Command")
|
self.log_packet(command, "Command")
|
||||||
bytes_sent = self.handle.control_msg(0x40, 0x80, command)
|
bytes_sent = self.handle.control_msg(0x40, 0x80, command)
|
||||||
@ -347,6 +356,7 @@ class PRS500(DeviceConfig, DevicePlugin):
|
|||||||
@param packet_size: Size of packets to be sent to device.
|
@param packet_size: Size of packets to be sent to device.
|
||||||
C{data} is broken up into packets to be sent to device.
|
C{data} is broken up into packets to be sent to device.
|
||||||
"""
|
"""
|
||||||
|
with lock:
|
||||||
def bulk_write_packet(packet):
|
def bulk_write_packet(packet):
|
||||||
self.handle.bulk_write(self.BULK_OUT_EP, packet)
|
self.handle.bulk_write(self.BULK_OUT_EP, packet)
|
||||||
if self.log_packets:
|
if self.log_packets:
|
||||||
@ -395,6 +405,7 @@ class PRS500(DeviceConfig, DevicePlugin):
|
|||||||
@return: A list of packets read from the device.
|
@return: A list of packets read from the device.
|
||||||
Each packet is of type data_type
|
Each packet is of type data_type
|
||||||
"""
|
"""
|
||||||
|
with lock:
|
||||||
msize = self.bulk_read_max_packet_size
|
msize = self.bulk_read_max_packet_size
|
||||||
def bulk_read_packet(data_type=Answer, size=0x1000):
|
def bulk_read_packet(data_type=Answer, size=0x1000):
|
||||||
rsize = size
|
rsize = size
|
||||||
|
@ -7,14 +7,14 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: calibre\n"
|
"Project-Id-Version: calibre\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2009-12-25 04:54+0000\n"
|
"POT-Creation-Date: 2009-12-26 16:57+0000\n"
|
||||||
"PO-Revision-Date: 2009-12-25 19:11+0000\n"
|
"PO-Revision-Date: 2009-12-26 16:45+0000\n"
|
||||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||||
"Language-Team: Arabic <ar@li.org>\n"
|
"Language-Team: Arabic <ar@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2009-12-26 04:31+0000\n"
|
"X-Launchpad-Export-Date: 2009-12-27 04:31+0000\n"
|
||||||
"X-Generator: Launchpad (build Unknown)\n"
|
"X-Generator: Launchpad (build Unknown)\n"
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
|
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
|
||||||
@ -64,8 +64,8 @@ msgstr "لا يفعل شيءً"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:593
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:594
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:783
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:784
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
||||||
@ -132,7 +132,7 @@ msgstr "لا يفعل شيءً"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
||||||
@ -7361,10 +7361,18 @@ msgid "English (TH)"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
||||||
msgid "Dutch (NL)"
|
msgid "English (CY)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
||||||
|
msgid "German (AT)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
||||||
|
msgid "Dutch (NL)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106
|
||||||
msgid "Dutch (BE)"
|
msgid "Dutch (BE)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -7,14 +7,14 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: de\n"
|
"Project-Id-Version: de\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2009-12-25 04:54+0000\n"
|
"POT-Creation-Date: 2009-12-26 16:57+0000\n"
|
||||||
"PO-Revision-Date: 2009-12-25 21:08+0000\n"
|
"PO-Revision-Date: 2009-12-26 20:24+0000\n"
|
||||||
"Last-Translator: S. Dorscht <Unknown>\n"
|
"Last-Translator: S. Dorscht <Unknown>\n"
|
||||||
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2009-12-26 04:32+0000\n"
|
"X-Launchpad-Export-Date: 2009-12-27 04:31+0000\n"
|
||||||
"X-Generator: Launchpad (build Unknown)\n"
|
"X-Generator: Launchpad (build Unknown)\n"
|
||||||
"Generated-By: pygettext.py 1.5\n"
|
"Generated-By: pygettext.py 1.5\n"
|
||||||
|
|
||||||
@ -65,8 +65,8 @@ msgstr "Macht absolut gar nichts"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:593
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:594
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:783
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:784
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
||||||
@ -133,7 +133,7 @@ msgstr "Macht absolut gar nichts"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
||||||
@ -8227,10 +8227,18 @@ msgid "English (TH)"
|
|||||||
msgstr "Englisch (TH)"
|
msgstr "Englisch (TH)"
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
||||||
|
msgid "English (CY)"
|
||||||
|
msgstr "Englisch (CY)"
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
||||||
|
msgid "German (AT)"
|
||||||
|
msgstr "Deutsch (AT)"
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
||||||
msgid "Dutch (NL)"
|
msgid "Dutch (NL)"
|
||||||
msgstr "Holländisch (NL)"
|
msgstr "Holländisch (NL)"
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106
|
||||||
msgid "Dutch (BE)"
|
msgid "Dutch (BE)"
|
||||||
msgstr "Holländisch (BE)"
|
msgstr "Holländisch (BE)"
|
||||||
|
|
||||||
|
@ -10,14 +10,14 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: es\n"
|
"Project-Id-Version: es\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2009-12-25 04:54+0000\n"
|
"POT-Creation-Date: 2009-12-26 16:57+0000\n"
|
||||||
"PO-Revision-Date: 2009-12-26 01:25+0000\n"
|
"PO-Revision-Date: 2009-12-26 16:48+0000\n"
|
||||||
"Last-Translator: mosteo <alejandro@mosteo.com>\n"
|
"Last-Translator: mosteo <alejandro@mosteo.com>\n"
|
||||||
"Language-Team: Spanish\n"
|
"Language-Team: Spanish\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2009-12-26 04:33+0000\n"
|
"X-Launchpad-Export-Date: 2009-12-27 04:32+0000\n"
|
||||||
"X-Generator: Launchpad (build Unknown)\n"
|
"X-Generator: Launchpad (build Unknown)\n"
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
|
#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41
|
||||||
@ -67,8 +67,8 @@ msgstr "No hacer nada en absoluto"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:593
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:594
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:783
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:784
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
||||||
@ -135,7 +135,7 @@ msgstr "No hacer nada en absoluto"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
||||||
@ -8181,10 +8181,18 @@ msgid "English (TH)"
|
|||||||
msgstr "Inglés (TH)"
|
msgstr "Inglés (TH)"
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
||||||
|
msgid "English (CY)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
||||||
|
msgid "German (AT)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
||||||
msgid "Dutch (NL)"
|
msgid "Dutch (NL)"
|
||||||
msgstr "Neerlandés (NL)"
|
msgstr "Neerlandés (NL)"
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106
|
||||||
msgid "Dutch (BE)"
|
msgid "Dutch (BE)"
|
||||||
msgstr "Neerlandés (BE)"
|
msgstr "Neerlandés (BE)"
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -7,14 +7,14 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: calibre\n"
|
"Project-Id-Version: calibre\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2009-12-25 04:54+0000\n"
|
"POT-Creation-Date: 2009-12-26 16:57+0000\n"
|
||||||
"PO-Revision-Date: 2009-12-25 19:14+0000\n"
|
"PO-Revision-Date: 2009-12-26 16:50+0000\n"
|
||||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||||
"Language-Team: Latvian <ivars_a@inbox.lv>\n"
|
"Language-Team: Latvian <ivars_a@inbox.lv>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2009-12-26 04:32+0000\n"
|
"X-Launchpad-Export-Date: 2009-12-27 04:31+0000\n"
|
||||||
"X-Generator: Launchpad (build Unknown)\n"
|
"X-Generator: Launchpad (build Unknown)\n"
|
||||||
"X-Poedit-Country: LATVIA\n"
|
"X-Poedit-Country: LATVIA\n"
|
||||||
"X-Poedit-Language: Latvian\n"
|
"X-Poedit-Language: Latvian\n"
|
||||||
@ -66,8 +66,8 @@ msgstr "Pilnīgi neko nedara"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:593
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:594
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:783
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:784
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
||||||
@ -134,7 +134,7 @@ msgstr "Pilnīgi neko nedara"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
||||||
@ -7354,10 +7354,18 @@ msgid "English (TH)"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
||||||
msgid "Dutch (NL)"
|
msgid "English (CY)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
||||||
|
msgid "German (AT)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
||||||
|
msgid "Dutch (NL)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106
|
||||||
msgid "Dutch (BE)"
|
msgid "Dutch (BE)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -6,14 +6,14 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: calibre 0.4.55\n"
|
"Project-Id-Version: calibre 0.4.55\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2009-12-25 04:54+0000\n"
|
"POT-Creation-Date: 2009-12-26 16:57+0000\n"
|
||||||
"PO-Revision-Date: 2009-12-25 19:27+0000\n"
|
"PO-Revision-Date: 2009-12-26 16:54+0000\n"
|
||||||
"Last-Translator: Kovid Goyal <Unknown>\n"
|
"Last-Translator: Kovid Goyal <Unknown>\n"
|
||||||
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
"Language-Team: American English <kde-i18n-doc@lists.kde.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2009-12-26 04:32+0000\n"
|
"X-Launchpad-Export-Date: 2009-12-27 04:31+0000\n"
|
||||||
"X-Generator: Launchpad (build Unknown)\n"
|
"X-Generator: Launchpad (build Unknown)\n"
|
||||||
"X-Poedit-Country: RUSSIAN FEDERATION\n"
|
"X-Poedit-Country: RUSSIAN FEDERATION\n"
|
||||||
"X-Poedit-Language: Russian\n"
|
"X-Poedit-Language: Russian\n"
|
||||||
@ -68,8 +68,8 @@ msgstr "Ничего не делает"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:593
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:594
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:783
|
#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:784
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896
|
||||||
@ -136,7 +136,7 @@ msgstr "Ничего не делает"
|
|||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:645
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:717
|
||||||
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
#: /home/kovid/work/calibre/src/calibre/library/server.py:764
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77
|
||||||
@ -7760,10 +7760,18 @@ msgid "English (TH)"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103
|
||||||
msgid "Dutch (NL)"
|
msgid "English (CY)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104
|
||||||
|
msgid "German (AT)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105
|
||||||
|
msgid "Dutch (NL)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106
|
||||||
msgid "Dutch (BE)"
|
msgid "Dutch (BE)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
7541
src/calibre/translations/sq.po
Normal file
7541
src/calibre/translations/sq.po
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user