summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Valroff <julien@kirya.net>2011-04-16 16:39:17 +0200
committerJulien Valroff <julien@kirya.net>2011-04-16 16:39:17 +0200
commit5539b9c5aa11891c66104fe51ebb5e9b4ad31538 (patch)
treea08efd10faf1ac622a62e29d17da6d4f1f0aeac3
parent07934178861343ee213674120db367b8faeef1be (diff)
parent75b28642dd41fb4a7925b42cb24274de90a4f52c (diff)
Merge commit 'upstream/0.4.0_beta1' into experimental
-rw-r--r--PKG-INFO2
-rw-r--r--po/cs.po2802
-rw-r--r--po/fr.po334
-rw-r--r--po/rapid-photo-downloader.pot262
-rw-r--r--po/ru.po2914
-rw-r--r--rapid/ChangeLog50
-rw-r--r--rapid/config.py4
-rw-r--r--rapid/copyfiles.py33
-rw-r--r--rapid/downloadtracker.py199
-rw-r--r--rapid/glade3/media-eject.pngbin0 -> 431 bytes
-rw-r--r--rapid/glade3/rapid-photo-downloader-download-pending.pngbin0 -> 815 bytes
-rw-r--r--rapid/glade3/rapid-photo-downloader-download-pending.svg187
-rw-r--r--rapid/glade3/rapid.ui6
-rw-r--r--rapid/preferencesdialog.py7
-rw-r--r--rapid/prefsrapid.py35
-rwxr-xr-xrapid/rapid.py670
-rw-r--r--rapid/rpdmultiprocessing.py1
-rw-r--r--rapid/subfolderfile.py6
-rw-r--r--rapid/thumbnail.py3
-rw-r--r--setup.py3
20 files changed, 4307 insertions, 3211 deletions
diff --git a/PKG-INFO b/PKG-INFO
index d75aec3..2349c68 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: rapid-photo-downloader
-Version: 0.4.0~a4
+Version: 0.4.0~b1
Summary: Rapid Photo Downloader for Linux
Home-page: http://www.damonlynch.net/rapid
Author: Damon Lynch
diff --git a/po/cs.po b/po/cs.po
index 55a2357..eee5b67 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,239 +7,22 @@ msgid ""
msgstr ""
"Project-Id-Version: rapid\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2010-12-28 02:49-0600\n"
-"PO-Revision-Date: 2011-02-10 18:47+0000\n"
-"Last-Translator: Kuvaly [LCT] <kuvaly@seznam.cz>\n"
+"POT-Creation-Date: 2011-04-04 00:18-0500\n"
+"PO-Revision-Date: 2011-04-09 18:48+0000\n"
+"Last-Translator: Vlastimil Ott <vlastimil@e-ott.info>\n"
"Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-03-20 22:12+0000\n"
-"X-Generator: Launchpad (build 12617)\n"
+"X-Launchpad-Export-Date: 2011-04-11 01:01+0000\n"
+"X-Generator: Launchpad (build 12757)\n"
#. Translators: if neccessary, for guidance in how to translate this program, you may see http://damonlynch.net/translate.html
-#: rapid/rapid.py:124 rapid/rapid.py:6468 rapid/glade3/rapid.glade.h:71
+#: rapid/rapid.py:103 rapid/glade3/rapid.ui.h:11
msgid "Rapid Photo Downloader"
msgstr "Rapid Photo Downloader"
-#: rapid/rapid.py:461
-msgid "New York"
-msgstr "New York"
-
-#: rapid/rapid.py:462
-msgid "Manila"
-msgstr "Manila"
-
-#: rapid/rapid.py:462
-msgid "Prague"
-msgstr "Praha"
-
-#: rapid/rapid.py:462
-msgid "Helsinki"
-msgstr "Helsinki"
-
-#: rapid/rapid.py:462
-msgid "Wellington"
-msgstr "Wellington"
-
-#: rapid/rapid.py:463
-msgid "Tehran"
-msgstr "Teherán"
-
-#: rapid/rapid.py:463
-msgid "Kampala"
-msgstr "Kampala"
-
-#: rapid/rapid.py:463
-msgid "Paris"
-msgstr "Paříž"
-
-#: rapid/rapid.py:463
-msgid "Berlin"
-msgstr "Berlín"
-
-#: rapid/rapid.py:463
-msgid "Sydney"
-msgstr "Sydney"
-
-#: rapid/rapid.py:464
-msgid "Budapest"
-msgstr "Budapešť"
-
-#: rapid/rapid.py:464
-msgid "Rome"
-msgstr "Řím"
-
-#: rapid/rapid.py:464
-msgid "Moscow"
-msgstr "Moskva"
-
-#: rapid/rapid.py:464
-msgid "Delhi"
-msgstr "Dílí"
-
-#: rapid/rapid.py:464
-msgid "Warsaw"
-msgstr "Varšava"
-
-#: rapid/rapid.py:465
-msgid "Jakarta"
-msgstr "Jakarta"
-
-#: rapid/rapid.py:465
-msgid "Madrid"
-msgstr "Madrid"
-
-#: rapid/rapid.py:465
-msgid "Stockholm"
-msgstr "Stockholm"
-
-#: rapid/rapid.py:499
-msgid "Invalid Downloads Today value.\n"
-msgstr "Hodnota dnešní stahování je invalidní.\n"
-
-#: rapid/rapid.py:500
-msgid "Resetting value to zero.\n"
-msgstr "Resetování hodnoty na nulu.\n"
-
-#: rapid/rapid.py:539
-msgid "'Start of day' preference value is corrupted.\n"
-msgstr "Hodnota nastavení 'Začátek dne' je poškozena.\n"
-
-#: rapid/rapid.py:540
-msgid "Resetting to midnight.\n"
-msgstr "Resetování do půlnoci.\n"
-
-#: rapid/rapid.py:566
-msgid "Error in Photo Rename preferences"
-msgstr "Chyba v nastavení přejmenování fotografií"
-
-#: rapid/rapid.py:598 rapid/rapid.py:1720
-msgid "Sorry,these preferences contain an error:\n"
-msgstr "Promiňte, v nastavení je chyba:\n"
-
-#: rapid/rapid.py:609
-msgid "Resetting to default values."
-msgstr "Resetování na výchozí hodnoty."
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/rapid.py:684 rapid/renamesubfolderprefs.py:198
-msgid "Job code"
-msgstr "Pracovní kód"
-
-#: rapid/rapid.py:752
-msgid "Error in Video Rename preferences"
-msgstr "Chyba v nastavení přejmenování videí"
-
-#: rapid/rapid.py:770
-msgid "Error in Photo Download Subfolders preferences"
-msgstr ""
-
-#: rapid/rapid.py:787
-msgid "Error in Video Download Subfolders preferences"
-msgstr ""
-
-#: rapid/rapid.py:820 rapid/rapid.py:1551
-msgid "photos and videos"
-msgstr "fotografie a videa"
-
-#: rapid/rapid.py:822 rapid/rapid.py:1561 rapid/rapid.py:1689
-msgid "photos"
-msgstr "fotografie"
-
-#: rapid/rapid.py:955
-msgid "Select a folder to download photos to"
-msgstr "Vyberte složku do které mají být obrázky staženy"
-
-#: rapid/rapid.py:973
-msgid "Select a folder to download videos to"
-msgstr "Zvolte adresář do kterého se bude stahovat video"
-
-#: rapid/rapid.py:1055
-#, python-format
-msgid "Select a folder containing %(file_types)s"
-msgstr ""
-
-#: rapid/rapid.py:1077
-#, python-format
-msgid "Select a folder in which to backup %(file_types)s"
-msgstr ""
-
-#. Translators: please do not modify or leave out html formatting tags like <i> and <b>. These are used to format the text the users sees
-#: rapid/rapid.py:1158
-msgid ""
-"<i><b>Warning:</b> There is insufficient metadata to fully generate the "
-"name. Please use other renaming options.</i>"
-msgstr ""
-
-#: rapid/rapid.py:1194
-msgid ""
-"<i><b>Warning:</b> There is insufficient metadata to fully generate "
-"subfolders. Please use other subfolder naming options.</i>"
-msgstr ""
-
-#. Translators: you should not modify or leave out the %s. This is a code used by the programming language python to insert a value that thes user will see
-#: rapid/rapid.py:1198
-#, python-format
-msgid "<i>Example: %s</i>"
-msgstr "<i>Příklad: %s</i>"
-
-#: rapid/rapid.py:1224
-msgid ""
-"Downloads today value not updated, as a download is currently occurring"
-msgstr ""
-"Hodnota Dnešní stahování není aktualizována, v současné době dochází ke "
-"stažení"
-
-#: rapid/rapid.py:1240
-msgid "Stored number value not updated, as a download is currently occurring"
-msgstr ""
-"Hodnota Skladované číslo není aktualizována, v současné době dochází ke "
-"stažení"
-
-#: rapid/rapid.py:1270
-#, python-format
-msgid ""
-"The %(filetype)s subfolder preferences had some unnecessary values removed."
-msgstr ""
-
-#. Preferences list is now empty
-#: rapid/rapid.py:1275
-#, python-format
-msgid ""
-"The %(filetype)s subfolder preferences entered are invalid and cannot be "
-"used.\n"
-"They will be reset to their default values."
-msgstr ""
-
-#. check subfolder preferences for bad values
-#: rapid/rapid.py:1289 rapid/rapid.py:1563
-msgid "photo"
-msgstr "fotografie"
-
-#: rapid/rapid.py:1290 rapid/rapid.py:1558
-msgid "video"
-msgstr "video"
-
-#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
-#: rapid/rapid.py:1527
-msgid "externaldrive1"
-msgstr "externídisk1"
-
-#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
-#: rapid/rapid.py:1529
-msgid "externaldrive2"
-msgstr "externídisk2"
-
-#: rapid/rapid.py:1553 rapid/rapid.py:1687
-msgid "photos or videos"
-msgstr "fotografie či videa"
-
-#: rapid/rapid.py:1556
-msgid "videos"
-msgstr "videa"
-
-#: rapid/rapid.py:1568
+#: rapid/rapid.py:108
#, python-format
msgid ""
"%(date)s\n"
@@ -248,1385 +31,1386 @@ msgstr ""
"%(date)s\n"
"%(time)s"
-#: rapid/rapid.py:1570
+#: rapid/rapid.py:110
#, python-format
msgid "%(date)s %(time)s"
msgstr "%(date)s %(time)s"
-#: rapid/rapid.py:1573
-#, python-format
-msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-msgstr "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-
-#: rapid/rapid.py:1580
+#: rapid/rapid.py:113
#, python-format
msgid "%(date)s %(hour)s:%(minute)s:%(second)s:%(subsecond)s"
msgstr "%(date)s %(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-#: rapid/rapid.py:1608 rapid/rapid.py:2280
-msgid "subfolder and filename"
-msgstr "podsložka a název souboru"
+#. Device refers to a thing like a camera, memory card in its reader,
+#. external hard drive, Portable Storage Device, etc.
+#: rapid/rapid.py:144
+msgid "Device"
+msgstr "Zařízení"
-#: rapid/rapid.py:1610 rapid/rapid.py:2282
-msgid "filename"
-msgstr "název souboru"
+#. Size refers to the total size of images on the device, typically in
+#. MB or GB
+#: rapid/rapid.py:158
+msgid "Size"
+msgstr "Velikost"
-#: rapid/rapid.py:1612 rapid/rapid.py:2284
-msgid "subfolder"
-msgstr "podsložka"
+#: rapid/rapid.py:161
+msgid "Download Progress"
+msgstr "Průběh stahování"
#. This refers to when a device like a hard drive is having its contents scanned,
#. looking for photos or videos. It is visible initially in the progress bar for each device
#. (which normally holds "x photos and videos").
#. It maybe displayed only briefly if the contents of the device being scanned is small.
-#: rapid/rapid.py:1703
+#: rapid/rapid.py:974
msgid "scanning..."
msgstr "skenování..."
-#: rapid/rapid.py:1818
-msgid "The following download path could not be created:\n"
-msgstr "Následující cesta stahování nemůže být vytvořena:\n"
-
-#: rapid/rapid.py:1819
-#, python-format
-msgid "%(path)s: "
-msgstr "%(path)s: "
-
-#: rapid/rapid.py:1820 rapid/rapid.py:1821 rapid/rapid.py:1836
-#: rapid/rapid.py:1837 rapid/rapid.py:2097 rapid/rapid.py:2100
-msgid "Download cannot proceed"
-msgstr "Stahování nemůže pokračovat"
-
-#: rapid/rapid.py:1834 rapid/rapid.py:5105
-msgid "There is an error in the program preferences."
-msgstr "Vyskytla se chyba v nastavení programu."
-
-#: rapid/rapid.py:1835
-msgid ""
-"\n"
-"Please check preferences, restart the program, and try again."
-msgstr ""
-"\n"
-"Prosím zkontrolujte nastavení, restartujte program a zkuste to znovu."
-
-#. Translators: as already, mentioned the %s value should not be modified or left out. It may be moved if necessary.
-#. It refers to the actual number of photos that can be copied. For example, the user might see the following:
-#. '0 of 512 photos' or '0 of 10 videos' or '0 of 202 photos and videos'.
-#. This particular text is displayed to the user before the download has started.
-#: rapid/rapid.py:2008
-#, python-format
-msgid "%(number)s %(filetypes)s"
-msgstr "%(number)s %(filetypes)s"
-
-#. Translators: as you have already seen, the text can contain values that should not be modified or left out by you, for example %s.
-#. This text is another example of that, but it is is a little more complex. Here there are two values which will be displayed
-#. to the user when they run the program, signifying the number of photos found, and the device they were found on.
-#. %(number)s should be left exactly as is: 'number' should not be translated. The same applies to %(device)s: 'device' should
-#. not be translated. Generally speaking, if translating the sentence requires it, you can move items like '%(xyz)s' around
-#. in a sentence, but you should never modify them or leave them out.
-#: rapid/rapid.py:2019
-#, python-format
-msgid "Device scan complete: found %(number)s %(filetypes)s on %(device)s"
-msgstr ""
-"Sken zařízení kompletní: nalezeno %(number)s %(filetypes)s na %(device)s"
-
-#: rapid/rapid.py:2026
-#, python-format
-msgid "Device scan complete: no %(filetypes)s found on %(device)s"
-msgstr ""
-"Sken zařízení kompletní: žádné %(filetypes)s nebyly nalezeny na %(device)s"
+#: rapid/rapid.py:1678
+msgid "Download"
+msgstr "Stáhnout"
-#. This message informs the user that the device (e.g. camera, hard drive or memory card) was automatically unmounted and they can now remove it
-#: rapid/rapid.py:2047
-msgid "The device can now be safely removed"
-msgstr "Zařízení nyní nemůže být bezpečně vymazáno"
+#: rapid/rapid.py:1681
+msgid "Pause"
+msgstr "Pozastavit"
-#: rapid/rapid.py:2053
-#, python-format
-msgid "%(noFiles)s %(filetypes)s downloaded"
-msgstr "%(noFiles)s %(filetypes)s staženo"
-
-#: rapid/rapid.py:2056
-#, python-format
-msgid "%(noFiles)s %(filetypes)s failed to download"
-msgstr "%(noFiles)s %(filetypes)s nebyly staženy"
-
-#: rapid/rapid.py:2059 rapid/rapid.py:5901
-msgid "warnings"
-msgstr "varování"
-
-#: rapid/rapid.py:2061 rapid/rapid.py:5905
-msgid "errors"
-msgstr "chyby"
-
-#: rapid/rapid.py:2091
-#, python-format
-msgid "Source: %s\n"
-msgstr "Zdroj: %s\n"
-
-#: rapid/rapid.py:2093
-#, python-format
-msgid "Device: %s\n"
-msgstr "Zařízení: %s\n"
-
-#: rapid/rapid.py:2094
-#, python-format
-msgid "Destination: %s"
-msgstr "Destinace: %s"
-
-#: rapid/rapid.py:2095 rapid/rapid.py:2098
-msgid "Could not create temporary download directory"
-msgstr "Nelze vytvořit dočasný stahovací adresář"
-
-#: rapid/rapid.py:2098
-msgid "Error:"
-msgstr "Chyba:"
-
-#: rapid/rapid.py:2122
-msgid "Backup path does not exist"
-msgstr "Cesta zálohování neexistuje"
-
-#: rapid/rapid.py:2123
-#, python-format
-msgid "The path %s could not be created"
-msgstr "Cesta %s nemohla být vytvořena"
-
-#: rapid/rapid.py:2124
-msgid "No backups can occur"
-msgstr ""
-
-#: rapid/rapid.py:2153
+#: rapid/rapid.py:1794
#, python-format
msgid ""
-"Source: %(source)s\n"
-"Destination: %(destination)s\n"
-"%(problem)s"
+"These download folders are invalid:\n"
+"%(folder1)s\n"
+"%(folder2)s"
msgstr ""
-"Zdroj: %(source)s\n"
-"Destinace: %(destination)s\n"
-"%(problem)s"
+"Následující složky jsou neplatné:\n"
+"%(folder1)s\n"
+"%(folder2)s"
-#: rapid/rapid.py:2184 rapid/rapid.py:2530 rapid/rapid.py:2565
-#: rapid/rapid.py:2593 rapid/rapid.py:2624 rapid/rapid.py:2643
+#: rapid/rapid.py:1797
#, python-format
msgid ""
-"Source: %(source)s\n"
-"Destination: %(destination)s"
-msgstr ""
-"Zdroj: %(source)s\n"
-"Destinace: %(destination)s"
-
-#. hopefully inst will never be None, but just to be safe...
-#: rapid/rapid.py:2199
-msgid "Please check your system and try again."
-msgstr ""
-
-#: rapid/rapid.py:2219
-msgid "Photos detected with the same filenames, but taken at different times"
-msgstr ""
-
-#: rapid/rapid.py:2259
-msgid "Photo has already been downloaded"
+"This download folder is invalid:\n"
+"%s"
msgstr ""
+"Následující složka je neplatná:\n"
+"%s"
-#: rapid/rapid.py:2260 rapid/rapid.py:2659
-#, python-format
-msgid "Source: %(source)s"
-msgstr "Zdroj: %(source)s"
-
-#. A new day, according the user's preferences of what time a day begins, has started
-#: rapid/rapid.py:2458
-msgid "New day has started - resetting 'Downloads Today' sequence number"
-msgstr "Nový den začal - resetování 'Dnešní stahování' sekvenční číslo"
-
-#: rapid/rapid.py:2529
-#, python-format
-msgid "Backup of %(file_type)s already exists"
-msgstr "Záloha %(file_type)s již existuje"
-
-#: rapid/rapid.py:2533
-#, python-format
-msgid "Backup %(file_type)s overwritten"
-msgstr "Záloha %(file_type)s přepsána"
-
-#: rapid/rapid.py:2537
-#, python-format
-msgid "%(file_type)s not backed up to %(volume)s"
-msgstr "%(file_type)s nebylo zálohováno do %(volume)s"
-
-#: rapid/rapid.py:2539
-#, python-format
-msgid "%(file_type)s not backed up"
-msgstr "%(file_type)s nebyl zálohován"
-
-#: rapid/rapid.py:2562 rapid/rapid.py:2590 rapid/rapid.py:2623
-#: rapid/rapid.py:2642
-msgid "Backing up error"
-msgstr "Chyba zálohování"
-
-#: rapid/rapid.py:2563 rapid/rapid.py:2591
-#, python-format
-msgid "Destination directory could not be created: %(directory)s\n"
-msgstr "Adresář destinace nelze vytvořit: %(directory)s\n"
-
-#: rapid/rapid.py:2567 rapid/rapid.py:2626
-#, python-format
-msgid "Error: %(inst)s"
-msgstr "Chyba: %(inst)s"
-
-#: rapid/rapid.py:2568 rapid/rapid.py:2596 rapid/rapid.py:2627
-#: rapid/rapid.py:2646
-#, python-format
-msgid "The %(file_type)s was not backed up."
-msgstr "Toto %(file_type)s nebylo zálohováno."
-
-#: rapid/rapid.py:2595 rapid/rapid.py:2645
-#, python-format
-msgid "Error: %(errno)s %(strerror)s"
-msgstr "Chyba: %(errno)s %(strerror)s"
-
-#: rapid/rapid.py:2658
-#, python-format
-msgid "%(file_type)s could not be backed up"
-msgstr ""
-
-#: rapid/rapid.py:2661
-msgid "No suitable backup volume was found"
-msgstr ""
-
-#: rapid/rapid.py:2663
-msgid "A backup location was not found"
-msgstr "Umístění zálohy nenalezeno"
-
-#: rapid/rapid.py:2717
-#, python-format
-msgid "This device has no %(types_searched_for)s to download from."
-msgstr ""
-
-#: rapid/rapid.py:2813
-#, python-format
-msgid "Download has started from %s"
-msgstr "Stahování začalo z %s"
-
-#: rapid/rapid.py:2817
-#, python-format
-msgid "Attempting to download %s files"
-msgstr ""
+#: rapid/rapid.py:1798
+msgid "Download cannot proceed"
+msgstr "Stahování nemůže pokračovat"
-#. reset the progress bar to update the status of this download attempt
-#: rapid/rapid.py:2849 rapid/rapid.py:2917
+#: rapid/rapid.py:1957
#, python-format
msgid "%(number)s of %(total)s %(filetypes)s"
-msgstr ""
-
-#: rapid/rapid.py:2913
-#, python-format
-msgid "%(number)s of %(total)s %(filetypes)s (%(remaining)s remaining)"
-msgstr ""
-
-#: rapid/rapid.py:2938 rapid/rapid.py:2942
-msgid "Could not delete photo or video from device"
-msgstr "Nelze odstranit fotografie či video ze zařízení"
-
-#: rapid/rapid.py:2939
-#, python-format
-msgid ""
-"Photo: %(source)s\n"
-"Error: %(errno)s %(strerror)s"
-msgstr ""
-"Fotografie: %(source)s\n"
-"Chyba: %(errno)s %(strerror)s"
-
-#: rapid/rapid.py:2943
-#, python-format
-msgid "Photo: %(source)s"
-msgstr "Fotografie: %(source)s"
-
-#: rapid/rapid.py:2945
-#, python-format
-msgid "Deleted %(number)i %(filetypes)s from device"
-msgstr "Odstraněno %(number)i %(filetypes)s ze zařízení"
-
-#: rapid/rapid.py:2958
-#, python-format
-msgid "Download complete from %s"
-msgstr "Stahování kompletní z %s"
-
-#. Device refers to a thing like a camera, memory card in its reader, external hard drive, Portable Storage Device, etc.
-#: rapid/rapid.py:3073 rapid/rapid.py:3542
-msgid "Device"
-msgstr "Zařízení"
-
-#. Size refers to the total size of images on the device, typically in MB or GB
-#: rapid/rapid.py:3078 rapid/rapid.py:3531
-msgid "Size"
-msgstr "Velikost"
+msgstr "%(number)s z celkem %(total)s %(filetypes)s"
-#: rapid/rapid.py:3081
-msgid "Download Progress"
-msgstr "Průběh stahování"
-
-#: rapid/rapid.py:3169
-msgid "Downloading From Cameras"
-msgstr "Stahování z kamer"
-
-#: rapid/rapid.py:3175
-msgid "Downloading directly from a camera may work poorly or not at all"
-msgstr ""
-
-#: rapid/rapid.py:3176
-msgid ""
-"Downloading from a card reader always works and is generally much faster. It "
-"is strongly recommended to use a card reader."
-msgstr ""
-
-#: rapid/rapid.py:3190
-msgid "_Show this message again"
-msgstr "_Zobrazit tuto zprávu znovu"
-
-#: rapid/rapid.py:3225
-msgid "Device Detected"
-msgstr "Zařízení detekováno"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3234
-msgid ""
-"Should this device or partition be used to download photos or videos from?"
-msgstr ""
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3253
-msgid "_Remember this choice"
-msgstr "_Zapamatovat si tuto volbu"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3290
-#, python-format
-msgid "%s selected for downloading from"
-msgstr "%s vybráno pro stažení"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3293
-msgid "This device or partition will always be used to download from"
-msgstr "Toto zařízení či oddíl bude vždy použito pro stažení"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3296
-#, python-format
-msgid "%s rejected as a download device"
-msgstr "%s odmítnuto jako stahovací zařízení"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3299
-msgid "This device or partition will never be used to download from"
-msgstr "Toto zařízení či oddíl nebude použito pro stažení"
-
-#: rapid/rapid.py:3306
-msgid "Remove all Job Codes?"
-msgstr "Odstranit všechny pracovní kódy?"
-
-#: rapid/rapid.py:3323
-msgid "Should all Job Codes be removed?"
-msgstr "Chcete odstranit všechny pracovní kódy?"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/rapid.py:3351
-msgid "Enter a Job Code"
-msgstr "Vložte pracovní kód"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/rapid.py:3370
-msgid "Enter a new Job Code, or select a previous one"
-msgstr ""
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/rapid.py:3373
-msgid "Enter a new Job Code"
-msgstr "Vložte nový pracovní kód"
-
-#: rapid/rapid.py:3378 rapid/rapid.py:4640
-msgid "Job Code:"
-msgstr "Pracovní kód:"
-
-#: rapid/rapid.py:3425
-msgid "Job Code entered"
-msgstr "Pracovní kód vložen"
-
-#: rapid/rapid.py:3427
-msgid "Job Code not entered"
-msgstr "Pracovní kód nebyl vložen"
-
-#: rapid/rapid.py:3477
-msgid "Status"
-msgstr "Stav"
-
-#: rapid/rapid.py:3485
-msgid "Type"
-msgstr "Typ"
-
-#: rapid/rapid.py:3494 rapid/rapid.py:5067 rapid/rapid.py:5069
-msgid "Photo"
-msgstr "Fotografie"
-
-#: rapid/rapid.py:3496
-msgid "File"
-msgstr "Soubor"
-
-#: rapid/rapid.py:3511
-msgid "Job Code"
-msgstr "Pracovní kód"
-
-#: rapid/rapid.py:3521
-msgid "Date"
-msgstr "Datum"
-
-#: rapid/rapid.py:3553 rapid/renamesubfolderprefs.py:194
-msgid "Filename"
-msgstr "Jméno souboru"
-
-#: rapid/rapid.py:3564
-msgid "Path"
-msgstr "Cesta"
-
-#: rapid/rapid.py:3974
-#, python-format
-msgid "%(filetype)s was downloaded successfully"
-msgstr "%(filetype)s bylo úspěšně staženo"
-
-#: rapid/rapid.py:3976
-#, python-format
-msgid "%(filetype)s was not downloaded"
-msgstr "%(filetype)s nebylo staženo"
-
-#: rapid/rapid.py:3978
-#, python-format
-msgid "%(filetype)s was downloaded with warnings"
-msgstr "%(filetype)s bylo staženo s varováními"
-
-#: rapid/rapid.py:3980
-#, python-format
-msgid "%(filetype)s was downloaded but there were problems backing up"
-msgstr ""
+#: rapid/rapid.py:2302 rapid/preferencesdialog.py:825 rapid/rpdfile.py:120
+msgid "photos"
+msgstr "fotografie"
-#: rapid/rapid.py:3982
-#, python-format
-msgid "%(filetype)s was neither downloaded nor backed up"
-msgstr ""
+#: rapid/rapid.py:2304 rapid/rpdfile.py:115
+msgid "videos"
+msgstr "videa"
-#: rapid/rapid.py:3984
-#, python-format
-msgid "%(filetype)s is ready to be downloaded"
-msgstr "%(filetype)s je připraveno ke stažení"
+#: rapid/rapid.py:2308
+msgid "Free space:"
+msgstr "Volné místo:"
-#: rapid/rapid.py:3986
+#. (videos) or (photos) will be appended to the free space message displayed to the
+#. user in the status bar.
+#. you should only translate this if your language does not use parantheses
+#: rapid/rapid.py:2320
#, python-format
-msgid "%(filetype)s is about to be downloaded"
-msgstr ""
+msgid "(%(file_type)s)"
+msgstr "(%(file_type)s)"
-#: rapid/rapid.py:3988
+#. Freespace available on the filesystem for downloading to
+#. Displayed in status bar message on main window
+#: rapid/rapid.py:2324
#, python-format
-msgid "%(filetype)s will be downloaded with warnings"
-msgstr "%(filetype)s bude staženo s varováními"
+msgid "%(free)s %(file_type)s"
+msgstr "%(free)s %(file_type)s"
-#: rapid/rapid.py:3990
-#, python-format
-msgid "%(filetype)s cannot be downloaded"
-msgstr "%(filetype)s nelze stáhnout"
+#. Inserted in the middle of the statusbar message concerning the amount of freespace
+#. Used to differentiate between two different file systems
+#. e.g. Free space: 21.3GB (photos); 14.7GB (videos).
+#: rapid/rapid.py:2329
+msgid "; "
+msgstr "; "
-#: rapid/rapid.py:4662
-msgid "Enter a new Job Code and press Enter, or select an existing Job Code"
-msgstr ""
+#. Inserted at the end of the statusbar message concerning the amount of freespace
+#. Used to differentiate between two different file systems
+#. e.g. Free space: 21.3GB (photos); 14.7GB (videos).
+#: rapid/rapid.py:2334
+msgid "."
+msgstr "."
-#: rapid/rapid.py:5034
+#. Freespace available on the filesystem for downloading to
+#. Displayed in status bar message on main window
+#. e.g. 14.7GB available
+#: rapid/rapid.py:2340
#, python-format
-msgid "%(free)s available"
-msgstr "%(free)s je k dispozici"
+msgid "%(free)s free"
+msgstr "%(free)s volné"
#. user manually specified backup location
-#: rapid/rapid.py:5040
+#: rapid/rapid.py:2346
#, python-format
msgid "Backing up to %(path)s"
msgstr "Zálohování %(path)s"
-#: rapid/rapid.py:5045
+#: rapid/rapid.py:2351
#, python-format
msgid "%(freespace)s. %(backuppaths)s."
-msgstr ""
+msgstr "%(freespace)s. %(backuppaths)s."
-#: rapid/rapid.py:5054
-#, python-format
-msgid ""
-"Sorry, this device location does not exist:\n"
-"%(path)s\n"
-"\n"
-"Please resolve the problem, or modify your preferences."
-msgstr ""
-
-#: rapid/rapid.py:5058
-msgid "Problem with Device Location Folder"
-msgstr ""
+#: rapid/rapid.py:2479 rapid/rpdfile.py:247
+msgid "Photo"
+msgstr "Fotografie"
-#: rapid/rapid.py:5067
+#: rapid/rapid.py:2481 rapid/rpdfile.py:267
msgid "Video"
msgstr "Video"
-#: rapid/rapid.py:5074
+#: rapid/rapid.py:2490
#, python-format
-msgid "The %(file_type)s Download Folder does not exist.\n"
-msgstr ""
+msgid "%(file_type)s download folder does not exist"
+msgstr "%(file_type)s složka neexistuje"
-#: rapid/rapid.py:5083
+#: rapid/rapid.py:2492 rapid/rapid.py:2506 rapid/rapid.py:2519
#, python-format
-msgid "The %(file_type)s Download Folder exists but cannot be written to.\n"
-msgstr ""
+msgid "Folder: %s"
+msgstr "Složka: %s"
-#: rapid/rapid.py:5088
-msgid ""
-"Sorry, problems were encountered with your download folders. Please fix the "
-"problems or modify the preferences.\n"
-"\n"
-msgstr ""
-
-#: rapid/rapid.py:5091
-msgid "Problem with Download Folder"
-msgstr "Problém se stahovací složkou"
-
-#: rapid/rapid.py:5093
-msgid "Problem with Download Folders"
-msgstr "Problém se složkamy stahování"
-
-#: rapid/rapid.py:5106
-msgid "Some preferences will be reset."
-msgstr "Některé nastavení bylo resetováno."
-
-#: rapid/rapid.py:5139
-msgid "Displaying warning about downloading directly from camera"
-msgstr ""
-
-#: rapid/rapid.py:5149
+#: rapid/rapid.py:2504
#, python-format
-msgid "Prompting whether to use %s"
-msgstr "Výzva pro použití %s"
-
-#: rapid/rapid.py:5176
-msgid "Prompting for Job Code"
-msgstr "Výzva pro pracovní kód"
-
-#: rapid/rapid.py:5180
-msgid "Already prompting for Job Code, do not prompt again"
-msgstr "Výzva k pracovnímu kódu již existuje, nevyzívejte znovu"
-
-#: rapid/rapid.py:5197
-msgid "Starting downloads"
-msgstr "Stahování začíná"
-
-#. autostart is true
-#: rapid/rapid.py:5201
-msgid "Starting downloads that have been waiting for a Job Code"
-msgstr "Stahování začne po vložení pracovního kódu"
+msgid "%(file_type)s download folder is invalid"
+msgstr "%(file_type)s složka je neplatná"
-#: rapid/rapid.py:5248
+#: rapid/rapid.py:2517
#, python-format
-msgid "Creating photo download folder %(folder)s"
-msgstr ""
-
-#: rapid/rapid.py:5253
-#, python-format
-msgid "Failed to create default photo download folder %(folder)s"
-msgstr ""
-
-#: rapid/rapid.py:5257
-#, python-format
-msgid "Creating video download folder %(folder)s"
-msgstr ""
-
-#: rapid/rapid.py:5262
-#, python-format
-msgid "Failed to create default video download folder %(folder)s"
-msgstr ""
-
-#: rapid/rapid.py:5287
-msgid ""
-"A newer version of this program was previously run on this computer.\n"
-"\n"
-msgstr ""
-"Novější verze této aplikace na tomto počítači již byla spuštěna.\n"
-"\n"
-
-#: rapid/rapid.py:5289
-msgid ""
-"Program preferences appear to be valid, but please check them to ensure "
-"correct operation."
-msgstr ""
-"Nastavení programu se zdá být validní, ale zkontrolujte bezpečnou opravnou "
-"operaci."
-
-#: rapid/rapid.py:5291
-msgid "Sorry, some preferences are invalid and will be reset."
-msgstr "Promiňte, nastavení je invalidní a muselo být resetováno."
-
-#: rapid/rapid.py:5292
-msgid "Warning:"
-msgstr "Varování:"
-
-#: rapid/rapid.py:5297
-msgid ""
-"This version of the program is newer than the previously run version. "
-"Checking preferences."
-msgstr ""
-"Tato verze tohoto programu již na tomto počítači byla nainstalována. "
-"Kontrola nastavení."
-
-#: rapid/rapid.py:5304
-msgid "Preferences were modified."
-msgstr "Nastavení bylo modifikováno."
-
-#: rapid/rapid.py:5305
-msgid ""
-"This version of the program uses different preferences than the old version. "
-"Your preferences have been updated.\n"
-"\n"
-"Please check them to ensure correct operation."
-msgstr ""
-"Tato verze programu používá jiné nastavení než ta stará. Vaše nastavení bylo "
-"aktualizováno.\n"
-"\n"
-"Prosím zkontrolujte bezpečnou opravnou operaci."
+msgid "%(file_type)s download folder is not writable"
+msgstr "%(file_type)s do složky nelze zapisovat"
-#: rapid/rapid.py:5309
-msgid "No preferences needed to be changed."
-msgstr "Žádné nastavení nebylo změněno."
-
-#: rapid/rapid.py:5311
-msgid ""
-"This version of the program uses different preferences than the old version. "
-"Some of your previous preferences were invalid, and could not be updated. "
-"They will be reset."
-msgstr ""
-"Tato verze programu využívá uživatelsky jiné nastavení než ta předchozí. "
-"Některé nastavení je invalidní a nelze aktualizovat. Je tedy resetováno."
-
-#: rapid/rapid.py:5321
-msgid "Problem using pynotify."
-msgstr "Problém používání pynotify."
-
-#: rapid/rapid.py:5337
-msgid "Failed to receive pynotify server capabilities."
-msgstr "Přijetí schopností pynotify serveru selhalo."
-
-#: rapid/rapid.py:5348
-msgid ""
-"Warning: desktop environment notification server is incorrectly configured."
-msgstr ""
-"Varování: notifikační server prostředí plochy je špatně nakonfigurován."
-
-#: rapid/rapid.py:5396
-msgid "and"
-msgstr "a"
-
-#: rapid/rapid.py:5401
-msgid "Using backup devices"
-msgstr "Používání zálohovacích zařízení"
-
-#: rapid/rapid.py:5403
-msgid "Using backup device"
-msgstr "Používání zálohovacího zařízení"
-
-#: rapid/rapid.py:5405
-msgid "No backup devices detected"
-msgstr "Zálohovací zařízení nebylo detekováno"
-
-#: rapid/rapid.py:5455 rapid/rapid.py:5617
-#, python-format
-msgid "Device %(device)s (%(path)s) ignored"
-msgstr "Zařízení %(device)s (%(path)s) ignorováno"
-
-#: rapid/rapid.py:5576
-#, python-format
-msgid "Detected %(device)s with path %(path)s"
-msgstr "Detekováno %(device)s s %(path)s cestami"
-
-#: rapid/rapid.py:5580
-msgid "Automatically start download is true"
-msgstr "Automatický start stahování je povolen"
-
-#: rapid/rapid.py:5582
-msgid "Automatically start download is false"
-msgstr "Automatický start stahování je zakázán"
-
-#: rapid/rapid.py:5635
-msgid "Using manually specified path"
-msgstr "Používání manuálně specifikované cesty"
-
-#. the user is trying to backup to a device that is currently being downloaded from..... we don't normally allow that, but what to do?
-#: rapid/rapid.py:5703
-#, python-format
-msgid "Warning: backup device %(device)s is currently being downloaded from"
-msgstr ""
-
-#: rapid/rapid.py:5719
-msgid "D_ownload Selected"
-msgstr ""
-
-#: rapid/rapid.py:5822 rapid/rapid.py:5873
-msgid "All downloads complete"
-msgstr "Všechna stahování kompletní"
-
-#: rapid/rapid.py:5837
-msgid "MB/s"
-msgstr "MB/s"
-
-#: rapid/rapid.py:5847
-msgid "About 1 second remaining"
-msgstr "Zbývá 1 sekunda"
-
-#: rapid/rapid.py:5849
-#, python-format
-msgid "About %i seconds remaining"
-msgstr "Zbývá %i sekund"
-
-#: rapid/rapid.py:5851
-msgid "About 1 minute remaining"
-msgstr "Zbývá 1 minuta"
-
-#. Translators: in the text '%(minutes)i:%(seconds)02i', only the : should be translated, if needed.
-#. '%(minutes)i' and '%(seconds)02i' should not be modified or left out. They are used to format and display the amount
-#. of time the download has remainging, e.g. 'About 5:36 minutes remaining'
-#: rapid/rapid.py:5856
-#, python-format
-msgid "About %(minutes)i:%(seconds)02i minutes remaining"
-msgstr "Zbývá %(minutes)i:%(seconds)02i minut"
-
-#: rapid/rapid.py:5876 rapid/rapid.py:5882 rapid/rapid.py:5888
-#: rapid/rapid.py:5894 rapid/rapid.py:5899 rapid/rapid.py:5903
-#, python-format
-msgid "%(number)s %(numberdownloaded)s"
-msgstr ""
-
-#: rapid/rapid.py:5878 rapid/rapid.py:5890
-#, python-format
-msgid "%(filetype)s downloaded"
-msgstr "%(filetype)s staženo"
-
-#: rapid/rapid.py:5884 rapid/rapid.py:5896
-#, python-format
-msgid "%(filetype)s failed to download"
-msgstr ""
-
-#: rapid/rapid.py:6070
-msgid "_Resume"
-msgstr "_Pokračovat"
-
-#: rapid/rapid.py:6073
-msgid "_Download All"
-msgstr "_Stáhnout vše"
-
-#. This text will be displayed to the user on the Download / Pause button.
-#: rapid/rapid.py:6082
-msgid "_Pause"
-msgstr "_Pozastavit"
-
-#: rapid/rapid.py:6194
-msgid "Download device settings preferences were changed."
-msgstr ""
-
-#: rapid/rapid.py:6206
-msgid "Backup preferences were changed."
-msgstr "Nastavení zálohy bylo změněno."
-
-#: rapid/rapid.py:6212
-msgid "Subfolder and filename preferences were changed."
-msgstr ""
-
-#: rapid/rapid.py:6223
-msgid "Download folder preferences were changed."
-msgstr ""
-
-#: rapid/rapid.py:6422
-msgid "Goodbye"
-msgstr "Hezký den"
+#: rapid/rapid.py:2592
+msgid "Thumbnails"
+msgstr "Náhledy"
#. Translators: this text is displayed to the user when they request information on the command line options.
#. The text %default should not be modified or left out.
-#: rapid/rapid.py:6433
+#: rapid/rapid.py:2633
#, python-format
msgid ""
"display program information on the command line as the program runs "
"(default: %default)"
msgstr "zobrazit informace o programu na příkazové řádce (default: %default)"
-#: rapid/rapid.py:6434
+#: rapid/rapid.py:2634
msgid "display debugging information when run from the command line"
-msgstr ""
+msgstr "Zobrazit ladicí informace při spuštění z příkazové řádky"
-#: rapid/rapid.py:6435
+#: rapid/rapid.py:2635
msgid "only output errors to the command line"
msgstr "pouze výstup chyb do příkazové řádky"
#. image file extensions are recognized RAW files plus TIFF and JPG
-#: rapid/rapid.py:6437
+#: rapid/rapid.py:2637
msgid "list photo and video file extensions the program recognizes and exit"
-msgstr ""
+msgstr "zobrazit přípony souborů, které program rozpozná, a skončit"
-#: rapid/rapid.py:6438
+#: rapid/rapid.py:2638
msgid "reset all program settings and preferences and exit"
-msgstr ""
+msgstr "resetovat nastavení programu a skončit"
-#: rapid/rapid.py:6452
+#: rapid/rapid.py:2651
msgid "Photos:"
msgstr "Fotografie:"
-#: rapid/rapid.py:6452
+#: rapid/rapid.py:2651
msgid "Videos:"
msgstr "Videa:"
-#: rapid/rapid.py:6457
+#: rapid/rapid.py:2656
#, python-format
msgid "and %s"
msgstr "a %s"
-#: rapid/rapid.py:6465
+#: rapid/rapid.py:2664
msgid "All settings and preferences have been reset"
+msgstr "Všechna nastavení a předvolby byly nastaveny na výchozí hodnoty"
+
+#: rapid/rapid.py:2673
+msgid ""
+"Video downloading functionality disabled.\n"
+"To download videos, please install the hachoir metadata and kaa metadata "
+"packages for python."
msgstr ""
+"Není možné stahovat video.\n"
+"Ke stahování videa jsou nutné balíčky hachoir-metadata a kaa-metadata pro "
+"Python."
-#. Which volume management code is being used (GIO or GnomeVFS)
-#: rapid/rapid.py:6469 rapid/rapid.py:6470 rapid/rapid.py:6472
-#: rapid/rapid.py:6477 rapid/rapid.py:6481
-msgid "Using"
-msgstr "Používání"
+#: rapid/copyfiles.py:136 rapid/subfolderfile.py:209
+#: rapid/subfolderfile.py:346
+#, python-format
+msgid ""
+"%(problem)s\n"
+"File: %(file)s"
+msgstr ""
+"%(problem)s\n"
+"Soubor: %(file)s"
-#: rapid/rapid.py:6474
-msgid "\n"
-msgstr "\n"
+#: rapid/device.py:79
+msgid "Device Detected"
+msgstr "Zařízení detekováno"
-#. this application is already running
-#: rapid/rapid.py:6498
-#, python-format
-msgid "%s is already running"
-msgstr "%s není připraven k používání"
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
+#: rapid/device.py:88
+msgid ""
+"Should this device or partition be used to download photos or videos from?"
+msgstr "Nacházejí se na tomto zařízení fotografie nebo videa ke stažení?"
+
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
+#: rapid/device.py:107
+msgid "_Remember this choice"
+msgstr "_Zapamatovat si tuto volbu"
-#: rapid/renamesubfolderprefs.py:192
+#: rapid/generatenameconfig.py:143
msgid "Date time"
msgstr "Datum a čas"
-#: rapid/renamesubfolderprefs.py:193
+#: rapid/generatenameconfig.py:144
msgid "Text"
msgstr "Text"
-#: rapid/renamesubfolderprefs.py:195
+#: rapid/generatenameconfig.py:145
+msgid "Filename"
+msgstr "Jméno souboru"
+
+#: rapid/generatenameconfig.py:146
msgid "Metadata"
msgstr "Metadata"
-#: rapid/renamesubfolderprefs.py:196
+#: rapid/generatenameconfig.py:147
msgid "Sequences"
msgstr "Sekvence"
-#: rapid/renamesubfolderprefs.py:199
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
+#: rapid/generatenameconfig.py:149 rapid/preferencesdialog.py:550
+msgid "Job code"
+msgstr "Pracovní kód"
+
+#: rapid/generatenameconfig.py:150
msgid "Image date"
msgstr "Datum obrázku"
-#: rapid/renamesubfolderprefs.py:200
+#: rapid/generatenameconfig.py:151
msgid "Video date"
-msgstr ""
+msgstr "Datum videa"
-#: rapid/renamesubfolderprefs.py:201
+#: rapid/generatenameconfig.py:152
msgid "Today"
msgstr "Dnes"
-#: rapid/renamesubfolderprefs.py:202
+#: rapid/generatenameconfig.py:153
msgid "Yesterday"
msgstr "Včerejšek"
#. Translators: Download time is the time and date that the download started (when the user clicked the Download button)
-#: rapid/renamesubfolderprefs.py:204
+#: rapid/generatenameconfig.py:155
msgid "Download time"
msgstr "Čas stahování"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:206
+#: rapid/generatenameconfig.py:157
msgid "Name + extension"
msgstr "Jméno + koncovka"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:208
+#: rapid/generatenameconfig.py:159
msgid "Name"
msgstr "Název"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:210
+#: rapid/generatenameconfig.py:161
msgid "Extension"
msgstr "Koncovka"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:212
+#: rapid/generatenameconfig.py:163
msgid "Image number"
msgstr "Číslo obrázku"
-#: rapid/renamesubfolderprefs.py:213
+#: rapid/generatenameconfig.py:164
msgid "Video number"
msgstr "Číslo videa"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:215
+#: rapid/generatenameconfig.py:166
msgid "Aperture"
msgstr "Clona"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:217
+#: rapid/generatenameconfig.py:168
msgid "ISO"
msgstr "ISO"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:219
+#: rapid/generatenameconfig.py:170
msgid "Exposure time"
msgstr "Čas expozice"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:221
+#: rapid/generatenameconfig.py:172
msgid "Focal length"
msgstr "Vzdálenost ohniska"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:223
+#: rapid/generatenameconfig.py:174
msgid "Camera make"
msgstr "Vytvoření fotoaparátu"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:225
+#: rapid/generatenameconfig.py:176
msgid "Camera model"
msgstr "Druh fotoaparátu"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:227
+#: rapid/generatenameconfig.py:178
msgid "Short camera model"
msgstr "Krátký druh kamery"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:229
+#: rapid/generatenameconfig.py:180
msgid "Hyphenated short camera model"
msgstr "Model kamery v označení odděleném pomlčkou"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:231
+#: rapid/generatenameconfig.py:182
msgid "Serial number"
msgstr "Sériové číslo"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:233
+#: rapid/generatenameconfig.py:184
msgid "Shutter count"
msgstr "Číslo snímku"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:235
+#: rapid/generatenameconfig.py:186
msgid "Owner name"
msgstr "Vlastníkovo jméno"
-#: rapid/renamesubfolderprefs.py:236
+#: rapid/generatenameconfig.py:187
msgid "Codec"
msgstr "Kodek"
-#: rapid/renamesubfolderprefs.py:237
+#: rapid/generatenameconfig.py:188
msgid "Width"
msgstr "Šířka"
-#: rapid/renamesubfolderprefs.py:238
+#: rapid/generatenameconfig.py:189
msgid "Height"
msgstr "Výška"
-#: rapid/renamesubfolderprefs.py:239
+#: rapid/generatenameconfig.py:190
msgid "Length"
msgstr "Délka"
-#: rapid/renamesubfolderprefs.py:240
+#: rapid/generatenameconfig.py:191
msgid "Frames Per Second"
msgstr "Snímková hodnota"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers
-#: rapid/renamesubfolderprefs.py:242
+#: rapid/generatenameconfig.py:193
msgid "Downloads today"
msgstr "Dnešní stahování"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers
-#: rapid/renamesubfolderprefs.py:244
+#: rapid/generatenameconfig.py:195
msgid "Session number"
msgstr "Číslo této relace"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers
-#: rapid/renamesubfolderprefs.py:246
+#: rapid/generatenameconfig.py:197
msgid "Subfolder number"
msgstr "Číslo podsložky"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers
-#: rapid/renamesubfolderprefs.py:248
+#: rapid/generatenameconfig.py:199
msgid "Stored number"
msgstr "Uskladněné číslo"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequenceletters
-#: rapid/renamesubfolderprefs.py:250
+#: rapid/generatenameconfig.py:201
msgid "Sequence letter"
msgstr "Zpráva sekvence"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:252
+#: rapid/generatenameconfig.py:203
msgid "All digits"
msgstr "Všechny číslice"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:254
+#: rapid/generatenameconfig.py:205
msgid "Last digit"
msgstr "Poslední číslice"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:256
+#: rapid/generatenameconfig.py:207
msgid "Last 2 digits"
msgstr "Poslední 2 číslice"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:258
+#: rapid/generatenameconfig.py:209
msgid "Last 3 digits"
msgstr "Poslední 3 číslice"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:260
+#: rapid/generatenameconfig.py:211
msgid "Last 4 digits"
msgstr "Poslední 4 číslice"
#. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization
-#: rapid/renamesubfolderprefs.py:262
+#: rapid/generatenameconfig.py:213
msgid "Original Case"
msgstr "Originální obal"
#. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization
-#: rapid/renamesubfolderprefs.py:264
+#: rapid/generatenameconfig.py:215
msgid "UPPERCASE"
msgstr "Velká písmena (ABCDEFG)"
#. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization
-#: rapid/renamesubfolderprefs.py:266
+#: rapid/generatenameconfig.py:217
msgid "lowercase"
msgstr "Malá písmena (abcdefg)"
-#: rapid/renamesubfolderprefs.py:267
+#: rapid/generatenameconfig.py:218
msgid "One digit"
msgstr "Jedna číslice"
-#: rapid/renamesubfolderprefs.py:268
+#: rapid/generatenameconfig.py:219
msgid "Two digits"
msgstr "Dvě číslice"
-#: rapid/renamesubfolderprefs.py:269
+#: rapid/generatenameconfig.py:220
msgid "Three digits"
msgstr "Tři číslice"
-#: rapid/renamesubfolderprefs.py:270
+#: rapid/generatenameconfig.py:221
msgid "Four digits"
msgstr "Čtyři číslice"
-#: rapid/renamesubfolderprefs.py:271
+#: rapid/generatenameconfig.py:222
msgid "Five digits"
msgstr "Pět číslic"
-#: rapid/renamesubfolderprefs.py:272
+#: rapid/generatenameconfig.py:223
msgid "Six digits"
msgstr "Šest číslic"
-#: rapid/renamesubfolderprefs.py:273
+#: rapid/generatenameconfig.py:224
msgid "Seven digits"
msgstr "Sedm číslic"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:275
+#: rapid/generatenameconfig.py:226
msgid "Subseconds"
msgstr "Milisekundy"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:277
+#: rapid/generatenameconfig.py:228
msgid "YYYYMMDD"
msgstr "RRRRMMDD"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:279
+#: rapid/generatenameconfig.py:230
msgid "YYYY-MM-DD"
msgstr "RRRR-MM-DD"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:281
+#: rapid/generatenameconfig.py:232
msgid "YYMMDD"
msgstr "RRMMDD"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:283
+#: rapid/generatenameconfig.py:234
msgid "YY-MM-DD"
msgstr "RR-MM-DD"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:285
+#: rapid/generatenameconfig.py:236
msgid "MMDDYYYY"
msgstr "MMDDRRRR"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:287
+#: rapid/generatenameconfig.py:238
msgid "MMDDYY"
msgstr "MMDDRR"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:289
+#: rapid/generatenameconfig.py:240
msgid "MMDD"
msgstr "MMDD"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:291
+#: rapid/generatenameconfig.py:242
msgid "DDMMYYYY"
msgstr "DDMMRRRR"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:293
+#: rapid/generatenameconfig.py:244
msgid "DDMMYY"
msgstr "DDMMRR"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:295
+#: rapid/generatenameconfig.py:246
msgid "YYYY"
msgstr "RRRR"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:297
+#: rapid/generatenameconfig.py:248
msgid "YY"
msgstr "RR"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:299
+#: rapid/generatenameconfig.py:250
msgid "MM"
msgstr "MM"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:301
+#: rapid/generatenameconfig.py:252
msgid "DD"
msgstr "DD"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:303
+#: rapid/generatenameconfig.py:254
msgid "HHMMSS"
msgstr "HHMMSS"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:305
+#: rapid/generatenameconfig.py:256
msgid "HHMM"
msgstr "HHMM"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:307
+#: rapid/generatenameconfig.py:258
msgid "HH-MM-SS"
msgstr "HH-MM-SS"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:309
+#: rapid/generatenameconfig.py:260
msgid "HH-MM"
msgstr "HH-MM"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:311
+#: rapid/generatenameconfig.py:262
msgid "HH"
msgstr "HH"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:313
+#: rapid/generatenameconfig.py:264
msgid "MM (minutes)"
msgstr "MM (minuty)"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:315
+#: rapid/generatenameconfig.py:266
msgid "SS"
msgstr "SS"
-#: rapid/renamesubfolderprefs.py:800
+#: rapid/preferencesdialog.py:371
+#, python-format
+msgid "Subfolder preferences should not start with a %s"
+msgstr "Nastavení podsložky nemělo začít %s"
+
+#: rapid/preferencesdialog.py:373
#, python-format
+msgid "Subfolder preferences should not end with a %s"
+msgstr "Nastavení podsložky nemělo končit %s"
+
+#: rapid/preferencesdialog.py:377
+#, python-format
+msgid "Subfolder preferences should not contain two %s one after the other"
+msgstr "Nastavení podsložky by nemělo obsahovat dvě %s za sebou"
+
+#: rapid/preferencesdialog.py:390 rapid/preferencesdialog.py:673
+msgid "Remove all Job Codes?"
+msgstr "Odstranit všechny pracovní kódy?"
+
+#: rapid/preferencesdialog.py:407 rapid/preferencesdialog.py:690
+msgid "Should all Job Codes be removed?"
+msgstr "Chcete odstranit všechny pracovní kódy?"
+
+#: rapid/preferencesdialog.py:437
+msgid "Error in Photo Rename preferences"
+msgstr "Chyba v nastavení přejmenování fotografií"
+
+#: rapid/preferencesdialog.py:618
+msgid "Error in Video Rename preferences"
+msgstr "Chyba v nastavení přejmenování videí"
+
+#: rapid/preferencesdialog.py:639
+msgid "Error in Photo Download Subfolders preferences"
+msgstr "Chyba v nastavení složek pro stahování fotek"
+
+#: rapid/preferencesdialog.py:656
+msgid "Error in Video Download Subfolders preferences"
+msgstr "Chyba v nastavení složek pro stahování videí"
+
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
+#: rapid/preferencesdialog.py:715
+msgid "Enter a Job Code"
+msgstr "Vložte pracovní kód"
+
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
+#: rapid/preferencesdialog.py:732
+msgid "Enter a new Job Code, or select a previous one"
+msgstr "Vložte nový štítek nebo vyberte nějaký existující"
+
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
+#: rapid/preferencesdialog.py:735
+msgid "Enter a new Job Code"
+msgstr "Vložte nový pracovní kód"
+
+#: rapid/preferencesdialog.py:740
+msgid "Job Code:"
+msgstr "Pracovní kód:"
+
+#: rapid/preferencesdialog.py:823 rapid/rpdfile.py:110
+msgid "photos and videos"
+msgstr "fotografie a videa"
+
+#: rapid/preferencesdialog.py:992
+msgid "Select a folder to download photos to"
+msgstr "Vyberte složku do které mají být obrázky staženy"
+
+#: rapid/preferencesdialog.py:1010
+msgid "Select a folder to download videos to"
+msgstr "Zvolte adresář do kterého se bude stahovat video"
+
+#: rapid/preferencesdialog.py:1101
+#, python-format
+msgid "Select a folder containing %(file_types)s"
+msgstr "Vyberte složku, která obsahuje %(file_types)s"
+
+#: rapid/preferencesdialog.py:1123
+#, python-format
+msgid "Select a folder in which to backup %(file_types)s"
+msgstr "Vyberte složku, do které se bude zálohovat %(file_types)s"
+
+#. Translators: please do not modify or leave out html formatting tags like <i> and <b>. These are used to format the text the users sees
+#: rapid/preferencesdialog.py:1207
msgid ""
-"Preference key '%(key)s' is invalid.\n"
-"Expected one of %(value)s"
+"<i><b>Warning:</b> There is insufficient metadata to fully generate the "
+"name. Please use other renaming options.</i>"
msgstr ""
-"Klíč nastavení '%(key)s' je invalidní\n"
-"Předpokládáno %(value)s"
+"<i><b>Varování:</b> Není k dispozici dostatečný počet metadat, aby bylo "
+"možné vytvořit celé jméno. Použijte prosím pro vytvoření jména jiné "
+"možnosti.</i>"
-#: rapid/renamesubfolderprefs.py:807
+#: rapid/preferencesdialog.py:1258
+msgid ""
+"<i><b>Warning:</b> There is insufficient metadata to fully generate "
+"subfolders. Please use other subfolder naming options.</i>"
+msgstr ""
+"<i><b>Varování:</b> Není k dispozici dostatečný počet metadat, aby bylo "
+"možné vytvořit složky. Použijte prosím pro vytvoření jména jiné "
+"možnosti.</i>"
+
+#. Translators: you should not modify or leave out the %s. This is a code used by the programming language python to insert a value that thes user will see
+#: rapid/preferencesdialog.py:1261
+#, python-format
+msgid "<i>Example: %s</i>"
+msgstr "<i>Příklad: %s</i>"
+
+#. Preferences list is now empty
+#: rapid/preferencesdialog.py:1351
#, python-format
-msgid "Preference value '%(value)s' is invalid"
-msgstr "Hodnota nastavení '%(value)s' je invalidní"
+msgid ""
+"The %(filetype)s subfolder preferences entered are invalid and cannot be "
+"used.\n"
+"They will be reset to their default values."
+msgstr ""
+"Parametry pro vytvoření složky %(filetype)s jsou neplatné a nelze je "
+"použít.\n"
+"Použijí se výchozí hodnoty."
+
+#. check subfolder preferences for bad values
+#: rapid/preferencesdialog.py:1365 rapid/rpdfile.py:122 rapid/rpdfile.py:246
+msgid "photo"
+msgstr "fotografie"
+
+#: rapid/preferencesdialog.py:1366 rapid/rpdfile.py:117 rapid/rpdfile.py:266
+msgid "video"
+msgstr "video"
+
+#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
+#: rapid/preferencesdialog.py:1637
+msgid "externaldrive1"
+msgstr "externídisk1"
+
+#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
+#: rapid/preferencesdialog.py:1639
+msgid "externaldrive2"
+msgstr "externídisk2"
+
+#: rapid/prefsrapid.py:122
+msgid "New York"
+msgstr "New York"
+
+#: rapid/prefsrapid.py:123
+msgid "Manila"
+msgstr "Manila"
-#: rapid/renamesubfolderprefs.py:811
-msgid "These preferences are not well formed:"
-msgstr "Tato nastavení nejsou správně utvořena:"
+#: rapid/prefsrapid.py:123
+msgid "Prague"
+msgstr "Praha"
+
+#: rapid/prefsrapid.py:123
+msgid "Helsinki"
+msgstr "Helsinki"
+
+#: rapid/prefsrapid.py:123
+msgid "Wellington"
+msgstr "Wellington"
+
+#: rapid/prefsrapid.py:124
+msgid "Tehran"
+msgstr "Teherán"
+
+#: rapid/prefsrapid.py:124
+msgid "Kampala"
+msgstr "Kampala"
+
+#: rapid/prefsrapid.py:124
+msgid "Paris"
+msgstr "Paříž"
+
+#: rapid/prefsrapid.py:124
+msgid "Berlin"
+msgstr "Berlín"
+
+#: rapid/prefsrapid.py:124
+msgid "Sydney"
+msgstr "Sydney"
+
+#: rapid/prefsrapid.py:125
+msgid "Budapest"
+msgstr "Budapešť"
+
+#: rapid/prefsrapid.py:125
+msgid "Rome"
+msgstr "Řím"
+
+#: rapid/prefsrapid.py:125
+msgid "Moscow"
+msgstr "Moskva"
+
+#: rapid/prefsrapid.py:125
+msgid "Delhi"
+msgstr "Dílí"
-#: rapid/renamesubfolderprefs.py:1524
+#: rapid/prefsrapid.py:125
+msgid "Warsaw"
+msgstr "Varšava"
+
+#: rapid/prefsrapid.py:126
+msgid "Jakarta"
+msgstr "Jakarta"
+
+#: rapid/prefsrapid.py:126
+msgid "Madrid"
+msgstr "Madrid"
+
+#: rapid/prefsrapid.py:126
+msgid "Stockholm"
+msgstr "Stockholm"
+
+#. components
+#: rapid/problemnotification.py:26 rapid/subfolderfile.py:339
+msgid "subfolder"
+msgstr "podsložka"
+
+#: rapid/problemnotification.py:27 rapid/subfolderfile.py:337
+msgid "filename"
+msgstr "název souboru"
+
+#: rapid/problemnotification.py:80
#, python-format
-msgid "Subfolder preferences should not start with a %s"
-msgstr "Nastavení podsložky nemělo začít %s"
+msgid "Date time value %s appears invalid."
+msgstr "Hodnota pro datum nebo čas %s je neplatná."
+
+#: rapid/problemnotification.py:81
+msgid "Filename does not have an extension."
+msgstr "Jméno souboru neobsahuje příponu."
-#: rapid/renamesubfolderprefs.py:1526
+#. a number component is something like the 8346 in IMG_8346.JPG
+#: rapid/problemnotification.py:83
+msgid "Filename does not have a number component."
+msgstr "Jméno souboru neobsahuje číselnou hodnotu."
+
+#: rapid/problemnotification.py:84
#, python-format
-msgid "Subfolder preferences should not end with a %s"
-msgstr "Nastavení podsložky nemělo končit %s"
+msgid "Error generating component %s."
+msgstr "Chyba při vytváření části %s."
-#: rapid/renamesubfolderprefs.py:1530
+#. a generic problem
+#: rapid/problemnotification.py:86
#, python-format
-msgid "Subfolder preferences should not contain two %s one after the other"
-msgstr "Nastavení podsložky by nemělo obsahovat dvě %s za sebou"
+msgid "%(filetype)s metadata cannot be read"
+msgstr "Metadata %(filetype)s nelze načíst."
-#: rapid/glade3/rapid.glade.h:1
+#: rapid/problemnotification.py:88
+#, python-format
+msgid "%(filetype)s %(area)s could not be generated"
+msgstr "Nelze vytvořit %(filetype)s %(area)s"
+
+#: rapid/problemnotification.py:90 rapid/problemnotification.py:91
+#, python-format
+msgid "An error occurred when copying the %(filetype)s"
+msgstr "Při kopírování %(filetype)s došlo k chybě."
+
+#: rapid/problemnotification.py:93 rapid/problemnotification.py:94
+#, python-format
+msgid "%(filetype)s already exists"
+msgstr "%(filetype)s a již existuje"
+
+#: rapid/problemnotification.py:97
+#, python-format
+msgid ""
+"%(filetype)s could not be backed up because no suitable backup locations "
+"were found."
+msgstr ""
+"%(filetype)s nelze zálohovat, protože nebylo nalezeno vhodné umístění."
+
+#: rapid/problemnotification.py:102
+#, python-format
+msgid ""
+"%(image1)s was taken at on %(image1_date)s at %(image1_time)s, and "
+"%(image2)s on %(image2_date)s at %(image2_time)s."
+msgstr ""
+"%(image1)s vytvořen %(image1_date)s v %(image1_time)s a %(image2)s "
+"%(image2_date)s v %(image2_time)s."
+
+#: rapid/problemnotification.py:103
+#, python-format
+msgid "%(filetype)s was already downloaded"
+msgstr "%(filetype)s byl už stažen"
+
+#: rapid/problemnotification.py:107
+#, python-format
+msgid ""
+"The existing %(filetype)s was last modified on %(date)s at %(time)s. Unique "
+"identifier '%(identifier)s' added."
+msgstr ""
+"Existující %(filetype)s byl naposledy změněn %(date)s v %(time)s. Byl "
+"přidán jedinečný identifikátor '%(identifier)s'."
+
+#: rapid/problemnotification.py:108
+#, python-format
+msgid "The existing %(filetype)s was last modified on %(date)s at %(time)s."
+msgstr "Existující %(filetype)s byl naposledy změněn %(date)s v %(time)s."
+
+#: rapid/problemnotification.py:109
+#, python-format
+msgid "There is no data with which to name the %(filetype)s."
+msgstr "Neexistují žádná data k pojmenování %(filetype)s."
+
+#: rapid/problemnotification.py:111
+#, python-format
+msgid "Error: %(errorno)s %(strerror)s"
+msgstr "Chyba: %(errorno)s %(strerror)s"
+
+#: rapid/problemnotification.py:201
+msgid "The metadata might be corrupt."
+msgstr "Metadata jsou pravděpodobně poškozená."
+
+#: rapid/problemnotification.py:204
+msgid ""
+"The filename, extension and Exif information indicate it has already been "
+"downloaded."
+msgstr "Jméno souboru, přípona a EXIF naznačují, že soubor byl již stažen."
+
+#: rapid/problemnotification.py:223
+#, python-format
+msgid " It was backed up to %(volume)s"
+msgstr " byl zálohován na %(volume)s"
+
+#: rapid/problemnotification.py:225
+msgid " It was backed up to these devices: "
+msgstr " byl zálohován na následující zařízení: "
+
+#: rapid/problemnotification.py:227 rapid/problemnotification.py:288
+#: rapid/problemnotification.py:300
+#, python-format
+msgid "%s, "
+msgstr "%s, "
+
+#: rapid/problemnotification.py:228 rapid/problemnotification.py:289
+#: rapid/problemnotification.py:301
+#, python-format
+msgid "%(volumes)s and %(final_volume)s."
+msgstr "%(volumes)s a %(final_volume)s."
+
+#: rapid/problemnotification.py:240
+#, python-format
+msgid ""
+"Photos detected with the same filenames, but taken at different times: "
+"%(details)s"
+msgstr ""
+"Byly nalezeny fotky se stejným jménem, ale rozdílným časem vzniku: "
+"%(details)s"
+
+#: rapid/problemnotification.py:257
+#, python-format
+msgid "An error occurred when backing up on %(volume)s: %(inst)s."
+msgstr "Došlo k chybě při zálohování na %(volume)s: %(inst)s."
+
+#: rapid/problemnotification.py:259
+#, python-format
+msgid "An error occurred when backing up on %(volume)s."
+msgstr "Došlo k chybě při zálohování na %(volume)s."
+
+#: rapid/problemnotification.py:261
+msgid "Errors occurred when backing up on the following backup devices: "
+msgstr "Došlo k chybám při zálohování na následující zařízení: "
+
+#: rapid/problemnotification.py:265 rapid/problemnotification.py:313
+#, python-format
+msgid "%(volume)s (%(inst)s), "
+msgstr "%(volume)s (%(inst)s), "
+
+#: rapid/problemnotification.py:267
+#, python-format
+msgid "%(volume)s, "
+msgstr "%(volume)s, "
+
+#: rapid/problemnotification.py:271 rapid/problemnotification.py:315
+#, python-format
+msgid "%(volumes)s and %(volume)s (%(inst)s)."
+msgstr "%(volumes)s a %(volume)s (%(inst)s)."
+
+#: rapid/problemnotification.py:276
+#, python-format
+msgid "%(volumes)s and %(volume)s."
+msgstr "%(volumes)s a %(volume)s."
+
+#: rapid/problemnotification.py:284
+#, python-format
+msgid "Backup already exists on %(volume)s."
+msgstr "Na zařízení %(volume)s už záloha existuje."
+
+#: rapid/problemnotification.py:286
+msgid "Backups already exist in these locations: "
+msgstr "Zálohy už existují, a to v těchto umístěních: "
+
+#: rapid/problemnotification.py:296
+#, python-format
+msgid "Backup overwritten on %(volume)s."
+msgstr "Záloha na %(volume)s byla přepsána."
+
+#: rapid/problemnotification.py:298
+msgid "Backups overwritten on these devices: "
+msgstr "Zálohy na následujících zařízeních byly přepsány: "
+
+#: rapid/problemnotification.py:309
+#, python-format
+msgid "An error occurred when creating directories on %(volume)s: %(inst)s."
+msgstr "Došlo k chybě při vytváření adresářů na %(volume)s: %(inst)s."
+
+#: rapid/problemnotification.py:311
+msgid ""
+"Errors occurred when creating directories on the following backup devices: "
+msgstr "Došlo k chybě při vytváření adresářů na následujících zařízeních: "
+
+#: rapid/problemnotification.py:322
+#, python-format
+msgid "%(previousproblem)s Additionally, %(newproblem)s"
+msgstr "%(previousproblem)s - kromě toho: %(newproblem)s"
+
+#: rapid/problemnotification.py:330
+#, python-format
+msgid " Furthermore, there were %(problems)s."
+msgstr " Kromě toho došlo k dalším %(problems)s problémům."
+
+#: rapid/problemnotification.py:332
+#, python-format
+msgid " Furthermore, there was a %(problem)s."
+msgstr " Kromě toho došlo k %(problem)s."
+
+#: rapid/problemnotification.py:341
+#, python-format
+msgid "The %(type)s metadata is missing."
+msgstr "Metadata %(type)s chybí."
+
+#: rapid/problemnotification.py:343
+msgid "The following metadata is missing: "
+msgstr "Následující metada chybí: "
+
+#: rapid/problemnotification.py:346
+#, python-format
+msgid "%(missing_metadata_elements)s and %(final_missing_metadata_element)s."
+msgstr "%(missing_metadata_elements)s a %(final_missing_metadata_element)s."
+
+#: rapid/problemnotification.py:363
+msgid "Problems in subfolder and filename generation"
+msgstr "Problémy při vytváření názvů pro složky a soubory"
+
+#: rapid/problemnotification.py:365
+msgid "Problem in subfolder and filename generation"
+msgstr "Problém při vytváření názvů pro složky a soubory"
+
+#: rapid/problemnotification.py:368
+#, python-format
+msgid "Problems in %s generation"
+msgstr "Problémy při vytváření %s"
+
+#: rapid/problemnotification.py:370
+#, python-format
+msgid "Problem in %s generation"
+msgstr "Problém při vytváření %s"
+
+#: rapid/problemnotification.py:379
+#, python-format
+msgid "%(filetype)s already exists, but it was backed up"
+msgstr "%(filetype)s už existuje, ale byl zálohován"
+
+#: rapid/problemnotification.py:381
+#, python-format
+msgid "An error occurred when copying the %(filetype)s, but it was backed up"
+msgstr "Při kopírování %(filetype)s došlo k chybě, ale záloha proběhla"
+
+#: rapid/problemnotification.py:401
+msgid "Multiple problems were encountered"
+msgstr "Došlo k více problémům"
+
+#: rapid/problemnotification.py:403 rapid/subfolderfile.py:228
+msgid "Photos detected with the same filenames, but taken at different times"
+msgstr "Byly nalezeny fotky se stejným jménem, ale různým datem vzniku"
+
+#: rapid/problemnotification.py:409
+msgid "there were errors backing up"
+msgstr "chyby při zálohování"
+
+#: rapid/problemnotification.py:410
+msgid "There were errors backing up"
+msgstr "Chyby při zálohování"
+
+#: rapid/problemnotification.py:412
+msgid "there was an error backing up"
+msgstr "chyba při zálohování"
+
+#: rapid/problemnotification.py:413
+msgid "There was an error backing up"
+msgstr "Chyba při zálohování"
+
+#. e.g.
+#: rapid/problemnotification.py:416
+#, python-format
+msgid "%(previousproblem)s, and %(backinguperror)s"
+msgstr "%(previousproblem)s a %(backinguperror)s"
+
+#: rapid/rpdfile.py:112
+msgid "photos or videos"
+msgstr "fotografie či videa"
+
+#: rapid/rpdfile.py:136
+#, python-format
+msgid "%(number)s %(filetypes)s"
+msgstr "%(number)s %(filetypes)s"
+
+#: rapid/subfolderfile.py:79
+#, python-format
+msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
+msgstr "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
+
+#: rapid/subfolderfile.py:194
+#, python-format
+msgid ""
+"Source: %(source)s\n"
+"Destination: %(destination)s"
+msgstr ""
+"Zdroj: %(source)s\n"
+"Destinace: %(destination)s"
+
+#: rapid/subfolderfile.py:297
+msgid "Photo has already been downloaded"
+msgstr "Fotka už byla stažena"
+
+#: rapid/subfolderfile.py:298
+#, python-format
+msgid "Source: %(source)s"
+msgstr "Zdroj: %(source)s"
+
+#: rapid/subfolderfile.py:335
+msgid "subfolder and filename"
+msgstr "podsložka a název souboru"
+
+#: rapid/subfolderfile.py:373
+msgid "Failed to create download subfolder"
+msgstr "Nepodařilo se vytvořit podsložku"
+
+#: rapid/subfolderfile.py:374
+#, python-format
+msgid "Path: %s"
+msgstr "Cesta: %s"
+
+#: rapid/glade3/rapid.ui.h:1
+msgid "About..."
+msgstr "O aplikaci..."
+
+#: rapid/glade3/rapid.ui.h:2
+msgid "Check All"
+msgstr "Zaškrtnout všechny"
+
+#: rapid/glade3/rapid.ui.h:3
+msgid "Check All Photos"
+msgstr "Zaškrtnout všechny fotky"
+
+#: rapid/glade3/rapid.ui.h:4
+msgid "Check All Videos"
+msgstr "Zaškrtnout všechna videa"
+
+#: rapid/glade3/rapid.ui.h:5
+msgid "Download / Pause"
+msgstr "Stahování / Pauza"
+
+#: rapid/glade3/rapid.ui.h:6
+msgid "Get Help Online..."
+msgstr "Získat online pomoc..."
+
+#: rapid/glade3/rapid.ui.h:7
+msgid "Make a Donation..."
+msgstr "Darovat..."
+
+#: rapid/glade3/rapid.ui.h:8
+msgid "Next File"
+msgstr "Další soubor"
+
+#: rapid/glade3/rapid.ui.h:9
+msgid "Previous File"
+msgstr "Předchozí soubor"
+
+#: rapid/glade3/rapid.ui.h:10
+msgid "Quit"
+msgstr "Konec"
+
+#: rapid/glade3/rapid.ui.h:12
+msgid "Refresh"
+msgstr "Aktualizovat"
+
+#: rapid/glade3/rapid.ui.h:13
+msgid "Report a Problem..."
+msgstr "Nahlásit problém..."
+
+#: rapid/glade3/rapid.ui.h:14
+msgid "Select All Wit_h Job Code"
+msgstr "Vybrat všechny se ští_tkem"
+
+#: rapid/glade3/rapid.ui.h:15
+msgid "Select All Without _Job Code"
+msgstr "Vybrat všechny _bez štítku"
+
+#: rapid/glade3/rapid.ui.h:16
+msgid "Translate this Application..."
+msgstr "Přeložit tuto aplikaci..."
+
+#: rapid/glade3/rapid.ui.h:17
+msgid "Uncheck All"
+msgstr "Odškrtnout všechny"
+
+#: rapid/glade3/rapid.ui.h:18
+msgid "_Check All"
+msgstr "Zaškrtnout _všechny"
+
+#: rapid/glade3/rapid.ui.h:19
+msgid "_Clear Completed Downloads"
+msgstr "_Vyčistit kompletní stahování"
+
+#: rapid/glade3/rapid.ui.h:20
+msgid "_Download"
+msgstr "_Stáhnout"
+
+#: rapid/glade3/rapid.ui.h:21
+msgid "_Error Log"
+msgstr "_Záznam chyb"
+
+#: rapid/glade3/rapid.ui.h:22
+msgid "_File"
+msgstr "_Soubor"
+
+#: rapid/glade3/rapid.ui.h:23
+msgid "_Help"
+msgstr "_Nápověda"
+
+#: rapid/glade3/rapid.ui.h:24
+msgid "_Include in download"
+msgstr "Vybrat pro stažení"
+
+#: rapid/glade3/rapid.ui.h:25
+msgid "_Make a Donation..."
+msgstr "_Dejte příspěvek..."
+
+#: rapid/glade3/rapid.ui.h:26
+msgid "_Select"
+msgstr "_Vybrat"
+
+#: rapid/glade3/rapid.ui.h:27
+msgid "_Translate this Application..."
+msgstr "_Přeložit tuto aplikaci..."
+
+#: rapid/glade3/rapid.ui.h:28
+msgid "_Uncheck All"
+msgstr "_Odznačit vše"
+
+#: rapid/glade3/rapid.ui.h:29
+msgid "_View"
+msgstr "_Zobrazení"
+
+#: rapid/glade3/prefs.ui.h:1
msgid " "
msgstr " "
-#: rapid/glade3/rapid.glade.h:2
-msgid " "
-msgstr " "
-
-#: rapid/glade3/rapid.glade.h:3
+#: rapid/glade3/prefs.ui.h:2
msgid " hh:mm"
msgstr " hh:mm"
-#: rapid/glade3/rapid.glade.h:4
+#: rapid/glade3/prefs.ui.h:3
msgid ":"
msgstr ":"
-#: rapid/glade3/rapid.glade.h:5
+#: rapid/glade3/prefs.ui.h:4
msgid "<b>Backup</b>"
msgstr "<b>Záloha</b>"
-#: rapid/glade3/rapid.glade.h:6
+#: rapid/glade3/prefs.ui.h:5
msgid "<b>Compatibility with Other Operating Systems</b>"
msgstr "<b>Kompaktibilita s jinými operačními systémy</b>"
-#: rapid/glade3/rapid.glade.h:7
+#: rapid/glade3/prefs.ui.h:6
msgid "<b>Devices</b>"
msgstr "<b>Zařízení</b>"
-#: rapid/glade3/rapid.glade.h:8
+#: rapid/glade3/prefs.ui.h:7
msgid "<b>Download Folder</b>"
msgstr "<b>Složka stahování</b>"
-#: rapid/glade3/rapid.glade.h:9
+#: rapid/glade3/prefs.ui.h:8
msgid "<b>Download Subfolders</b>"
msgstr "<b>Podsložky stahování</b>"
-#: rapid/glade3/rapid.glade.h:10
+#: rapid/glade3/prefs.ui.h:9
msgid "<b>Example</b>"
msgstr "<b>Příklad</b>"
-#: rapid/glade3/rapid.glade.h:11
+#: rapid/glade3/prefs.ui.h:10
msgid "<b>Job Codes</b>"
msgstr "<b>Pracovní kódy</b>"
-#: rapid/glade3/rapid.glade.h:12
+#: rapid/glade3/prefs.ui.h:11
msgid "<b>Photo Rename</b>"
msgstr "<b>Přejmenování fotografie</b>"
-#: rapid/glade3/rapid.glade.h:13
+#: rapid/glade3/prefs.ui.h:12
msgid "<b>Photo and Video Name Conflicts</b>"
msgstr "<b>Konflikty jmen fotografií a videa</b>"
-#: rapid/glade3/rapid.glade.h:14
+#: rapid/glade3/prefs.ui.h:13
msgid "<b>Program Automation</b>"
msgstr "<b>Automatizace programu</b>"
-#: rapid/glade3/rapid.glade.h:15
+#: rapid/glade3/prefs.ui.h:14
msgid "<b>Sequence Numbers</b>"
msgstr "<b>Sekvenční čísla</b>"
-#: rapid/glade3/rapid.glade.h:16
+#: rapid/glade3/prefs.ui.h:15
msgid "<i>/media/externaldrive/Photos</i>"
msgstr "<i>/media/externaldrive/Photos</i>"
-#: rapid/glade3/rapid.glade.h:17
+#: rapid/glade3/prefs.ui.h:16
msgid "<i>Example: /home/user/Pictures</i>"
msgstr "<i>Příklad: /home/user/Pictures</i>"
-#: rapid/glade3/rapid.glade.h:18
+#: rapid/glade3/prefs.ui.h:17
msgid "<i>Example:</i>"
msgstr "<i>Příklad:</i>"
-#: rapid/glade3/rapid.glade.h:19
+#: rapid/glade3/prefs.ui.h:18
msgid "<i>New:</i>"
msgstr "<i>Nový:</i>"
-#: rapid/glade3/rapid.glade.h:20
+#: rapid/glade3/prefs.ui.h:19
msgid "<i>Original:</i>"
msgstr "<i>Originál:</i>"
-#: rapid/glade3/rapid.glade.h:21
-msgid "<span weight=\"bold\" size=\"x-large\">Automation</span>"
-msgstr "<span weight=\"bold\" size=\"x-large\">Automatizace</span>"
-
-#: rapid/glade3/rapid.glade.h:22
+#: rapid/glade3/prefs.ui.h:20
msgid "<span weight=\"bold\" size=\"x-large\">Backup</span>\t"
msgstr "<span weight=\"bold\" size=\"x-large\">Záloha</span>\t"
-#: rapid/glade3/rapid.glade.h:23
+#: rapid/glade3/prefs.ui.h:21
msgid "<span weight=\"bold\" size=\"x-large\">Devices</span>"
msgstr "<span weight=\"bold\" size=\"x-large\">Zařízení</span>"
-#: rapid/glade3/rapid.glade.h:24
+#: rapid/glade3/prefs.ui.h:22
msgid "<span weight=\"bold\" size=\"x-large\">Error Handling</span>"
msgstr "<span weight=\"bold\" size=\"x-large\">Chybová obsluha</span>"
-#: rapid/glade3/rapid.glade.h:25
+#: rapid/glade3/prefs.ui.h:23
msgid "<span weight=\"bold\" size=\"x-large\">Job Codes</span>"
msgstr "<span weight=\"bold\" size=\"x-large\">Pracovní kódy</span>"
-#: rapid/glade3/rapid.glade.h:26
+#: rapid/glade3/prefs.ui.h:24
+msgid "<span weight=\"bold\" size=\"x-large\">Miscellaneous</span>"
+msgstr "<span weight=\"bold\" size=\"x-large\">Různé</span>"
+
+#: rapid/glade3/prefs.ui.h:25
msgid "<span weight=\"bold\" size=\"x-large\">Photo Download Folders</span>"
msgstr ""
"<span weight=\"bold\" size=\"x-large\">Složky stahování fotografií</span>"
-#: rapid/glade3/rapid.glade.h:27
+#: rapid/glade3/prefs.ui.h:26
msgid "<span weight=\"bold\" size=\"x-large\">Photo Rename</span>\t"
msgstr ""
"<span weight=\"bold\" size=\"x-large\">Přejmenování fotografií</span>\t"
-#: rapid/glade3/rapid.glade.h:28
+#: rapid/glade3/prefs.ui.h:27
msgid "<span weight=\"bold\" size=\"x-large\">Rename Options</span>"
msgstr "<span weight=\"bold\" size=\"x-large\">Možnosti přejmenování</span>"
-#: rapid/glade3/rapid.glade.h:29
+#: rapid/glade3/prefs.ui.h:28
msgid "<span weight=\"bold\" size=\"x-large\">Video Download Folders</span>"
msgstr "<span weight=\"bold\" size=\"x-large\">Složky stahování videa</span>"
-#: rapid/glade3/rapid.glade.h:30
+#: rapid/glade3/prefs.ui.h:29
msgid "<span weight=\"bold\" size=\"x-large\">Video Rename</span>\t"
msgstr "<span weight=\"bold\" size=\"x-large\">Přejmenování videa</span>\t"
-#: rapid/glade3/rapid.glade.h:31
+#: rapid/glade3/prefs.ui.h:30
msgid "Add unique identifier"
msgstr "Přidat unikátní identifikátor"
-#: rapid/glade3/rapid.glade.h:32
+#: rapid/glade3/prefs.ui.h:31
msgid "Automatically detect Portable Storage Devices"
msgstr "Automatická detekce kapesních paměťových zařízení"
-#: rapid/glade3/rapid.glade.h:33
+#: rapid/glade3/prefs.ui.h:32
msgid "Automatically detect backup devices"
msgstr "Automatická detekce zálohovacích zařízení"
-#: rapid/glade3/rapid.glade.h:34
+#: rapid/glade3/prefs.ui.h:33
msgid "Automatically detect devices"
msgstr "Automaticky detekovat zařízení"
-#: rapid/glade3/rapid.glade.h:35
-msgid "Automation"
-msgstr "Automatizace"
-
-#: rapid/glade3/rapid.glade.h:36
+#: rapid/glade3/prefs.ui.h:34
msgid "Backup"
msgstr "Záloha"
-#: rapid/glade3/rapid.glade.h:37
+#: rapid/glade3/prefs.ui.h:35
msgid "Backup location:"
msgstr "Umístění zálohy:"
-#: rapid/glade3/rapid.glade.h:38
+#: rapid/glade3/prefs.ui.h:36
msgid "Backup photos and videos when downloading"
msgstr "Zálohovat fotografie a videa při stahování"
-#: rapid/glade3/rapid.glade.h:39
+#: rapid/glade3/prefs.ui.h:37
msgid ""
"Choose the download folder. Subfolders for the downloaded photos will be "
"automatically created in this folder using the structure specified below."
@@ -1634,29 +1418,27 @@ msgstr ""
"Vyberte složku stahování. Podsložky pro stahované obrázky budou vytvořeny "
"automaticky v této složce s použitím struktury specifikované níže."
-#: rapid/glade3/rapid.glade.h:40
+#: rapid/glade3/prefs.ui.h:38
msgid ""
"Choose the download folder. Subfolders for the downloaded videos will be "
"automatically created in this folder using the structure specified below."
msgstr ""
+"Vyberte složku pro stažení. Podsložky pro stažená videa jsou vytvořena "
+"automaticky podle schématu, které si vytvoříte."
-#: rapid/glade3/rapid.glade.h:41
-msgid "Copyright Damon Lynch 2007-10"
-msgstr "Copyright Damon Lynch 2007-10"
-
-#: rapid/glade3/rapid.glade.h:42
+#: rapid/glade3/prefs.ui.h:39
msgid "Day start:"
msgstr "Začátek dne:"
-#: rapid/glade3/rapid.glade.h:43
+#: rapid/glade3/prefs.ui.h:40
msgid "Delete photos and videos from device upon download completion"
msgstr "Odstranit fotografie a videa ze zařízení po dokončení"
-#: rapid/glade3/rapid.glade.h:44
+#: rapid/glade3/prefs.ui.h:41
msgid "Devices"
msgstr "Zařízení"
-#: rapid/glade3/rapid.glade.h:45
+#: rapid/glade3/prefs.ui.h:42
msgid ""
"Devices are from where to download photos and videos, such as cameras, "
"memory cards or Portable Storage Devices.\n"
@@ -1668,43 +1450,47 @@ msgid ""
"setting it to PTP mode. If that is not possible, consider using a card "
"reader.</i>"
msgstr ""
+"Zařízení obsahující fotky nebo videa jsou fotoaparáty, datové karty nebo "
+"jiné datové nosiče.\n"
+"Stahovat můžete z více zařízení zároveň, nebo můžete určit umístění na "
+"disku.\n"
+"<i>Pokud stahování přímo z fotoaparátu nefunguje nebo je pomalé, nastavte u "
+"něj režim PTP. \n"
+"Pokud to neumíte nebo to nejde, použijte raději čtečku karet.</i>"
-#: rapid/glade3/rapid.glade.h:50
-msgid "Download / Pause"
-msgstr "Stahování / Pauza"
-
-#: rapid/glade3/rapid.glade.h:51
+#: rapid/glade3/prefs.ui.h:47
msgid "Download folder:"
msgstr "Složka stahování:"
-#: rapid/glade3/rapid.glade.h:52
+#: rapid/glade3/prefs.ui.h:48
msgid "Downloads today:"
msgstr "Dnešní stahování:"
-#: rapid/glade3/rapid.glade.h:53
+#: rapid/glade3/prefs.ui.h:49
msgid "Error Handling"
msgstr "Chybová obsluha"
-#: rapid/glade3/rapid.glade.h:54
-msgid "Error Log"
-msgstr "Chybový záznam"
+#: rapid/glade3/prefs.ui.h:50
+msgid "Exit program even if download had warnings or errors"
+msgstr "Ukončit program, i když stahování skončilo varováními nebo chybami"
-#: rapid/glade3/rapid.glade.h:55
-msgid "Exit program if download completes without any warnings or errors"
-msgstr ""
+#: rapid/glade3/prefs.ui.h:51
+msgid "Exit program when download completes"
+msgstr "Ukončit program po stažení souborů"
-#: rapid/glade3/rapid.glade.h:56
+#: rapid/glade3/prefs.ui.h:52
msgid "If you disable automatic detection, choose the exact backup location."
msgstr ""
"Máte-li zapnutou automatickou detekci, vyberte přesnou lokaci zálohy."
-#: rapid/glade3/rapid.glade.h:57
+#: rapid/glade3/prefs.ui.h:53
msgid ""
"If you disable automatic detection, choose the exact location of the images "
"and videos."
msgstr ""
+"Pokud zakážete automatickou detekci, vyberte umístění fotek a videí ručně"
-#: rapid/glade3/rapid.glade.h:58
+#: rapid/glade3/prefs.ui.h:54
msgid ""
"If you enable automatic detection of Portable Storage Devices, the entire "
"device will be scanned for images. On large devices, this could take some "
@@ -1714,122 +1500,64 @@ msgstr ""
"budou z tohoto zařízení hledány obrázky. Na zařízeních s větší kapacitou to "
"bude trvat déle."
-#: rapid/glade3/rapid.glade.h:59
-msgid "Import your photos and videos efficiently and reliably"
-msgstr ""
-
-#: rapid/glade3/rapid.glade.h:60
+#: rapid/glade3/prefs.ui.h:55
msgid "Job Codes"
msgstr "Pracovní kódy"
-#: rapid/glade3/rapid.glade.h:61
+#: rapid/glade3/prefs.ui.h:56
msgid "Location:"
msgstr "Umístění:"
-#: rapid/glade3/rapid.glade.h:62
+#: rapid/glade3/prefs.ui.h:57
+msgid "Miscillaneous"
+msgstr "Různé"
+
+#: rapid/glade3/prefs.ui.h:58
msgid "Overwrite"
msgstr "Přepsat"
-#: rapid/glade3/rapid.glade.h:63
-msgid "P_review Columns"
-msgstr ""
-
-#: rapid/glade3/rapid.glade.h:64
+#: rapid/glade3/prefs.ui.h:59
msgid "Photo Folders"
msgstr "Složky fotografií"
-#: rapid/glade3/rapid.glade.h:65
+#: rapid/glade3/prefs.ui.h:60
msgid "Photo Rename"
msgstr "Přejmenování fotografií"
-#: rapid/glade3/rapid.glade.h:66
+#: rapid/glade3/prefs.ui.h:61
msgid "Photo backup folder name:"
-msgstr ""
+msgstr "Název složky pro zálohu fotek"
-#: rapid/glade3/rapid.glade.h:67
+#: rapid/glade3/prefs.ui.h:62
msgid "Preferences: Rapid Photo Downloader"
msgstr "Nastavení: Rapid Photo Downloader"
-#: rapid/glade3/rapid.glade.h:68
-msgid "Preview _Folders"
-msgstr ""
-
-#: rapid/glade3/rapid.glade.h:70
+#: rapid/glade3/prefs.ui.h:64
msgid "R_emove All"
msgstr "O_dstranit vše"
-#: rapid/glade3/rapid.glade.h:72
-msgid ""
-"Rapid Photo Downloader is free software; you can redistribute it and/or "
-"modify it under the terms of the GNU General Public License as published by "
-"the Free Software Foundation; either version 2 of the License, or (at your "
-"option) any later version.\n"
-"\n"
-"Rapid Photo Downloader is distributed in the hope that it will be useful, "
-"but WITHOUT ANY WARRANTY; without even the implied warranty of "
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General "
-"Public License for more details.\n"
-"\n"
-"You should have received a copy of the GNU General Public License along with "
-"Rapid Photo Downloader; if not, write to the Free Software Foundation, Inc., "
-"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
-msgstr ""
-"Rapid Photo Downloader je otevřený software; můžete ho redistribuovat a/nebo "
-"modifikovat za podmínek GNU General Public License publikované Free Software "
-"Foundation; ve verzi 2, nebo (podle vašich nároků) v jiné novější verzi.\n"
-"\n"
-"Rapid Photo Downloader je distribuován v naději že bude používán, ale BEZ "
-"JAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo "
-"VHODNOSTI PRO URČITÝ ÚČEL. Viz GNU General Public License pro více detailů.\n"
-"\n"
-"Měli byste obdržet kopii GNU General Public Licence spolu s Rapid Photo "
-"Downloader. Pokud ji neobržíte napište na: Free Software Foundation, Inc, 51 "
-"Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
-
-#: rapid/glade3/rapid.glade.h:77
+#: rapid/glade3/prefs.ui.h:65
msgid "Rename Options"
msgstr "Možnosti přejmenování"
-#: rapid/glade3/rapid.glade.h:78
-msgid "Se_lect None"
-msgstr ""
-
-#: rapid/glade3/rapid.glade.h:79
-msgid "Select All Pho_tos"
-msgstr "Vybrat veškeré Foto_grafie"
-
-#: rapid/glade3/rapid.glade.h:80
-msgid "Select All Vi_deos"
-msgstr "Vybrat všechna Vi_dea"
-
-#: rapid/glade3/rapid.glade.h:81
-msgid "Select All Wit_h Job Code"
-msgstr ""
-
-#: rapid/glade3/rapid.glade.h:82
-msgid "Select All Without _Job Code"
-msgstr ""
-
-#: rapid/glade3/rapid.glade.h:83
-msgid "Select _All"
-msgstr "Vybr_at vše"
-
-#: rapid/glade3/rapid.glade.h:84
+#: rapid/glade3/prefs.ui.h:66
msgid "Skip"
msgstr "Vynechat"
-#: rapid/glade3/rapid.glade.h:85
+#: rapid/glade3/prefs.ui.h:67
msgid "Skip download"
msgstr "Vynechat stahování"
-#: rapid/glade3/rapid.glade.h:86
+#: rapid/glade3/prefs.ui.h:68
msgid ""
"Sorry, video downloading functionality disabled. To download videos, please "
"install the <i>hachoir metadata</i> and <i>kaa metadata</i> packages for "
"python."
msgstr ""
+"Není možné stahovat video. Ke stahování videa jsou nutné balíčky <i>hachoir-"
+"metadata</i> a <i>kaa-metadata</i> pro Python."
-#: rapid/glade3/rapid.glade.h:87
+#: rapid/glade3/prefs.ui.h:69
msgid ""
"Specify the folder in which backups are stored on the device. \n"
"\n"
@@ -1837,8 +1565,12 @@ msgid ""
"used for backups. For each device you wish to use for backing up to, create "
"a folder in it with one of these names.</i>"
msgstr ""
+"Vyberte složku, ve které jsou na zařízení uloženy zálohy. \n"
+"<i>Poznámka: Podle toho se také pozná, zda je zařízení použito pro zálohy. "
+"Na každém zařízení, které chcete pro zálohy použít, vytvořte složku s "
+"některým jménem. </i>"
-#: rapid/glade3/rapid.glade.h:90
+#: rapid/glade3/prefs.ui.h:72
msgid ""
"Specify the time in 24 hour format at which the <i>Downloads today</i> "
"sequence number should be reset."
@@ -1846,143 +1578,104 @@ msgstr ""
"Specifikujte čas ve 24 hodinovém formátu aby mohlo být resetováno sekvenční "
"číslo v <i>Dnešní stahování</i>."
-#: rapid/glade3/rapid.glade.h:91
+#: rapid/glade3/prefs.ui.h:73
msgid ""
"Specify whether photo, video and folder names should have any characters "
"removed that are not allowed by other operating systems."
msgstr ""
+"Určete znaky, které se mohou objevit v názvech souborů, ale mohly by později "
+"působit problémy"
-#: rapid/glade3/rapid.glade.h:92
+#: rapid/glade3/prefs.ui.h:74
msgid "Start downloading at program startup"
msgstr "Start stahování při startu programu"
-#: rapid/glade3/rapid.glade.h:93
+#: rapid/glade3/prefs.ui.h:75
msgid "Start downloading upon device insertion"
-msgstr ""
+msgstr "Začít stahovat hned po vložení zařízení"
-#: rapid/glade3/rapid.glade.h:94
+#: rapid/glade3/prefs.ui.h:76
msgid "Stored number:"
msgstr "Uskladněné číslo:"
-#: rapid/glade3/rapid.glade.h:95
+#: rapid/glade3/prefs.ui.h:77
msgid "Strip incompatible characters"
msgstr "Odstranit nekompatibilní znaky"
-#: rapid/glade3/rapid.glade.h:96
+#: rapid/glade3/prefs.ui.h:78
msgid "Synchronize RAW + JPEG sequence numbers"
msgstr "Synchronizovat sekvenční čísla RAW + JPEG"
-#: rapid/glade3/rapid.glade.h:97
+#: rapid/glade3/prefs.ui.h:79
msgid "Unmount (\"eject\") device upon download completion"
-msgstr ""
+msgstr "Po stažení souborů odpojit zařízení"
-#: rapid/glade3/rapid.glade.h:98
+#: rapid/glade3/prefs.ui.h:80
msgid "Video Folders"
-msgstr ""
+msgstr "Složky pro videa"
-#: rapid/glade3/rapid.glade.h:99
+#: rapid/glade3/prefs.ui.h:81
msgid "Video Rename"
-msgstr ""
+msgstr "Přejmenovat videa"
-#: rapid/glade3/rapid.glade.h:100
+#: rapid/glade3/prefs.ui.h:82
msgid "Video backup folder name:"
-msgstr ""
+msgstr "Název složky pro zálohu videí"
-#: rapid/glade3/rapid.glade.h:101
+#: rapid/glade3/prefs.ui.h:83
msgid ""
"When a photo or video of the same name has already been downloaded, choose "
"whether to skip downloading the file, or to add a unique indentifier."
msgstr ""
+"Pokud má fotka nebo video stejný název jako již existující soubor, vyberte, "
+"zda se má stahování přeskočit, nebo přejmenovat."
-#: rapid/glade3/rapid.glade.h:102
+#: rapid/glade3/prefs.ui.h:84
msgid ""
"When backing up, choose whether to overwrite a file on the backup device "
"that has the same name, or skip backing it up."
msgstr ""
+"Vyberte, zda při zálohování přepsat na cílovém zařízení soubor se stejným "
+"jménem, nebo jeho zálohování přeskočit."
-#: rapid/glade3/rapid.glade.h:103
+#: rapid/glade3/prefs.ui.h:85
msgid ""
"You can have your photos and videos backed up to multiple locations as they "
"are downloaded, e.g. external hard drives."
msgstr ""
+"Při stahování můžete fotky a videa zálohovat na více umístění, např. na "
+"externí disky."
-#: rapid/glade3/rapid.glade.h:104
+#: rapid/glade3/prefs.ui.h:86
msgid "_Add..."
msgstr "_Přidat..."
-#: rapid/glade3/rapid.glade.h:105
-msgid "_Clear Completed Downloads"
-msgstr "_Vyčistit kompletní stahování"
-
-#: rapid/glade3/rapid.glade.h:106
-msgid "_Device"
-msgstr "_Zařízení"
-
-#: rapid/glade3/rapid.glade.h:107
-msgid "_Error Log"
-msgstr "_Záznam chyb"
-
-#: rapid/glade3/rapid.glade.h:108
-msgid "_File"
-msgstr "_Soubor"
-
-#: rapid/glade3/rapid.glade.h:109
-msgid "_Filename"
-msgstr "_Název souboru"
-
-#: rapid/glade3/rapid.glade.h:110
-msgid "_Get Help Online..."
-msgstr "_Nápověda online..."
-
-#: rapid/glade3/rapid.glade.h:111
-msgid "_Help"
-msgstr "_Nápověda"
-
-#: rapid/glade3/rapid.glade.h:112
-msgid "_Make a Donation..."
-msgstr "_Dejte příspěvek..."
-
-#: rapid/glade3/rapid.glade.h:113
-msgid "_Path"
-msgstr "_Cesta"
-
-#: rapid/glade3/rapid.glade.h:114
-msgid "_Preview"
-msgstr "_Náhled"
-
-#: rapid/glade3/rapid.glade.h:115
-msgid "_Report a Problem..."
-msgstr "_Ohlásit problém..."
-
-#: rapid/glade3/rapid.glade.h:116
-msgid "_Select"
-msgstr "_Vybrat"
-
-#: rapid/glade3/rapid.glade.h:117
-msgid "_Size"
-msgstr "_Velikost"
-
-#: rapid/glade3/rapid.glade.h:118
-msgid "_Translate this Application..."
-msgstr "_Přeložit tuto aplikaci..."
-
-#: rapid/glade3/rapid.glade.h:119
-msgid "_Type"
-msgstr "_Typ"
-
-#: rapid/glade3/rapid.glade.h:120
-msgid "_View"
-msgstr "_Zobrazení"
+#: rapid/glade3/about.ui.h:1
+msgid "Import your photos and videos efficiently and reliably"
+msgstr "Importovat fotky a videa spolehlivě"
#~ msgid "Error in Image Rename preferences"
#~ msgstr "Chyba v nastavení přejmenovávání obrázků."
+#~ msgid "Resetting to default values."
+#~ msgstr "Resetování na výchozí hodnoty."
+
#~ msgid "Select an image folder"
#~ msgstr "Vyberte složku obrázků"
#~ msgid "Select a folder in which to backup images"
#~ msgstr "Vyberte složku do které má být uložena záloha obrázků"
+#~ msgid ""
+#~ "\n"
+#~ "Please check preferences, restart the program, and try again."
+#~ msgstr ""
+#~ "\n"
+#~ "Prosím zkontrolujte nastavení, restartujte program a zkuste to znovu."
+
+#~ msgid "There is an error in the program preferences."
+#~ msgstr "Vyskytla se chyba v nastavení programu."
+
#~ msgid "Image filename could not be generated"
#~ msgstr "Název obrázku nemohl být vygenerován"
@@ -2013,9 +1706,18 @@ msgstr "_Zobrazení"
#~ msgid "Unique identifier '%s' added"
#~ msgstr "Unikátní identifikátor '%s' přidán"
+#~ msgid "Backing up error"
+#~ msgstr "Chyba zálohování"
+
#~ msgid "The image was not copied."
#~ msgstr "Obrázek nebyl okopírován."
+#~ msgid "warnings"
+#~ msgstr "varování"
+
+#~ msgid "errors"
+#~ msgstr "chyby"
+
#~ msgid "Backup device missing"
#~ msgstr "Zálohovací zařízení chybí"
@@ -2028,6 +1730,15 @@ msgstr "_Zobrazení"
#~ msgid "Image already exists"
#~ msgstr "Obrázek neexistuje"
+#~ msgid "Starting downloads"
+#~ msgstr "Stahování začíná"
+
+#~ msgid "Preferences were modified."
+#~ msgstr "Nastavení bylo modifikováno."
+
+#~ msgid "and"
+#~ msgstr "a"
+
#~ msgid "images skipped"
#~ msgstr "obrázky přeskočeny"
@@ -2037,12 +1748,30 @@ msgstr "_Zobrazení"
#~ msgid "images downloaded"
#~ msgstr "obrázky staženy"
+#~ msgid "_Pause"
+#~ msgstr "_Pozastavit"
+
+#~ msgid "Using"
+#~ msgstr "Používání"
+
#~ msgid "Download copying error"
#~ msgstr "Chyba kopírování obrázků"
+#~ msgid "MB/s"
+#~ msgstr "MB/s"
+
+#~ msgid "All downloads complete"
+#~ msgstr "Všechna stahování kompletní"
+
+#~ msgid "_Report a Problem..."
+#~ msgstr "_Ohlásit problém..."
+
#~ msgid "_Photos"
#~ msgstr "_Fotografie"
+#~ msgid "_Get Help Online..."
+#~ msgstr "_Nápověda online..."
+
#~ msgid "_Thumbnails"
#~ msgstr "_Náhledy"
@@ -2067,9 +1796,26 @@ msgstr "_Zobrazení"
#~ msgid "This device has no images to download from."
#~ msgstr "Toto zařízení nemá žádné obrázky pro stažení."
+#, python-format
+#~ msgid "Download has started from %s"
+#~ msgstr "Stahování začalo z %s"
+
+#, python-format
+#~ msgid "Download complete from %s"
+#~ msgstr "Stahování kompletní z %s"
+
#~ msgid "Thumbnail cannot be displayed"
#~ msgstr "Náhled nemůže být zobrazen"
+#~ msgid "Job Code entered"
+#~ msgstr "Pracovní kód vložen"
+
+#~ msgid "No backup devices detected"
+#~ msgstr "Zálohovací zařízení nebylo detekováno"
+
+#~ msgid " "
+#~ msgstr " "
+
#~ msgid "<b>Image Rename</b>"
#~ msgstr "<b>Přejmenování obrázku</b>"
@@ -2098,9 +1844,16 @@ msgstr "_Zobrazení"
#~ msgid "Preferences were changed."
#~ msgstr "Nastavení změněno"
+#, python-format
+#~ msgid "%s is already running"
+#~ msgstr "%s není připraven k používání"
+
#~ msgid "<b>Image Name Conflicts</b>"
#~ msgstr "<b>Konflikt jmen obrázků</b>"
+#~ msgid "<span weight=\"bold\" size=\"x-large\">Automation</span>"
+#~ msgstr "<span weight=\"bold\" size=\"x-large\">Automatizace</span>"
+
#~ msgid "<span weight=\"bold\" size=\"x-large\">Download Folder</span>"
#~ msgstr "<span weight=\"bold\" size=\"x-large\">Složka stahování</span>"
@@ -2113,6 +1866,34 @@ msgstr "_Zobrazení"
#~ msgid "Image Devices"
#~ msgstr "Obrázková zařízení"
+#~ msgid "Sorry,these preferences contain an error:\n"
+#~ msgstr "Promiňte, v nastavení je chyba:\n"
+
+#~ msgid "Resetting to midnight.\n"
+#~ msgstr "Resetování do půlnoci.\n"
+
+#~ msgid "'Start of day' preference value is corrupted.\n"
+#~ msgstr "Hodnota nastavení 'Začátek dne' je poškozena.\n"
+
+#~ msgid "Warning:"
+#~ msgstr "Varování:"
+
+#~ msgid "Some preferences will be reset."
+#~ msgstr "Některé nastavení bylo resetováno."
+
+#~ msgid "No preferences needed to be changed."
+#~ msgstr "Žádné nastavení nebylo změněno."
+
+#~ msgid "Problem using pynotify."
+#~ msgstr "Problém používání pynotify."
+
+#, python-format
+#~ msgid "About %(minutes)i:%(seconds)02i minutes remaining"
+#~ msgstr "Zbývá %(minutes)i:%(seconds)02i minut"
+
+#~ msgid "About 1 minute remaining"
+#~ msgstr "Zbývá 1 minuta"
+
#~ msgid "<b>Missing Backup Devices</b>"
#~ msgstr "<b>Chybějící zálohovací zařízení</b>"
@@ -2132,12 +1913,59 @@ msgstr "_Zobrazení"
#~ "Vyberte zda má být přeskočeno stahování obrázku nebo přidejte unikátní "
#~ "identifikátor."
+#~ msgid "Automation"
+#~ msgstr "Automatizace"
+
#~ msgid "Automatically detect image devices"
#~ msgstr "Automatická detekce obrázkových zařízení"
#~ msgid "Exit program after completion of successful download"
#~ msgstr "Odejít z programu když bude stahování hotovo"
+#~ msgid "Error Log"
+#~ msgstr "Chybový záznam"
+
+#~ msgid ""
+#~ "Rapid Photo Downloader is free software; you can redistribute it and/or "
+#~ "modify it under the terms of the GNU General Public License as published by "
+#~ "the Free Software Foundation; either version 2 of the License, or (at your "
+#~ "option) any later version.\n"
+#~ "\n"
+#~ "Rapid Photo Downloader is distributed in the hope that it will be useful, "
+#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of "
+#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General "
+#~ "Public License for more details.\n"
+#~ "\n"
+#~ "You should have received a copy of the GNU General Public License along with "
+#~ "Rapid Photo Downloader; if not, write to the Free Software Foundation, Inc., "
+#~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
+#~ msgstr ""
+#~ "Rapid Photo Downloader je otevřený software; můžete ho redistribuovat a/nebo "
+#~ "modifikovat za podmínek GNU General Public License publikované Free Software "
+#~ "Foundation; ve verzi 2, nebo (podle vašich nároků) v jiné novější verzi.\n"
+#~ "\n"
+#~ "Rapid Photo Downloader je distribuován v naději že bude používán, ale BEZ "
+#~ "JAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo "
+#~ "VHODNOSTI PRO URČITÝ ÚČEL. Viz GNU General Public License pro více detailů.\n"
+#~ "\n"
+#~ "Měli byste obdržet kopii GNU General Public Licence spolu s Rapid Photo "
+#~ "Downloader. Pokud ji neobržíte napište na: Free Software Foundation, Inc, 51 "
+#~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
+
+#~ msgid ""
+#~ "A newer version of this program was previously run on this computer.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Novější verze této aplikace na tomto počítači již byla spuštěna.\n"
+#~ "\n"
+
+#, python-format
+#~ msgid "About %i seconds remaining"
+#~ msgstr "Zbývá %i sekund"
+
+#~ msgid "About 1 second remaining"
+#~ msgstr "Zbývá 1 sekunda"
+
#, python-format
#~ msgid ""
#~ "Source: %(source)s\n"
@@ -2196,10 +2024,29 @@ msgstr "_Zobrazení"
#~ "Obrázek: %(image)s\n"
#~ "Problém: %(problem)s"
+#~ msgid "Sorry, some preferences are invalid and will be reset."
+#~ msgstr "Promiňte, nastavení je invalidní a muselo být resetováno."
+
+#~ msgid ""
+#~ "This version of the program is newer than the previously run version. "
+#~ "Checking preferences."
+#~ msgstr ""
+#~ "Tato verze tohoto programu již na tomto počítači byla nainstalována. "
+#~ "Kontrola nastavení."
+
+#~ msgid "Automatically start download is false"
+#~ msgstr "Automatický start stahování je zakázán"
+
+#~ msgid "Automatically start download is true"
+#~ msgstr "Automatický start stahování je povolen"
+
#, python-format
#~ msgid "%(number)s of %(total)s images copied"
#~ msgstr "%(number)s z %(total)s obrázků okopírováno"
+#~ msgid "New day has started - resetting 'Downloads Today' sequence number"
+#~ msgstr "Nový den začal - resetování 'Dnešní stahování' sekvenční číslo"
+
#~ msgid ""
#~ "You can have your photos backed up to multiple locations as they are "
#~ "downloaded, e.g. external hard drives."
@@ -2207,6 +2054,25 @@ msgstr "_Zobrazení"
#~ "Vy můžete vaše fotografie zálohovat do různých umístění a můžete je stahovat "
#~ "na různé externí disky."
+#~ msgid "Starting downloads that have been waiting for a Job Code"
+#~ msgstr "Stahování začne po vložení pracovního kódu"
+
+#, python-format
+#~ msgid "Detected %(device)s with path %(path)s"
+#~ msgstr "Detekováno %(device)s s %(path)s cestami"
+
+#, python-format
+#~ msgid "Preference value '%(value)s' is invalid"
+#~ msgstr "Hodnota nastavení '%(value)s' je invalidní"
+
+#, python-format
+#~ msgid ""
+#~ "Preference key '%(key)s' is invalid.\n"
+#~ "Expected one of %(value)s"
+#~ msgstr ""
+#~ "Klíč nastavení '%(key)s' je invalidní\n"
+#~ "Předpokládáno %(value)s"
+
#~ msgid ""
#~ "<i><b>Warning:</b> There is insufficient image metadata to fully generate "
#~ "the name. Please use other renaming options.</i>"
@@ -2236,6 +2102,9 @@ msgstr "_Zobrazení"
#~ msgid "Start downloading upon image device insertion"
#~ msgstr "Start stahování po vložení obrázkového zařízení"
+#~ msgid "These preferences are not well formed:"
+#~ msgstr "Tato nastavení nejsou správně utvořena:"
+
#~ msgid "Import your images efficiently and reliably"
#~ msgstr "Importujte své obrázky efektivně a spolehlivě"
@@ -2247,6 +2116,24 @@ msgstr "_Zobrazení"
#~ "Metadata jsou základy pro generování podsložek / jmen obrázků.\n"
#~ "Zdroj: %s"
+#~ msgid ""
+#~ "Program preferences appear to be valid, but please check them to ensure "
+#~ "correct operation."
+#~ msgstr ""
+#~ "Nastavení programu se zdá být validní, ale zkontrolujte bezpečnou opravnou "
+#~ "operaci."
+
+#~ msgid ""
+#~ "This version of the program uses different preferences than the old version. "
+#~ "Your preferences have been updated.\n"
+#~ "\n"
+#~ "Please check them to ensure correct operation."
+#~ msgstr ""
+#~ "Tato verze programu používá jiné nastavení než ta stará. Vaše nastavení bylo "
+#~ "aktualizováno.\n"
+#~ "\n"
+#~ "Prosím zkontrolujte bezpečnou opravnou operaci."
+
#, python-format
#~ msgid "Error in date time component. Value %s appears invalid"
#~ msgstr "Chyba v časovém komponentu. Hodnota %s se zdá invalidní"
@@ -2254,11 +2141,17 @@ msgstr "_Zobrazení"
#~ msgid "Subsecond metadata not present in image"
#~ msgstr "Metadata subsekund neprezentují obrázek"
+#~ msgid "Failed to receive pynotify server capabilities."
+#~ msgstr "Přijetí schopností pynotify serveru selhalo."
+
#~ msgid "Specify what to do when there are no backup devices."
#~ msgstr ""
#~ "Specifikujte co se má dít, když když nejsou nalezena žádná zálohovací "
#~ "zařízení."
+#~ msgid "Resetting value to zero.\n"
+#~ msgstr "Resetování hodnoty na nulu.\n"
+
#~ msgid ""
#~ "The subfolder preferences entered are invalid and cannot be used.\n"
#~ "They will be reset to their default values."
@@ -2266,6 +2159,14 @@ msgstr "_Zobrazení"
#~ "Vložené nastavení podsložky je invalidní a nelze použít.\n"
#~ "Bylo tedy resetováno na výchozí hodnoty."
+#~ msgid ""
+#~ "This version of the program uses different preferences than the old version. "
+#~ "Some of your previous preferences were invalid, and could not be updated. "
+#~ "They will be reset."
+#~ msgstr ""
+#~ "Tato verze programu využívá uživatelsky jiné nastavení než ta předchozí. "
+#~ "Některé nastavení je invalidní a nelze aktualizovat. Je tedy resetováno."
+
#~ msgid "Unmount (\"eject\") image device upon download completion"
#~ msgstr "Odpojit (\"vysunout\") obrázkové zařízení po dokončení stahování"
@@ -2283,6 +2184,9 @@ msgstr "_Zobrazení"
#~ msgid "list image file extensions the program recognizes and exit"
#~ msgstr "program rozpozná typy obrázkových souborů a ukončí"
+#~ msgid "Invalid Downloads Today value.\n"
+#~ msgstr "Hodnota dnešní stahování je invalidní.\n"
+
#~ msgid ""
#~ "When backing up, choose whether to overwrite an image on the backup device "
#~ "that has the same name, or skip backing it up."
@@ -2326,15 +2230,49 @@ msgstr "_Zobrazení"
#~ msgid "<span weight=\"bold\" size=\"x-large\">Image Devices</span>"
#~ msgstr "<span weight=\"bold\" size=\"x-large\">Obrázková zařízení</span>"
+#~ msgid "Goodbye"
+#~ msgstr "Hezký den"
+
#~ msgid "Image has no metadata"
#~ msgstr "Obrázek nemá metadata"
+#~ msgid "Job Code not entered"
+#~ msgstr "Pracovní kód nebyl vložen"
+
#~ msgid "Enter a new job code."
#~ msgstr "Vložte nový pracovní kód."
+#~ msgid "Prompting for Job Code"
+#~ msgstr "Výzva pro pracovní kód"
+
+#, python-format
+#~ msgid "Prompting whether to use %s"
+#~ msgstr "Výzva pro použití %s"
+
+#~ msgid "Already prompting for Job Code, do not prompt again"
+#~ msgstr "Výzva k pracovnímu kódu již existuje, nevyzívejte znovu"
+
+#, python-format
+#~ msgid "Device %(device)s (%(path)s) ignored"
+#~ msgstr "Zařízení %(device)s (%(path)s) ignorováno"
+
+#, python-format
+#~ msgid "%s selected for downloading from"
+#~ msgstr "%s vybráno pro stažení"
+
+#, python-format
+#~ msgid "%s rejected as a download device"
+#~ msgstr "%s odmítnuto jako stahovací zařízení"
+
#~ msgid "Should this device or partition be used to download images from?"
#~ msgstr "Máte zařízení či oddíl určený ke stažení?"
+#~ msgid "This device or partition will always be used to download from"
+#~ msgstr "Toto zařízení či oddíl bude vždy použito pro stažení"
+
+#~ msgid "This device or partition will never be used to download from"
+#~ msgstr "Toto zařízení či oddíl nebude použito pro stažení"
+
#~ msgid "Enter a new job code, or select a previous one."
#~ msgstr "Vložte nový pracovní kód, nebo vyberte předchozí."
@@ -2365,6 +2303,9 @@ msgstr "_Zobrazení"
#~ "Jméno podsložky nemohlo být řádně vygenerováno. Zkontrolujte, kde jsou "
#~ "dostatečná metadata."
+#~ msgid "The device can now be safely removed"
+#~ msgstr "Zařízení nyní nemůže být bezpečně vymazáno"
+
#, python-format
#~ msgid "Image: %(source)s"
#~ msgstr "Chyba: %(source)s"
@@ -2387,6 +2328,26 @@ msgstr "_Zobrazení"
#~ "Obrázek: %(source)s\n"
#~ "Chyba: %(errno)s %(strerror)s"
+#~ msgid "Stored number value not updated, as a download is currently occurring"
+#~ msgstr ""
+#~ "Hodnota Skladované číslo není aktualizována, v současné době dochází ke "
+#~ "stažení"
+
+#~ msgid ""
+#~ "Downloads today value not updated, as a download is currently occurring"
+#~ msgstr ""
+#~ "Hodnota Dnešní stahování není aktualizována, v současné době dochází ke "
+#~ "stažení"
+
+#~ msgid "Copyright Damon Lynch 2007-10"
+#~ msgstr "Copyright Damon Lynch 2007-10"
+
+#~ msgid "Using backup device"
+#~ msgstr "Používání zálohovacího zařízení"
+
+#~ msgid "Using backup devices"
+#~ msgstr "Používání zálohovacích zařízení"
+
#~ msgid ""
#~ "Images detected with the same filenames, but taken at different times:"
#~ msgstr ""
@@ -2400,11 +2361,18 @@ msgstr "_Zobrazení"
#~ "První obrázek: %(image1)s %(image1_date_time)s:%(image1_subseconds)s\n"
#~ "Druhý obrázek: %(image2)s %(image2_date_time)s:%(image2_subseconds)s"
+#~ msgid "Using manually specified path"
+#~ msgstr "Používání manuálně specifikované cesty"
+
#, python-format
#~ msgid "Image device: %s\n"
#~ msgstr "Obrázkové zařízení: %s\n"
#, python-format
+#~ msgid "Source: %s\n"
+#~ msgstr "Zdroj: %s\n"
+
+#, python-format
#~ msgid ""
#~ "Source: %(source)s\n"
#~ "Partially generated filename: %(newname)s\n"
@@ -2416,6 +2384,24 @@ msgstr "_Zobrazení"
#~ "Destinace: %(destination)s\n"
#~ "Problém: %(problem)s"
+#~ msgid "Error:"
+#~ msgstr "Chyba:"
+
+#~ msgid "Could not create temporary download directory"
+#~ msgstr "Nelze vytvořit dočasný stahovací adresář"
+
+#, python-format
+#~ msgid "Destination: %s"
+#~ msgstr "Destinace: %s"
+
+#, python-format
+#~ msgid "Error: %(errno)s %(strerror)s"
+#~ msgstr "Chyba: %(errno)s %(strerror)s"
+
+#, python-format
+#~ msgid "Destination directory could not be created: %(directory)s\n"
+#~ msgstr "Adresář destinace nelze vytvořit: %(directory)s\n"
+
#, python-format
#~ msgid ""
#~ "Source: %(source)s\n"
@@ -2424,6 +2410,9 @@ msgstr "_Zobrazení"
#~ "Zdroj: %(source)s\n"
#~ "Destinace: %(destination)s\n"
+#~ msgid "Problem with Download Folder"
+#~ msgstr "Problém se stahovací složkou"
+
#~ msgid "Problem with Image Location Folder"
#~ msgstr "Problém s lokací obrázkové složky"
@@ -2441,6 +2430,11 @@ msgstr "_Zobrazení"
#~ "Promiňte, stahovací složka existuje, ale nelze do ní zapisovat. Prosím "
#~ "zkontrolujte oprávnění či nastavení programu"
+#~ msgid ""
+#~ "Warning: desktop environment notification server is incorrectly configured."
+#~ msgstr ""
+#~ "Varování: notifikační server prostředí plochy je špatně nakonfigurován."
+
#, python-format
#~ msgid ""
#~ "Sorry, this image location does not exist:\n"
@@ -2458,16 +2452,206 @@ msgstr "_Zobrazení"
#~ msgstr "%s(filetype)s nelze otevřít"
#, python-format
+#~ msgid "Device scan complete: found %(number)s %(filetypes)s on %(device)s"
+#~ msgstr ""
+#~ "Sken zařízení kompletní: nalezeno %(number)s %(filetypes)s na %(device)s"
+
+#, python-format
#~ msgid "%(filetype)s has no metadata"
#~ msgstr "%(filetype)s nemá metadata"
#, python-format
+#~ msgid "Backup %(file_type)s overwritten"
+#~ msgstr "Záloha %(file_type)s přepsána"
+
+#, python-format
#~ msgid "%(noFiles)s %(filetypes)s skipped"
#~ msgstr "%(noFiles)s %(filetypes)s přeskočeno"
#, python-format
+#~ msgid "%(noFiles)s %(filetypes)s downloaded"
+#~ msgstr "%(noFiles)s %(filetypes)s staženo"
+
+#~ msgid "A backup location was not found"
+#~ msgstr "Umístění zálohy nenalezeno"
+
+#, python-format
+#~ msgid "Photo: %(source)s"
+#~ msgstr "Fotografie: %(source)s"
+
+#~ msgid "\n"
+#~ msgstr "\n"
+
+#, python-format
#~ msgid "Could not open %(filetype)s"
#~ msgstr "Nemohu otevřít %(filetype)s"
+#, python-format
+#~ msgid "Backup of %(file_type)s already exists"
+#~ msgstr "Záloha %(file_type)s již existuje"
+
+#, python-format
+#~ msgid "Device: %s\n"
+#~ msgstr "Zařízení: %s\n"
+
+#, python-format
+#~ msgid "%(file_type)s not backed up"
+#~ msgstr "%(file_type)s nebyl zálohován"
+
#~ msgid "No backup device was automatically detected"
#~ msgstr "Automaticky nebylo detekováno žádné zálohovací zařízení"
+
+#~ msgid "Could not delete photo or video from device"
+#~ msgstr "Nelze odstranit fotografie či video ze zařízení"
+
+#~ msgid "_Size"
+#~ msgstr "_Velikost"
+
+#~ msgid "_Type"
+#~ msgstr "_Typ"
+
+#~ msgid "_Device"
+#~ msgstr "_Zařízení"
+
+#~ msgid "_Filename"
+#~ msgstr "_Název souboru"
+
+#~ msgid "_Path"
+#~ msgstr "_Cesta"
+
+#~ msgid "_Preview"
+#~ msgstr "_Náhled"
+
+#, python-format
+#~ msgid "The %(file_type)s was not backed up."
+#~ msgstr "Toto %(file_type)s nebylo zálohováno."
+
+#, python-format
+#~ msgid "Error: %(inst)s"
+#~ msgstr "Chyba: %(inst)s"
+
+#~ msgid "Downloading From Cameras"
+#~ msgstr "Stahování z kamer"
+
+#~ msgid "Date"
+#~ msgstr "Datum"
+
+#~ msgid "File"
+#~ msgstr "Soubor"
+
+#~ msgid "Status"
+#~ msgstr "Stav"
+
+#~ msgid "Type"
+#~ msgstr "Typ"
+
+#~ msgid "_Show this message again"
+#~ msgstr "_Zobrazit tuto zprávu znovu"
+
+#~ msgid "Path"
+#~ msgstr "Cesta"
+
+#, python-format
+#~ msgid "%(filetype)s was not downloaded"
+#~ msgstr "%(filetype)s nebylo staženo"
+
+#, python-format
+#~ msgid "%(filetype)s was downloaded successfully"
+#~ msgstr "%(filetype)s bylo úspěšně staženo"
+
+#, python-format
+#~ msgid "%(filetype)s was downloaded with warnings"
+#~ msgstr "%(filetype)s bylo staženo s varováními"
+
+#, python-format
+#~ msgid "%(filetype)s is ready to be downloaded"
+#~ msgstr "%(filetype)s je připraveno ke stažení"
+
+#, python-format
+#~ msgid "%(filetype)s cannot be downloaded"
+#~ msgstr "%(filetype)s nelze stáhnout"
+
+#, python-format
+#~ msgid "%(filetype)s will be downloaded with warnings"
+#~ msgstr "%(filetype)s bude staženo s varováními"
+
+#~ msgid "Problem with Download Folders"
+#~ msgstr "Problém se složkamy stahování"
+
+#, python-format
+#~ msgid "%(free)s available"
+#~ msgstr "%(free)s je k dispozici"
+
+#, python-format
+#~ msgid "%(filetype)s downloaded"
+#~ msgstr "%(filetype)s staženo"
+
+#~ msgid "Backup preferences were changed."
+#~ msgstr "Nastavení zálohy bylo změněno."
+
+#~ msgid "_Resume"
+#~ msgstr "_Pokračovat"
+
+#~ msgid "_Download All"
+#~ msgstr "_Stáhnout vše"
+
+#~ msgid "Select _All"
+#~ msgstr "Vybr_at vše"
+
+#~ msgid "Select All Vi_deos"
+#~ msgstr "Vybrat všechna Vi_dea"
+
+#~ msgid "Select All Pho_tos"
+#~ msgstr "Vybrat veškeré Foto_grafie"
+
+#, python-format
+#~ msgid "Device scan complete: no %(filetypes)s found on %(device)s"
+#~ msgstr ""
+#~ "Sken zařízení kompletní: žádné %(filetypes)s nebyly nalezeny na %(device)s"
+
+#, python-format
+#~ msgid "The path %s could not be created"
+#~ msgstr "Cesta %s nemohla být vytvořena"
+
+#~ msgid "Backup path does not exist"
+#~ msgstr "Cesta zálohování neexistuje"
+
+#, python-format
+#~ msgid "%(noFiles)s %(filetypes)s failed to download"
+#~ msgstr "%(noFiles)s %(filetypes)s nebyly staženy"
+
+#~ msgid "The following download path could not be created:\n"
+#~ msgstr "Následující cesta stahování nemůže být vytvořena:\n"
+
+#, python-format
+#~ msgid "%(path)s: "
+#~ msgstr "%(path)s: "
+
+#, python-format
+#~ msgid "%(file_type)s not backed up to %(volume)s"
+#~ msgstr "%(file_type)s nebylo zálohováno do %(volume)s"
+
+#, python-format
+#~ msgid ""
+#~ "Source: %(source)s\n"
+#~ "Destination: %(destination)s\n"
+#~ "%(problem)s"
+#~ msgstr ""
+#~ "Zdroj: %(source)s\n"
+#~ "Destinace: %(destination)s\n"
+#~ "%(problem)s"
+
+#, python-format
+#~ msgid ""
+#~ "Photo: %(source)s\n"
+#~ "Error: %(errno)s %(strerror)s"
+#~ msgstr ""
+#~ "Fotografie: %(source)s\n"
+#~ "Chyba: %(errno)s %(strerror)s"
+
+#~ msgid "Job Code"
+#~ msgstr "Pracovní kód"
+
+#, python-format
+#~ msgid "Deleted %(number)i %(filetypes)s from device"
+#~ msgstr "Odstraněno %(number)i %(filetypes)s ze zařízení"
diff --git a/po/fr.po b/po/fr.po
index 800f3b1..2e9543e 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,22 +7,22 @@ msgid ""
msgstr ""
"Project-Id-Version: rapid\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-03-20 18:23-0500\n"
-"PO-Revision-Date: 2011-03-26 07:01+0000\n"
-"Last-Translator: Julien Valroff <Unknown>\n"
+"POT-Creation-Date: 2011-04-04 00:18-0500\n"
+"PO-Revision-Date: 2011-04-10 23:41+0000\n"
+"Last-Translator: Tubuntu <Unknown>\n"
"Language-Team: French <fr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-04 05:24+0000\n"
-"X-Generator: Launchpad (build 12710)\n"
+"X-Launchpad-Export-Date: 2011-04-11 01:01+0000\n"
+"X-Generator: Launchpad (build 12757)\n"
#. Translators: if neccessary, for guidance in how to translate this program, you may see http://damonlynch.net/translate.html
-#: rapid/rapid.py:97 rapid/glade3/rapid.ui.h:11
+#: rapid/rapid.py:103 rapid/glade3/rapid.ui.h:11
msgid "Rapid Photo Downloader"
msgstr "Rapid Photo Downloader"
-#: rapid/rapid.py:102
+#: rapid/rapid.py:108
#, python-format
msgid ""
"%(date)s\n"
@@ -31,34 +31,29 @@ msgstr ""
"%(date)s\n"
"%(time)s"
-#: rapid/rapid.py:104
+#: rapid/rapid.py:110
#, python-format
msgid "%(date)s %(time)s"
msgstr "%(date)s %(time)s"
-#: rapid/rapid.py:107
-#, python-format
-msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-msgstr "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-
-#: rapid/rapid.py:114
+#: rapid/rapid.py:113
#, python-format
msgid "%(date)s %(hour)s:%(minute)s:%(second)s:%(subsecond)s"
msgstr "%(date)s %(hour)s:%(minute)s:%(second)s:%(subsecond)s"
#. Device refers to a thing like a camera, memory card in its reader,
#. external hard drive, Portable Storage Device, etc.
-#: rapid/rapid.py:145
+#: rapid/rapid.py:144
msgid "Device"
msgstr "Volume"
#. Size refers to the total size of images on the device, typically in
#. MB or GB
-#: rapid/rapid.py:159
+#: rapid/rapid.py:158
msgid "Size"
msgstr "Taille"
-#: rapid/rapid.py:162
+#: rapid/rapid.py:161
msgid "Download Progress"
msgstr "Progression du transfert"
@@ -66,48 +61,70 @@ msgstr "Progression du transfert"
#. looking for photos or videos. It is visible initially in the progress bar for each device
#. (which normally holds "x photos and videos").
#. It maybe displayed only briefly if the contents of the device being scanned is small.
-#: rapid/rapid.py:938
+#: rapid/rapid.py:974
msgid "scanning..."
msgstr "Détection en cours..."
-#: rapid/rapid.py:1639
+#: rapid/rapid.py:1678
msgid "Download"
msgstr "Transférer"
-#: rapid/rapid.py:1642
+#: rapid/rapid.py:1681
msgid "Pause"
msgstr "Pause"
-#. ~ scan_pid = rpd_file.scan_pid
-#. ~ unique_id = rpd_file.unique_id
-#: rapid/rapid.py:1906
+#: rapid/rapid.py:1794
+#, python-format
+msgid ""
+"These download folders are invalid:\n"
+"%(folder1)s\n"
+"%(folder2)s"
+msgstr ""
+"Ces répertoires de téléchargement ne sont pas valides:\n"
+"%(folder1)s\n"
+"%(folder2)s"
+
+#: rapid/rapid.py:1797
+#, python-format
+msgid ""
+"This download folder is invalid:\n"
+"%s"
+msgstr ""
+"Ce répertoire de téléchargement n'est pas valide:\n"
+"%s"
+
+#: rapid/rapid.py:1798
+msgid "Download cannot proceed"
+msgstr "Impossible de procéder au transfert"
+
+#: rapid/rapid.py:1957
#, python-format
msgid "%(number)s of %(total)s %(filetypes)s"
msgstr "%(number)s sur %(total)s %(filetypes)s"
-#: rapid/rapid.py:2239 rapid/preferencesdialog.py:817 rapid/rpdfile.py:118
+#: rapid/rapid.py:2302 rapid/preferencesdialog.py:825 rapid/rpdfile.py:120
msgid "photos"
msgstr "photos"
-#: rapid/rapid.py:2241 rapid/rpdfile.py:113
+#: rapid/rapid.py:2304 rapid/rpdfile.py:115
msgid "videos"
msgstr "vidéos"
-#: rapid/rapid.py:2244
+#: rapid/rapid.py:2308
msgid "Free space:"
msgstr "Espace libre :"
#. (videos) or (photos) will be appended to the free space message displayed to the
#. user in the status bar.
#. you should only translate this if your language does not use parantheses
-#: rapid/rapid.py:2256
+#: rapid/rapid.py:2320
#, python-format
msgid "(%(file_type)s)"
msgstr "(%(file_type)s)"
#. Freespace available on the filesystem for downloading to
#. Displayed in status bar message on main window
-#: rapid/rapid.py:2260
+#: rapid/rapid.py:2324
#, python-format
msgid "%(free)s %(file_type)s"
msgstr "%(free)s %(file_type)s"
@@ -115,43 +132,71 @@ msgstr "%(free)s %(file_type)s"
#. Inserted in the middle of the statusbar message concerning the amount of freespace
#. Used to differentiate between two different file systems
#. e.g. Free space: 21.3GB (photos); 14.7GB (videos).
-#: rapid/rapid.py:2265
+#: rapid/rapid.py:2329
msgid "; "
msgstr ", "
#. Inserted at the end of the statusbar message concerning the amount of freespace
#. Used to differentiate between two different file systems
#. e.g. Free space: 21.3GB (photos); 14.7GB (videos).
-#: rapid/rapid.py:2270
+#: rapid/rapid.py:2334
msgid "."
msgstr "."
#. Freespace available on the filesystem for downloading to
#. Displayed in status bar message on main window
#. e.g. 14.7GB available
-#: rapid/rapid.py:2276
+#: rapid/rapid.py:2340
#, python-format
msgid "%(free)s free"
msgstr "%(free)s disponibles"
#. user manually specified backup location
-#: rapid/rapid.py:2282
+#: rapid/rapid.py:2346
#, python-format
msgid "Backing up to %(path)s"
msgstr "Sauvegarde sur %(path)s"
-#: rapid/rapid.py:2287
+#: rapid/rapid.py:2351
#, python-format
msgid "%(freespace)s. %(backuppaths)s."
-msgstr ""
+msgstr "%(freespace)s. %(backuppaths)s."
+
+#: rapid/rapid.py:2479 rapid/rpdfile.py:247
+msgid "Photo"
+msgstr "Photo"
-#: rapid/rapid.py:2470
+#: rapid/rapid.py:2481 rapid/rpdfile.py:267
+msgid "Video"
+msgstr "Vidéo"
+
+#: rapid/rapid.py:2490
+#, python-format
+msgid "%(file_type)s download folder does not exist"
+msgstr "%(file_type)s répertoires de téléchargement n'existe pas"
+
+#: rapid/rapid.py:2492 rapid/rapid.py:2506 rapid/rapid.py:2519
+#, python-format
+msgid "Folder: %s"
+msgstr "Répertoire: %s"
+
+#: rapid/rapid.py:2504
+#, python-format
+msgid "%(file_type)s download folder is invalid"
+msgstr "%(file_type)s répertoire de téléchargement n'est pas valide"
+
+#: rapid/rapid.py:2517
+#, python-format
+msgid "%(file_type)s download folder is not writable"
+msgstr "%(file_type)s répertoire de téléchargement protégé en écriture"
+
+#: rapid/rapid.py:2592
msgid "Thumbnails"
msgstr "Aperçus"
#. Translators: this text is displayed to the user when they request information on the command line options.
#. The text %default should not be modified or left out.
-#: rapid/rapid.py:2511
+#: rapid/rapid.py:2633
#, python-format
msgid ""
"display program information on the command line as the program runs "
@@ -160,42 +205,42 @@ msgstr ""
"affiche les informations de l'application sur la ligne de commande lorsque "
"l'application est active (défaut: %default)"
-#: rapid/rapid.py:2512
+#: rapid/rapid.py:2634
msgid "display debugging information when run from the command line"
msgstr "Affiche les informations de débogage en mode console"
-#: rapid/rapid.py:2513
+#: rapid/rapid.py:2635
msgid "only output errors to the command line"
msgstr "n'affiche que les erreurs sur la ligne de commande"
#. image file extensions are recognized RAW files plus TIFF and JPG
-#: rapid/rapid.py:2515
+#: rapid/rapid.py:2637
msgid "list photo and video file extensions the program recognizes and exit"
msgstr ""
"Liste des extensions de fichiers photo et vidéo reconnues par le programme"
-#: rapid/rapid.py:2516
+#: rapid/rapid.py:2638
msgid "reset all program settings and preferences and exit"
msgstr "Réinitialise tous les paramètres et préférences du programme"
-#: rapid/rapid.py:2529
+#: rapid/rapid.py:2651
msgid "Photos:"
msgstr "Photos :"
-#: rapid/rapid.py:2529
+#: rapid/rapid.py:2651
msgid "Videos:"
msgstr "Vidéos :"
-#: rapid/rapid.py:2534
+#: rapid/rapid.py:2656
#, python-format
msgid "and %s"
msgstr "et %s"
-#: rapid/rapid.py:2542
+#: rapid/rapid.py:2664
msgid "All settings and preferences have been reset"
msgstr "Tous les paramètres et préférences ont été réinitialisés"
-#: rapid/rapid.py:2551
+#: rapid/rapid.py:2673
msgid ""
"Video downloading functionality disabled.\n"
"To download videos, please install the hachoir metadata and kaa metadata "
@@ -205,6 +250,16 @@ msgstr ""
"Afin de transférer des vidéos, installez hachoir metadata et kaa metadata "
"pour python."
+#: rapid/copyfiles.py:136 rapid/subfolderfile.py:209
+#: rapid/subfolderfile.py:346
+#, python-format
+msgid ""
+"%(problem)s\n"
+"File: %(file)s"
+msgstr ""
+"%(problem)s\n"
+"Fichier: %(file)s"
+
#: rapid/device.py:79
msgid "Device Detected"
msgstr "Périphérique détecté"
@@ -243,7 +298,7 @@ msgid "Sequences"
msgstr "Séquences"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/generatenameconfig.py:149 rapid/preferencesdialog.py:545
+#: rapid/generatenameconfig.py:149 rapid/preferencesdialog.py:550
msgid "Job code"
msgstr "Étiquette de transfert"
@@ -290,7 +345,7 @@ msgstr "Numéro de l'image"
#: rapid/generatenameconfig.py:164
msgid "Video number"
-msgstr ""
+msgstr "Numéro de vidéo"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
#: rapid/generatenameconfig.py:166
@@ -565,93 +620,93 @@ msgstr "MM (minutes)"
msgid "SS"
msgstr "SS"
-#: rapid/preferencesdialog.py:364
+#: rapid/preferencesdialog.py:371
#, python-format
msgid "Subfolder preferences should not start with a %s"
msgstr ""
"Les préférences de sous-dossier ne devraient pas commencer avec un %s"
-#: rapid/preferencesdialog.py:366
+#: rapid/preferencesdialog.py:373
#, python-format
msgid "Subfolder preferences should not end with a %s"
msgstr ""
"Les préférences de sous-dossier ne devraient pas se terminer avec un %s"
-#: rapid/preferencesdialog.py:370
+#: rapid/preferencesdialog.py:377
#, python-format
msgid "Subfolder preferences should not contain two %s one after the other"
msgstr ""
"Les préférences de sous-dossier ne devraient pas contenir deux %s consécutifs"
-#: rapid/preferencesdialog.py:384 rapid/preferencesdialog.py:668
+#: rapid/preferencesdialog.py:390 rapid/preferencesdialog.py:673
msgid "Remove all Job Codes?"
msgstr "Supprimer toutes les étiquettes de transfert ?"
-#: rapid/preferencesdialog.py:401 rapid/preferencesdialog.py:685
+#: rapid/preferencesdialog.py:407 rapid/preferencesdialog.py:690
msgid "Should all Job Codes be removed?"
msgstr ""
"Êtes-vous sûr de vouloir supprimer toutes les étiquettes de transfert ?"
-#: rapid/preferencesdialog.py:431
+#: rapid/preferencesdialog.py:437
msgid "Error in Photo Rename preferences"
msgstr "Erreur dans les préférences de renommage des photos"
-#: rapid/preferencesdialog.py:613
+#: rapid/preferencesdialog.py:618
msgid "Error in Video Rename preferences"
msgstr "Erreur dans les préférences de renommage des vidéos"
-#: rapid/preferencesdialog.py:634
+#: rapid/preferencesdialog.py:639
msgid "Error in Photo Download Subfolders preferences"
msgstr "Erreur dans les préférences des sous-dossiers de transfert de photos"
-#: rapid/preferencesdialog.py:651
+#: rapid/preferencesdialog.py:656
msgid "Error in Video Download Subfolders preferences"
msgstr "Erreur dans les préférences des sous-dossiers de transfert de vidéos"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/preferencesdialog.py:710
+#: rapid/preferencesdialog.py:715
msgid "Enter a Job Code"
msgstr "Entrer une étiquette de transfert"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/preferencesdialog.py:727
+#: rapid/preferencesdialog.py:732
msgid "Enter a new Job Code, or select a previous one"
msgstr ""
"Séléctionnez une étiquette de transfert existante ou créez en une nouvelle"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/preferencesdialog.py:730
+#: rapid/preferencesdialog.py:735
msgid "Enter a new Job Code"
msgstr "Entrez une nouvelle étiquette de transfert"
-#: rapid/preferencesdialog.py:735
+#: rapid/preferencesdialog.py:740
msgid "Job Code:"
msgstr "Étiquette de transfert"
-#: rapid/preferencesdialog.py:815 rapid/rpdfile.py:108
+#: rapid/preferencesdialog.py:823 rapid/rpdfile.py:110
msgid "photos and videos"
msgstr "photos et vidéos"
-#: rapid/preferencesdialog.py:964
+#: rapid/preferencesdialog.py:992
msgid "Select a folder to download photos to"
msgstr "Sélectionnez le dossier de destination"
-#: rapid/preferencesdialog.py:982
+#: rapid/preferencesdialog.py:1010
msgid "Select a folder to download videos to"
msgstr "Sélectionnez un dossier vers lequel transférer vos vidéos"
-#: rapid/preferencesdialog.py:1064
+#: rapid/preferencesdialog.py:1101
#, python-format
msgid "Select a folder containing %(file_types)s"
msgstr "Sélectionnez un dossier contenant %(file_types)s"
-#: rapid/preferencesdialog.py:1086
+#: rapid/preferencesdialog.py:1123
#, python-format
msgid "Select a folder in which to backup %(file_types)s"
msgstr "Séléctionnez un dossier dans lequel sauvegarder %(file_types)s"
#. Translators: please do not modify or leave out html formatting tags like <i> and <b>. These are used to format the text the users sees
-#: rapid/preferencesdialog.py:1172
+#: rapid/preferencesdialog.py:1207
msgid ""
"<i><b>Warning:</b> There is insufficient metadata to fully generate the "
"name. Please use other renaming options.</i>"
@@ -659,7 +714,7 @@ msgstr ""
"<i><b>Attention :</b> Il n'y a pas assez de métadonnées pour générer "
"correctement le nom. Utilisez d'autres options de renommage.</i>"
-#: rapid/preferencesdialog.py:1211
+#: rapid/preferencesdialog.py:1258
msgid ""
"<i><b>Warning:</b> There is insufficient metadata to fully generate "
"subfolders. Please use other subfolder naming options.</i>"
@@ -669,13 +724,13 @@ msgstr ""
"nommer les sous-dossiers.</i>"
#. Translators: you should not modify or leave out the %s. This is a code used by the programming language python to insert a value that thes user will see
-#: rapid/preferencesdialog.py:1215
+#: rapid/preferencesdialog.py:1261
#, python-format
msgid "<i>Example: %s</i>"
msgstr "<i>Exemple : %s</i>"
#. Preferences list is now empty
-#: rapid/preferencesdialog.py:1291
+#: rapid/preferencesdialog.py:1351
#, python-format
msgid ""
"The %(filetype)s subfolder preferences entered are invalid and cannot be "
@@ -687,21 +742,21 @@ msgstr ""
"Elles vont être réinitialiseées à leurs valeurs par défaut."
#. check subfolder preferences for bad values
-#: rapid/preferencesdialog.py:1305 rapid/rpdfile.py:120 rapid/rpdfile.py:241
+#: rapid/preferencesdialog.py:1365 rapid/rpdfile.py:122 rapid/rpdfile.py:246
msgid "photo"
msgstr "photo"
-#: rapid/preferencesdialog.py:1306 rapid/rpdfile.py:115 rapid/rpdfile.py:267
+#: rapid/preferencesdialog.py:1366 rapid/rpdfile.py:117 rapid/rpdfile.py:266
msgid "video"
msgstr "vidéo"
#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
-#: rapid/preferencesdialog.py:1566
+#: rapid/preferencesdialog.py:1637
msgid "externaldrive1"
msgstr "disqueexterne1"
#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
-#: rapid/preferencesdialog.py:1568
+#: rapid/preferencesdialog.py:1639
msgid "externaldrive2"
msgstr "disqueexterne2"
@@ -778,18 +833,18 @@ msgid "Stockholm"
msgstr "Stockholm"
#. components
-#: rapid/problemnotification.py:26 rapid/subfolderfile.py:181
+#: rapid/problemnotification.py:26 rapid/subfolderfile.py:339
msgid "subfolder"
msgstr "sous-dossier"
-#: rapid/problemnotification.py:27 rapid/subfolderfile.py:179
+#: rapid/problemnotification.py:27 rapid/subfolderfile.py:337
msgid "filename"
msgstr "nom de fichier"
#: rapid/problemnotification.py:80
#, python-format
msgid "Date time value %s appears invalid."
-msgstr ""
+msgstr "La valeur de date et heure %s semble non valable."
#: rapid/problemnotification.py:81
msgid "Filename does not have an extension."
@@ -809,22 +864,22 @@ msgstr "Erreur lors de la génération de la composante %s."
#: rapid/problemnotification.py:86
#, python-format
msgid "%(filetype)s metadata cannot be read"
-msgstr ""
+msgstr "%(filetype)s metadonné(e) illisible(s)"
#: rapid/problemnotification.py:88
#, python-format
msgid "%(filetype)s %(area)s could not be generated"
-msgstr ""
+msgstr "%(filetype)s %(area)s n'a pu être généré"
#: rapid/problemnotification.py:90 rapid/problemnotification.py:91
#, python-format
msgid "An error occurred when copying the %(filetype)s"
-msgstr ""
+msgstr "Une erreur s'est produite lors de la copie de %(filetype)s"
#: rapid/problemnotification.py:93 rapid/problemnotification.py:94
#, python-format
msgid "%(filetype)s already exists"
-msgstr ""
+msgstr "%(filetype)s existe déjà"
#: rapid/problemnotification.py:97
#, python-format
@@ -832,6 +887,8 @@ msgid ""
"%(filetype)s could not be backed up because no suitable backup locations "
"were found."
msgstr ""
+"%(filetype)s n'a pu être sauvegardé car aucun emplacement approprié nà pu "
+"être trouvé."
#: rapid/problemnotification.py:102
#, python-format
@@ -839,11 +896,13 @@ msgid ""
"%(image1)s was taken at on %(image1_date)s at %(image1_time)s, and "
"%(image2)s on %(image2_date)s at %(image2_time)s."
msgstr ""
+"%(image1)s à été prise le %(image1_date)s à %(image1_time)s, et %(image2)s "
+"le %(image2_date)s à %(image2_time)s."
#: rapid/problemnotification.py:103
#, python-format
msgid "%(filetype)s was already downloaded"
-msgstr ""
+msgstr "%(filetype)s était déjà téléchargé"
#: rapid/problemnotification.py:107
#, python-format
@@ -851,16 +910,20 @@ msgid ""
"The existing %(filetype)s was last modified on %(date)s at %(time)s. Unique "
"identifier '%(identifier)s' added."
msgstr ""
+"La dernière modification du fichier existant %(filetype)s a été effectuée le "
+"%(date)s à %(time)s. L'identifiant unique '%(identifier)s' ajouté."
#: rapid/problemnotification.py:108
#, python-format
msgid "The existing %(filetype)s was last modified on %(date)s at %(time)s."
msgstr ""
+"La dernière modification du fichier existant %(filetype)s a été effectuée le "
+"%(date)s à %(time)s."
#: rapid/problemnotification.py:109
#, python-format
msgid "There is no data with which to name the %(filetype)s."
-msgstr ""
+msgstr "Il n'y a aucune donnée pour nommer le %(filetype)s."
#: rapid/problemnotification.py:111
#, python-format
@@ -876,15 +939,17 @@ msgid ""
"The filename, extension and Exif information indicate it has already been "
"downloaded."
msgstr ""
+"Le nom de fichier, l'extension et l'information Exif indiquent qu'il a déjà "
+"été téléchargé."
#: rapid/problemnotification.py:223
#, python-format
msgid " It was backed up to %(volume)s"
-msgstr ""
+msgstr " Il a été archivé sur %(volume)s"
#: rapid/problemnotification.py:225
msgid " It was backed up to these devices: "
-msgstr ""
+msgstr " Il a été archivé sur ce périphérique: "
#: rapid/problemnotification.py:227 rapid/problemnotification.py:288
#: rapid/problemnotification.py:300
@@ -896,7 +961,7 @@ msgstr "%s, "
#: rapid/problemnotification.py:301
#, python-format
msgid "%(volumes)s and %(final_volume)s."
-msgstr ""
+msgstr "%(volumes)s et %(final_volume)s."
#: rapid/problemnotification.py:240
#, python-format
@@ -911,11 +976,12 @@ msgstr ""
#, python-format
msgid "An error occurred when backing up on %(volume)s: %(inst)s."
msgstr ""
+"Une erreur c'est produite lors de l'archivage sur %(volume)s: %(inst)s."
#: rapid/problemnotification.py:259
#, python-format
msgid "An error occurred when backing up on %(volume)s."
-msgstr ""
+msgstr "Une erreur c'est produite lors de l'archivage sur %(volume)s."
#: rapid/problemnotification.py:261
msgid "Errors occurred when backing up on the following backup devices: "
@@ -978,31 +1044,31 @@ msgstr ""
#: rapid/problemnotification.py:322
#, python-format
msgid "%(previousproblem)s Additionally, %(newproblem)s"
-msgstr ""
+msgstr "%(previousproblem)s Ainsi que, %(newproblem)s"
#: rapid/problemnotification.py:330
#, python-format
msgid " Furthermore, there were %(problems)s."
-msgstr ""
+msgstr " En outre, il y avait des %(problems)s."
#: rapid/problemnotification.py:332
#, python-format
msgid " Furthermore, there was a %(problem)s."
-msgstr ""
+msgstr " En outre, il y avait un %(problem)s."
#: rapid/problemnotification.py:341
#, python-format
msgid "The %(type)s metadata is missing."
-msgstr ""
+msgstr "Le %(type)s de métadonnées est manquant."
#: rapid/problemnotification.py:343
msgid "The following metadata is missing: "
-msgstr ""
+msgstr "la métadonnée suivante est manquante: "
#: rapid/problemnotification.py:346
#, python-format
msgid "%(missing_metadata_elements)s and %(final_missing_metadata_element)s."
-msgstr ""
+msgstr "%(missing_metadata_elements)s et %(final_missing_metadata_element)s."
#: rapid/problemnotification.py:363
msgid "Problems in subfolder and filename generation"
@@ -1025,18 +1091,20 @@ msgstr "Problème lors de la génération de %s"
#: rapid/problemnotification.py:379
#, python-format
msgid "%(filetype)s already exists, but it was backed up"
-msgstr ""
+msgstr "%(filetype)s existe déjà, mais cela a été archivé"
#: rapid/problemnotification.py:381
#, python-format
msgid "An error occurred when copying the %(filetype)s, but it was backed up"
msgstr ""
+"Une erreur s'est produite lors de la copie de %(filetype)s, mais cela a été "
+"archivé"
#: rapid/problemnotification.py:401
msgid "Multiple problems were encountered"
msgstr "Plusieurs problèmes ont été rencontrés"
-#: rapid/problemnotification.py:403
+#: rapid/problemnotification.py:403 rapid/subfolderfile.py:228
msgid "Photos detected with the same filenames, but taken at different times"
msgstr ""
"Des photos portant le même nom mais prises à différents moments ont été "
@@ -1062,29 +1130,53 @@ msgstr "Il y a eu une erreur lors de la sauvegarde"
#: rapid/problemnotification.py:416
#, python-format
msgid "%(previousproblem)s, and %(backinguperror)s"
-msgstr ""
+msgstr "%(previousproblem)s, et %(backinguperror)s"
-#: rapid/rpdfile.py:110
+#: rapid/rpdfile.py:112
msgid "photos or videos"
msgstr "photos ou vidéos"
-#: rapid/rpdfile.py:134
+#: rapid/rpdfile.py:136
#, python-format
msgid "%(number)s %(filetypes)s"
msgstr "%(number)s %(filetypes)s"
-#: rapid/rpdfile.py:242
-msgid "Photo"
-msgstr "Photo"
+#: rapid/subfolderfile.py:79
+#, python-format
+msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
+msgstr "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-#: rapid/rpdfile.py:268
-msgid "Video"
-msgstr "Vidéo"
+#: rapid/subfolderfile.py:194
+#, python-format
+msgid ""
+"Source: %(source)s\n"
+"Destination: %(destination)s"
+msgstr ""
+"Source : %(source)s\n"
+"Destination : %(destination)s"
+
+#: rapid/subfolderfile.py:297
+msgid "Photo has already been downloaded"
+msgstr "La photo a déjà été téléchargée"
+
+#: rapid/subfolderfile.py:298
+#, python-format
+msgid "Source: %(source)s"
+msgstr "Source : %(source)s"
-#: rapid/subfolderfile.py:177
+#: rapid/subfolderfile.py:335
msgid "subfolder and filename"
msgstr "Sous-dossier et nom de fichier"
+#: rapid/subfolderfile.py:373
+msgid "Failed to create download subfolder"
+msgstr "Echec de création de sous-répertoire de téléchargement"
+
+#: rapid/subfolderfile.py:374
+#, python-format
+msgid "Path: %s"
+msgstr "Chemin: %s"
+
#: rapid/glade3/rapid.ui.h:1
msgid "About..."
msgstr "À propos ..."
@@ -1501,6 +1593,9 @@ msgid ""
"install the <i>hachoir metadata</i> and <i>kaa metadata</i> packages for "
"python."
msgstr ""
+"Désolé, fonctionnalité de téléchargement vidéo invalide. Pour installer des "
+"vidéos, veuillez installer les paquets pour python <i>hachoir-metadata</i> "
+"et <i>kaa-metadata</i>."
#: rapid/glade3/prefs.ui.h:69
msgid ""
@@ -1510,6 +1605,12 @@ msgid ""
"used for backups. For each device you wish to use for backing up to, create "
"a folder in it with one of these names.</i>"
msgstr ""
+"Spécifier le dossier dans lequel l'archivage est stocké sur le périphérique. "
+" \n"
+"\n"
+"<i>Note: ceci sera également utilisé pour déterminer si oui ou non le "
+"périphérique est utilisé pour les sauvegardes. Créez un répertoire avec un "
+"de ces noms, dans chaque périphérique à utiliser pour sauvegarder.</i>"
#: rapid/glade3/prefs.ui.h:72
msgid ""
@@ -1524,6 +1625,9 @@ msgid ""
"Specify whether photo, video and folder names should have any characters "
"removed that are not allowed by other operating systems."
msgstr ""
+"Spécifier si les noms de photo, de vidéo et de dossier doivent avoir des "
+"caractères supprimés n'étant pas autorisés par d'autre systèmes "
+"d'exploitation."
#: rapid/glade3/prefs.ui.h:74
msgid "Start downloading at program startup"
@@ -1576,12 +1680,16 @@ msgid ""
"When backing up, choose whether to overwrite a file on the backup device "
"that has the same name, or skip backing it up."
msgstr ""
+"Lors de l'archivage, choisir s'il faut écraser ou passer un fichier ayant le "
+"même nom sur le périphérique d'archivage."
#: rapid/glade3/prefs.ui.h:85
msgid ""
"You can have your photos and videos backed up to multiple locations as they "
"are downloaded, e.g. external hard drives."
msgstr ""
+"Vous pouvez archiver vos photos et vidéos vers des emplacements multiples "
+"dès lors qu'elles sont téléchargées, sur différents disques durs par exemple."
#: rapid/glade3/prefs.ui.h:86
msgid "_Add..."
@@ -1674,14 +1782,6 @@ msgstr "Transférez vos photos et vidéos de façon simple et fiable"
#~ msgstr "L'image n'a pas été copiée."
#, python-format
-#~ msgid ""
-#~ "Source: %(source)s\n"
-#~ "Destination: %(destination)s"
-#~ msgstr ""
-#~ "Source : %(source)s\n"
-#~ "Destination : %(destination)s"
-
-#, python-format
#~ msgid "Unique identifier '%s' added"
#~ msgstr "Identifant unique '%s' ajouté"
@@ -1756,9 +1856,6 @@ msgstr "Transférez vos photos et vidéos de façon simple et fiable"
#~ "%(directory)s\n"
#~ "Erreurr : %(errno)s %(strerror)s"
-#~ msgid "Download cannot proceed"
-#~ msgstr "Impossible de procéder au transfert"
-
#, python-format
#~ msgid "%s images downloaded"
#~ msgstr "%s images transférées"
@@ -2314,10 +2411,6 @@ msgstr "Transférez vos photos et vidéos de façon simple et fiable"
#~ "Un transfert est en cours : la valeur du nombre stocké ne sera pas mise à "
#~ "jour."
-#, python-format
-#~ msgid "Source: %(source)s"
-#~ msgstr "Source : %(source)s"
-
#~ msgid ""
#~ "Images detected with the same filenames, but taken at different times:"
#~ msgstr ""
@@ -2506,9 +2599,6 @@ msgstr "Transférez vos photos et vidéos de façon simple et fiable"
#~ msgid "%(path)s: "
#~ msgstr "%(path)s: "
-#~ msgid "Photo has already been downloaded"
-#~ msgstr "La photo a déjà été téléchargée"
-
#, python-format
#~ msgid "%(number)s of %(total)s %(filetypes)s (%(remaining)s remaining)"
#~ msgstr "%(number)s sur %(total)s %(filetypes)s (%(remaining)s restants)"
diff --git a/po/rapid-photo-downloader.pot b/po/rapid-photo-downloader.pot
index 22d54e1..580f4e9 100644
--- a/po/rapid-photo-downloader.pot
+++ b/po/rapid-photo-downloader.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-04-04 00:18-0500\n"
+"POT-Creation-Date: 2011-04-10 19:59-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,60 +18,65 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#. Translators: if neccessary, for guidance in how to translate this program, you may see http://damonlynch.net/translate.html
-#: rapid/rapid.py:103 rapid/glade3/rapid.ui.h:11
+#: rapid/rapid.py:104 rapid/glade3/rapid.ui.h:11
msgid "Rapid Photo Downloader"
msgstr ""
-#: rapid/rapid.py:108
+#: rapid/rapid.py:109
#, python-format
msgid ""
"%(date)s\n"
"%(time)s"
msgstr ""
-#: rapid/rapid.py:110
+#: rapid/rapid.py:111
#, python-format
msgid "%(date)s %(time)s"
msgstr ""
-#: rapid/rapid.py:113
+#: rapid/rapid.py:114
#, python-format
msgid "%(date)s %(hour)s:%(minute)s:%(second)s:%(subsecond)s"
msgstr ""
#. Device refers to a thing like a camera, memory card in its reader,
#. external hard drive, Portable Storage Device, etc.
-#: rapid/rapid.py:144
+#: rapid/rapid.py:148
msgid "Device"
msgstr ""
#. Size refers to the total size of images on the device, typically in
#. MB or GB
-#: rapid/rapid.py:158
+#: rapid/rapid.py:165
msgid "Size"
msgstr ""
-#: rapid/rapid.py:161
+#: rapid/rapid.py:168
msgid "Download Progress"
msgstr ""
+#: rapid/rapid.py:312
+#, python-format
+msgid "%(device)s did not unmount"
+msgstr ""
+
#. This refers to when a device like a hard drive is having its contents scanned,
#. looking for photos or videos. It is visible initially in the progress bar for each device
#. (which normally holds "x photos and videos").
#. It maybe displayed only briefly if the contents of the device being scanned is small.
-#: rapid/rapid.py:974
+#: rapid/rapid.py:1091
msgid "scanning..."
msgstr ""
-#: rapid/rapid.py:1678
+#: rapid/rapid.py:1807
msgid "Download"
msgstr ""
-#: rapid/rapid.py:1681
+#: rapid/rapid.py:1810
msgid "Pause"
msgstr ""
-#: rapid/rapid.py:1794
+#: rapid/rapid.py:1912
#, python-format
msgid ""
"These download folders are invalid:\n"
@@ -79,45 +84,127 @@ msgid ""
"%(folder2)s"
msgstr ""
-#: rapid/rapid.py:1797
+#: rapid/rapid.py:1915
#, python-format
msgid ""
"This download folder is invalid:\n"
"%s"
msgstr ""
-#: rapid/rapid.py:1798
+#: rapid/rapid.py:1916
msgid "Download cannot proceed"
msgstr ""
-#: rapid/rapid.py:1957
+#: rapid/rapid.py:2130
+msgid "About 1 second remaining"
+msgstr ""
+
+#: rapid/rapid.py:2132
#, python-format
-msgid "%(number)s of %(total)s %(filetypes)s"
+msgid "About %i seconds remaining"
msgstr ""
-#: rapid/rapid.py:2302 rapid/preferencesdialog.py:825 rapid/rpdfile.py:120
-msgid "photos"
+#: rapid/rapid.py:2134
+msgid "About 1 minute remaining"
msgstr ""
-#: rapid/rapid.py:2304 rapid/rpdfile.py:115
+#. Translators: in the text '%(minutes)i:%(seconds)02i', only the : should be translated, if needed.
+#. '%(minutes)i' and '%(seconds)02i' should not be modified or left out. They are used to format and display the amount
+#. of time the download has remainging, e.g. 'About 5:36 minutes remaining'
+#: rapid/rapid.py:2139
+#, python-format
+msgid "About %(minutes)i:%(seconds)02i minutes remaining"
+msgstr ""
+
+#: rapid/rapid.py:2151 rapid/preferencesdialog.py:822 rapid/rpdfile.py:110
+msgid "photos and videos"
+msgstr ""
+
+#: rapid/rapid.py:2153 rapid/rpdfile.py:112
+msgid "photos or videos"
+msgstr ""
+
+#: rapid/rapid.py:2156 rapid/rapid.py:2661 rapid/rpdfile.py:115
msgid "videos"
msgstr ""
-#: rapid/rapid.py:2308
+#: rapid/rapid.py:2158 rapid/preferencesdialog.py:1371 rapid/rpdfile.py:117
+#: rapid/rpdfile.py:266
+msgid "video"
+msgstr ""
+
+#: rapid/rapid.py:2161 rapid/rapid.py:2659 rapid/preferencesdialog.py:824
+#: rapid/rpdfile.py:120
+msgid "photos"
+msgstr ""
+
+#. check subfolder preferences for bad values
+#: rapid/rapid.py:2163 rapid/preferencesdialog.py:1370 rapid/rpdfile.py:122
+#: rapid/rpdfile.py:246
+msgid "photo"
+msgstr ""
+
+#: rapid/rapid.py:2188
+#, python-format
+msgid "%(noFiles)s %(filetypes)s downloaded"
+msgstr ""
+
+#: rapid/rapid.py:2192
+#, python-format
+msgid "%(noFiles)s %(filetypes)s failed to download"
+msgstr ""
+
+#: rapid/rapid.py:2195 rapid/rapid.py:2247
+msgid "warnings"
+msgstr ""
+
+#: rapid/rapid.py:2204
+msgid "All downloads complete"
+msgstr ""
+
+#: rapid/rapid.py:2210 rapid/rapid.py:2219 rapid/rapid.py:2228
+#: rapid/rapid.py:2237 rapid/rapid.py:2245
+#, python-format
+msgid "%(number)s %(numberdownloaded)s"
+msgstr ""
+
+#: rapid/rapid.py:2212 rapid/rapid.py:2230
+#, python-format
+msgid "%(filetype)s downloaded"
+msgstr ""
+
+#: rapid/rapid.py:2221 rapid/rapid.py:2239
+#, python-format
+msgid "%(filetype)s failed to download"
+msgstr ""
+
+#. e.g.: 3 of 205 photos and videos (202 remaining)
+#: rapid/rapid.py:2276
+#, python-format
+msgid "%(number)s of %(total)s %(filetypes)s (%(remaining)s remaining)"
+msgstr ""
+
+#. e.g.: 205 of 205 photos and videos
+#: rapid/rapid.py:2283
+#, python-format
+msgid "%(number)s of %(total)s %(filetypes)s"
+msgstr ""
+
+#: rapid/rapid.py:2665
msgid "Free space:"
msgstr ""
#. (videos) or (photos) will be appended to the free space message displayed to the
#. user in the status bar.
#. you should only translate this if your language does not use parantheses
-#: rapid/rapid.py:2320
+#: rapid/rapid.py:2677
#, python-format
msgid "(%(file_type)s)"
msgstr ""
#. Freespace available on the filesystem for downloading to
#. Displayed in status bar message on main window
-#: rapid/rapid.py:2324
+#: rapid/rapid.py:2681
#, python-format
msgid "%(free)s %(file_type)s"
msgstr ""
@@ -125,120 +212,124 @@ msgstr ""
#. Inserted in the middle of the statusbar message concerning the amount of freespace
#. Used to differentiate between two different file systems
#. e.g. Free space: 21.3GB (photos); 14.7GB (videos).
-#: rapid/rapid.py:2329
+#: rapid/rapid.py:2686
msgid "; "
msgstr ""
#. Inserted at the end of the statusbar message concerning the amount of freespace
#. Used to differentiate between two different file systems
#. e.g. Free space: 21.3GB (photos); 14.7GB (videos).
-#: rapid/rapid.py:2334
+#: rapid/rapid.py:2691
msgid "."
msgstr ""
#. Freespace available on the filesystem for downloading to
#. Displayed in status bar message on main window
#. e.g. 14.7GB available
-#: rapid/rapid.py:2340
+#: rapid/rapid.py:2697
#, python-format
msgid "%(free)s free"
msgstr ""
#. user manually specified backup location
-#: rapid/rapid.py:2346
+#: rapid/rapid.py:2703
#, python-format
msgid "Backing up to %(path)s"
msgstr ""
-#: rapid/rapid.py:2351
+#: rapid/rapid.py:2708
#, python-format
msgid "%(freespace)s. %(backuppaths)s."
msgstr ""
-#: rapid/rapid.py:2479 rapid/rpdfile.py:247
+#: rapid/rapid.py:2737
+msgid "Program preferences are invalid"
+msgstr ""
+
+#: rapid/rapid.py:2842 rapid/rpdfile.py:247
msgid "Photo"
msgstr ""
-#: rapid/rapid.py:2481 rapid/rpdfile.py:267
+#: rapid/rapid.py:2844 rapid/rpdfile.py:267
msgid "Video"
msgstr ""
-#: rapid/rapid.py:2490
+#: rapid/rapid.py:2853
#, python-format
msgid "%(file_type)s download folder does not exist"
msgstr ""
-#: rapid/rapid.py:2492 rapid/rapid.py:2506 rapid/rapid.py:2519
+#: rapid/rapid.py:2855 rapid/rapid.py:2869 rapid/rapid.py:2882
#, python-format
msgid "Folder: %s"
msgstr ""
-#: rapid/rapid.py:2504
+#: rapid/rapid.py:2867
#, python-format
msgid "%(file_type)s download folder is invalid"
msgstr ""
-#: rapid/rapid.py:2517
+#: rapid/rapid.py:2880
#, python-format
msgid "%(file_type)s download folder is not writable"
msgstr ""
-#: rapid/rapid.py:2592
+#: rapid/rapid.py:2958
msgid "Thumbnails"
msgstr ""
#. Translators: this text is displayed to the user when they request information on the command line options.
#. The text %default should not be modified or left out.
-#: rapid/rapid.py:2633
+#: rapid/rapid.py:3005
#, python-format
msgid ""
"display program information on the command line as the program runs "
"(default: %default)"
msgstr ""
-#: rapid/rapid.py:2634
+#: rapid/rapid.py:3006
msgid "display debugging information when run from the command line"
msgstr ""
-#: rapid/rapid.py:2635
+#: rapid/rapid.py:3007
msgid "only output errors to the command line"
msgstr ""
#. image file extensions are recognized RAW files plus TIFF and JPG
-#: rapid/rapid.py:2637
+#: rapid/rapid.py:3009
msgid "list photo and video file extensions the program recognizes and exit"
msgstr ""
-#: rapid/rapid.py:2638
+#: rapid/rapid.py:3010
msgid "reset all program settings and preferences and exit"
msgstr ""
-#: rapid/rapid.py:2651
+#: rapid/rapid.py:3023
msgid "Photos:"
msgstr ""
-#: rapid/rapid.py:2651
+#: rapid/rapid.py:3023
msgid "Videos:"
msgstr ""
-#: rapid/rapid.py:2656
+#: rapid/rapid.py:3028
#, python-format
msgid "and %s"
msgstr ""
-#: rapid/rapid.py:2664
+#: rapid/rapid.py:3036
msgid "All settings and preferences have been reset"
msgstr ""
-#: rapid/rapid.py:2673
+#: rapid/rapid.py:3045
msgid ""
"Video downloading functionality disabled.\n"
"To download videos, please install the hachoir metadata and kaa metadata "
"packages for python."
msgstr ""
-#: rapid/copyfiles.py:136 rapid/subfolderfile.py:209
-#: rapid/subfolderfile.py:346
+#: rapid/copyfiles.py:142 rapid/subfolderfile.py:209
+#: rapid/subfolderfile.py:332 rapid/subfolderfile.py:350
#, python-format
msgid ""
"%(problem)s\n"
@@ -260,6 +351,10 @@ msgstr ""
msgid "_Remember this choice"
msgstr ""
+#: rapid/downloadtracker.py:217
+msgid "MB/s"
+msgstr ""
+
#: rapid/generatenameconfig.py:143
msgid "Date time"
msgstr ""
@@ -281,7 +376,7 @@ msgid "Sequences"
msgstr ""
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/generatenameconfig.py:149 rapid/preferencesdialog.py:550
+#: rapid/generatenameconfig.py:149 rapid/preferencesdialog.py:549
msgid "Job code"
msgstr ""
@@ -603,107 +698,107 @@ msgstr ""
msgid "SS"
msgstr ""
-#: rapid/preferencesdialog.py:371
+#: rapid/preferencesdialog.py:370
#, python-format
msgid "Subfolder preferences should not start with a %s"
msgstr ""
-#: rapid/preferencesdialog.py:373
+#: rapid/preferencesdialog.py:372
#, python-format
msgid "Subfolder preferences should not end with a %s"
msgstr ""
-#: rapid/preferencesdialog.py:377
+#: rapid/preferencesdialog.py:376
#, python-format
msgid "Subfolder preferences should not contain two %s one after the other"
msgstr ""
-#: rapid/preferencesdialog.py:390 rapid/preferencesdialog.py:673
+#: rapid/preferencesdialog.py:389 rapid/preferencesdialog.py:672
msgid "Remove all Job Codes?"
msgstr ""
-#: rapid/preferencesdialog.py:407 rapid/preferencesdialog.py:690
+#: rapid/preferencesdialog.py:406 rapid/preferencesdialog.py:689
msgid "Should all Job Codes be removed?"
msgstr ""
-#: rapid/preferencesdialog.py:437
+#: rapid/preferencesdialog.py:436
msgid "Error in Photo Rename preferences"
msgstr ""
-#: rapid/preferencesdialog.py:618
+#: rapid/preferencesdialog.py:617
msgid "Error in Video Rename preferences"
msgstr ""
-#: rapid/preferencesdialog.py:639
+#: rapid/preferencesdialog.py:638
msgid "Error in Photo Download Subfolders preferences"
msgstr ""
-#: rapid/preferencesdialog.py:656
+#: rapid/preferencesdialog.py:655
msgid "Error in Video Download Subfolders preferences"
msgstr ""
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/preferencesdialog.py:715
+#: rapid/preferencesdialog.py:714
msgid "Enter a Job Code"
msgstr ""
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/preferencesdialog.py:732
+#: rapid/preferencesdialog.py:731
msgid "Enter a new Job Code, or select a previous one"
msgstr ""
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/preferencesdialog.py:735
+#: rapid/preferencesdialog.py:734
msgid "Enter a new Job Code"
msgstr ""
-#: rapid/preferencesdialog.py:740
+#: rapid/preferencesdialog.py:739
msgid "Job Code:"
msgstr ""
-#: rapid/preferencesdialog.py:823 rapid/rpdfile.py:110
-msgid "photos and videos"
+#: rapid/preferencesdialog.py:915
+msgid "Job Code"
msgstr ""
-#: rapid/preferencesdialog.py:992
+#: rapid/preferencesdialog.py:997
msgid "Select a folder to download photos to"
msgstr ""
-#: rapid/preferencesdialog.py:1010
+#: rapid/preferencesdialog.py:1015
msgid "Select a folder to download videos to"
msgstr ""
-#: rapid/preferencesdialog.py:1101
+#: rapid/preferencesdialog.py:1106
#, python-format
msgid "Select a folder containing %(file_types)s"
msgstr ""
-#: rapid/preferencesdialog.py:1123
+#: rapid/preferencesdialog.py:1128
#, python-format
msgid "Select a folder in which to backup %(file_types)s"
msgstr ""
#. Translators: please do not modify or leave out html formatting tags like <i> and <b>. These are used to format the text the users sees
-#: rapid/preferencesdialog.py:1207
+#: rapid/preferencesdialog.py:1212
msgid ""
"<i><b>Warning:</b> There is insufficient metadata to fully generate the "
"name. Please use other renaming options.</i>"
msgstr ""
-#: rapid/preferencesdialog.py:1258
+#: rapid/preferencesdialog.py:1263
msgid ""
"<i><b>Warning:</b> There is insufficient metadata to fully generate "
"subfolders. Please use other subfolder naming options.</i>"
msgstr ""
#. Translators: you should not modify or leave out the %s. This is a code used by the programming language python to insert a value that thes user will see
-#: rapid/preferencesdialog.py:1261
+#: rapid/preferencesdialog.py:1266
#, python-format
msgid "<i>Example: %s</i>"
msgstr ""
#. Preferences list is now empty
-#: rapid/preferencesdialog.py:1351
+#: rapid/preferencesdialog.py:1356
#, python-format
msgid ""
"The %(filetype)s subfolder preferences entered are invalid and cannot be "
@@ -711,22 +806,13 @@ msgid ""
"They will be reset to their default values."
msgstr ""
-#. check subfolder preferences for bad values
-#: rapid/preferencesdialog.py:1365 rapid/rpdfile.py:122 rapid/rpdfile.py:246
-msgid "photo"
-msgstr ""
-
-#: rapid/preferencesdialog.py:1366 rapid/rpdfile.py:117 rapid/rpdfile.py:266
-msgid "video"
-msgstr ""
-
#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
-#: rapid/preferencesdialog.py:1637
+#: rapid/preferencesdialog.py:1642
msgid "externaldrive1"
msgstr ""
#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
-#: rapid/preferencesdialog.py:1639
+#: rapid/preferencesdialog.py:1644
msgid "externaldrive2"
msgstr ""
@@ -803,11 +889,11 @@ msgid "Stockholm"
msgstr ""
#. components
-#: rapid/problemnotification.py:26 rapid/subfolderfile.py:339
+#: rapid/problemnotification.py:26 rapid/subfolderfile.py:343
msgid "subfolder"
msgstr ""
-#: rapid/problemnotification.py:27 rapid/subfolderfile.py:337
+#: rapid/problemnotification.py:27 rapid/subfolderfile.py:341
msgid "filename"
msgstr ""
@@ -1079,10 +1165,6 @@ msgstr ""
msgid "%(previousproblem)s, and %(backinguperror)s"
msgstr ""
-#: rapid/rpdfile.py:112
-msgid "photos or videos"
-msgstr ""
-
#: rapid/rpdfile.py:136
#, python-format
msgid "%(number)s %(filetypes)s"
@@ -1109,15 +1191,15 @@ msgstr ""
msgid "Source: %(source)s"
msgstr ""
-#: rapid/subfolderfile.py:335
+#: rapid/subfolderfile.py:339
msgid "subfolder and filename"
msgstr ""
-#: rapid/subfolderfile.py:373
+#: rapid/subfolderfile.py:377
msgid "Failed to create download subfolder"
msgstr ""
-#: rapid/subfolderfile.py:374
+#: rapid/subfolderfile.py:378
#, python-format
msgid "Path: %s"
msgstr ""
diff --git a/po/ru.po b/po/ru.po
index eb916e8..eb69d6e 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,247 +7,22 @@ msgid ""
msgstr ""
"Project-Id-Version: rapid\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2010-12-28 02:49-0600\n"
-"PO-Revision-Date: 2010-12-31 06:58+0000\n"
+"POT-Creation-Date: 2011-04-04 00:18-0500\n"
+"PO-Revision-Date: 2011-04-08 16:07+0000\n"
"Last-Translator: Sergey Sedov <sedov@webmail.perm.ru>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-03-20 22:12+0000\n"
-"X-Generator: Launchpad (build 12617)\n"
+"X-Launchpad-Export-Date: 2011-04-11 01:01+0000\n"
+"X-Generator: Launchpad (build 12757)\n"
#. Translators: if neccessary, for guidance in how to translate this program, you may see http://damonlynch.net/translate.html
-#: rapid/rapid.py:124 rapid/rapid.py:6468 rapid/glade3/rapid.glade.h:71
+#: rapid/rapid.py:103 rapid/glade3/rapid.ui.h:11
msgid "Rapid Photo Downloader"
msgstr "Rapid Photo Downloader"
-#: rapid/rapid.py:461
-msgid "New York"
-msgstr "Нью-Йорк"
-
-#: rapid/rapid.py:462
-msgid "Manila"
-msgstr "Манила"
-
-#: rapid/rapid.py:462
-msgid "Prague"
-msgstr "Прага"
-
-#: rapid/rapid.py:462
-msgid "Helsinki"
-msgstr "Хельсинки"
-
-#: rapid/rapid.py:462
-msgid "Wellington"
-msgstr "Веллингтон"
-
-#: rapid/rapid.py:463
-msgid "Tehran"
-msgstr "Тегеран"
-
-#: rapid/rapid.py:463
-msgid "Kampala"
-msgstr "Кампала"
-
-#: rapid/rapid.py:463
-msgid "Paris"
-msgstr "Париж"
-
-#: rapid/rapid.py:463
-msgid "Berlin"
-msgstr "Берлин"
-
-#: rapid/rapid.py:463
-msgid "Sydney"
-msgstr "Сидней"
-
-#: rapid/rapid.py:464
-msgid "Budapest"
-msgstr "Будапешт"
-
-#: rapid/rapid.py:464
-msgid "Rome"
-msgstr "Рим"
-
-#: rapid/rapid.py:464
-msgid "Moscow"
-msgstr "Москва"
-
-#: rapid/rapid.py:464
-msgid "Delhi"
-msgstr "Дели"
-
-#: rapid/rapid.py:464
-msgid "Warsaw"
-msgstr "Варшава"
-
-#: rapid/rapid.py:465
-msgid "Jakarta"
-msgstr "Джакарта"
-
-#: rapid/rapid.py:465
-msgid "Madrid"
-msgstr "Мадрид"
-
-#: rapid/rapid.py:465
-msgid "Stockholm"
-msgstr "Стокгольм"
-
-#: rapid/rapid.py:499
-msgid "Invalid Downloads Today value.\n"
-msgstr "Неверное значение 'Загрузок сегодня'.\n"
-
-#: rapid/rapid.py:500
-msgid "Resetting value to zero.\n"
-msgstr "Сбросить значение до нуля.\n"
-
-#: rapid/rapid.py:539
-msgid "'Start of day' preference value is corrupted.\n"
-msgstr "Значение 'Начало дня' повреждено.\n"
-
-#: rapid/rapid.py:540
-msgid "Resetting to midnight.\n"
-msgstr "Вернуть значение \"полночь\".\n"
-
-#: rapid/rapid.py:566
-msgid "Error in Photo Rename preferences"
-msgstr "Ошибка в параметрах Переименования фото"
-
-#: rapid/rapid.py:598 rapid/rapid.py:1720
-msgid "Sorry,these preferences contain an error:\n"
-msgstr "Извините, эти параметры содержат ошибку:\n"
-
-#: rapid/rapid.py:609
-msgid "Resetting to default values."
-msgstr "Восстановить настройки по умолчанию."
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/rapid.py:684 rapid/renamesubfolderprefs.py:198
-msgid "Job code"
-msgstr "Метка"
-
-#: rapid/rapid.py:752
-msgid "Error in Video Rename preferences"
-msgstr "Ошибка в параметрах Переименования видео"
-
-#: rapid/rapid.py:770
-msgid "Error in Photo Download Subfolders preferences"
-msgstr "Ошибка в параметрах Подкаталогов для загрузки фото"
-
-#: rapid/rapid.py:787
-msgid "Error in Video Download Subfolders preferences"
-msgstr "Ошибка в параметрах Подкаталогов для загрузки видео"
-
-#: rapid/rapid.py:820 rapid/rapid.py:1551
-msgid "photos and videos"
-msgstr "фото и видео"
-
-#: rapid/rapid.py:822 rapid/rapid.py:1561 rapid/rapid.py:1689
-msgid "photos"
-msgstr "фото"
-
-#: rapid/rapid.py:955
-msgid "Select a folder to download photos to"
-msgstr "Выберите каталог для загрузки фото"
-
-#: rapid/rapid.py:973
-msgid "Select a folder to download videos to"
-msgstr "Выберите каталог для загрузки видео"
-
-#: rapid/rapid.py:1055
-#, python-format
-msgid "Select a folder containing %(file_types)s"
-msgstr "Выберите каталог, содержащий %(file_types)s"
-
-#: rapid/rapid.py:1077
-#, python-format
-msgid "Select a folder in which to backup %(file_types)s"
-msgstr ""
-"Выберите каталог в котором будут храниться резервные копии %(file_types)s"
-
-#. Translators: please do not modify or leave out html formatting tags like <i> and <b>. These are used to format the text the users sees
-#: rapid/rapid.py:1158
-msgid ""
-"<i><b>Warning:</b> There is insufficient metadata to fully generate the "
-"name. Please use other renaming options.</i>"
-msgstr ""
-"<i><b>Внимание:</b> Недостаточно метаданных для создания имен файлов. "
-"Пожалуйста, используйте другие варианты переименования.</i>"
-
-#: rapid/rapid.py:1194
-msgid ""
-"<i><b>Warning:</b> There is insufficient metadata to fully generate "
-"subfolders. Please use other subfolder naming options.</i>"
-msgstr ""
-"<i><b>Warning:</b> Недостаточно метаданных для создания названий "
-"подкаталогов. Пожалуйста, используйте другие варианты именования "
-"подкаталогов.</i>"
-
-#. Translators: you should not modify or leave out the %s. This is a code used by the programming language python to insert a value that thes user will see
-#: rapid/rapid.py:1198
-#, python-format
-msgid "<i>Example: %s</i>"
-msgstr "<i>Пример: %s</i>"
-
-#: rapid/rapid.py:1224
-msgid ""
-"Downloads today value not updated, as a download is currently occurring"
-msgstr ""
-"Значение \"Загрузок сегодня\" не обновлено, так как загрузка идёт прямо "
-"сейчас"
-
-#: rapid/rapid.py:1240
-msgid "Stored number value not updated, as a download is currently occurring"
-msgstr ""
-"Счетчик сквозной нумерации не обновлен, так как прямо сейчас идёт загрузка"
-
-#: rapid/rapid.py:1270
-#, python-format
-msgid ""
-"The %(filetype)s subfolder preferences had some unnecessary values removed."
-msgstr "Некоторые излишние настройки подкаталога %(filetype)s удалены."
-
-#. Preferences list is now empty
-#: rapid/rapid.py:1275
-#, python-format
-msgid ""
-"The %(filetype)s subfolder preferences entered are invalid and cannot be "
-"used.\n"
-"They will be reset to their default values."
-msgstr ""
-"Введённые настройки подкаталога для %(filetype)s неверны и не могут быть "
-"использованы.\n"
-"Они сброшены до значений по умолчанию."
-
-#. check subfolder preferences for bad values
-#: rapid/rapid.py:1289 rapid/rapid.py:1563
-msgid "photo"
-msgstr "фото"
-
-#: rapid/rapid.py:1290 rapid/rapid.py:1558
-msgid "video"
-msgstr "видео"
-
-#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
-#: rapid/rapid.py:1527
-msgid "externaldrive1"
-msgstr "внешнийдиск1"
-
-#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
-#: rapid/rapid.py:1529
-msgid "externaldrive2"
-msgstr "внешнийдиск2"
-
-#: rapid/rapid.py:1553 rapid/rapid.py:1687
-msgid "photos or videos"
-msgstr "фото или видео"
-
-#: rapid/rapid.py:1556
-msgid "videos"
-msgstr "видео"
-
-#: rapid/rapid.py:1568
+#: rapid/rapid.py:108
#, python-format
msgid ""
"%(date)s\n"
@@ -256,825 +31,167 @@ msgstr ""
"%(date)s\n"
"%(time)s"
-#: rapid/rapid.py:1570
+#: rapid/rapid.py:110
#, python-format
msgid "%(date)s %(time)s"
msgstr "%(date)s %(time)s"
-#: rapid/rapid.py:1573
-#, python-format
-msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-msgstr "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-
-#: rapid/rapid.py:1580
+#: rapid/rapid.py:113
#, python-format
msgid "%(date)s %(hour)s:%(minute)s:%(second)s:%(subsecond)s"
msgstr "%(date)s %(hour)s:%(minute)s:%(second)s:%(subsecond)s"
-#: rapid/rapid.py:1608 rapid/rapid.py:2280
-msgid "subfolder and filename"
-msgstr "подкаталог и название файла"
+#. Device refers to a thing like a camera, memory card in its reader,
+#. external hard drive, Portable Storage Device, etc.
+#: rapid/rapid.py:144
+msgid "Device"
+msgstr "Носитель"
-#: rapid/rapid.py:1610 rapid/rapid.py:2282
-msgid "filename"
-msgstr "имя файла"
+#. Size refers to the total size of images on the device, typically in
+#. MB or GB
+#: rapid/rapid.py:158
+msgid "Size"
+msgstr "Размер"
-#: rapid/rapid.py:1612 rapid/rapid.py:2284
-msgid "subfolder"
-msgstr "подкаталог"
+#: rapid/rapid.py:161
+msgid "Download Progress"
+msgstr "Ход загрузки"
#. This refers to when a device like a hard drive is having its contents scanned,
#. looking for photos or videos. It is visible initially in the progress bar for each device
#. (which normally holds "x photos and videos").
#. It maybe displayed only briefly if the contents of the device being scanned is small.
-#: rapid/rapid.py:1703
+#: rapid/rapid.py:974
msgid "scanning..."
msgstr "сканирование..."
-#: rapid/rapid.py:1818
-msgid "The following download path could not be created:\n"
-msgstr "Указанный путь для загрузки файлов не может быть создан:\n"
+#: rapid/rapid.py:1678
+msgid "Download"
+msgstr "Загрузка"
-#: rapid/rapid.py:1819
-#, python-format
-msgid "%(path)s: "
-msgstr "%(path)s: "
+#: rapid/rapid.py:1681
+msgid "Pause"
+msgstr "Пауза"
-#: rapid/rapid.py:1820 rapid/rapid.py:1821 rapid/rapid.py:1836
-#: rapid/rapid.py:1837 rapid/rapid.py:2097 rapid/rapid.py:2100
-msgid "Download cannot proceed"
-msgstr "Невозможно загрузить"
-
-#: rapid/rapid.py:1834 rapid/rapid.py:5105
-msgid "There is an error in the program preferences."
-msgstr "Обнаружена ошибка в настройках программы."
-
-#: rapid/rapid.py:1835
-msgid ""
-"\n"
-"Please check preferences, restart the program, and try again."
-msgstr ""
-"\n"
-"Пожалуйста, проверьте настройки, перезапустите программу и попробуйте снова."
-
-#. Translators: as already, mentioned the %s value should not be modified or left out. It may be moved if necessary.
-#. It refers to the actual number of photos that can be copied. For example, the user might see the following:
-#. '0 of 512 photos' or '0 of 10 videos' or '0 of 202 photos and videos'.
-#. This particular text is displayed to the user before the download has started.
-#: rapid/rapid.py:2008
-#, python-format
-msgid "%(number)s %(filetypes)s"
-msgstr "%(number)s %(filetypes)s"
-
-#. Translators: as you have already seen, the text can contain values that should not be modified or left out by you, for example %s.
-#. This text is another example of that, but it is is a little more complex. Here there are two values which will be displayed
-#. to the user when they run the program, signifying the number of photos found, and the device they were found on.
-#. %(number)s should be left exactly as is: 'number' should not be translated. The same applies to %(device)s: 'device' should
-#. not be translated. Generally speaking, if translating the sentence requires it, you can move items like '%(xyz)s' around
-#. in a sentence, but you should never modify them or leave them out.
-#: rapid/rapid.py:2019
-#, python-format
-msgid "Device scan complete: found %(number)s %(filetypes)s on %(device)s"
-msgstr ""
-"Сканирование носителя завершено: найдено %(number)s %(filetypes)s на "
-"%(device)s"
-
-#: rapid/rapid.py:2026
-#, python-format
-msgid "Device scan complete: no %(filetypes)s found on %(device)s"
-msgstr ""
-"Сканирование носителя завершено: %(filetypes)s не найдено на %(device)s"
-
-#. This message informs the user that the device (e.g. camera, hard drive or memory card) was automatically unmounted and they can now remove it
-#: rapid/rapid.py:2047
-msgid "The device can now be safely removed"
-msgstr "Теперь можно безопасно отсоединить носитель"
-
-#: rapid/rapid.py:2053
-#, python-format
-msgid "%(noFiles)s %(filetypes)s downloaded"
-msgstr "%(noFiles)s %(filetypes)s загружено"
-
-#: rapid/rapid.py:2056
-#, python-format
-msgid "%(noFiles)s %(filetypes)s failed to download"
-msgstr "%(noFiles)s %(filetypes)s не удалось загрузить"
-
-#: rapid/rapid.py:2059 rapid/rapid.py:5901
-msgid "warnings"
-msgstr "предупреждения"
-
-#: rapid/rapid.py:2061 rapid/rapid.py:5905
-msgid "errors"
-msgstr "ошибки"
-
-#: rapid/rapid.py:2091
-#, python-format
-msgid "Source: %s\n"
-msgstr "Источник: %s\n"
-
-#: rapid/rapid.py:2093
-#, python-format
-msgid "Device: %s\n"
-msgstr "Носитель: %s\n"
-
-#: rapid/rapid.py:2094
-#, python-format
-msgid "Destination: %s"
-msgstr "Назначение: %s"
-
-#: rapid/rapid.py:2095 rapid/rapid.py:2098
-msgid "Could not create temporary download directory"
-msgstr "Не удалось создать временный каталог для загрузки"
-
-#: rapid/rapid.py:2098
-msgid "Error:"
-msgstr "Ошибка:"
-
-#: rapid/rapid.py:2122
-msgid "Backup path does not exist"
-msgstr "Путь резервного копирования не существует"
-
-#: rapid/rapid.py:2123
-#, python-format
-msgid "The path %s could not be created"
-msgstr "Не удалось создать путь %s"
-
-#: rapid/rapid.py:2124
-msgid "No backups can occur"
-msgstr "Резервное копирование невозможно"
-
-#: rapid/rapid.py:2153
+#: rapid/rapid.py:1794
#, python-format
msgid ""
-"Source: %(source)s\n"
-"Destination: %(destination)s\n"
-"%(problem)s"
+"These download folders are invalid:\n"
+"%(folder1)s\n"
+"%(folder2)s"
msgstr ""
-"Источник: %(source)s\n"
-"Назначение: %(destination)s\n"
-"%(problem)s"
-#: rapid/rapid.py:2184 rapid/rapid.py:2530 rapid/rapid.py:2565
-#: rapid/rapid.py:2593 rapid/rapid.py:2624 rapid/rapid.py:2643
+#: rapid/rapid.py:1797
#, python-format
msgid ""
-"Source: %(source)s\n"
-"Destination: %(destination)s"
-msgstr ""
-"Источник: %(source)s\n"
-"Назначение: %(destination)s"
-
-#. hopefully inst will never be None, but just to be safe...
-#: rapid/rapid.py:2199
-msgid "Please check your system and try again."
-msgstr "Пожалуйста, проверьте вашу систему и попробуйте снова."
-
-#: rapid/rapid.py:2219
-msgid "Photos detected with the same filenames, but taken at different times"
-msgstr ""
-"Обнаружены фотографии с одинаковыми названиями, но сделанные в разное время"
-
-#: rapid/rapid.py:2259
-msgid "Photo has already been downloaded"
-msgstr "Фото уже загружено"
-
-#: rapid/rapid.py:2260 rapid/rapid.py:2659
-#, python-format
-msgid "Source: %(source)s"
-msgstr "Источник: %(source)s"
-
-#. A new day, according the user's preferences of what time a day begins, has started
-#: rapid/rapid.py:2458
-msgid "New day has started - resetting 'Downloads Today' sequence number"
+"This download folder is invalid:\n"
+"%s"
msgstr ""
-"Начался новый день - сброшена последовательность номеров параметра 'Загрузок "
-"сегодня'"
-
-#: rapid/rapid.py:2529
-#, python-format
-msgid "Backup of %(file_type)s already exists"
-msgstr "Резервная копия %(file_type)s уже существует"
-
-#: rapid/rapid.py:2533
-#, python-format
-msgid "Backup %(file_type)s overwritten"
-msgstr "Резервная копия %(file_type)s перезаписана"
-
-#: rapid/rapid.py:2537
-#, python-format
-msgid "%(file_type)s not backed up to %(volume)s"
-msgstr "%(file_type)s не скопирован в резервную копию на %(volume)s"
-
-#: rapid/rapid.py:2539
-#, python-format
-msgid "%(file_type)s not backed up"
-msgstr "%(file_type)s не скопирован в резервную копию"
-
-#: rapid/rapid.py:2562 rapid/rapid.py:2590 rapid/rapid.py:2623
-#: rapid/rapid.py:2642
-msgid "Backing up error"
-msgstr "Ошибка резервного копирования"
-
-#: rapid/rapid.py:2563 rapid/rapid.py:2591
-#, python-format
-msgid "Destination directory could not be created: %(directory)s\n"
-msgstr "Каталог назначения не может быть создан: %(directory)s\n"
-
-#: rapid/rapid.py:2567 rapid/rapid.py:2626
-#, python-format
-msgid "Error: %(inst)s"
-msgstr "Ошибка: %(inst)s"
-
-#: rapid/rapid.py:2568 rapid/rapid.py:2596 rapid/rapid.py:2627
-#: rapid/rapid.py:2646
-#, python-format
-msgid "The %(file_type)s was not backed up."
-msgstr "Резервная копия %(file_type)s не была создана."
-
-#: rapid/rapid.py:2595 rapid/rapid.py:2645
-#, python-format
-msgid "Error: %(errno)s %(strerror)s"
-msgstr "Ошибка: %(errno)s %(strerror)s"
-
-#: rapid/rapid.py:2658
-#, python-format
-msgid "%(file_type)s could not be backed up"
-msgstr "Резервная копия %(file_type)s не может быть создана."
-#: rapid/rapid.py:2661
-msgid "No suitable backup volume was found"
-msgstr "Не найдено подходящего раздела для сохранения резервных копий"
-
-#: rapid/rapid.py:2663
-msgid "A backup location was not found"
-msgstr "Не найдено указанное размещение для сохранения резервных копий"
-
-#: rapid/rapid.py:2717
-#, python-format
-msgid "This device has no %(types_searched_for)s to download from."
-msgstr "Носитель не содержит %(types_searched_for)s для загрузки."
-
-#: rapid/rapid.py:2813
-#, python-format
-msgid "Download has started from %s"
-msgstr "Начата загрузка с %s"
-
-#: rapid/rapid.py:2817
-#, python-format
-msgid "Attempting to download %s files"
-msgstr "Попытка загрузить %s файлов"
+#: rapid/rapid.py:1798
+msgid "Download cannot proceed"
+msgstr "Невозможно загрузить"
-#. reset the progress bar to update the status of this download attempt
-#: rapid/rapid.py:2849 rapid/rapid.py:2917
+#: rapid/rapid.py:1957
#, python-format
msgid "%(number)s of %(total)s %(filetypes)s"
msgstr "%(number)s из %(total)s %(filetypes)s"
-#: rapid/rapid.py:2913
-#, python-format
-msgid "%(number)s of %(total)s %(filetypes)s (%(remaining)s remaining)"
-msgstr "%(number)s из %(total)s %(filetypes)s (%(remaining)s осталось)"
-
-#: rapid/rapid.py:2938 rapid/rapid.py:2942
-msgid "Could not delete photo or video from device"
-msgstr "Не удалось удалить фото или видео с носителя"
+#: rapid/rapid.py:2302 rapid/preferencesdialog.py:825 rapid/rpdfile.py:120
+msgid "photos"
+msgstr "фото"
-#: rapid/rapid.py:2939
-#, python-format
-msgid ""
-"Photo: %(source)s\n"
-"Error: %(errno)s %(strerror)s"
-msgstr ""
-"Фото: %(source)s\n"
-"Ошибка: %(errno)s %(strerror)s"
+#: rapid/rapid.py:2304 rapid/rpdfile.py:115
+msgid "videos"
+msgstr "видео"
-#: rapid/rapid.py:2943
-#, python-format
-msgid "Photo: %(source)s"
-msgstr "Фото: %(source)s"
+#: rapid/rapid.py:2308
+msgid "Free space:"
+msgstr "Свободное место:"
-#: rapid/rapid.py:2945
+#. (videos) or (photos) will be appended to the free space message displayed to the
+#. user in the status bar.
+#. you should only translate this if your language does not use parantheses
+#: rapid/rapid.py:2320
#, python-format
-msgid "Deleted %(number)i %(filetypes)s from device"
-msgstr "Удалено %(number)i %(filetypes)s с носителя"
+msgid "(%(file_type)s)"
+msgstr ""
-#: rapid/rapid.py:2958
+#. Freespace available on the filesystem for downloading to
+#. Displayed in status bar message on main window
+#: rapid/rapid.py:2324
#, python-format
-msgid "Download complete from %s"
-msgstr "Загрузка с %s завершена"
-
-#. Device refers to a thing like a camera, memory card in its reader, external hard drive, Portable Storage Device, etc.
-#: rapid/rapid.py:3073 rapid/rapid.py:3542
-msgid "Device"
-msgstr "Носитель"
-
-#. Size refers to the total size of images on the device, typically in MB or GB
-#: rapid/rapid.py:3078 rapid/rapid.py:3531
-msgid "Size"
-msgstr "Размер"
-
-#: rapid/rapid.py:3081
-msgid "Download Progress"
-msgstr "Ход загрузки"
-
-#: rapid/rapid.py:3169
-msgid "Downloading From Cameras"
-msgstr "Загрузка с камеры"
-
-#: rapid/rapid.py:3175
-msgid "Downloading directly from a camera may work poorly or not at all"
+msgid "%(free)s %(file_type)s"
msgstr ""
-"Загрузка непосредственно с камеры может работать плохо или не работать вовсе"
-#: rapid/rapid.py:3176
-msgid ""
-"Downloading from a card reader always works and is generally much faster. It "
-"is strongly recommended to use a card reader."
+#. Inserted in the middle of the statusbar message concerning the amount of freespace
+#. Used to differentiate between two different file systems
+#. e.g. Free space: 21.3GB (photos); 14.7GB (videos).
+#: rapid/rapid.py:2329
+msgid "; "
msgstr ""
-"Загрузка через картридер работает устойчиво и намного быстрее. Настоятельно "
-"рекомендуется использовать картридер."
-
-#: rapid/rapid.py:3190
-msgid "_Show this message again"
-msgstr "_Показывать это сообщение снова"
-
-#: rapid/rapid.py:3225
-msgid "Device Detected"
-msgstr "Обнаружен носитель"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3234
-msgid ""
-"Should this device or partition be used to download photos or videos from?"
-msgstr "Следует ли загрузить фото или видео с этого носителя или раздела?"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3253
-msgid "_Remember this choice"
-msgstr "_Запомнить мой выбор"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3290
-#, python-format
-msgid "%s selected for downloading from"
-msgstr "%s выбран для загрузки"
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3293
-msgid "This device or partition will always be used to download from"
-msgstr "Этот носитель или раздел всегда будет использован для загрузки"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3296
-#, python-format
-msgid "%s rejected as a download device"
-msgstr "%s не выбран для загрузки"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
-#: rapid/rapid.py:3299
-msgid "This device or partition will never be used to download from"
-msgstr "Этот носитель или раздел никогда не будет использован для загрузки"
-
-#: rapid/rapid.py:3306
-msgid "Remove all Job Codes?"
-msgstr "Удалить все метки?"
-
-#: rapid/rapid.py:3323
-msgid "Should all Job Codes be removed?"
-msgstr "Вы действительно хотите удалить все метки?"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/rapid.py:3351
-msgid "Enter a Job Code"
-msgstr "Введите метку"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/rapid.py:3370
-msgid "Enter a new Job Code, or select a previous one"
-msgstr "Введите новую метку или выберите одну из существующих"
-
-#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
-#: rapid/rapid.py:3373
-msgid "Enter a new Job Code"
-msgstr "Введите новую метку"
-
-#: rapid/rapid.py:3378 rapid/rapid.py:4640
-msgid "Job Code:"
-msgstr "Метка:"
-
-#: rapid/rapid.py:3425
-msgid "Job Code entered"
-msgstr "Метка введена"
-
-#: rapid/rapid.py:3427
-msgid "Job Code not entered"
-msgstr "Метка не введена"
-
-#: rapid/rapid.py:3477
-msgid "Status"
-msgstr "Статус"
-
-#: rapid/rapid.py:3485
-msgid "Type"
-msgstr "Тип"
-
-#: rapid/rapid.py:3494 rapid/rapid.py:5067 rapid/rapid.py:5069
-msgid "Photo"
-msgstr "Фото"
-
-#: rapid/rapid.py:3496
-msgid "File"
-msgstr "Файл"
-
-#: rapid/rapid.py:3511
-msgid "Job Code"
-msgstr "Метка"
-
-#: rapid/rapid.py:3521
-msgid "Date"
-msgstr "Дата"
-
-#: rapid/rapid.py:3553 rapid/renamesubfolderprefs.py:194
-msgid "Filename"
-msgstr "Имя файла"
-
-#: rapid/rapid.py:3564
-msgid "Path"
-msgstr "Путь"
-
-#: rapid/rapid.py:3974
-#, python-format
-msgid "%(filetype)s was downloaded successfully"
-msgstr "%(filetype)s успешно загружено"
-
-#: rapid/rapid.py:3976
-#, python-format
-msgid "%(filetype)s was not downloaded"
-msgstr "%(filetype)s не загружено"
-
-#: rapid/rapid.py:3978
-#, python-format
-msgid "%(filetype)s was downloaded with warnings"
-msgstr "%(filetype)s загружено с ошибками"
-
-#: rapid/rapid.py:3980
-#, python-format
-msgid "%(filetype)s was downloaded but there were problems backing up"
+#. Inserted at the end of the statusbar message concerning the amount of freespace
+#. Used to differentiate between two different file systems
+#. e.g. Free space: 21.3GB (photos); 14.7GB (videos).
+#: rapid/rapid.py:2334
+msgid "."
msgstr ""
-"%(filetype)s загружено, но возникли проблемы с его резервным копированием"
-
-#: rapid/rapid.py:3982
-#, python-format
-msgid "%(filetype)s was neither downloaded nor backed up"
-msgstr "%(filetype)s не был ни скачан, ни резервно скопирован"
-
-#: rapid/rapid.py:3984
-#, python-format
-msgid "%(filetype)s is ready to be downloaded"
-msgstr "%(filetype)s готово к загрузке"
-
-#: rapid/rapid.py:3986
-#, python-format
-msgid "%(filetype)s is about to be downloaded"
-msgstr "%(filetype)s ожидает загрузки"
-
-#: rapid/rapid.py:3988
-#, python-format
-msgid "%(filetype)s will be downloaded with warnings"
-msgstr "%(filetype)s будет загружено с предупреждениями"
-#: rapid/rapid.py:3990
+#. Freespace available on the filesystem for downloading to
+#. Displayed in status bar message on main window
+#. e.g. 14.7GB available
+#: rapid/rapid.py:2340
#, python-format
-msgid "%(filetype)s cannot be downloaded"
-msgstr "%(filetype)s не может быть загружено"
-
-#: rapid/rapid.py:4662
-msgid "Enter a new Job Code and press Enter, or select an existing Job Code"
-msgstr "Введите новую метку и нажмите Enter или выберите существующую метку"
-
-#: rapid/rapid.py:5034
-#, python-format
-msgid "%(free)s available"
-msgstr "%(free)s доступно"
+msgid "%(free)s free"
+msgstr ""
#. user manually specified backup location
-#: rapid/rapid.py:5040
+#: rapid/rapid.py:2346
#, python-format
msgid "Backing up to %(path)s"
msgstr "Резервное копирование в %(path)s"
-#: rapid/rapid.py:5045
+#: rapid/rapid.py:2351
#, python-format
msgid "%(freespace)s. %(backuppaths)s."
msgstr "%(freespace)s. %(backuppaths)s."
-#: rapid/rapid.py:5054
-#, python-format
-msgid ""
-"Sorry, this device location does not exist:\n"
-"%(path)s\n"
-"\n"
-"Please resolve the problem, or modify your preferences."
-msgstr ""
-"Извините, указанное расположение на носителя не существует:\n"
-"%(path)s\n"
-"Пожалуйста, исправьте ошибку или измените настройки"
-
-#: rapid/rapid.py:5058
-msgid "Problem with Device Location Folder"
-msgstr "Проблема с расположением носителя"
+#: rapid/rapid.py:2479 rapid/rpdfile.py:247
+msgid "Photo"
+msgstr "Фото"
-#: rapid/rapid.py:5067
+#: rapid/rapid.py:2481 rapid/rpdfile.py:267
msgid "Video"
msgstr "Видео"
-#: rapid/rapid.py:5074
+#: rapid/rapid.py:2490
#, python-format
-msgid "The %(file_type)s Download Folder does not exist.\n"
-msgstr "Каталог для загрузки %(file_type)s не существует.\n"
-
-#: rapid/rapid.py:5083
-#, python-format
-msgid "The %(file_type)s Download Folder exists but cannot be written to.\n"
-msgstr ""
-"Каталог для загрузки %(file_type)s существует, но недоступен для записи.\n"
-
-#: rapid/rapid.py:5088
-msgid ""
-"Sorry, problems were encountered with your download folders. Please fix the "
-"problems or modify the preferences.\n"
-"\n"
+msgid "%(file_type)s download folder does not exist"
msgstr ""
-"Извините, были обнаружены проблемы с каталогами для загрузки. Пожалуйста, "
-"исправьте их или измените настройки.\n"
-"\n"
-
-#: rapid/rapid.py:5091
-msgid "Problem with Download Folder"
-msgstr "Проблема с каталогом для загрузки"
-
-#: rapid/rapid.py:5093
-msgid "Problem with Download Folders"
-msgstr "Проблема с каталогами для загрузки"
-
-#: rapid/rapid.py:5106
-msgid "Some preferences will be reset."
-msgstr "Некоторые настройки будут сброшены."
-
-#: rapid/rapid.py:5139
-msgid "Displaying warning about downloading directly from camera"
-msgstr "Отображает предупреждения о прямой загрузке с камеры"
-
-#: rapid/rapid.py:5149
-#, python-format
-msgid "Prompting whether to use %s"
-msgstr "Спрашивать, использовать ли %s"
-
-#: rapid/rapid.py:5176
-msgid "Prompting for Job Code"
-msgstr "Предлагать использовать метку"
-
-#: rapid/rapid.py:5180
-msgid "Already prompting for Job Code, do not prompt again"
-msgstr "Уже предложено использовать метку, больше не спрашивать"
-
-#: rapid/rapid.py:5197
-msgid "Starting downloads"
-msgstr "Начинаются загрузки"
-
-#. autostart is true
-#: rapid/rapid.py:5201
-msgid "Starting downloads that have been waiting for a Job Code"
-msgstr "Начинаются загрузки, которые ожидали ввода метки"
-#: rapid/rapid.py:5248
+#: rapid/rapid.py:2492 rapid/rapid.py:2506 rapid/rapid.py:2519
#, python-format
-msgid "Creating photo download folder %(folder)s"
-msgstr "Создание каталога для загрузки фото %(folder)s"
+msgid "Folder: %s"
+msgstr "Каталог: %s"
-#: rapid/rapid.py:5253
+#: rapid/rapid.py:2504
#, python-format
-msgid "Failed to create default photo download folder %(folder)s"
-msgstr "Не удалось создать каталог для загрузки фото %(folder)s"
-
-#: rapid/rapid.py:5257
-#, python-format
-msgid "Creating video download folder %(folder)s"
-msgstr "Создание каталога для загрузки видео %(folder)s"
-
-#: rapid/rapid.py:5262
-#, python-format
-msgid "Failed to create default video download folder %(folder)s"
-msgstr "Не удалось создать каталог для загрузки видео %(folder)s"
-
-#: rapid/rapid.py:5287
-msgid ""
-"A newer version of this program was previously run on this computer.\n"
-"\n"
-msgstr ""
-"На этом компьютере ранее запускалась более новая версия программы.\n"
-"\n"
-
-#: rapid/rapid.py:5289
-msgid ""
-"Program preferences appear to be valid, but please check them to ensure "
-"correct operation."
-msgstr ""
-"Настройки программы выглядят верными, но проверьте их, чтобы увериться в "
-"правильной работе."
-
-#: rapid/rapid.py:5291
-msgid "Sorry, some preferences are invalid and will be reset."
-msgstr "Извините, некоторые настройки неверны и будут сброшены."
-
-#: rapid/rapid.py:5292
-msgid "Warning:"
-msgstr "Предупреждение:"
-
-#: rapid/rapid.py:5297
-msgid ""
-"This version of the program is newer than the previously run version. "
-"Checking preferences."
+msgid "%(file_type)s download folder is invalid"
msgstr ""
-"Эта версия программы новее, чем запущенная ранее. Проверьте настройки."
-
-#: rapid/rapid.py:5304
-msgid "Preferences were modified."
-msgstr "Настройки были изменены"
-#: rapid/rapid.py:5305
-msgid ""
-"This version of the program uses different preferences than the old version. "
-"Your preferences have been updated.\n"
-"\n"
-"Please check them to ensure correct operation."
-msgstr ""
-"Эта версия программы использует несколько другие настройки, чем предыдущая. "
-"Ваши настройки были автоматически обновлены.\n"
-"\n"
-"Пожалуйста, проверьте их, чтобы быть увериться в правильной работе."
-
-#: rapid/rapid.py:5309
-msgid "No preferences needed to be changed."
-msgstr "Настройки не требуют изменения."
-
-#: rapid/rapid.py:5311
-msgid ""
-"This version of the program uses different preferences than the old version. "
-"Some of your previous preferences were invalid, and could not be updated. "
-"They will be reset."
-msgstr ""
-"Эта версия программы использует несколько другие настройки, чем предыдущая. "
-"Некоторые ваши настройки неверны и не могут быть обновлены. Они будут "
-"сброшены."
-
-#: rapid/rapid.py:5321
-msgid "Problem using pynotify."
-msgstr "Проблема при использовании pynotify."
-
-#: rapid/rapid.py:5337
-msgid "Failed to receive pynotify server capabilities."
-msgstr "Не удалось получить возможности сервера pynotify."
-
-#: rapid/rapid.py:5348
-msgid ""
-"Warning: desktop environment notification server is incorrectly configured."
-msgstr ""
-"Внимание: сервер уведомлений вашего рабочего окружения не настроен "
-"надлежащим образом."
-
-#: rapid/rapid.py:5396
-msgid "and"
-msgstr "и"
-
-#: rapid/rapid.py:5401
-msgid "Using backup devices"
-msgstr "Использование носителя для резервного копирования"
-
-#: rapid/rapid.py:5403
-msgid "Using backup device"
-msgstr "Использование носителя для резервного копирования"
-
-#: rapid/rapid.py:5405
-msgid "No backup devices detected"
-msgstr "Не обнаружено носителей для создания резервных копий"
-
-#: rapid/rapid.py:5455 rapid/rapid.py:5617
+#: rapid/rapid.py:2517
#, python-format
-msgid "Device %(device)s (%(path)s) ignored"
-msgstr "Носитель %(device)s (%(path)s) проигнорирован"
-
-#: rapid/rapid.py:5576
-#, python-format
-msgid "Detected %(device)s with path %(path)s"
-msgstr "Обнаружено %(device)s с путём %(path)s"
-
-#: rapid/rapid.py:5580
-msgid "Automatically start download is true"
-msgstr "Автоматически начинать загрузку - да"
-
-#: rapid/rapid.py:5582
-msgid "Automatically start download is false"
-msgstr "Автоматически начинать загрузку - нет"
-
-#: rapid/rapid.py:5635
-msgid "Using manually specified path"
-msgstr "Использовать указанный вручную путь"
-
-#. the user is trying to backup to a device that is currently being downloaded from..... we don't normally allow that, but what to do?
-#: rapid/rapid.py:5703
-#, python-format
-msgid "Warning: backup device %(device)s is currently being downloaded from"
+msgid "%(file_type)s download folder is not writable"
msgstr ""
-"Внимание: с устройства для резервного копирования %(device)s в данный момент "
-"идет загрузка"
-
-#: rapid/rapid.py:5719
-msgid "D_ownload Selected"
-msgstr "З_агрузить отмеченное"
-
-#: rapid/rapid.py:5822 rapid/rapid.py:5873
-msgid "All downloads complete"
-msgstr "Все загрузки завершены"
-
-#: rapid/rapid.py:5837
-msgid "MB/s"
-msgstr "МБ/с"
-
-#: rapid/rapid.py:5847
-msgid "About 1 second remaining"
-msgstr "Осталась примерно 1 секунда"
-
-#: rapid/rapid.py:5849
-#, python-format
-msgid "About %i seconds remaining"
-msgstr "Осталось %i секунд"
-
-#: rapid/rapid.py:5851
-msgid "About 1 minute remaining"
-msgstr "Осталась примерно 1 минута"
-
-#. Translators: in the text '%(minutes)i:%(seconds)02i', only the : should be translated, if needed.
-#. '%(minutes)i' and '%(seconds)02i' should not be modified or left out. They are used to format and display the amount
-#. of time the download has remainging, e.g. 'About 5:36 minutes remaining'
-#: rapid/rapid.py:5856
-#, python-format
-msgid "About %(minutes)i:%(seconds)02i minutes remaining"
-msgstr "Осталось примерно %(minutes)i:%(seconds)02i"
-
-#: rapid/rapid.py:5876 rapid/rapid.py:5882 rapid/rapid.py:5888
-#: rapid/rapid.py:5894 rapid/rapid.py:5899 rapid/rapid.py:5903
-#, python-format
-msgid "%(number)s %(numberdownloaded)s"
-msgstr "%(number)s %(numberdownloaded)s"
-
-#: rapid/rapid.py:5878 rapid/rapid.py:5890
-#, python-format
-msgid "%(filetype)s downloaded"
-msgstr "%(filetype)s загружено"
-
-#: rapid/rapid.py:5884 rapid/rapid.py:5896
-#, python-format
-msgid "%(filetype)s failed to download"
-msgstr "%(filetype)s не удалось загрузить"
-
-#: rapid/rapid.py:6070
-msgid "_Resume"
-msgstr "_Продолжить"
-#: rapid/rapid.py:6073
-msgid "_Download All"
-msgstr "_Загрузить всё"
-
-#. This text will be displayed to the user on the Download / Pause button.
-#: rapid/rapid.py:6082
-msgid "_Pause"
-msgstr "_Пауза"
-
-#: rapid/rapid.py:6194
-msgid "Download device settings preferences were changed."
-msgstr "Настройки устройства загрузки были изменены."
-
-#: rapid/rapid.py:6206
-msgid "Backup preferences were changed."
-msgstr "Настройки резвервного копирования были изменены."
-
-#: rapid/rapid.py:6212
-msgid "Subfolder and filename preferences were changed."
-msgstr "Настройки каталогов и названий файлов были изменены."
-
-#: rapid/rapid.py:6223
-msgid "Download folder preferences were changed."
-msgstr "Настройки каталога для загрузки были изменены."
-
-#: rapid/rapid.py:6422
-msgid "Goodbye"
-msgstr "До свидания"
+#: rapid/rapid.py:2592
+msgid "Thumbnails"
+msgstr "Миниатюры"
#. Translators: this text is displayed to the user when they request information on the command line options.
#. The text %default should not be modified or left out.
-#: rapid/rapid.py:6433
+#: rapid/rapid.py:2633
#, python-format
msgid ""
"display program information on the command line as the program runs "
@@ -1083,582 +200,1214 @@ msgstr ""
"отобразить информацию о программе в командной строке при запуске программы "
"(по умолчанию: %default)"
-#: rapid/rapid.py:6434
+#: rapid/rapid.py:2634
msgid "display debugging information when run from the command line"
msgstr "отображать отладочную информацию при запуске из командной строки"
-#: rapid/rapid.py:6435
+#: rapid/rapid.py:2635
msgid "only output errors to the command line"
msgstr "выводить в командную строку только ошибки"
#. image file extensions are recognized RAW files plus TIFF and JPG
-#: rapid/rapid.py:6437
+#: rapid/rapid.py:2637
msgid "list photo and video file extensions the program recognizes and exit"
msgstr ""
"вывести расширения фото- и видеофайлов, которые распознает программа, и выйти"
-#: rapid/rapid.py:6438
+#: rapid/rapid.py:2638
msgid "reset all program settings and preferences and exit"
msgstr "сбросить все настройки и выйти"
-#: rapid/rapid.py:6452
+#: rapid/rapid.py:2651
msgid "Photos:"
msgstr "Фото:"
-#: rapid/rapid.py:6452
+#: rapid/rapid.py:2651
msgid "Videos:"
msgstr "Видео:"
-#: rapid/rapid.py:6457
+#: rapid/rapid.py:2656
#, python-format
msgid "and %s"
msgstr "и %s"
-#: rapid/rapid.py:6465
+#: rapid/rapid.py:2664
msgid "All settings and preferences have been reset"
msgstr "Все установки и настройки были сброшены"
-#. Which volume management code is being used (GIO or GnomeVFS)
-#: rapid/rapid.py:6469 rapid/rapid.py:6470 rapid/rapid.py:6472
-#: rapid/rapid.py:6477 rapid/rapid.py:6481
-msgid "Using"
-msgstr "Использование"
-
-#: rapid/rapid.py:6474
-msgid "\n"
-msgstr "\n"
+#: rapid/rapid.py:2673
+msgid ""
+"Video downloading functionality disabled.\n"
+"To download videos, please install the hachoir metadata and kaa metadata "
+"packages for python."
+msgstr ""
+"Загрузка видеороликов отключена.\n"
+"Для загрузки видеороликов, пожалуйста, установите пакеты метаданных hachoir "
+"и kaa."
-#. this application is already running
-#: rapid/rapid.py:6498
+#: rapid/copyfiles.py:136 rapid/subfolderfile.py:209
+#: rapid/subfolderfile.py:346
#, python-format
-msgid "%s is already running"
-msgstr "%s уже запущено"
+msgid ""
+"%(problem)s\n"
+"File: %(file)s"
+msgstr ""
+
+#: rapid/device.py:79
+msgid "Device Detected"
+msgstr "Обнаружен носитель"
+
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
+#: rapid/device.py:88
+msgid ""
+"Should this device or partition be used to download photos or videos from?"
+msgstr "Следует ли загрузить фото или видео с этого носителя или раздела?"
-#: rapid/renamesubfolderprefs.py:192
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt
+#: rapid/device.py:107
+msgid "_Remember this choice"
+msgstr "_Запомнить мой выбор"
+
+#: rapid/generatenameconfig.py:143
msgid "Date time"
msgstr "Дата и время"
-#: rapid/renamesubfolderprefs.py:193
+#: rapid/generatenameconfig.py:144
msgid "Text"
msgstr "Текст"
-#: rapid/renamesubfolderprefs.py:195
+#: rapid/generatenameconfig.py:145
+msgid "Filename"
+msgstr "Имя файла"
+
+#: rapid/generatenameconfig.py:146
msgid "Metadata"
msgstr "Метаданные"
-#: rapid/renamesubfolderprefs.py:196
+#: rapid/generatenameconfig.py:147
msgid "Sequences"
msgstr "Последовательности"
-#: rapid/renamesubfolderprefs.py:199
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
+#: rapid/generatenameconfig.py:149 rapid/preferencesdialog.py:550
+msgid "Job code"
+msgstr "Метка"
+
+#: rapid/generatenameconfig.py:150
msgid "Image date"
msgstr "Дата фотографии"
-#: rapid/renamesubfolderprefs.py:200
+#: rapid/generatenameconfig.py:151
msgid "Video date"
msgstr "Дата видео"
-#: rapid/renamesubfolderprefs.py:201
+#: rapid/generatenameconfig.py:152
msgid "Today"
msgstr "Сегодня"
-#: rapid/renamesubfolderprefs.py:202
+#: rapid/generatenameconfig.py:153
msgid "Yesterday"
msgstr "Вчера"
#. Translators: Download time is the time and date that the download started (when the user clicked the Download button)
-#: rapid/renamesubfolderprefs.py:204
+#: rapid/generatenameconfig.py:155
msgid "Download time"
msgstr "Время начала загрузки"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:206
+#: rapid/generatenameconfig.py:157
msgid "Name + extension"
msgstr "Имя + расширение"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:208
+#: rapid/generatenameconfig.py:159
msgid "Name"
msgstr "Имя"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:210
+#: rapid/generatenameconfig.py:161
msgid "Extension"
msgstr "Расширение"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:212
+#: rapid/generatenameconfig.py:163
msgid "Image number"
msgstr "Номер фотографии"
-#: rapid/renamesubfolderprefs.py:213
+#: rapid/generatenameconfig.py:164
msgid "Video number"
msgstr "Номер видео"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:215
+#: rapid/generatenameconfig.py:166
msgid "Aperture"
msgstr "Диафрагма"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:217
+#: rapid/generatenameconfig.py:168
msgid "ISO"
msgstr "ISO"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:219
+#: rapid/generatenameconfig.py:170
msgid "Exposure time"
msgstr "Выдержка"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:221
+#: rapid/generatenameconfig.py:172
msgid "Focal length"
msgstr "Фокусное расстояние"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:223
+#: rapid/generatenameconfig.py:174
msgid "Camera make"
msgstr "Производитель камеры"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:225
+#: rapid/generatenameconfig.py:176
msgid "Camera model"
msgstr "Модель камеры"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:227
+#: rapid/generatenameconfig.py:178
msgid "Short camera model"
msgstr "Сокращённое название камеры"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:229
+#: rapid/generatenameconfig.py:180
msgid "Hyphenated short camera model"
msgstr "Дополнительное сокращенное название камеры"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:231
+#: rapid/generatenameconfig.py:182
msgid "Serial number"
msgstr "Серийный номер"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:233
+#: rapid/generatenameconfig.py:184
msgid "Shutter count"
msgstr "Счётчик кадров"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata
-#: rapid/renamesubfolderprefs.py:235
+#: rapid/generatenameconfig.py:186
msgid "Owner name"
msgstr "Имя владельца"
-#: rapid/renamesubfolderprefs.py:236
+#: rapid/generatenameconfig.py:187
msgid "Codec"
msgstr "Кодек"
-#: rapid/renamesubfolderprefs.py:237
+#: rapid/generatenameconfig.py:188
msgid "Width"
msgstr "Ширина"
-#: rapid/renamesubfolderprefs.py:238
+#: rapid/generatenameconfig.py:189
msgid "Height"
msgstr "Высота"
-#: rapid/renamesubfolderprefs.py:239
+#: rapid/generatenameconfig.py:190
msgid "Length"
msgstr "Длительность"
-#: rapid/renamesubfolderprefs.py:240
+#: rapid/generatenameconfig.py:191
msgid "Frames Per Second"
msgstr "Кадров в секунду"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers
-#: rapid/renamesubfolderprefs.py:242
+#: rapid/generatenameconfig.py:193
msgid "Downloads today"
msgstr "Скачиваний сегодня"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers
-#: rapid/renamesubfolderprefs.py:244
+#: rapid/generatenameconfig.py:195
msgid "Session number"
msgstr "Номер в текущей сессии"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers
-#: rapid/renamesubfolderprefs.py:246
+#: rapid/generatenameconfig.py:197
msgid "Subfolder number"
msgstr "Номер подкаталога"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers
-#: rapid/renamesubfolderprefs.py:248
+#: rapid/generatenameconfig.py:199
msgid "Stored number"
msgstr "Сквозная нумерация"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequenceletters
-#: rapid/renamesubfolderprefs.py:250
+#: rapid/generatenameconfig.py:201
msgid "Sequence letter"
msgstr "Последовательность символов"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:252
+#: rapid/generatenameconfig.py:203
msgid "All digits"
msgstr "Все цифры"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:254
+#: rapid/generatenameconfig.py:205
msgid "Last digit"
msgstr "Последняя цифра"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:256
+#: rapid/generatenameconfig.py:207
msgid "Last 2 digits"
msgstr "Последние 2 цифры"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:258
+#: rapid/generatenameconfig.py:209
msgid "Last 3 digits"
msgstr "Последние 3 цифры"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename
-#: rapid/renamesubfolderprefs.py:260
+#: rapid/generatenameconfig.py:211
msgid "Last 4 digits"
msgstr "Последние 4 цифры"
#. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization
-#: rapid/renamesubfolderprefs.py:262
+#: rapid/generatenameconfig.py:213
msgid "Original Case"
msgstr "Исходный Регистр"
#. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization
-#: rapid/renamesubfolderprefs.py:264
+#: rapid/generatenameconfig.py:215
msgid "UPPERCASE"
msgstr "ВЕРХНИЙ РЕГИСТР"
#. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization
-#: rapid/renamesubfolderprefs.py:266
+#: rapid/generatenameconfig.py:217
msgid "lowercase"
msgstr "нижний регистр"
-#: rapid/renamesubfolderprefs.py:267
+#: rapid/generatenameconfig.py:218
msgid "One digit"
msgstr "Одна цифра"
-#: rapid/renamesubfolderprefs.py:268
+#: rapid/generatenameconfig.py:219
msgid "Two digits"
msgstr "Две цифры"
-#: rapid/renamesubfolderprefs.py:269
+#: rapid/generatenameconfig.py:220
msgid "Three digits"
msgstr "Три цифры"
-#: rapid/renamesubfolderprefs.py:270
+#: rapid/generatenameconfig.py:221
msgid "Four digits"
msgstr "Четыре цифры"
-#: rapid/renamesubfolderprefs.py:271
+#: rapid/generatenameconfig.py:222
msgid "Five digits"
msgstr "Пять цифр"
-#: rapid/renamesubfolderprefs.py:272
+#: rapid/generatenameconfig.py:223
msgid "Six digits"
msgstr "Шесть цифр"
-#: rapid/renamesubfolderprefs.py:273
+#: rapid/generatenameconfig.py:224
msgid "Seven digits"
msgstr "семь цифр"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:275
+#: rapid/generatenameconfig.py:226
msgid "Subseconds"
msgstr "Доли секунды"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:277
+#: rapid/generatenameconfig.py:228
msgid "YYYYMMDD"
msgstr "ГГГГММДД"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:279
+#: rapid/generatenameconfig.py:230
msgid "YYYY-MM-DD"
msgstr "ГГГГ-ММ-ДД"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:281
+#: rapid/generatenameconfig.py:232
msgid "YYMMDD"
msgstr "ГГММДД"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:283
+#: rapid/generatenameconfig.py:234
msgid "YY-MM-DD"
msgstr "ГГ-ММ-ДД"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:285
+#: rapid/generatenameconfig.py:236
msgid "MMDDYYYY"
msgstr "ММДДГГГГ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:287
+#: rapid/generatenameconfig.py:238
msgid "MMDDYY"
msgstr "ММДДГГ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:289
+#: rapid/generatenameconfig.py:240
msgid "MMDD"
msgstr "ММДД"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:291
+#: rapid/generatenameconfig.py:242
msgid "DDMMYYYY"
msgstr "ДДММГГГГ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:293
+#: rapid/generatenameconfig.py:244
msgid "DDMMYY"
msgstr "ДДММГГ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:295
+#: rapid/generatenameconfig.py:246
msgid "YYYY"
msgstr "ГГГГ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:297
+#: rapid/generatenameconfig.py:248
msgid "YY"
msgstr "ГГ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:299
+#: rapid/generatenameconfig.py:250
msgid "MM"
msgstr "ММ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:301
+#: rapid/generatenameconfig.py:252
msgid "DD"
msgstr "ДД"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:303
+#: rapid/generatenameconfig.py:254
msgid "HHMMSS"
msgstr "ЧЧММСС"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:305
+#: rapid/generatenameconfig.py:256
msgid "HHMM"
msgstr "ЧЧММ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:307
+#: rapid/generatenameconfig.py:258
msgid "HH-MM-SS"
msgstr "ЧЧ-ММ-СС"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:309
+#: rapid/generatenameconfig.py:260
msgid "HH-MM"
msgstr "ЧЧ-ММ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:311
+#: rapid/generatenameconfig.py:262
msgid "HH"
msgstr "ЧЧ"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:313
+#: rapid/generatenameconfig.py:264
msgid "MM (minutes)"
msgstr "ММ (мин.)"
#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime
-#: rapid/renamesubfolderprefs.py:315
+#: rapid/generatenameconfig.py:266
msgid "SS"
msgstr "СС"
-#: rapid/renamesubfolderprefs.py:800
+#: rapid/preferencesdialog.py:371
+#, python-format
+msgid "Subfolder preferences should not start with a %s"
+msgstr "Настройки подкаталога не должны начинаться с %s"
+
+#: rapid/preferencesdialog.py:373
#, python-format
+msgid "Subfolder preferences should not end with a %s"
+msgstr "Настройки подкаталога не должны заканчиваться с %s"
+
+#: rapid/preferencesdialog.py:377
+#, python-format
+msgid "Subfolder preferences should not contain two %s one after the other"
+msgstr "Настройки подкаталога не должны содержать две %s одну за другой"
+
+#: rapid/preferencesdialog.py:390 rapid/preferencesdialog.py:673
+msgid "Remove all Job Codes?"
+msgstr "Удалить все метки?"
+
+#: rapid/preferencesdialog.py:407 rapid/preferencesdialog.py:690
+msgid "Should all Job Codes be removed?"
+msgstr "Вы действительно хотите удалить все метки?"
+
+#: rapid/preferencesdialog.py:437
+msgid "Error in Photo Rename preferences"
+msgstr "Ошибка в параметрах Переименования фото"
+
+#: rapid/preferencesdialog.py:618
+msgid "Error in Video Rename preferences"
+msgstr "Ошибка в параметрах Переименования видео"
+
+#: rapid/preferencesdialog.py:639
+msgid "Error in Photo Download Subfolders preferences"
+msgstr "Ошибка в параметрах Подкаталогов для загрузки фото"
+
+#: rapid/preferencesdialog.py:656
+msgid "Error in Video Download Subfolders preferences"
+msgstr "Ошибка в параметрах Подкаталогов для загрузки видео"
+
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
+#: rapid/preferencesdialog.py:715
+msgid "Enter a Job Code"
+msgstr "Введите метку"
+
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
+#: rapid/preferencesdialog.py:732
+msgid "Enter a new Job Code, or select a previous one"
+msgstr "Введите новую метку или выберите одну из существующих"
+
+#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode
+#: rapid/preferencesdialog.py:735
+msgid "Enter a new Job Code"
+msgstr "Введите новую метку"
+
+#: rapid/preferencesdialog.py:740
+msgid "Job Code:"
+msgstr "Метка:"
+
+#: rapid/preferencesdialog.py:823 rapid/rpdfile.py:110
+msgid "photos and videos"
+msgstr "фото и видео"
+
+#: rapid/preferencesdialog.py:992
+msgid "Select a folder to download photos to"
+msgstr "Выберите каталог для загрузки фото"
+
+#: rapid/preferencesdialog.py:1010
+msgid "Select a folder to download videos to"
+msgstr "Выберите каталог для загрузки видео"
+
+#: rapid/preferencesdialog.py:1101
+#, python-format
+msgid "Select a folder containing %(file_types)s"
+msgstr "Выберите каталог, содержащий %(file_types)s"
+
+#: rapid/preferencesdialog.py:1123
+#, python-format
+msgid "Select a folder in which to backup %(file_types)s"
+msgstr ""
+"Выберите каталог в котором будут храниться резервные копии %(file_types)s"
+
+#. Translators: please do not modify or leave out html formatting tags like <i> and <b>. These are used to format the text the users sees
+#: rapid/preferencesdialog.py:1207
+msgid ""
+"<i><b>Warning:</b> There is insufficient metadata to fully generate the "
+"name. Please use other renaming options.</i>"
+msgstr ""
+"<i><b>Внимание:</b> Недостаточно метаданных для создания имен файлов. "
+"Пожалуйста, используйте другие варианты переименования.</i>"
+
+#: rapid/preferencesdialog.py:1258
msgid ""
-"Preference key '%(key)s' is invalid.\n"
-"Expected one of %(value)s"
+"<i><b>Warning:</b> There is insufficient metadata to fully generate "
+"subfolders. Please use other subfolder naming options.</i>"
msgstr ""
-"Неверен ключ настроек '%(key)s'.\n"
-"Ожидался один из %(value)s"
+"<i><b>Warning:</b> Недостаточно метаданных для создания названий "
+"подкаталогов. Пожалуйста, используйте другие варианты именования "
+"подкаталогов.</i>"
-#: rapid/renamesubfolderprefs.py:807
+#. Translators: you should not modify or leave out the %s. This is a code used by the programming language python to insert a value that thes user will see
+#: rapid/preferencesdialog.py:1261
#, python-format
-msgid "Preference value '%(value)s' is invalid"
-msgstr "Неверное значение настроек '%(value)s'"
+msgid "<i>Example: %s</i>"
+msgstr "<i>Пример: %s</i>"
-#: rapid/renamesubfolderprefs.py:811
-msgid "These preferences are not well formed:"
-msgstr "Эти настройки не очень хорошо подобраны:"
+#. Preferences list is now empty
+#: rapid/preferencesdialog.py:1351
+#, python-format
+msgid ""
+"The %(filetype)s subfolder preferences entered are invalid and cannot be "
+"used.\n"
+"They will be reset to their default values."
+msgstr ""
+"Введённые настройки подкаталога для %(filetype)s неверны и не могут быть "
+"использованы.\n"
+"Они сброшены до значений по умолчанию."
+
+#. check subfolder preferences for bad values
+#: rapid/preferencesdialog.py:1365 rapid/rpdfile.py:122 rapid/rpdfile.py:246
+msgid "photo"
+msgstr "фото"
-#: rapid/renamesubfolderprefs.py:1524
+#: rapid/preferencesdialog.py:1366 rapid/rpdfile.py:117 rapid/rpdfile.py:266
+msgid "video"
+msgstr "видео"
+
+#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
+#: rapid/preferencesdialog.py:1637
+msgid "externaldrive1"
+msgstr "внешнийдиск1"
+
+#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this.
+#: rapid/preferencesdialog.py:1639
+msgid "externaldrive2"
+msgstr "внешнийдиск2"
+
+#: rapid/prefsrapid.py:122
+msgid "New York"
+msgstr "Нью-Йорк"
+
+#: rapid/prefsrapid.py:123
+msgid "Manila"
+msgstr "Манила"
+
+#: rapid/prefsrapid.py:123
+msgid "Prague"
+msgstr "Прага"
+
+#: rapid/prefsrapid.py:123
+msgid "Helsinki"
+msgstr "Хельсинки"
+
+#: rapid/prefsrapid.py:123
+msgid "Wellington"
+msgstr "Веллингтон"
+
+#: rapid/prefsrapid.py:124
+msgid "Tehran"
+msgstr "Тегеран"
+
+#: rapid/prefsrapid.py:124
+msgid "Kampala"
+msgstr "Кампала"
+
+#: rapid/prefsrapid.py:124
+msgid "Paris"
+msgstr "Париж"
+
+#: rapid/prefsrapid.py:124
+msgid "Berlin"
+msgstr "Берлин"
+
+#: rapid/prefsrapid.py:124
+msgid "Sydney"
+msgstr "Сидней"
+
+#: rapid/prefsrapid.py:125
+msgid "Budapest"
+msgstr "Будапешт"
+
+#: rapid/prefsrapid.py:125
+msgid "Rome"
+msgstr "Рим"
+
+#: rapid/prefsrapid.py:125
+msgid "Moscow"
+msgstr "Москва"
+
+#: rapid/prefsrapid.py:125
+msgid "Delhi"
+msgstr "Дели"
+
+#: rapid/prefsrapid.py:125
+msgid "Warsaw"
+msgstr "Варшава"
+
+#: rapid/prefsrapid.py:126
+msgid "Jakarta"
+msgstr "Джакарта"
+
+#: rapid/prefsrapid.py:126
+msgid "Madrid"
+msgstr "Мадрид"
+
+#: rapid/prefsrapid.py:126
+msgid "Stockholm"
+msgstr "Стокгольм"
+
+#. components
+#: rapid/problemnotification.py:26 rapid/subfolderfile.py:339
+msgid "subfolder"
+msgstr "подкаталог"
+
+#: rapid/problemnotification.py:27 rapid/subfolderfile.py:337
+msgid "filename"
+msgstr "имя файла"
+
+#: rapid/problemnotification.py:80
#, python-format
-msgid "Subfolder preferences should not start with a %s"
-msgstr "Настройки подкаталога не должны начинаться с %s"
+msgid "Date time value %s appears invalid."
+msgstr ""
+
+#: rapid/problemnotification.py:81
+msgid "Filename does not have an extension."
+msgstr "Название файла не содержит расширения."
+
+#. a number component is something like the 8346 in IMG_8346.JPG
+#: rapid/problemnotification.py:83
+msgid "Filename does not have a number component."
+msgstr ""
-#: rapid/renamesubfolderprefs.py:1526
+#: rapid/problemnotification.py:84
#, python-format
-msgid "Subfolder preferences should not end with a %s"
-msgstr "Настройки подкаталога не должны заканчиваться с %s"
+msgid "Error generating component %s."
+msgstr ""
-#: rapid/renamesubfolderprefs.py:1530
+#. a generic problem
+#: rapid/problemnotification.py:86
#, python-format
-msgid "Subfolder preferences should not contain two %s one after the other"
-msgstr "Настройки подкаталога не должны содержать две %s одну за другой"
+msgid "%(filetype)s metadata cannot be read"
+msgstr ""
+
+#: rapid/problemnotification.py:88
+#, python-format
+msgid "%(filetype)s %(area)s could not be generated"
+msgstr ""
+
+#: rapid/problemnotification.py:90 rapid/problemnotification.py:91
+#, python-format
+msgid "An error occurred when copying the %(filetype)s"
+msgstr "Произошла ошибка при копировании %(filetype)s"
+
+#: rapid/problemnotification.py:93 rapid/problemnotification.py:94
+#, python-format
+msgid "%(filetype)s already exists"
+msgstr "%(filetype)s уже существует"
+
+#: rapid/problemnotification.py:97
+#, python-format
+msgid ""
+"%(filetype)s could not be backed up because no suitable backup locations "
+"were found."
+msgstr ""
+"%(filetype)s не может быть сохранен в резервной копии, так как не найдено "
+"хранилище резервных копий."
+
+#: rapid/problemnotification.py:102
+#, python-format
+msgid ""
+"%(image1)s was taken at on %(image1_date)s at %(image1_time)s, and "
+"%(image2)s on %(image2_date)s at %(image2_time)s."
+msgstr ""
+
+#: rapid/problemnotification.py:103
+#, python-format
+msgid "%(filetype)s was already downloaded"
+msgstr "%(filetype)s уже был загружен"
+
+#: rapid/problemnotification.py:107
+#, python-format
+msgid ""
+"The existing %(filetype)s was last modified on %(date)s at %(time)s. Unique "
+"identifier '%(identifier)s' added."
+msgstr ""
+
+#: rapid/problemnotification.py:108
+#, python-format
+msgid "The existing %(filetype)s was last modified on %(date)s at %(time)s."
+msgstr ""
+
+#: rapid/problemnotification.py:109
+#, python-format
+msgid "There is no data with which to name the %(filetype)s."
+msgstr ""
+
+#: rapid/problemnotification.py:111
+#, python-format
+msgid "Error: %(errorno)s %(strerror)s"
+msgstr ""
+
+#: rapid/problemnotification.py:201
+msgid "The metadata might be corrupt."
+msgstr "Метаданные могут быть повреждены."
+
+#: rapid/problemnotification.py:204
+msgid ""
+"The filename, extension and Exif information indicate it has already been "
+"downloaded."
+msgstr ""
+
+#: rapid/problemnotification.py:223
+#, python-format
+msgid " It was backed up to %(volume)s"
+msgstr ""
+
+#: rapid/problemnotification.py:225
+msgid " It was backed up to these devices: "
+msgstr ""
+
+#: rapid/problemnotification.py:227 rapid/problemnotification.py:288
+#: rapid/problemnotification.py:300
+#, python-format
+msgid "%s, "
+msgstr ""
+
+#: rapid/problemnotification.py:228 rapid/problemnotification.py:289
+#: rapid/problemnotification.py:301
+#, python-format
+msgid "%(volumes)s and %(final_volume)s."
+msgstr ""
+
+#: rapid/problemnotification.py:240
+#, python-format
+msgid ""
+"Photos detected with the same filenames, but taken at different times: "
+"%(details)s"
+msgstr ""
+
+#: rapid/problemnotification.py:257
+#, python-format
+msgid "An error occurred when backing up on %(volume)s: %(inst)s."
+msgstr ""
+"Произошла ошибка при создании резервной копии на %(volume)s: %(inst)s."
+
+#: rapid/problemnotification.py:259
+#, python-format
+msgid "An error occurred when backing up on %(volume)s."
+msgstr "Произошла ошибка при создании резервной копии на %(volume)s."
+
+#: rapid/problemnotification.py:261
+msgid "Errors occurred when backing up on the following backup devices: "
+msgstr ""
+"Произошли ошибки при создании резервной копии на следующих носителях: "
+
+#: rapid/problemnotification.py:265 rapid/problemnotification.py:313
+#, python-format
+msgid "%(volume)s (%(inst)s), "
+msgstr ""
+
+#: rapid/problemnotification.py:267
+#, python-format
+msgid "%(volume)s, "
+msgstr ""
+
+#: rapid/problemnotification.py:271 rapid/problemnotification.py:315
+#, python-format
+msgid "%(volumes)s and %(volume)s (%(inst)s)."
+msgstr ""
+
+#: rapid/problemnotification.py:276
+#, python-format
+msgid "%(volumes)s and %(volume)s."
+msgstr ""
+
+#: rapid/problemnotification.py:284
+#, python-format
+msgid "Backup already exists on %(volume)s."
+msgstr ""
+
+#: rapid/problemnotification.py:286
+msgid "Backups already exist in these locations: "
+msgstr ""
+
+#: rapid/problemnotification.py:296
+#, python-format
+msgid "Backup overwritten on %(volume)s."
+msgstr ""
+
+#: rapid/problemnotification.py:298
+msgid "Backups overwritten on these devices: "
+msgstr ""
+
+#: rapid/problemnotification.py:309
+#, python-format
+msgid "An error occurred when creating directories on %(volume)s: %(inst)s."
+msgstr ""
+
+#: rapid/problemnotification.py:311
+msgid ""
+"Errors occurred when creating directories on the following backup devices: "
+msgstr ""
+
+#: rapid/problemnotification.py:322
+#, python-format
+msgid "%(previousproblem)s Additionally, %(newproblem)s"
+msgstr ""
+
+#: rapid/problemnotification.py:330
+#, python-format
+msgid " Furthermore, there were %(problems)s."
+msgstr ""
+
+#: rapid/problemnotification.py:332
+#, python-format
+msgid " Furthermore, there was a %(problem)s."
+msgstr ""
+
+#: rapid/problemnotification.py:341
+#, python-format
+msgid "The %(type)s metadata is missing."
+msgstr ""
+
+#: rapid/problemnotification.py:343
+msgid "The following metadata is missing: "
+msgstr ""
+
+#: rapid/problemnotification.py:346
+#, python-format
+msgid "%(missing_metadata_elements)s and %(final_missing_metadata_element)s."
+msgstr ""
+
+#: rapid/problemnotification.py:363
+msgid "Problems in subfolder and filename generation"
+msgstr ""
+
+#: rapid/problemnotification.py:365
+msgid "Problem in subfolder and filename generation"
+msgstr ""
+
+#: rapid/problemnotification.py:368
+#, python-format
+msgid "Problems in %s generation"
+msgstr ""
+
+#: rapid/problemnotification.py:370
+#, python-format
+msgid "Problem in %s generation"
+msgstr ""
+
+#: rapid/problemnotification.py:379
+#, python-format
+msgid "%(filetype)s already exists, but it was backed up"
+msgstr ""
+
+#: rapid/problemnotification.py:381
+#, python-format
+msgid "An error occurred when copying the %(filetype)s, but it was backed up"
+msgstr ""
+
+#: rapid/problemnotification.py:401
+msgid "Multiple problems were encountered"
+msgstr ""
+
+#: rapid/problemnotification.py:403 rapid/subfolderfile.py:228
+msgid "Photos detected with the same filenames, but taken at different times"
+msgstr ""
+"Обнаружены фотографии с одинаковыми названиями, но сделанные в разное время"
+
+#: rapid/problemnotification.py:409
+msgid "there were errors backing up"
+msgstr ""
+
+#: rapid/problemnotification.py:410
+msgid "There were errors backing up"
+msgstr ""
+
+#: rapid/problemnotification.py:412
+msgid "there was an error backing up"
+msgstr ""
+
+#: rapid/problemnotification.py:413
+msgid "There was an error backing up"
+msgstr ""
+
+#. e.g.
+#: rapid/problemnotification.py:416
+#, python-format
+msgid "%(previousproblem)s, and %(backinguperror)s"
+msgstr ""
+
+#: rapid/rpdfile.py:112
+msgid "photos or videos"
+msgstr "фото или видео"
+
+#: rapid/rpdfile.py:136
+#, python-format
+msgid "%(number)s %(filetypes)s"
+msgstr "%(number)s %(filetypes)s"
+
+#: rapid/subfolderfile.py:79
+#, python-format
+msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
+msgstr "%(hour)s:%(minute)s:%(second)s:%(subsecond)s"
+
+#: rapid/subfolderfile.py:194
+#, python-format
+msgid ""
+"Source: %(source)s\n"
+"Destination: %(destination)s"
+msgstr ""
+"Источник: %(source)s\n"
+"Назначение: %(destination)s"
+
+#: rapid/subfolderfile.py:297
+msgid "Photo has already been downloaded"
+msgstr "Фото уже загружено"
+
+#: rapid/subfolderfile.py:298
+#, python-format
+msgid "Source: %(source)s"
+msgstr "Источник: %(source)s"
+
+#: rapid/subfolderfile.py:335
+msgid "subfolder and filename"
+msgstr "подкаталог и название файла"
+
+#: rapid/subfolderfile.py:373
+msgid "Failed to create download subfolder"
+msgstr ""
+
+#: rapid/subfolderfile.py:374
+#, python-format
+msgid "Path: %s"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:1
+msgid "About..."
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:2
+msgid "Check All"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:3
+msgid "Check All Photos"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:4
+msgid "Check All Videos"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:5
+msgid "Download / Pause"
+msgstr "Загрузка / Пауза"
+
+#: rapid/glade3/rapid.ui.h:6
+msgid "Get Help Online..."
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:7
+msgid "Make a Donation..."
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:8
+msgid "Next File"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:9
+msgid "Previous File"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:10
+msgid "Quit"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:12
+msgid "Refresh"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:13
+msgid "Report a Problem..."
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:14
+msgid "Select All Wit_h Job Code"
+msgstr "Выбрать всё с _метками"
+
+#: rapid/glade3/rapid.ui.h:15
+msgid "Select All Without _Job Code"
+msgstr "Выбрать всё _без меток"
-#: rapid/glade3/rapid.glade.h:1
+#: rapid/glade3/rapid.ui.h:16
+msgid "Translate this Application..."
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:17
+msgid "Uncheck All"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:18
+msgid "_Check All"
+msgstr ""
+
+#: rapid/glade3/rapid.ui.h:19
+msgid "_Clear Completed Downloads"
+msgstr "_Убрать завершённые загрузки"
+
+#: rapid/glade3/rapid.ui.h:20
+msgid "_Download"
+msgstr "_Загрузить"
+
+#: rapid/glade3/rapid.ui.h:21
+msgid "_Error Log"
+msgstr "_Журнал ошибок"
+
+#: rapid/glade3/rapid.ui.h:22
+msgid "_File"
+msgstr "_Файл"
+
+#: rapid/glade3/rapid.ui.h:23
+msgid "_Help"
+msgstr "_Помощь"
+
+#: rapid/glade3/rapid.ui.h:24
+msgid "_Include in download"
+msgstr "_Включить в загрузку"
+
+#: rapid/glade3/rapid.ui.h:25
+msgid "_Make a Donation..."
+msgstr "_Сделать пожервование"
+
+#: rapid/glade3/rapid.ui.h:26
+msgid "_Select"
+msgstr "_Выделить"
+
+#: rapid/glade3/rapid.ui.h:27
+msgid "_Translate this Application..."
+msgstr "_Перевести это приложение..."
+
+#: rapid/glade3/rapid.ui.h:28
+msgid "_Uncheck All"
+msgstr "_Снять все отметки"
+
+#: rapid/glade3/rapid.ui.h:29
+msgid "_View"
+msgstr "_Просмотр"
+
+#: rapid/glade3/prefs.ui.h:1
msgid " "
msgstr " "
-#: rapid/glade3/rapid.glade.h:2
-msgid " "
-msgstr " "
-
-#: rapid/glade3/rapid.glade.h:3
+#: rapid/glade3/prefs.ui.h:2
msgid " hh:mm"
msgstr " чч:мм"
-#: rapid/glade3/rapid.glade.h:4
+#: rapid/glade3/prefs.ui.h:3
msgid ":"
msgstr ":"
-#: rapid/glade3/rapid.glade.h:5
+#: rapid/glade3/prefs.ui.h:4
msgid "<b>Backup</b>"
msgstr "<b>Резервное копирование</b>"
-#: rapid/glade3/rapid.glade.h:6
+#: rapid/glade3/prefs.ui.h:5
msgid "<b>Compatibility with Other Operating Systems</b>"
msgstr "<b>Совместимость с другими операционными системами</b>"
-#: rapid/glade3/rapid.glade.h:7
+#: rapid/glade3/prefs.ui.h:6
msgid "<b>Devices</b>"
msgstr "<b>Носители</b>"
-#: rapid/glade3/rapid.glade.h:8
+#: rapid/glade3/prefs.ui.h:7
msgid "<b>Download Folder</b>"
msgstr "<b>Каталог для загрузки фотографий</b>"
-#: rapid/glade3/rapid.glade.h:9
+#: rapid/glade3/prefs.ui.h:8
msgid "<b>Download Subfolders</b>"
msgstr "<b>Подкаталоги для загрузки фотографий</b>"
-#: rapid/glade3/rapid.glade.h:10
+#: rapid/glade3/prefs.ui.h:9
msgid "<b>Example</b>"
msgstr "<b>Пример</b>"
-#: rapid/glade3/rapid.glade.h:11
+#: rapid/glade3/prefs.ui.h:10
msgid "<b>Job Codes</b>"
msgstr "<b>Метки</b>"
-#: rapid/glade3/rapid.glade.h:12
+#: rapid/glade3/prefs.ui.h:11
msgid "<b>Photo Rename</b>"
msgstr "<b>Переименование фото</b>"
-#: rapid/glade3/rapid.glade.h:13
+#: rapid/glade3/prefs.ui.h:12
msgid "<b>Photo and Video Name Conflicts</b>"
msgstr "<b>Конфликт названий между фото и видео</b>"
-#: rapid/glade3/rapid.glade.h:14
+#: rapid/glade3/prefs.ui.h:13
msgid "<b>Program Automation</b>"
msgstr "<b>Автоматизация программы</b>"
-#: rapid/glade3/rapid.glade.h:15
+#: rapid/glade3/prefs.ui.h:14
msgid "<b>Sequence Numbers</b>"
msgstr "<b>Последовательности номеров</b>"
-#: rapid/glade3/rapid.glade.h:16
+#: rapid/glade3/prefs.ui.h:15
msgid "<i>/media/externaldrive/Photos</i>"
msgstr "<i>/media/externaldrive/Photos</i>"
-#: rapid/glade3/rapid.glade.h:17
+#: rapid/glade3/prefs.ui.h:16
msgid "<i>Example: /home/user/Pictures</i>"
msgstr "<i>Пример: /home/user/Pictures</i>"
-#: rapid/glade3/rapid.glade.h:18
+#: rapid/glade3/prefs.ui.h:17
msgid "<i>Example:</i>"
msgstr "<i>Пример:</i>"
-#: rapid/glade3/rapid.glade.h:19
+#: rapid/glade3/prefs.ui.h:18
msgid "<i>New:</i>"
msgstr "<i>Новое название:</i>"
-#: rapid/glade3/rapid.glade.h:20
+#: rapid/glade3/prefs.ui.h:19
msgid "<i>Original:</i>"
msgstr "<i>Исходное название:</i>"
-#: rapid/glade3/rapid.glade.h:21
-msgid "<span weight=\"bold\" size=\"x-large\">Automation</span>"
-msgstr "<span weight=\"bold\" size=\"x-large\">Автоматизация</span>"
-
-#: rapid/glade3/rapid.glade.h:22
+#: rapid/glade3/prefs.ui.h:20
msgid "<span weight=\"bold\" size=\"x-large\">Backup</span>\t"
msgstr ""
"<span weight=\"bold\" size=\"x-large\">Резервное копирование</span>\t"
-#: rapid/glade3/rapid.glade.h:23
+#: rapid/glade3/prefs.ui.h:21
msgid "<span weight=\"bold\" size=\"x-large\">Devices</span>"
msgstr "<span weight=\"bold\" size=\"x-large\">Носители</span>"
-#: rapid/glade3/rapid.glade.h:24
+#: rapid/glade3/prefs.ui.h:22
msgid "<span weight=\"bold\" size=\"x-large\">Error Handling</span>"
msgstr "<span weight=\"bold\" size=\"x-large\">Обработка ошибок</span>"
-#: rapid/glade3/rapid.glade.h:25
+#: rapid/glade3/prefs.ui.h:23
msgid "<span weight=\"bold\" size=\"x-large\">Job Codes</span>"
msgstr "<span weight=\"bold\" size=\"x-large\">Метки</span>"
-#: rapid/glade3/rapid.glade.h:26
+#: rapid/glade3/prefs.ui.h:24
+msgid "<span weight=\"bold\" size=\"x-large\">Miscellaneous</span>"
+msgstr ""
+
+#: rapid/glade3/prefs.ui.h:25
msgid "<span weight=\"bold\" size=\"x-large\">Photo Download Folders</span>"
msgstr ""
"<span weight=\"bold\" size=\"x-large\">Каталоги для загрузки фото</span>"
-#: rapid/glade3/rapid.glade.h:27
+#: rapid/glade3/prefs.ui.h:26
msgid "<span weight=\"bold\" size=\"x-large\">Photo Rename</span>\t"
msgstr "<span weight=\"bold\" size=\"x-large\">Переименование фото</span>\t"
-#: rapid/glade3/rapid.glade.h:28
+#: rapid/glade3/prefs.ui.h:27
msgid "<span weight=\"bold\" size=\"x-large\">Rename Options</span>"
msgstr ""
"<span weight=\"bold\" size=\"x-large\">Параметры переименования</span>"
-#: rapid/glade3/rapid.glade.h:29
+#: rapid/glade3/prefs.ui.h:28
msgid "<span weight=\"bold\" size=\"x-large\">Video Download Folders</span>"
msgstr ""
"<span weight=\"bold\" size=\"x-large\">Каталоги для загрузки видео</span>"
-#: rapid/glade3/rapid.glade.h:30
+#: rapid/glade3/prefs.ui.h:29
msgid "<span weight=\"bold\" size=\"x-large\">Video Rename</span>\t"
msgstr "<span weight=\"bold\" size=\"x-large\">Переименование видео</span>\t"
-#: rapid/glade3/rapid.glade.h:31
+#: rapid/glade3/prefs.ui.h:30
msgid "Add unique identifier"
msgstr "Добавить уникальную метку"
-#: rapid/glade3/rapid.glade.h:32
+#: rapid/glade3/prefs.ui.h:31
msgid "Automatically detect Portable Storage Devices"
msgstr "Автоматически определять внешние съёмные носители"
-#: rapid/glade3/rapid.glade.h:33
+#: rapid/glade3/prefs.ui.h:32
msgid "Automatically detect backup devices"
msgstr "Автоматически определять носители для резервного копирования"
-#: rapid/glade3/rapid.glade.h:34
+#: rapid/glade3/prefs.ui.h:33
msgid "Automatically detect devices"
msgstr "Автоматически обнаруживать носители"
-#: rapid/glade3/rapid.glade.h:35
-msgid "Automation"
-msgstr "Автоматизация"
-
-#: rapid/glade3/rapid.glade.h:36
+#: rapid/glade3/prefs.ui.h:34
msgid "Backup"
msgstr "Резервное копирование"
-#: rapid/glade3/rapid.glade.h:37
+#: rapid/glade3/prefs.ui.h:35
msgid "Backup location:"
msgstr "Местоположение резервных копий"
-#: rapid/glade3/rapid.glade.h:38
+#: rapid/glade3/prefs.ui.h:36
msgid "Backup photos and videos when downloading"
msgstr ""
"Выполнять резервное копирование фотографий и видеороликов во время загрузки"
-#: rapid/glade3/rapid.glade.h:39
+#: rapid/glade3/prefs.ui.h:37
msgid ""
"Choose the download folder. Subfolders for the downloaded photos will be "
"automatically created in this folder using the structure specified below."
@@ -1667,7 +1416,7 @@ msgstr ""
"загружаемых фотографий будут автоматически созданы в каждом каталоге, "
"используя структуру, указанную вами ниже."
-#: rapid/glade3/rapid.glade.h:40
+#: rapid/glade3/prefs.ui.h:38
msgid ""
"Choose the download folder. Subfolders for the downloaded videos will be "
"automatically created in this folder using the structure specified below."
@@ -1676,23 +1425,19 @@ msgstr ""
"загружаемых видеороликов будут автоматически созданы в каждом каталоге, "
"используя структуру, указанную вами ниже."
-#: rapid/glade3/rapid.glade.h:41
-msgid "Copyright Damon Lynch 2007-10"
-msgstr "Авторские права Damon Lynch 2007-2010"
-
-#: rapid/glade3/rapid.glade.h:42
+#: rapid/glade3/prefs.ui.h:39
msgid "Day start:"
msgstr "Начало дня:"
-#: rapid/glade3/rapid.glade.h:43
+#: rapid/glade3/prefs.ui.h:40
msgid "Delete photos and videos from device upon download completion"
msgstr "Удалить фото и видео после окончания загрузки"
-#: rapid/glade3/rapid.glade.h:44
+#: rapid/glade3/prefs.ui.h:41
msgid "Devices"
msgstr "Носители"
-#: rapid/glade3/rapid.glade.h:45
+#: rapid/glade3/prefs.ui.h:42
msgid ""
"Devices are from where to download photos and videos, such as cameras, "
"memory cards or Portable Storage Devices.\n"
@@ -1714,39 +1459,33 @@ msgstr ""
"попробуйте преключить ее в режим PTP. Если это невозможно, используйте "
"устройство для чтения карт памяти.</i>"
-#: rapid/glade3/rapid.glade.h:50
-msgid "Download / Pause"
-msgstr "Загрузка / Пауза"
-
-#: rapid/glade3/rapid.glade.h:51
+#: rapid/glade3/prefs.ui.h:47
msgid "Download folder:"
msgstr "Каталог загрузки:"
-#: rapid/glade3/rapid.glade.h:52
+#: rapid/glade3/prefs.ui.h:48
msgid "Downloads today:"
msgstr "Загрузок сегодня:"
-#: rapid/glade3/rapid.glade.h:53
+#: rapid/glade3/prefs.ui.h:49
msgid "Error Handling"
msgstr "Обработка ошибок"
-#: rapid/glade3/rapid.glade.h:54
-msgid "Error Log"
-msgstr "Журнал ошибок"
+#: rapid/glade3/prefs.ui.h:50
+msgid "Exit program even if download had warnings or errors"
+msgstr ""
-#: rapid/glade3/rapid.glade.h:55
-msgid "Exit program if download completes without any warnings or errors"
+#: rapid/glade3/prefs.ui.h:51
+msgid "Exit program when download completes"
msgstr ""
-"Выйти из программы в том случае, если загрузка завершилась без "
-"предупреждений и ошибок"
-#: rapid/glade3/rapid.glade.h:56
+#: rapid/glade3/prefs.ui.h:52
msgid "If you disable automatic detection, choose the exact backup location."
msgstr ""
"Если вы отключаете автоматическое определение, то, пожалуйста, выберите "
"точное местоположение носителя для резервного копирования."
-#: rapid/glade3/rapid.glade.h:57
+#: rapid/glade3/prefs.ui.h:53
msgid ""
"If you disable automatic detection, choose the exact location of the images "
"and videos."
@@ -1754,7 +1493,7 @@ msgstr ""
"Если вы отключите автоматическое обнаружение, выберите точное местоположение "
"фото и видео."
-#: rapid/glade3/rapid.glade.h:58
+#: rapid/glade3/prefs.ui.h:54
msgid ""
"If you enable automatic detection of Portable Storage Devices, the entire "
"device will be scanned for images. On large devices, this could take some "
@@ -1764,118 +1503,55 @@ msgstr ""
"просканированы на наличие фотографий. На носителях большого объёма это может "
"занять достаточно много времени."
-#: rapid/glade3/rapid.glade.h:59
-msgid "Import your photos and videos efficiently and reliably"
-msgstr "Импортируйте ваши фото и видео быстро и надёжно"
-
-#: rapid/glade3/rapid.glade.h:60
+#: rapid/glade3/prefs.ui.h:55
msgid "Job Codes"
msgstr "Метки"
-#: rapid/glade3/rapid.glade.h:61
+#: rapid/glade3/prefs.ui.h:56
msgid "Location:"
msgstr "Расположение:"
-#: rapid/glade3/rapid.glade.h:62
+#: rapid/glade3/prefs.ui.h:57
+msgid "Miscillaneous"
+msgstr "Разное"
+
+#: rapid/glade3/prefs.ui.h:58
msgid "Overwrite"
msgstr "Перезаписать"
-#: rapid/glade3/rapid.glade.h:63
-msgid "P_review Columns"
-msgstr "Показывать к_олонки"
-
-#: rapid/glade3/rapid.glade.h:64
+#: rapid/glade3/prefs.ui.h:59
msgid "Photo Folders"
msgstr "Каталоги фото"
-#: rapid/glade3/rapid.glade.h:65
+#: rapid/glade3/prefs.ui.h:60
msgid "Photo Rename"
msgstr "Переименование фото"
-#: rapid/glade3/rapid.glade.h:66
+#: rapid/glade3/prefs.ui.h:61
msgid "Photo backup folder name:"
msgstr "Название каталога резервного копирования фото"
-#: rapid/glade3/rapid.glade.h:67
+#: rapid/glade3/prefs.ui.h:62
msgid "Preferences: Rapid Photo Downloader"
msgstr "Настройки: Rapid Photo Downloader"
-#: rapid/glade3/rapid.glade.h:68
-msgid "Preview _Folders"
-msgstr "Показывать _каталоги"
-
-#: rapid/glade3/rapid.glade.h:70
+#: rapid/glade3/prefs.ui.h:64
msgid "R_emove All"
msgstr "У_далить все"
-#: rapid/glade3/rapid.glade.h:72
-msgid ""
-"Rapid Photo Downloader is free software; you can redistribute it and/or "
-"modify it under the terms of the GNU General Public License as published by "
-"the Free Software Foundation; either version 2 of the License, or (at your "
-"option) any later version.\n"
-"\n"
-"Rapid Photo Downloader is distributed in the hope that it will be useful, "
-"but WITHOUT ANY WARRANTY; without even the implied warranty of "
-"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General "
-"Public License for more details.\n"
-"\n"
-"You should have received a copy of the GNU General Public License along with "
-"Rapid Photo Downloader; if not, write to the Free Software Foundation, Inc., "
-"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
-msgstr ""
-"Rapid Photo Downloader - это бесплатное программное обеспечение; вы можете "
-"передавать его и/или модифицировать в соответствии с соглашением GNU General "
-"Public License опубликованным Free Software Foundation версии 2 или (по "
-"вашему выбору) более поздней версии.\n"
-"\n"
-"Rapid Photo Downloader распространяется в надежде, что эта программа будет "
-"полезна вам, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ и даже без гарантий КОММЕРЧЕСКОЙ "
-"ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ЦЕЛЕЙ КАКОГО-ЛИБО ОПРЕДЕЛЁННОГО ИСПОЛЬЗОВАНИЯ. "
-"Для дополнительной информации читайте GNU General Public License.\n"
-"\n"
-"Вы должны были получить копию GNU General Public License вместе с Rapid "
-"Photo Downloader; если вы не получили её, то вы можете написать в Free "
-"Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-"
-"1301, USA."
-
-#: rapid/glade3/rapid.glade.h:77
+#: rapid/glade3/prefs.ui.h:65
msgid "Rename Options"
msgstr "Параметры переименования"
-#: rapid/glade3/rapid.glade.h:78
-msgid "Se_lect None"
-msgstr "_Снять выделение"
-
-#: rapid/glade3/rapid.glade.h:79
-msgid "Select All Pho_tos"
-msgstr "Выбрать все _фотографии"
-
-#: rapid/glade3/rapid.glade.h:80
-msgid "Select All Vi_deos"
-msgstr "Выбрать все _видеоролики"
-
-#: rapid/glade3/rapid.glade.h:81
-msgid "Select All Wit_h Job Code"
-msgstr "Выбрать всё с _метками"
-
-#: rapid/glade3/rapid.glade.h:82
-msgid "Select All Without _Job Code"
-msgstr "Выбрать всё _без меток"
-
-#: rapid/glade3/rapid.glade.h:83
-msgid "Select _All"
-msgstr "Выделить вс_ё"
-
-#: rapid/glade3/rapid.glade.h:84
+#: rapid/glade3/prefs.ui.h:66
msgid "Skip"
msgstr "Пропустить"
-#: rapid/glade3/rapid.glade.h:85
+#: rapid/glade3/prefs.ui.h:67
msgid "Skip download"
msgstr "Пропустить загрузку"
-#: rapid/glade3/rapid.glade.h:86
+#: rapid/glade3/prefs.ui.h:68
msgid ""
"Sorry, video downloading functionality disabled. To download videos, please "
"install the <i>hachoir metadata</i> and <i>kaa metadata</i> packages for "
@@ -1885,7 +1561,7 @@ msgstr ""
"пожалуйста, установите пакеты python <i>hachoir metadata</i> and <i>kaa "
"metadata</i>."
-#: rapid/glade3/rapid.glade.h:87
+#: rapid/glade3/prefs.ui.h:69
msgid ""
"Specify the folder in which backups are stored on the device. \n"
"\n"
@@ -1899,7 +1575,7 @@ msgstr ""
"резервного копирования. На каждом носителе, который вы хотите использовать "
"для резервного копирования, создайте каталог с одним из этих имен.</i>"
-#: rapid/glade3/rapid.glade.h:90
+#: rapid/glade3/prefs.ui.h:72
msgid ""
"Specify the time in 24 hour format at which the <i>Downloads today</i> "
"sequence number should be reset."
@@ -1907,7 +1583,7 @@ msgstr ""
"Укажите время в 24-часовом формате, когда следует обнулять параметр "
"<i>Загрузок сегодня</i>."
-#: rapid/glade3/rapid.glade.h:91
+#: rapid/glade3/prefs.ui.h:73
msgid ""
"Specify whether photo, video and folder names should have any characters "
"removed that are not allowed by other operating systems."
@@ -1915,44 +1591,44 @@ msgstr ""
"Укажите, следует ли удалить символы в названиях фото, видео, каталогов, "
"которые не распознаются в других операционных системах."
-#: rapid/glade3/rapid.glade.h:92
+#: rapid/glade3/prefs.ui.h:74
msgid "Start downloading at program startup"
msgstr ""
"Начать загрузку фотографий и видеороликов сразу после запуска программы"
-#: rapid/glade3/rapid.glade.h:93
+#: rapid/glade3/prefs.ui.h:75
msgid "Start downloading upon device insertion"
msgstr "Начать загрузку сразу после подключения носителя"
-#: rapid/glade3/rapid.glade.h:94
+#: rapid/glade3/prefs.ui.h:76
msgid "Stored number:"
msgstr "Сквозная нумерация:"
-#: rapid/glade3/rapid.glade.h:95
+#: rapid/glade3/prefs.ui.h:77
msgid "Strip incompatible characters"
msgstr "Убрать несовместимые символы"
-#: rapid/glade3/rapid.glade.h:96
+#: rapid/glade3/prefs.ui.h:78
msgid "Synchronize RAW + JPEG sequence numbers"
msgstr "Синхронизировать последовательность номеров при загрузке RAW + JPEG"
-#: rapid/glade3/rapid.glade.h:97
+#: rapid/glade3/prefs.ui.h:79
msgid "Unmount (\"eject\") device upon download completion"
msgstr "Отключить (\"извлечь\") носитель после завершения загрузки"
-#: rapid/glade3/rapid.glade.h:98
+#: rapid/glade3/prefs.ui.h:80
msgid "Video Folders"
msgstr "Каталоги видео"
-#: rapid/glade3/rapid.glade.h:99
+#: rapid/glade3/prefs.ui.h:81
msgid "Video Rename"
msgstr "Переименование видео"
-#: rapid/glade3/rapid.glade.h:100
+#: rapid/glade3/prefs.ui.h:82
msgid "Video backup folder name:"
msgstr "Название каталога резервного копирования видео"
-#: rapid/glade3/rapid.glade.h:101
+#: rapid/glade3/prefs.ui.h:83
msgid ""
"When a photo or video of the same name has already been downloaded, choose "
"whether to skip downloading the file, or to add a unique indentifier."
@@ -1960,7 +1636,7 @@ msgstr ""
"Если фотография или видеоролик с таким названием уже загружен, выберите, "
"пропустить загрузку или добавить уникальный идентификатор."
-#: rapid/glade3/rapid.glade.h:102
+#: rapid/glade3/prefs.ui.h:84
msgid ""
"When backing up, choose whether to overwrite a file on the backup device "
"that has the same name, or skip backing it up."
@@ -1968,7 +1644,7 @@ msgstr ""
"Во время резервного копирования следует перезаписать файл, имеющий тоже "
"самое название, или пропустить его?"
-#: rapid/glade3/rapid.glade.h:103
+#: rapid/glade3/prefs.ui.h:85
msgid ""
"You can have your photos and videos backed up to multiple locations as they "
"are downloaded, e.g. external hard drives."
@@ -1976,73 +1652,13 @@ msgstr ""
"Имеется возможность создания резервной копии ваших фотографий и видеороликов "
"прямо во время загрузки, в том числе на внешних жёстких дисках."
-#: rapid/glade3/rapid.glade.h:104
+#: rapid/glade3/prefs.ui.h:86
msgid "_Add..."
msgstr "_Добавить..."
-#: rapid/glade3/rapid.glade.h:105
-msgid "_Clear Completed Downloads"
-msgstr "_Убрать завершённые загрузки"
-
-#: rapid/glade3/rapid.glade.h:106
-msgid "_Device"
-msgstr "_Носитель"
-
-#: rapid/glade3/rapid.glade.h:107
-msgid "_Error Log"
-msgstr "_Журнал ошибок"
-
-#: rapid/glade3/rapid.glade.h:108
-msgid "_File"
-msgstr "_Файл"
-
-#: rapid/glade3/rapid.glade.h:109
-msgid "_Filename"
-msgstr "Имя файла"
-
-#: rapid/glade3/rapid.glade.h:110
-msgid "_Get Help Online..."
-msgstr "_Получить помощь в интернете..."
-
-#: rapid/glade3/rapid.glade.h:111
-msgid "_Help"
-msgstr "_Помощь"
-
-#: rapid/glade3/rapid.glade.h:112
-msgid "_Make a Donation..."
-msgstr "_Сделать пожервование"
-
-#: rapid/glade3/rapid.glade.h:113
-msgid "_Path"
-msgstr "_Путь"
-
-#: rapid/glade3/rapid.glade.h:114
-msgid "_Preview"
-msgstr "П_редпросмотр"
-
-#: rapid/glade3/rapid.glade.h:115
-msgid "_Report a Problem..."
-msgstr "_Сообщить о проблеме..."
-
-#: rapid/glade3/rapid.glade.h:116
-msgid "_Select"
-msgstr "_Выделить"
-
-#: rapid/glade3/rapid.glade.h:117
-msgid "_Size"
-msgstr "_Размер"
-
-#: rapid/glade3/rapid.glade.h:118
-msgid "_Translate this Application..."
-msgstr "_Перевести это приложение..."
-
-#: rapid/glade3/rapid.glade.h:119
-msgid "_Type"
-msgstr "_Тип"
-
-#: rapid/glade3/rapid.glade.h:120
-msgid "_View"
-msgstr "_Просмотр"
+#: rapid/glade3/about.ui.h:1
+msgid "Import your photos and videos efficiently and reliably"
+msgstr "Импортируйте ваши фото и видео быстро и надёжно"
#~ msgid "Could not open image"
#~ msgstr "Не смог открыть фотографию"
@@ -2054,10 +1670,19 @@ msgstr "_Просмотр"
#~ msgid "Image has no metadata"
#~ msgstr "Фотография не содержит метаданных"
+#~ msgid "warnings"
+#~ msgstr "предупреждения"
+
#, python-format
#~ msgid "%s images skipped"
#~ msgstr "%s фотографий пропущено"
+#~ msgid "errors"
+#~ msgstr "ошибки"
+
+#~ msgid "Backing up error"
+#~ msgstr "Ошибка резервного копирования"
+
#~ msgid "Image overwritten"
#~ msgstr "Фотография перезаписана"
@@ -2070,12 +1695,37 @@ msgstr "_Просмотр"
#~ msgid "Image already exists"
#~ msgstr "Фотография уже существует"
+#~ msgid "Warning:"
+#~ msgstr "Предупреждение:"
+
+#~ msgid "and"
+#~ msgstr "и"
+
+#, python-format
+#~ msgid "About %i seconds remaining"
+#~ msgstr "Осталось %i секунд"
+
+#~ msgid "About 1 minute remaining"
+#~ msgstr "Осталась примерно 1 минута"
+
+#~ msgid "About 1 second remaining"
+#~ msgstr "Осталась примерно 1 секунда"
+
#~ msgid "images skipped"
#~ msgstr "фотографий пропущено"
+#~ msgid "_Pause"
+#~ msgstr "_Пауза"
+
+#~ msgid "_Report a Problem..."
+#~ msgstr "_Сообщить о проблеме..."
+
#~ msgid "_Photos"
#~ msgstr "_Фотографии"
+#~ msgid "_Get Help Online..."
+#~ msgstr "_Получить помощь в интернете..."
+
#, python-format
#~ msgid ""
#~ "Source: %(source)s\n"
@@ -2104,6 +1754,16 @@ msgstr "_Просмотр"
#~ "Фотография: %(image)s\n"
#~ "Проблема: %(problem)s"
+#, python-format
+#~ msgid "About %(minutes)i:%(seconds)02i minutes remaining"
+#~ msgstr "Осталось примерно %(minutes)i:%(seconds)02i"
+
+#~ msgid "Goodbye"
+#~ msgstr "До свидания"
+
+#~ msgid " "
+#~ msgstr " "
+
#~ msgid "<i>Example: /home/user/photos</i>"
#~ msgstr "<i>Пример: /home/user/photos</i>"
@@ -2113,6 +1773,9 @@ msgstr "_Просмотр"
#~ msgid "Copyright Damon Lynch 2007-09"
#~ msgstr "Copyright Damon Lynch 2007-09"
+#~ msgid "Error Log"
+#~ msgstr "Журнал ошибок"
+
#~ msgid "Ignore"
#~ msgstr "Игнорировать"
@@ -2129,12 +1792,35 @@ msgstr "_Просмотр"
#~ "%(directory)s\n"
#~ "Ошибка: %(errno)s %(strerror)s"
+#~ msgid "Problem using pynotify."
+#~ msgstr "Проблема при использовании pynotify."
+
+#~ msgid "Automation"
+#~ msgstr "Автоматизация"
+
#~ msgid "Image Rename"
#~ msgstr "Переименование фотографий"
+#~ msgid "Resetting value to zero.\n"
+#~ msgstr "Сбросить значение до нуля.\n"
+
#~ msgid "Select an image folder"
#~ msgstr "Выберите каталог с фотографиями"
+#, python-format
+#~ msgid "%s is already running"
+#~ msgstr "%s уже запущено"
+
+#~ msgid "Using"
+#~ msgstr "Использование"
+
+#, python-format
+#~ msgid "Detected %(device)s with path %(path)s"
+#~ msgstr "Обнаружено %(device)s с путём %(path)s"
+
+#~ msgid "Sorry,these preferences contain an error:\n"
+#~ msgstr "Извините, эти параметры содержат ошибку:\n"
+
#~ msgid "<b>Image Rename</b>"
#~ msgstr "<b>Переименование фотографий</b>"
@@ -2156,6 +1842,9 @@ msgstr "_Просмотр"
#~ msgid "image number was specified but image filename has no number"
#~ msgstr "номер фотографии был указано, но фотография не имеет номер"
+#~ msgid "<span weight=\"bold\" size=\"x-large\">Automation</span>"
+#~ msgstr "<span weight=\"bold\" size=\"x-large\">Автоматизация</span>"
+
#~ msgid "<b>Image Devices</b>"
#~ msgstr "<b>Носители фотографий</b>"
@@ -2175,6 +1864,12 @@ msgstr "_Просмотр"
#~ msgid "Automatically detect image devices"
#~ msgstr "Автоматически определять носители, которые содержат фотографии"
+#~ msgid "No backup devices detected"
+#~ msgstr "Не обнаружено носителей для создания резервных копий"
+
+#~ msgid "Using backup devices"
+#~ msgstr "Использование носителя для резервного копирования"
+
#~ msgid "Specify what to do when there are no backup devices."
#~ msgstr ""
#~ "Укажите, что делать если не обнаружены носители для резервного копирования."
@@ -2183,6 +1878,9 @@ msgstr "_Просмотр"
#~ msgid "Device scan complete: no images found on %s"
#~ msgstr "Сканирование носителя %s завершено: фотографий не найдено"
+#~ msgid "Using backup device"
+#~ msgstr "Использование носителя для резервного копирования"
+
#~ msgid "Subsecond metadata not present in image"
#~ msgstr "Метаданные подсекунд не представлены в фотографии"
@@ -2190,6 +1888,9 @@ msgstr "_Просмотр"
#~ msgid "%s metadata is not present in image"
#~ msgstr "%s метаданные не представлены в фотографии"
+#~ msgid "'Start of day' preference value is corrupted.\n"
+#~ msgstr "Значение 'Начало дня' повреждено.\n"
+
#~ msgid "The subfolder preferences had some unnecessary values removed."
#~ msgstr ""
#~ "Параметры подкаталогов, имеющих некоторые ненужные значения, были удалены."
@@ -2218,6 +1919,9 @@ msgstr "_Просмотр"
#~ "Введённые параметры подкаталога неправильны и не могут быть использованы.\n"
#~ "Они будут сброшены до значений принятых по умолчанию."
+#~ msgid "Resetting to default values."
+#~ msgstr "Восстановить настройки по умолчанию."
+
#~ msgid ""
#~ "Image filename could not be properly generated. Check to ensure there is "
#~ "sufficient image metadata."
@@ -2240,6 +1944,19 @@ msgstr "_Просмотр"
#~ "Название подкаталога не получилось сгенерировать должным образом. Проверьте "
#~ "достаточно ли метаданных."
+#~ msgid "The device can now be safely removed"
+#~ msgstr "Теперь можно безопасно отсоединить носитель"
+
+#~ msgid ""
+#~ "A newer version of this program was previously run on this computer.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "На этом компьютере ранее запускалась более новая версия программы.\n"
+#~ "\n"
+
+#~ msgid "Failed to receive pynotify server capabilities."
+#~ msgstr "Не удалось получить возможности сервера pynotify."
+
#, python-format
#~ msgid "%s images downloaded"
#~ msgstr "%s фотографий скачано"
@@ -2375,6 +2092,10 @@ msgstr "_Просмотр"
#~ msgid "Enter a new job code."
#~ msgstr "Введите новую метку."
+#, python-format
+#~ msgid "Device %(device)s (%(path)s) ignored"
+#~ msgstr "Носитель %(device)s (%(path)s) проигнорирован"
+
#~ msgid "No backup device was detected."
#~ msgstr "Устройство для хранения резервных копий не обнаружено."
@@ -2383,6 +2104,15 @@ msgstr "_Просмотр"
#~ "Использовать ли этот носитель или диск как место, с которого скачиваются "
#~ "фотографии?"
+#~ msgid "Job Code not entered"
+#~ msgstr "Метка не введена"
+
+#~ msgid "Job Code entered"
+#~ msgstr "Метка введена"
+
+#~ msgid "MB/s"
+#~ msgstr "МБ/с"
+
#, python-format
#~ msgid "Image: %(source)s"
#~ msgstr "Изображение: %(source)s"
@@ -2405,6 +2135,9 @@ msgstr "_Просмотр"
#~ msgid "Delete images from image device upon download completion"
#~ msgstr "Удалить изображения с устройства хранения после завершения закачки"
+#~ msgid "Copyright Damon Lynch 2007-10"
+#~ msgstr "Авторские права Damon Lynch 2007-2010"
+
#~ msgid ""
#~ "When backing up, choose whether to overwrite an image on the backup device "
#~ "that has the same name, or skip backing it up."
@@ -2430,6 +2163,17 @@ msgstr "_Просмотр"
#~ msgid "Image device: %s\n"
#~ msgstr "Носитель изображений: %s\n"
+#, python-format
+#~ msgid "Source: %s\n"
+#~ msgstr "Источник: %s\n"
+
+#~ msgid "Error:"
+#~ msgstr "Ошибка:"
+
+#, python-format
+#~ msgid "Error: %(errno)s %(strerror)s"
+#~ msgstr "Ошибка: %(errno)s %(strerror)s"
+
#~ msgid ""
#~ "Sorry, the Download Folder exists but cannot be written to. Please check the "
#~ "folder's permissions, or modify your preferences"
@@ -2458,6 +2202,12 @@ msgstr "_Просмотр"
#~ "%(path)s\n"
#~ "Пожалуйста, решите эту проблему или измените настройки"
+#~ msgid ""
+#~ "Warning: desktop environment notification server is incorrectly configured."
+#~ msgstr ""
+#~ "Внимание: сервер уведомлений вашего рабочего окружения не настроен "
+#~ "надлежащим образом."
+
#, python-format
#~ msgid "0 of %s images copied"
#~ msgstr "0 из %s фотографий скачано"
@@ -2469,6 +2219,10 @@ msgstr "_Просмотр"
#~ msgid "%(number)s of %(total)s images copied"
#~ msgstr "%(number)s из %(total)s фотографий скачано"
+#, python-format
+#~ msgid "Device: %s\n"
+#~ msgstr "Носитель: %s\n"
+
#~ msgid "No backup device was automatically detected"
#~ msgstr ""
#~ "Не удалось автоматически обнаружить носитель для резервного копирования"
@@ -2501,6 +2255,14 @@ msgstr "_Просмотр"
#~ msgid "videos skipped"
#~ msgstr "видеороликов пропущено"
+#~ msgid "\n"
+#~ msgstr "\n"
+
+#, python-format
+#~ msgid "Device scan complete: no %(filetypes)s found on %(device)s"
+#~ msgstr ""
+#~ "Сканирование носителя завершено: %(filetypes)s не найдено на %(device)s"
+
#, python-format
#~ msgid "0 of %(number)s %(filetypes)s"
#~ msgstr "0 из %(number)s %(filetypes)s"
@@ -2526,9 +2288,26 @@ msgstr "_Просмотр"
#~ msgstr "Невозможно открыть %s(filetype)s"
#, python-format
+#~ msgid "Backup of %(file_type)s already exists"
+#~ msgstr "Резервная копия %(file_type)s уже существует"
+
+#, python-format
+#~ msgid "%(path)s: "
+#~ msgstr "%(path)s: "
+
+#, python-format
#~ msgid "%s metadata is not present in video"
#~ msgstr "%s нет метаданных в видеоролике"
+#~ msgid "Invalid Downloads Today value.\n"
+#~ msgstr "Неверное значение 'Загрузок сегодня'.\n"
+
+#~ msgid ""
+#~ "Downloads today value not updated, as a download is currently occurring"
+#~ msgstr ""
+#~ "Значение \"Загрузок сегодня\" не обновлено, так как загрузка идёт прямо "
+#~ "сейчас"
+
#~ msgid ""
#~ "Photos detected with the same filenames, but taken at different times:"
#~ msgstr ""
@@ -2541,6 +2320,57 @@ msgstr "_Просмотр"
#~ msgid "Unique identifier '%s' added"
#~ msgstr "Добавлена уникальная метка '%s'"
+#~ msgid "New day has started - resetting 'Downloads Today' sequence number"
+#~ msgstr ""
+#~ "Начался новый день - сброшена последовательность номеров параметра 'Загрузок "
+#~ "сегодня'"
+
+#~ msgid "Could not create temporary download directory"
+#~ msgstr "Не удалось создать временный каталог для загрузки"
+
+#, python-format
+#~ msgid "Download has started from %s"
+#~ msgstr "Начата загрузка с %s"
+
+#, python-format
+#~ msgid "Download complete from %s"
+#~ msgstr "Загрузка с %s завершена"
+
+#, python-format
+#~ msgid "%s selected for downloading from"
+#~ msgstr "%s выбран для загрузки"
+
+#, python-format
+#~ msgid "%s rejected as a download device"
+#~ msgstr "%s не выбран для загрузки"
+
+#~ msgid "This device or partition will always be used to download from"
+#~ msgstr "Этот носитель или раздел всегда будет использован для загрузки"
+
+#~ msgid "This device or partition will never be used to download from"
+#~ msgstr "Этот носитель или раздел никогда не будет использован для загрузки"
+
+#~ msgid "Problem with Download Folders"
+#~ msgstr "Проблема с каталогами для загрузки"
+
+#~ msgid "Problem with Download Folder"
+#~ msgstr "Проблема с каталогом для загрузки"
+
+#~ msgid "Starting downloads"
+#~ msgstr "Начинаются загрузки"
+
+#~ msgid "Starting downloads that have been waiting for a Job Code"
+#~ msgstr "Начинаются загрузки, которые ожидали ввода метки"
+
+#~ msgid "Automatically start download is false"
+#~ msgstr "Автоматически начинать загрузку - нет"
+
+#~ msgid "Automatically start download is true"
+#~ msgstr "Автоматически начинать загрузку - да"
+
+#~ msgid "All downloads complete"
+#~ msgstr "Все загрузки завершены"
+
#~ msgid "videos downloaded"
#~ msgstr "видеороликов загружено"
@@ -2568,6 +2398,9 @@ msgstr "_Просмотр"
#~ msgid "Photo thumbnail could not be extracted"
#~ msgstr "Невозможно извлечь миниатюру фотографии"
+#~ msgid "Backup path does not exist"
+#~ msgstr "Путь резервного копирования не существует"
+
#, python-format
#~ msgid "%s metadata is not present"
#~ msgstr "%s метаданные не представлены"
@@ -2579,6 +2412,10 @@ msgstr "_Просмотр"
#~ "Не удаётся сгенерировать название подкаталога. Проверьте, хватает ли "
#~ "метаданных."
+#, python-format
+#~ msgid "Deleted %(number)i %(filetypes)s from device"
+#~ msgstr "Удалено %(number)i %(filetypes)s с носителя"
+
#~ msgid ""
#~ "Choose whether to skip downloading the file, or to add a unique indentifier."
#~ msgstr ""
@@ -2590,6 +2427,10 @@ msgstr "_Просмотр"
#~ msgstr "The %(filetype)s не скопирован."
#, python-format
+#~ msgid "%(noFiles)s %(filetypes)s downloaded"
+#~ msgstr "%(noFiles)s %(filetypes)s загружено"
+
+#, python-format
#~ msgid ""
#~ "Metadata is essential for generating subfolder and/or file names.\n"
#~ "Source: %s"
@@ -2606,6 +2447,33 @@ msgstr "_Просмотр"
#~ "что метаданных хватает."
#, python-format
+#~ msgid "%(file_type)s not backed up to %(volume)s"
+#~ msgstr "%(file_type)s не скопирован в резервную копию на %(volume)s"
+
+#, python-format
+#~ msgid "%(file_type)s not backed up"
+#~ msgstr "%(file_type)s не скопирован в резервную копию"
+
+#~ msgid ""
+#~ "\n"
+#~ "Please check preferences, restart the program, and try again."
+#~ msgstr ""
+#~ "\n"
+#~ "Пожалуйста, проверьте настройки, перезапустите программу и попробуйте снова."
+
+#~ msgid "There is an error in the program preferences."
+#~ msgstr "Обнаружена ошибка в настройках программы."
+
+#, python-format
+#~ msgid "Device scan complete: found %(number)s %(filetypes)s on %(device)s"
+#~ msgstr ""
+#~ "Сканирование носителя завершено: найдено %(number)s %(filetypes)s на "
+#~ "%(device)s"
+
+#~ msgid "The following download path could not be created:\n"
+#~ msgstr "Указанный путь для загрузки файлов не может быть создан:\n"
+
+#, python-format
#~ msgid ""
#~ "Source: %(source)s\n"
#~ "Partially generated filename: %(newname)s\n"
@@ -2628,6 +2496,10 @@ msgstr "_Просмотр"
#~ "Ошибка: %(errorno)s %(strerror)s"
#, python-format
+#~ msgid "Backup %(file_type)s overwritten"
+#~ msgstr "Резервная копия %(file_type)s перезаписана"
+
+#, python-format
#~ msgid ""
#~ "Source: %(source)s\n"
#~ "Destination: %(destination)s\n"
@@ -2637,6 +2509,21 @@ msgstr "_Просмотр"
#~ "Назначение: %(destination)s\n"
#~ "Ошибка: %(errno)s %(strerror)s"
+#~ msgid "A backup location was not found"
+#~ msgstr "Не найдено указанное размещение для сохранения резервных копий"
+
+#, python-format
+#~ msgid "%(file_type)s could not be backed up"
+#~ msgstr "Резервная копия %(file_type)s не может быть создана."
+
+#, python-format
+#~ msgid "The %(file_type)s was not backed up."
+#~ msgstr "Резервная копия %(file_type)s не была создана."
+
+#, python-format
+#~ msgid "Destination directory could not be created: %(directory)s\n"
+#~ msgstr "Каталог назначения не может быть создан: %(directory)s\n"
+
#, python-format
#~ msgid ""
#~ "Source: %(source)s\n"
@@ -2645,18 +2532,100 @@ msgstr "_Просмотр"
#~ "Источник: %(source)s\n"
#~ "Назначение: %(destination)s\n"
+#~ msgid "No suitable backup volume was found"
+#~ msgstr "Не найдено подходящего раздела для сохранения резервных копий"
+
+#, python-format
+#~ msgid "Destination: %s"
+#~ msgstr "Назначение: %s"
+
+#, python-format
+#~ msgid "This device has no %(types_searched_for)s to download from."
+#~ msgstr "Носитель не содержит %(types_searched_for)s для загрузки."
+
#~ msgid "Backup device missing"
#~ msgstr "Отсутствует носитель для резервного копирования"
+#~ msgid "No backups can occur"
+#~ msgstr "Резервное копирование невозможно"
+
+#, python-format
+#~ msgid "The path %s could not be created"
+#~ msgstr "Не удалось создать путь %s"
+
#~ msgid "Enter a new job code, or select a previous one."
#~ msgstr "Введите новую метку или выберите существующую."
+#~ msgid "Problem with Device Location Folder"
+#~ msgstr "Проблема с расположением носителя"
+
+#, python-format
+#~ msgid "Prompting whether to use %s"
+#~ msgstr "Спрашивать, использовать ли %s"
+
+#~ msgid "Already prompting for Job Code, do not prompt again"
+#~ msgstr "Уже предложено использовать метку, больше не спрашивать"
+
+#~ msgid "Prompting for Job Code"
+#~ msgstr "Предлагать использовать метку"
+
+#~ msgid "Some preferences will be reset."
+#~ msgstr "Некоторые настройки будут сброшены."
+
+#~ msgid ""
+#~ "Program preferences appear to be valid, but please check them to ensure "
+#~ "correct operation."
+#~ msgstr ""
+#~ "Настройки программы выглядят верными, но проверьте их, чтобы увериться в "
+#~ "правильной работе."
+
+#~ msgid "No preferences needed to be changed."
+#~ msgstr "Настройки не требуют изменения."
+
+#~ msgid ""
+#~ "This version of the program uses different preferences than the old version. "
+#~ "Your preferences have been updated.\n"
+#~ "\n"
+#~ "Please check them to ensure correct operation."
+#~ msgstr ""
+#~ "Эта версия программы использует несколько другие настройки, чем предыдущая. "
+#~ "Ваши настройки были автоматически обновлены.\n"
+#~ "\n"
+#~ "Пожалуйста, проверьте их, чтобы быть увериться в правильной работе."
+
+#~ msgid "Preferences were modified."
+#~ msgstr "Настройки были изменены"
+
+#~ msgid ""
+#~ "This version of the program is newer than the previously run version. "
+#~ "Checking preferences."
+#~ msgstr ""
+#~ "Эта версия программы новее, чем запущенная ранее. Проверьте настройки."
+
+#~ msgid "Using manually specified path"
+#~ msgstr "Использовать указанный вручную путь"
+
#~ msgid "Preferences were changed."
#~ msgstr "Настройки были изменены"
+#~ msgid "These preferences are not well formed:"
+#~ msgstr "Эти настройки не очень хорошо подобраны:"
+
#~ msgid "Subsecond metadata not present in photo"
#~ msgstr "Метаданные о долях секунд отсутствуют в фотографии"
+#, python-format
+#~ msgid "Preference value '%(value)s' is invalid"
+#~ msgstr "Неверное значение настроек '%(value)s'"
+
+#, python-format
+#~ msgid ""
+#~ "Preference key '%(key)s' is invalid.\n"
+#~ "Expected one of %(value)s"
+#~ msgstr ""
+#~ "Неверен ключ настроек '%(key)s'.\n"
+#~ "Ожидался один из %(value)s"
+
#~ msgid "image or video number was specified but filename has no number"
#~ msgstr ""
#~ "было обозначено использование номера фото или видео, но имя файл не содержит "
@@ -2672,6 +2641,41 @@ msgstr "_Просмотр"
#~ msgid "<b>Missing Backup Devices</b>"
#~ msgstr "Отсутствует носитель для резервного копирования"
+#~ msgid "Exit program if download completes without any warnings or errors"
+#~ msgstr ""
+#~ "Выйти из программы в том случае, если загрузка завершилась без "
+#~ "предупреждений и ошибок"
+
+#~ msgid ""
+#~ "Rapid Photo Downloader is free software; you can redistribute it and/or "
+#~ "modify it under the terms of the GNU General Public License as published by "
+#~ "the Free Software Foundation; either version 2 of the License, or (at your "
+#~ "option) any later version.\n"
+#~ "\n"
+#~ "Rapid Photo Downloader is distributed in the hope that it will be useful, "
+#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of "
+#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General "
+#~ "Public License for more details.\n"
+#~ "\n"
+#~ "You should have received a copy of the GNU General Public License along with "
+#~ "Rapid Photo Downloader; if not, write to the Free Software Foundation, Inc., "
+#~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
+#~ msgstr ""
+#~ "Rapid Photo Downloader - это бесплатное программное обеспечение; вы можете "
+#~ "передавать его и/или модифицировать в соответствии с соглашением GNU General "
+#~ "Public License опубликованным Free Software Foundation версии 2 или (по "
+#~ "вашему выбору) более поздней версии.\n"
+#~ "\n"
+#~ "Rapid Photo Downloader распространяется в надежде, что эта программа будет "
+#~ "полезна вам, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ и даже без гарантий КОММЕРЧЕСКОЙ "
+#~ "ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ЦЕЛЕЙ КАКОГО-ЛИБО ОПРЕДЕЛЁННОГО ИСПОЛЬЗОВАНИЯ. "
+#~ "Для дополнительной информации читайте GNU General Public License.\n"
+#~ "\n"
+#~ "Вы должны были получить копию GNU General Public License вместе с Rapid "
+#~ "Photo Downloader; если вы не получили её, то вы можете написать в Free "
+#~ "Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-"
+#~ "1301, USA."
+
#~ msgid ""
#~ "Specify what to do when a photo or video of the same name has already been "
#~ "downloaded or backed up."
@@ -2679,5 +2683,275 @@ msgstr "_Просмотр"
#~ "Укажите, что следует сделать, если фотография или видеоролик с таким же "
#~ "названием уже были РАНЕЕ загружены или сохранены в резервную копию"
+#, python-format
+#~ msgid ""
+#~ "The %(filetype)s subfolder preferences had some unnecessary values removed."
+#~ msgstr "Некоторые излишние настройки подкаталога %(filetype)s удалены."
+
+#~ msgid "Stored number value not updated, as a download is currently occurring"
+#~ msgstr ""
+#~ "Счетчик сквозной нумерации не обновлен, так как прямо сейчас идёт загрузка"
+
+#~ msgid "_Show this message again"
+#~ msgstr "_Показывать это сообщение снова"
+
+#~ msgid "Status"
+#~ msgstr "Статус"
+
+#, python-format
+#~ msgid "%(noFiles)s %(filetypes)s failed to download"
+#~ msgstr "%(noFiles)s %(filetypes)s не удалось загрузить"
+
+#, python-format
+#~ msgid "Error: %(inst)s"
+#~ msgstr "Ошибка: %(inst)s"
+
+#~ msgid "File"
+#~ msgstr "Файл"
+
+#~ msgid "Job Code"
+#~ msgstr "Метка"
+
+#~ msgid "Type"
+#~ msgstr "Тип"
+
+#~ msgid "Path"
+#~ msgstr "Путь"
+
+#~ msgid "Date"
+#~ msgstr "Дата"
+
#~ msgid "Preview"
#~ msgstr "Предварительный просмотр"
+
+#~ msgid "_Resume"
+#~ msgstr "_Продолжить"
+
+#~ msgid "_Download All"
+#~ msgstr "_Загрузить всё"
+
+#~ msgid "_Device"
+#~ msgstr "_Носитель"
+
+#~ msgid "_Path"
+#~ msgstr "_Путь"
+
+#~ msgid "_Preview"
+#~ msgstr "П_редпросмотр"
+
+#~ msgid "_Size"
+#~ msgstr "_Размер"
+
+#~ msgid "_Type"
+#~ msgstr "_Тип"
+
+#, python-format
+#~ msgid "Attempting to download %s files"
+#~ msgstr "Попытка загрузить %s файлов"
+
+#~ msgid "Please check your system and try again."
+#~ msgstr "Пожалуйста, проверьте вашу систему и попробуйте снова."
+
+#~ msgid "Downloading From Cameras"
+#~ msgstr "Загрузка с камеры"
+
+#~ msgid "Downloading directly from a camera may work poorly or not at all"
+#~ msgstr ""
+#~ "Загрузка непосредственно с камеры может работать плохо или не работать вовсе"
+
+#, python-format
+#~ msgid "%(filetype)s downloaded"
+#~ msgstr "%(filetype)s загружено"
+
+#~ msgid "Enter a new Job Code and press Enter, or select an existing Job Code"
+#~ msgstr "Введите новую метку и нажмите Enter или выберите существующую метку"
+
+#~ msgid "D_ownload Selected"
+#~ msgstr "З_агрузить отмеченное"
+
+#, python-format
+#~ msgid "%(filetype)s was not downloaded"
+#~ msgstr "%(filetype)s не загружено"
+
+#, python-format
+#~ msgid "%(filetype)s was downloaded successfully"
+#~ msgstr "%(filetype)s успешно загружено"
+
+#, python-format
+#~ msgid "%(filetype)s was downloaded but there were problems backing up"
+#~ msgstr ""
+#~ "%(filetype)s загружено, но возникли проблемы с его резервным копированием"
+
+#, python-format
+#~ msgid "%(filetype)s was downloaded with warnings"
+#~ msgstr "%(filetype)s загружено с ошибками"
+
+#, python-format
+#~ msgid "%(filetype)s will be downloaded with warnings"
+#~ msgstr "%(filetype)s будет загружено с предупреждениями"
+
+#, python-format
+#~ msgid "%(filetype)s was neither downloaded nor backed up"
+#~ msgstr "%(filetype)s не был ни скачан, ни резервно скопирован"
+
+#, python-format
+#~ msgid "Warning: backup device %(device)s is currently being downloaded from"
+#~ msgstr ""
+#~ "Внимание: с устройства для резервного копирования %(device)s в данный момент "
+#~ "идет загрузка"
+
+#, python-format
+#~ msgid "%(filetype)s failed to download"
+#~ msgstr "%(filetype)s не удалось загрузить"
+
+#, python-format
+#~ msgid ""
+#~ "Source: %(source)s\n"
+#~ "Destination: %(destination)s\n"
+#~ "%(problem)s"
+#~ msgstr ""
+#~ "Источник: %(source)s\n"
+#~ "Назначение: %(destination)s\n"
+#~ "%(problem)s"
+
+#~ msgid "Backup preferences were changed."
+#~ msgstr "Настройки резвервного копирования были изменены."
+
+#~ msgid "Select All Vi_deos"
+#~ msgstr "Выбрать все _видеоролики"
+
+#~ msgid "Select All Pho_tos"
+#~ msgstr "Выбрать все _фотографии"
+
+#~ msgid "Download device settings preferences were changed."
+#~ msgstr "Настройки устройства загрузки были изменены."
+
+#, python-format
+#~ msgid "%(number)s %(numberdownloaded)s"
+#~ msgstr "%(number)s %(numberdownloaded)s"
+
+#~ msgid "Displaying warning about downloading directly from camera"
+#~ msgstr "Отображает предупреждения о прямой загрузке с камеры"
+
+#, python-format
+#~ msgid "The %(file_type)s Download Folder exists but cannot be written to.\n"
+#~ msgstr ""
+#~ "Каталог для загрузки %(file_type)s существует, но недоступен для записи.\n"
+
+#, python-format
+#~ msgid "The %(file_type)s Download Folder does not exist.\n"
+#~ msgstr "Каталог для загрузки %(file_type)s не существует.\n"
+
+#~ msgid "Preview _Folders"
+#~ msgstr "Показывать _каталоги"
+
+#~ msgid "Subfolder and filename preferences were changed."
+#~ msgstr "Настройки каталогов и названий файлов были изменены."
+
+#, python-format
+#~ msgid "%(number)s of %(total)s %(filetypes)s (%(remaining)s remaining)"
+#~ msgstr "%(number)s из %(total)s %(filetypes)s (%(remaining)s осталось)"
+
+#, python-format
+#~ msgid "Photo: %(source)s"
+#~ msgstr "Фото: %(source)s"
+
+#, python-format
+#~ msgid ""
+#~ "Photo: %(source)s\n"
+#~ "Error: %(errno)s %(strerror)s"
+#~ msgstr ""
+#~ "Фото: %(source)s\n"
+#~ "Ошибка: %(errno)s %(strerror)s"
+
+#, python-format
+#~ msgid "Creating photo download folder %(folder)s"
+#~ msgstr "Создание каталога для загрузки фото %(folder)s"
+
+#, python-format
+#~ msgid "Failed to create default photo download folder %(folder)s"
+#~ msgstr "Не удалось создать каталог для загрузки фото %(folder)s"
+
+#~ msgid "Could not delete photo or video from device"
+#~ msgstr "Не удалось удалить фото или видео с носителя"
+
+#, python-format
+#~ msgid "Failed to create default video download folder %(folder)s"
+#~ msgstr "Не удалось создать каталог для загрузки видео %(folder)s"
+
+#, python-format
+#~ msgid "Creating video download folder %(folder)s"
+#~ msgstr "Создание каталога для загрузки видео %(folder)s"
+
+#, python-format
+#~ msgid "%(filetype)s is ready to be downloaded"
+#~ msgstr "%(filetype)s готово к загрузке"
+
+#~ msgid "Resetting to midnight.\n"
+#~ msgstr "Вернуть значение \"полночь\".\n"
+
+#~ msgid ""
+#~ "Downloading from a card reader always works and is generally much faster. It "
+#~ "is strongly recommended to use a card reader."
+#~ msgstr ""
+#~ "Загрузка через картридер работает устойчиво и намного быстрее. Настоятельно "
+#~ "рекомендуется использовать картридер."
+
+#, python-format
+#~ msgid "%(filetype)s is about to be downloaded"
+#~ msgstr "%(filetype)s ожидает загрузки"
+
+#, python-format
+#~ msgid "%(filetype)s cannot be downloaded"
+#~ msgstr "%(filetype)s не может быть загружено"
+
+#, python-format
+#~ msgid ""
+#~ "Sorry, this device location does not exist:\n"
+#~ "%(path)s\n"
+#~ "\n"
+#~ "Please resolve the problem, or modify your preferences."
+#~ msgstr ""
+#~ "Извините, указанное расположение на носителя не существует:\n"
+#~ "%(path)s\n"
+#~ "Пожалуйста, исправьте ошибку или измените настройки"
+
+#~ msgid ""
+#~ "Sorry, problems were encountered with your download folders. Please fix the "
+#~ "problems or modify the preferences.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Извините, были обнаружены проблемы с каталогами для загрузки. Пожалуйста, "
+#~ "исправьте их или измените настройки.\n"
+#~ "\n"
+
+#~ msgid "Sorry, some preferences are invalid and will be reset."
+#~ msgstr "Извините, некоторые настройки неверны и будут сброшены."
+
+#~ msgid ""
+#~ "This version of the program uses different preferences than the old version. "
+#~ "Some of your previous preferences were invalid, and could not be updated. "
+#~ "They will be reset."
+#~ msgstr ""
+#~ "Эта версия программы использует несколько другие настройки, чем предыдущая. "
+#~ "Некоторые ваши настройки неверны и не могут быть обновлены. Они будут "
+#~ "сброшены."
+
+#~ msgid "Download folder preferences were changed."
+#~ msgstr "Настройки каталога для загрузки были изменены."
+
+#~ msgid "P_review Columns"
+#~ msgstr "Показывать к_олонки"
+
+#~ msgid "Select _All"
+#~ msgstr "Выделить вс_ё"
+
+#~ msgid "Se_lect None"
+#~ msgstr "_Снять выделение"
+
+#~ msgid "_Filename"
+#~ msgstr "Имя файла"
+
+#, python-format
+#~ msgid "%(free)s available"
+#~ msgstr "%(free)s доступно"
diff --git a/rapid/ChangeLog b/rapid/ChangeLog
index 86037ed..c9437d5 100644
--- a/rapid/ChangeLog
+++ b/rapid/ChangeLog
@@ -1,3 +1,51 @@
+Version 0.4.0 beta 1
+--------------------
+
+2011-04-10
+
+Features added since alpha 4:
+
+* Job Code functionality, mimicking that found in version 0.2.3.
+* Eject device button for each unmountable device in main window.
+* When not all files have been downloaded from a device, the number remaining
+ is displayed in the device's progress bar
+* Overall download progress is displayed in progress bar at bottom of window
+* Time remaining and download speed are displayed in the status bar
+* System notification messages
+* Automation features:
+ * Automatically start a download at program startup or when a device
+ is inserted. When this is enabled, to optimize performance instead of
+ thumbnails being generated before the files are downloaded, they are
+ generated during the download.
+ * Eject a device when all files have been downloaded from it.
+ * Exit when all files have been downloaded.
+
+The automation feature to delete downloaded files from a device will be added
+only when the non-alpha/beta of version 0.4.0 is released.
+
+The major feature currently not implemented is backups.
+
+Note: if videos are downloaded, the device may not be able to be unmounted
+until Rapid Photo Downloader is exited. See bug #744012 for details.
+
+Bug fix: adjust vertical pane position when additional devices are inserted
+Bug fix: display file and subfolder naming warnings in error log
+
+Updated Czech, French and Russian translations.
+
+
+Version 0.3.6
+-------------
+
+2011-04-05
+
+This release contains a minor fix to allow program preferences to be changed
+on upcoming Linux distributions like Ubuntu 11.04 and Fedora 15.
+
+It also contains a minor packaging change so it can be installed in Ubuntu
+11.04.
+
+
Version 0.4.0 alpha 4
---------------------
@@ -86,7 +134,7 @@ program startup.
Thanks go to Robert Park for refreshing the translations code.
Added Romanian translation.
-
+
Version 0.3.5
-------------
diff --git a/rapid/config.py b/rapid/config.py
index d020562..da2f5c0 100644
--- a/rapid/config.py
+++ b/rapid/config.py
@@ -15,7 +15,7 @@
### along with this program; if not, write to the Free Software
### Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-version = '0.4.0~a4'
+version = '0.4.0~b1'
GCONF_KEY="/apps/rapid-photo-downloader"
@@ -51,7 +51,7 @@ STATUS_DOWNLOAD_FAILED = 6 # tried to download but failed
STATUS_WARNING = 7 # warning (shown in pre-download preview)
STATUS_CANNOT_DOWNLOAD = 8 # cannot be downloaded
-DEFAULT_WINDOW_WIDTH = 730
+DEFAULT_WINDOW_WIDTH = 670
DEFAULT_WINDOW_HEIGHT = 650
diff --git a/rapid/copyfiles.py b/rapid/copyfiles.py
index 78fe8a3..08daafe 100644
--- a/rapid/copyfiles.py
+++ b/rapid/copyfiles.py
@@ -30,6 +30,7 @@ import rpdmultiprocessing as rpdmp
import rpdfile
import problemnotification as pn
import config
+import thumbnail as tn
from gettext import gettext as _
@@ -37,7 +38,7 @@ from gettext import gettext as _
class CopyFiles(multiprocessing.Process):
def __init__(self, photo_download_folder, video_download_folder, files,
- scan_pid,
+ generate_thumbnails, scan_pid,
batch_size_MB, results_pipe, terminate_queue,
run_event):
multiprocessing.Process.__init__(self)
@@ -47,6 +48,7 @@ class CopyFiles(multiprocessing.Process):
self.photo_download_folder = photo_download_folder
self.video_download_folder = video_download_folder
self.files = files
+ self.generate_thumbnails = generate_thumbnails
self.scan_pid = scan_pid
self.no_files= len(self.files)
self.run_event = run_event
@@ -69,17 +71,17 @@ class CopyFiles(multiprocessing.Process):
# it is - cancel the current copy
self.cancel_copy.cancel()
else:
- if (amount_downloaded - self.bytes_downloaded > self.batch_size_bytes) or (amount_downloaded == total):
- chunk_downloaded = amount_downloaded - self.bytes_downloaded
+ chunk_downloaded = amount_downloaded - self.bytes_downloaded
+ if (chunk_downloaded > self.batch_size_bytes) or (amount_downloaded == total):
self.bytes_downloaded = amount_downloaded
- self.results_pipe.send((rpdmp.CONN_PARTIAL, (rpdmp.MSG_BYTES, (self.scan_pid, self.total_downloaded + amount_downloaded))))
+ if amount_downloaded == total:
+ # this function is called a couple of times when total is reached
+ chunk_downloaded = 0
+ self.results_pipe.send((rpdmp.CONN_PARTIAL, (rpdmp.MSG_BYTES, (self.scan_pid, self.total_downloaded + amount_downloaded, chunk_downloaded))))
+ if amount_downloaded == total:
+ self.bytes_downloaded = 0
def progress_callback(self, amount_downloaded, total):
-
- #~ if self.check_termination_request():
- #~ # FIXME: cancel copy
- #~ pass
-
self.update_progress(amount_downloaded, total)
@@ -102,6 +104,10 @@ class CopyFiles(multiprocessing.Process):
self.video_temp_dir))))
if self.photo_temp_dir or self.video_temp_dir:
+
+ if self.generate_thumbnails:
+ self.thumbnail_maker = tn.Thumbnail()
+
for i in range(len(self.files)):
rpd_file = self.files[i]
@@ -145,6 +151,15 @@ class CopyFiles(multiprocessing.Process):
# succeeded or not. It's neccessary to keep the user informed.
self.total_downloaded += rpd_file.size
+ if copy_succeeded and self.generate_thumbnails:
+ thumbnail, thumbnail_icon = self.thumbnail_maker.get_thumbnail(
+ temp_full_file_name,
+ rpd_file.file_type,
+ (160, 120), (100,100))
+ self.results_pipe.send((rpdmp.CONN_PARTIAL,
+ (rpdmp.MSG_THUMB, (rpd_file.unique_id,
+ thumbnail_icon, thumbnail))))
+
if rpd_file.metadata is not None:
rpd_file.metadata = None
diff --git a/rapid/downloadtracker.py b/rapid/downloadtracker.py
index f2c80e2..309da71 100644
--- a/rapid/downloadtracker.py
+++ b/rapid/downloadtracker.py
@@ -17,29 +17,93 @@
### along with this program; if not, write to the Free Software
### Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+import time
+from rpdfile import FILE_TYPE_PHOTO, FILE_TYPE_VIDEO
+from config import STATUS_DOWNLOAD_FAILED, STATUS_DOWNLOADED_WITH_WARNING
+
+from gettext import gettext as _
+
class DownloadTracker:
+ """
+ Track file downloads - their size, number, and any problems
+ """
def __init__(self):
self.size_of_download_in_bytes_by_scan_pid = dict()
self.total_bytes_copied_in_bytes_by_scan_pid = dict()
self.no_files_in_download_by_scan_pid = dict()
self.file_types_present_by_scan_pid = dict()
+ # 'Download count' tracks the index of the file being downloaded
+ # into the list of files that need to be downloaded -- much like
+ # a counter in a for loop, e.g. 'for i in list', where i is the counter
self.download_count_for_file_by_unique_id = dict()
self.download_count_by_scan_pid = dict()
self.rename_chunk = dict()
self.files_downloaded = dict()
+ self.photos_downloaded = dict()
+ self.videos_downloaded = dict()
+ self.photo_failures = dict()
+ self.video_failures = dict()
+ self.warnings = dict()
+ self.total_photos_downloaded = 0
+ self.total_photo_failures = 0
+ self.total_videos_downloaded = 0
+ self.total_video_failures = 0
+ self.total_warnings = 0
+ self.total_bytes_to_download = 0
def init_stats(self, scan_pid, bytes, no_files):
self.no_files_in_download_by_scan_pid[scan_pid] = no_files
self.rename_chunk[scan_pid] = bytes / 10 / no_files
self.size_of_download_in_bytes_by_scan_pid[scan_pid] = bytes + self.rename_chunk[scan_pid] * no_files
+ self.total_bytes_to_download += self.size_of_download_in_bytes_by_scan_pid[scan_pid]
self.files_downloaded[scan_pid] = 0
+ self.photos_downloaded[scan_pid] = 0
+ self.videos_downloaded[scan_pid] = 0
+ self.photo_failures[scan_pid] = 0
+ self.video_failures[scan_pid] = 0
+ self.warnings[scan_pid] = 0
def get_no_files_in_download(self, scan_pid):
return self.no_files_in_download_by_scan_pid[scan_pid]
- def file_downloaded_increment(self, scan_pid):
+
+ def get_no_files_downloaded(self, scan_pid, file_type):
+ if file_type == FILE_TYPE_PHOTO:
+ return self.photos_downloaded.get(scan_pid, 0)
+ else:
+ return self.videos_downloaded.get(scan_pid, 0)
+
+ def get_no_files_failed(self, scan_pid, file_type):
+ if file_type == FILE_TYPE_PHOTO:
+ return self.photo_failures.get(scan_pid, 0)
+ else:
+ return self.video_failures.get(scan_pid, 0)
+
+ def get_no_warnings(self, scan_pid):
+ return self.warnings.get(scan_pid, 0)
+
+ def file_downloaded_increment(self, scan_pid, file_type, status):
self.files_downloaded[scan_pid] += 1
+ if status <> STATUS_DOWNLOAD_FAILED:
+ if file_type == FILE_TYPE_PHOTO:
+ self.photos_downloaded[scan_pid] += 1
+ self.total_photos_downloaded += 1
+ else:
+ self.videos_downloaded[scan_pid] += 1
+ self.total_videos_downloaded += 1
+
+ if status == STATUS_DOWNLOADED_WITH_WARNING:
+ self.warnings[scan_pid] += 1
+ self.total_warnings += 1
+ else:
+ if file_type == FILE_TYPE_PHOTO:
+ self.photo_failures[scan_pid] += 1
+ self.total_photo_failures += 1
+ else:
+ self.video_failures[scan_pid] += 1
+ self.total_video_failures += 1
+
def get_percent_complete(self, scan_pid):
"""
@@ -54,6 +118,16 @@ class DownloadTracker:
/ self.size_of_download_in_bytes_by_scan_pid[scan_pid]) * 100
return percent_complete
+ def get_overall_percent_complete(self):
+ total = 0
+ for scan_pid in self.total_bytes_copied_in_bytes_by_scan_pid:
+ total += (self.total_bytes_copied_in_bytes_by_scan_pid[scan_pid] +
+ (self.rename_chunk[scan_pid] *
+ self.files_downloaded[scan_pid]))
+
+ percent_complete = float(total) / self.total_bytes_to_download
+ return percent_complete
+
def set_total_bytes_copied(self, scan_pid, total_bytes):
self.total_bytes_copied_in_bytes_by_scan_pid[scan_pid] = total_bytes
@@ -72,7 +146,130 @@ class DownloadTracker:
def set_file_types_present(self, scan_pid, file_types_present):
self.file_types_present_by_scan_pid[scan_pid] = file_types_present
+ def no_errors_or_warnings(self):
+ """
+ Return True if there were no errors or warnings in the download
+ else return False
+ """
+ return (self.total_warnings == 0 and
+ self.photo_failures == 0 and
+ self.video_failures == 0)
+
def purge(self, scan_pid):
del self.no_files_in_download_by_scan_pid[scan_pid]
del self.size_of_download_in_bytes_by_scan_pid[scan_pid]
+ del self.photos_downloaded[scan_pid]
+ del self.videos_downloaded[scan_pid]
+ del self.files_downloaded[scan_pid]
+ del self.photo_failures[scan_pid]
+ del self.video_failures[scan_pid]
+ del self.warnings[scan_pid]
+
+ def purge_all(self):
+ self.__init__()
+
+
+
+class TimeCheck:
+ """
+ Record times downloads commmence and pause - used in calculating time
+ remaining.
+
+ Also tracks and reports download speed.
+
+ Note: This is completely independent of the file / subfolder naming
+ preference "download start time"
+ """
+
+ def __init__(self):
+ # set the number of seconds gap with which to measure download time remaing
+ self.download_time_gap = 3
+
+ self.reset()
+
+ def reset(self):
+ self.mark_set = False
+ self.total_downloaded_so_far = 0
+ self.total_download_size = 0
+ self.size_mark = 0
+
+ def increment(self, bytes_downloaded):
+ self.total_downloaded_so_far += bytes_downloaded
+
+ def set_download_mark(self):
+ if not self.mark_set:
+ self.mark_set = True
+
+ self.time_mark = time.time()
+
+ def pause(self):
+ self.mark_set = False
+
+ def check_for_update(self):
+ now = time.time()
+ update = now > (self.download_time_gap + self.time_mark)
+
+ if update:
+ amt_time = now - self.time_mark
+ self.time_mark = now
+ amt_downloaded = self.total_downloaded_so_far - self.size_mark
+ self.size_mark = self.total_downloaded_so_far
+ download_speed = "%1.1f" % (amt_downloaded / 1048576 / amt_time) +_("MB/s")
+ else:
+ download_speed = None
+
+ return (update, download_speed)
+
+class TimeForDownload:
+ # used to store variables, see below
+ pass
+
+class TimeRemaining:
+ """
+ Calculate how much time is remaining to finish a download
+ """
+ gap = 3
+ def __init__(self):
+ self.clear()
+
+ def set(self, scan_pid, size):
+ t = TimeForDownload()
+ t.time_remaining = None
+ t.size = size
+ t.downloaded = 0
+ t.size_mark = 0
+ t.time_mark = time.time()
+ self.times[scan_pid] = t
+
+ def update(self, scan_pid, total_size):
+ if scan_pid in self.times:
+ self.times[scan_pid].downloaded = total_size
+ now = time.time()
+ tm = self.times[scan_pid].time_mark
+ amt_time = now - tm
+ if amt_time > self.gap:
+ self.times[scan_pid].time_mark = now
+ amt_downloaded = self.times[scan_pid].downloaded - self.times[scan_pid].size_mark
+ self.times[scan_pid].size_mark = self.times[scan_pid].downloaded
+ timefraction = amt_downloaded / float(amt_time)
+ amt_to_download = float(self.times[scan_pid].size) - self.times[scan_pid].downloaded
+ if timefraction:
+ self.times[scan_pid].time_remaining = amt_to_download / timefraction
+
+ def _time_estimates(self):
+ for t in self.times:
+ yield self.times[t].time_remaining
+
+ def time_remaining(self):
+ return max(self._time_estimates())
+
+ def set_time_mark(self, scan_pid):
+ if scan_pid in self.times:
+ self.times[scan_pid].time_mark = time.time()
+
+ def clear(self):
+ self.times = {}
+ def remove(self, scan_pid):
+ if scan_pid in self.times:
+ del self.times[scan_pid]
diff --git a/rapid/glade3/media-eject.png b/rapid/glade3/media-eject.png
new file mode 100644
index 0000000..0ff107e
--- /dev/null
+++ b/rapid/glade3/media-eject.png
Binary files differ
diff --git a/rapid/glade3/rapid-photo-downloader-download-pending.png b/rapid/glade3/rapid-photo-downloader-download-pending.png
new file mode 100644
index 0000000..e12cc69
--- /dev/null
+++ b/rapid/glade3/rapid-photo-downloader-download-pending.png
Binary files differ
diff --git a/rapid/glade3/rapid-photo-downloader-download-pending.svg b/rapid/glade3/rapid-photo-downloader-download-pending.svg
deleted file mode 100644
index d6127b7..0000000
--- a/rapid/glade3/rapid-photo-downloader-download-pending.svg
+++ /dev/null
@@ -1,187 +0,0 @@
-<?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="16"
- height="16"
- id="svg4136"
- inkscape:version="0.47 r22583"
- sodipodi:docname="rapid-photo-downloader-image-loading.svg">
- <metadata
- id="metadata33">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1920"
- inkscape:window-height="1089"
- id="namedview31"
- showgrid="false"
- inkscape:zoom="9.8333333"
- inkscape:cx="12"
- inkscape:cy="12"
- inkscape:window-x="0"
- inkscape:window-y="24"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg4136" />
- <defs
- id="defs4138">
- <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="perspective35" />
- <linearGradient
- id="linearGradient8838">
- <stop
- id="stop8840"
- style="stop-color:black;stop-opacity:1"
- offset="0" />
- <stop
- id="stop8842"
- style="stop-color:black;stop-opacity:0"
- offset="1" />
- </linearGradient>
- <radialGradient
- cx="62.625"
- cy="4.625"
- r="10.625"
- fx="62.625"
- fy="4.625"
- id="radialGradient5323"
- xlink:href="#linearGradient8838"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.341176,0,3.047059)" />
- <linearGradient
- id="linearGradient5354">
- <stop
- id="stop5356"
- style="stop-color:#3f3f3f;stop-opacity:1"
- offset="0" />
- <stop
- id="stop5358"
- style="stop-color:black;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="19.176617"
- y1="13.479795"
- x2="19.176617"
- y2="45.358662"
- id="linearGradient5130"
- xlink:href="#linearGradient5354"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.4916775,0,0,0.4916774,0.6986745,-0.3018277)" />
- <linearGradient
- id="linearGradient37935">
- <stop
- id="stop37937"
- style="stop-color:#929292;stop-opacity:1"
- offset="0" />
- <stop
- id="stop37939"
- style="stop-color:#4a4a4a;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="28.771276"
- y1="12.91806"
- x2="28.771276"
- y2="45.347591"
- id="linearGradient5128"
- xlink:href="#linearGradient37935"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.4916775,0,0,0.4916774,0.6986745,-0.3018277)" />
- <linearGradient
- id="linearGradient2145">
- <stop
- id="stop2147"
- style="stop-color:#fffffd;stop-opacity:1"
- offset="0" />
- <stop
- id="stop2149"
- style="stop-color:#cbcbc9;stop-opacity:1"
- offset="1" />
- </linearGradient>
- <radialGradient
- cx="11.901996"
- cy="10.045444"
- r="29.292715"
- fx="11.901996"
- fy="10.045444"
- id="radialGradient5350"
- xlink:href="#linearGradient2145"
- gradientUnits="userSpaceOnUse" />
- </defs>
- <g
- id="layer1"
- transform="matrix(0.652174,0,0,0.65491337,-0.15217376,0.2820791)">
- <path
- d="m 73.25,4.625 a 10.625,3.625 0 1 1 -21.25,0 10.625,3.625 0 1 1 21.25,0 z"
- transform="matrix(1.0823528,0,0,1.2906765,-55.282346,13.351919)"
- id="path2774"
- style="opacity:0.56043958;fill:url(#radialGradient5323);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;marker:none;visibility:visible;display:inline;overflow:visible" />
- <path
- d="m 12.492145,1.4999735 c -5.5190685,0 -9.9921705,4.473101 -9.9921705,9.9921715 0,5.519069 4.473102,10.007882 9.9921705,10.007881 5.519068,0 10.007887,-4.488812 10.007882,-10.007881 0,-5.5190705 -4.488814,-9.9921715 -10.007882,-9.9921715 z"
- id="path2555"
- style="fill:url(#linearGradient5128);fill-opacity:1;stroke:url(#linearGradient5130);stroke-width:0.99994898;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
- <path
- d="m 31.160714,16.910715 a 14.910714,14.910714 0 1 1 -29.8214281,0 14.910714,14.910714 0 1 1 29.8214281,0 z"
- transform="matrix(0.5700599,0,0,0.5700599,3.2365269,1.8598792)"
- id="path35549"
- style="fill:url(#radialGradient5350);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <path
- d="m 12.5,6.4999999 c 0,-1.3926725 0,-1.5690116 0,-1.5690116"
- id="path2308"
- style="fill:#1f1f1f;fill-opacity:1;fill-rule:evenodd;stroke:#727272;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- d="M 12.194529,11.713855 17.596253,6.3122524"
- id="path2312"
- style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- d="M 13.071561,11.753718 9.4637681,8.1460064"
- id="path2314"
- style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- d="M 12.314125,11.434805 18.465311,9.7866365"
- id="path2316"
- style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- d="m 12.5,18.284507 c 0,-1.392673 0,-1.569012 0,-1.569012"
- id="path5368"
- style="fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:#121212;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- d="m 17.5,11.5 c 1.392673,0 1.569013,0 1.569013,0"
- id="path5370"
- style="fill:#1f1f1f;fill-opacity:1;fill-rule:evenodd;stroke:#1f1f1f;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- d="m 5.7331351,11.5 c 1.3613563,0 1.5337301,0 1.5337301,0"
- id="path5372"
- style="fill:#1f1f1f;fill-opacity:1;fill-rule:evenodd;stroke:#5f5f5f;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </g>
-</svg>
diff --git a/rapid/glade3/rapid.ui b/rapid/glade3/rapid.ui
index 1b587b4..bd9638e 100644
--- a/rapid/glade3/rapid.ui
+++ b/rapid/glade3/rapid.ui
@@ -253,8 +253,8 @@
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
- <accelerator key="equal" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="plus" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <accelerator key="equal" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
<child>
@@ -405,8 +405,8 @@
<object class="GtkScrolledWindow" id="device_collection_scrolledwindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">automatic</property>
- <property name="vscrollbar_policy">never</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
<child>
<object class="GtkViewport" id="device_collection_viewport">
<property name="visible">True</property>
diff --git a/rapid/preferencesdialog.py b/rapid/preferencesdialog.py
index 4909820..0f46406 100644
--- a/rapid/preferencesdialog.py
+++ b/rapid/preferencesdialog.py
@@ -313,7 +313,6 @@ class PreferenceWidgets:
Checks preferences validity
"""
- #~ print logger.debug(dir(self))
return check_pref_valid(self.pref_defn_L0, self.pref_list)
class PhotoNamePrefs(PreferenceWidgets):
@@ -911,6 +910,9 @@ class PreferencesDialog():
If use_dummy_data is True, then samples will not attempt to get
data from actual download files
"""
+ job_code = self.prefs.most_recent_job_code()
+ if job_code is None:
+ job_code = _("Job Code")
self.downloads_today_tracker = DownloadsTodayTracker(
day_start = self.prefs.day_start,
downloads_today = self.prefs.downloads_today[1],
@@ -934,6 +936,8 @@ class PreferencesDialog():
if self.sample_photo is None:
self.sample_photo = rpdfile.SamplePhoto(sequences=self.sequences)
+
+ self.sample_photo.job_code = job_code
self.sample_video = None
if metadatavideo.DOWNLOAD_VIDEO:
@@ -945,6 +949,7 @@ class PreferencesDialog():
self.sample_video.download_start_time = datetime.datetime.now()
if self.sample_video is None:
self.sample_video = rpdfile.SampleVideo(sequences=self.sequences)
+ self.sample_video.job_code = job_code
diff --git a/rapid/prefsrapid.py b/rapid/prefsrapid.py
index 491d75d..81a425b 100644
--- a/rapid/prefsrapid.py
+++ b/rapid/prefsrapid.py
@@ -218,6 +218,12 @@ class RapidPreferences(prefs.Preferences):
return True
return False
+ def most_recent_job_code(self):
+ if len(self.job_codes) > 0:
+ return self.job_codes[0]
+ else:
+ return None
+
def get_pref_lists_by_file_type(self, file_type):
"""
Returns tuple of subfolder and file rename pref lists for the given
@@ -355,20 +361,27 @@ def check_prefs_for_validity(prefs):
"""
Checks preferences for validity (called at program startup)
- Returns true if the passed in preferences are valid, else returns False
+ Returns tuple with two values:
+ 1. true if the passed in preferences are valid, else returns False
+ 2. message if prefs are invalid
"""
- try:
- tests = ((prefs.image_rename, pd.PhotoNamePrefs),
- (prefs.subfolder, pd.PhotoSubfolderPrefs),
- (prefs.video_rename, pd.VideoNamePrefs),
- (prefs.video_subfolder, pd.VideoSubfolderPrefs))
- for pref, pref_widgets in tests:
- p = pref_widgets(pref)
+
+ msg = ''
+ valid = True
+ tests = ((prefs.image_rename, pd.PhotoNamePrefs),
+ (prefs.subfolder, pd.PhotoSubfolderPrefs),
+ (prefs.video_rename, pd.VideoNamePrefs),
+ (prefs.video_subfolder, pd.VideoSubfolderPrefs))
+ for pref, pref_widgets in tests:
+ p = pref_widgets(pref)
+ try:
p.check_prefs_for_validity()
- except:
- return False
- return True
+ except pd.PrefError as e:
+ valid = False
+ msg += e.msg + "\n"
+
+ return (valid, msg)
def insert_pref_lists(prefs, rpd_file):
"""
diff --git a/rapid/rapid.py b/rapid/rapid.py
index 3603025..df60790 100755
--- a/rapid/rapid.py
+++ b/rapid/rapid.py
@@ -36,6 +36,7 @@ import webbrowser
import sys, time, types, os, datetime
import gobject, pango, cairo, array, pangocairo, gio
+import pynotify
from multiprocessing import Process, Pipe, Queue, Event, Value, Array, current_process, log_to_stderr
from ctypes import c_int, c_bool, c_char
@@ -127,9 +128,12 @@ class DeviceCollection(gtk.TreeView):
self.parent_app = parent_app
# device icon & name, size of images on the device (human readable),
- # copy progress (%), copy text
- self.liststore = gtk.ListStore(gtk.gdk.Pixbuf, str, str, float, str)
+ # copy progress (%), copy text, eject button (None if irrelevant),
+ # process id
+ self.liststore = gtk.ListStore(gtk.gdk.Pixbuf, str, str, float, str,
+ gtk.gdk.Pixbuf, int)
self.map_process_to_row = {}
+ self.devices_by_scan_pid = {}
gtk.TreeView.__init__(self, self.liststore)
@@ -145,11 +149,14 @@ class DeviceCollection(gtk.TreeView):
pixbuf_renderer = gtk.CellRendererPixbuf()
text_renderer = gtk.CellRendererText()
text_renderer.props.ellipsize = pango.ELLIPSIZE_MIDDLE
- text_renderer.set_fixed_size(160, -1)
+ text_renderer.set_fixed_size(160, -1)
+ eject_renderer = gtk.CellRendererPixbuf()
column0.pack_start(pixbuf_renderer, expand=False)
column0.pack_start(text_renderer, expand=True)
+ column0.pack_end(eject_renderer, expand=False)
column0.add_attribute(pixbuf_renderer, 'pixbuf', 0)
column0.add_attribute(text_renderer, 'text', 1)
+ column0.add_attribute(eject_renderer, 'pixbuf', 5)
self.append_column(column0)
@@ -165,19 +172,49 @@ class DeviceCollection(gtk.TreeView):
self.append_column(column2)
self.show_all()
+ icontheme = gtk.icon_theme_get_default()
+ try:
+ self.eject_pixbuf = icontheme.load_icon('media-eject', 16,
+ gtk.ICON_LOOKUP_USE_BUILTIN)
+ except:
+ self.eject_pixbuf = gtk.gdk.pixbuf_new_from_file(
+ paths.share_dir('glade3/media-eject.png'))
+
+ self.add_events(gtk.gdk.BUTTON_PRESS_MASK)
+ self.connect('button-press-event', self.button_clicked)
+
+
def add_device(self, process_id, device, progress_bar_text = ''):
# add the row, and get a temporary pointer to the row
size_files = ''
progress = 0.0
+
+ if device.mount is None:
+ eject = None
+ else:
+ eject = self.eject_pixbuf
+
+ self.devices_by_scan_pid[process_id] = device
+
iter = self.liststore.append((device.get_icon(),
device.get_name(),
size_files,
progress,
- progress_bar_text))
+ progress_bar_text,
+ eject,
+ process_id))
self._set_process_map(process_id, iter)
+
+ # adjust scrolled window height, based on row height and number of ready to start downloads
+ # please note, at program startup, self.row_height() will be less than it will be when already running
+ # e.g. when starting with 3 cards, it could be 18, but when adding 2 cards to the already running program
+ # (with one card at startup), it could be 21
+ row_height = self.get_background_area(0, self.get_column(0))[3] + 1
+ height = (len(self.map_process_to_row) + 1) * row_height
+ self.parent_app.device_collection_scrolledwindow.set_size_request(-1, height)
def update_device(self, process_id, total_size_files):
"""
@@ -187,13 +224,17 @@ class DeviceCollection(gtk.TreeView):
iter = self._get_process_map(process_id)
self.liststore.set_value(iter, 2, total_size_files)
else:
- logger.error("This device is unknown")
+ logger.critical("This device is unknown")
+
+ def get_device(self, process_id):
+ return self.devices_by_scan_pid.get(process_id)
def remove_device(self, process_id):
if process_id in self.map_process_to_row:
iter = self._get_process_map(process_id)
self.liststore.remove(iter)
del self.map_process_to_row[process_id]
+ del self.devices_by_scan_pid[process_id]
def get_all_displayed_processes(self):
"""
@@ -237,6 +278,44 @@ class DeviceCollection(gtk.TreeView):
pass
#~ logger.info("Implement update overall progress")
+ def button_clicked(self, widget, event):
+ """
+ Look for left single click on eject button
+ """
+ if event.button == 1:
+ x = int(event.x)
+ y = int(event.y)
+ path, column, cell_x, cell_y = self.get_path_at_pos(x, y)
+ if path is not None:
+ if column == self.get_column(0):
+ if cell_x >= column.get_width() - self.eject_pixbuf.get_width():
+ iter = self.liststore.get_iter(path)
+ if self.liststore.get_value(iter, 5) is not None:
+ self.unmount(process_id = self.liststore.get_value(iter, 6))
+
+ def unmount(self, process_id):
+ device = self.devices_by_scan_pid[process_id]
+ if device.mount is not None:
+ logger.debug("Unmounting device with scan pid %s", process_id)
+ device.mount.unmount(self.unmount_callback)
+
+
+ def unmount_callback(self, mount, result):
+ name = mount.get_name()
+
+ try:
+ mount.unmount_finish(result)
+ logger.debug("%s successfully unmounted" % name)
+ except gio.Error, inst:
+ logger.error("%s did not unmount: %s", name, inst)
+
+ title = _("%(device)s did not unmount") % {'device': name}
+ message = '%s' % inst
+
+ n = pynotify.Notification(title, message)
+ n.set_icon_from_pixbuf(self.parent_app.application_icon)
+ n.show()
+
def create_cairo_image_surface(pil_image, image_width, image_height):
imgd = pil_image.tostring("raw","BGRA", 0, 1)
@@ -283,7 +362,6 @@ class ThumbnailCellRenderer(gtk.CellRenderer):
w = cell_area.width
h = cell_area.height
-
#constrain operations to cell area, allowing for a 1 pixel border
#either side
#~ cairo_context.rectangle(x-1, y-1, w+2, h+2)
@@ -316,9 +394,8 @@ class ThumbnailCellRenderer(gtk.CellRenderer):
cairo_context.stroke()
# draw a thin border around each cell
- # ouch - nasty hardcoding :(
- #~ cairo_context.set_source_rgb(0.33, 0.33, 0.33)
- #~ cairo_context.rectangle(x-6.5, y-9.5, w+14, h+31)
+ #~ cairo_context.set_source_rgb(0.33,0.33,0.33)
+ #~ cairo_context.rectangle(x, y, w, h)
#~ cairo_context.stroke()
#place the image
@@ -362,7 +439,6 @@ class ThumbnailCellRenderer(gtk.CellRenderer):
cairo_context.paint()
def do_get_size(self, widget, cell_area):
- #~ return (0, 0, self.image_area_size, self.image_area_size + self.checkbutton_height + 10)
return (0, 0, self.image_area_size, self.image_area_size + self.text_area_size - self.checkbutton_height + 4)
@@ -372,6 +448,10 @@ gobject.type_register(ThumbnailCellRenderer)
class ThumbnailDisplay(gtk.IconView):
def __init__(self, parent_app):
gtk.IconView.__init__(self)
+ self.set_spacing(0)
+ self.set_row_spacing(5)
+ self.set_margin(25)
+
self.rapid_app = parent_app
self.batch_size = 10
@@ -384,7 +464,7 @@ class ThumbnailDisplay(gtk.IconView):
self.rpd_files = {}
- self.total_files = 0
+ self.total_thumbs_to_generate = 0
self.thumbnails_generated = 0
self.thumbnails = {}
@@ -414,16 +494,17 @@ class ThumbnailDisplay(gtk.IconView):
gtk.gdk.Pixbuf, # 8 status icon
)
-
self.clear()
self.set_model(self.liststore)
+
checkbutton = gtk.CellRendererToggle()
checkbutton.set_radio(False)
checkbutton.props.activatable = True
checkbutton.props.xalign = 0.0
checkbutton.connect('toggled', self.on_checkbutton_toggled)
self.pack_end(checkbutton, expand=False)
+
self.add_attribute(checkbutton, "active", 1)
self.add_attribute(checkbutton, "visible", 6)
@@ -431,29 +512,22 @@ class ThumbnailDisplay(gtk.IconView):
checkbutton_height = checkbutton_size[3]
checkbutton_width = checkbutton_size[2]
- #~ status_icon = gtk.CellRendererPixbuf()
- #~ self.pack_start(status_icon, expand=False)
- #~ self.add_attribute(status_icon, "pixbuf", self.STATUS_ICON_COL)
-
image = ThumbnailCellRenderer(checkbutton_height)
self.pack_start(image, expand=True)
self.add_attribute(image, "image", 0)
self.add_attribute(image, "filename", 3)
self.add_attribute(image, "status", 8)
+
#set the background color to a darkish grey
self.modify_base(gtk.STATE_NORMAL, gtk.gdk.Color('#444444'))
- self.set_spacing(0)
- #~ self.set_column_spacing(0)
- self.set_row_spacing(5)
- #~ self.set_row_spacing(0)
- self.set_margin(25)
+ self.show_all()
self._setup_icons()
-
- self.show_all()
+
+
self.connect('item-activated', self.on_item_activated)
@@ -474,7 +548,7 @@ class ThumbnailDisplay(gtk.IconView):
paths.share_dir('glade3/rapid-photo-downloader-downloaded.svg'),
size, size)
self.download_pending_icon = gtk.gdk.pixbuf_new_from_file_at_size(
- paths.share_dir('glade3/rapid-photo-downloader-download-pending.svg'),
+ paths.share_dir('glade3/rapid-photo-downloader-download-pending.png'),
size, size)
self.downloaded_with_warning_icon = gtk.gdk.pixbuf_new_from_file_at_size(
paths.share_dir('glade3/rapid-photo-downloader-downloaded-with-warning.svg'),
@@ -523,7 +597,7 @@ class ThumbnailDisplay(gtk.IconView):
iter = self.get_iter_from_unique_id(unique_id)
self.liststore.set_value(iter, self.SELECTED_COL, value)
- def add_file(self, rpd_file):
+ def add_file(self, rpd_file, generate_thumbnail):
thumbnail_icon = self.get_stock_icon(rpd_file.file_type)
unique_id = rpd_file.unique_id
@@ -553,7 +627,8 @@ class ThumbnailDisplay(gtk.IconView):
self.treerow_index[unique_id] = treerowref
self.rpd_files[unique_id] = rpd_file
- self.total_files += 1
+ if generate_thumbnail:
+ self.total_thumbs_to_generate += 1
def get_sample_file(self, file_type):
"""Returns an rpd_file for of a given file type, or None if it does
@@ -701,24 +776,56 @@ class ThumbnailDisplay(gtk.IconView):
return True
return False
- def get_files_checked_for_download(self):
+ def get_files_checked_for_download(self, scan_pid):
"""
Returns a dict of scan ids and associated files the user has indicated
they want to download
+
+ If scan_pid is not None, then returns only those files from that scan_pid
"""
files = dict()
- for row in self.liststore:
- if row[self.SELECTED_COL]:
- rpd_file = self.rpd_files[row[self.UNIQUE_ID_COL]]
+ if scan_pid is None:
+ for row in self.liststore:
+ if row[self.SELECTED_COL]:
+ rpd_file = self.rpd_files[row[self.UNIQUE_ID_COL]]
+ if rpd_file.status not in DOWNLOADED:
+ scan_pid = rpd_file.scan_pid
+ if scan_pid in files:
+ files[scan_pid].append(rpd_file)
+ else:
+ files[scan_pid] = [rpd_file,]
+ else:
+ files[scan_pid] = []
+ for unique_id in self.process_index[scan_pid]:
+ rpd_file = self.rpd_files[unique_id]
if rpd_file.status not in DOWNLOADED:
- scan_pid = rpd_file.scan_pid
- if scan_pid in files:
+ iter = self.get_iter_from_unique_id(unique_id)
+ if self.liststore.get_value(iter, self.SELECTED_COL):
files[scan_pid].append(rpd_file)
- else:
- files[scan_pid] = [rpd_file,]
-
return files
+ def get_no_files_remaining(self, scan_pid):
+ """
+ Returns the number of files that have not yet been downloaded for the
+ scan_pid
+ """
+ i = 0
+ for unique_id in self.process_index[scan_pid]:
+ rpd_file = self.rpd_files[unique_id]
+ if rpd_file.status == STATUS_NOT_DOWNLOADED:
+ i += 1
+ return i
+
+ def files_remain_to_download(self):
+ """
+ Returns True if any files remain that are not downloaded, else returns
+ False
+ """
+ for row in self.liststore:
+ if row[self.DOWNLOAD_STATUS_COL] == STATUS_NOT_DOWNLOADED:
+ return True
+ return False
+
def mark_download_pending(self, files_by_scan_pid):
"""
@@ -729,7 +836,11 @@ class ThumbnailDisplay(gtk.IconView):
unique_id = rpd_file.unique_id
self.rpd_files[unique_id].status = STATUS_DOWNLOAD_PENDING
iter = self.get_iter_from_unique_id(unique_id)
- self.liststore.set_value(iter, self.CHECKBUTTON_VISIBLE_COL, False)
+ if not self.rapid_app.auto_start_is_on:
+ # don't make the checkbox invisible immediately when on auto start
+ # otherwise the box can be rendred at the wrong size, as it is
+ # realized after the checkbox has already been made invisible
+ self.liststore.set_value(iter, self.CHECKBUTTON_VISIBLE_COL, False)
self.liststore.set_value(iter, self.SELECTED_COL, False)
self.liststore.set_value(iter, self.DOWNLOAD_STATUS_COL, STATUS_DOWNLOAD_PENDING)
icon = self.get_status_icon(STATUS_DOWNLOAD_PENDING)
@@ -752,6 +863,7 @@ class ThumbnailDisplay(gtk.IconView):
self.liststore.set_value(iter, self.DOWNLOAD_STATUS_COL, rpd_file.status)
icon = self.get_status_icon(rpd_file.status)
self.liststore.set_value(iter, self.STATUS_ICON_COL, icon)
+ self.liststore.set_value(iter, self.CHECKBUTTON_VISIBLE_COL, False)
self.rpd_files[rpd_file.unique_id] = rpd_file
def generate_thumbnails(self, scan_pid):
@@ -803,12 +915,15 @@ class ThumbnailDisplay(gtk.IconView):
# clear progress bar information if all thumbnails have been
# extracted
- if self.thumbnails_generated == self.total_files:
+ if self.thumbnails_generated == self.total_thumbs_to_generate:
self.rapid_app.download_progressbar.set_fraction(0.0)
self.rapid_app.download_progressbar.set_text('')
+ self.thumbnails_generated = 0
+ self.total_thumbs_to_generate = 0
+
else:
self.rapid_app.download_progressbar.set_fraction(
- float(self.thumbnails_generated) / self.total_files)
+ float(self.thumbnails_generated) / self.total_thumbs_to_generate)
return True
@@ -865,11 +980,13 @@ class TaskManager:
self.batch_size = batch_size
self.paused = False
+ self.no_tasks = 0
def add_task(self, task):
pid = self._setup_task(task)
logger.debug("TaskManager PID: %s", pid)
+ self.no_tasks += 1
return pid
@@ -982,10 +1099,12 @@ class CopyFilesManager(TaskManager):
video_download_folder = task[1]
scan_pid = task[2]
files = task[3]
+ generate_thumbnails = task[4]
copy_files = copyfiles.CopyFiles(photo_download_folder,
video_download_folder,
- files, scan_pid, self.batch_size,
+ files, generate_thumbnails,
+ scan_pid, self.batch_size,
task_process_conn, terminate_queue, run_event)
copy_files.start()
self._processes.append((copy_files, terminate_queue, run_event))
@@ -1188,6 +1307,7 @@ class RapidApp(dbus.service.Object):
# Initialize widgets in the main window, and variables that point to them
self._init_widgets()
+ self._init_pynotify()
# Initialize job code handling
self._init_job_code()
@@ -1205,8 +1325,9 @@ class RapidApp(dbus.service.Object):
self.rapidapp.show()
# Check program preferences - don't allow auto start if there is a problem
- prefs_valid = prefsrapid.check_prefs_for_validity(self.prefs)
- do_not_allow_auto_start = prefs_valid
+ prefs_valid, msg = prefsrapid.check_prefs_for_validity(self.prefs)
+ if not prefs_valid:
+ self.notify_prefs_are_invalid(details=msg)
# Initialize variables with which to track important downloads results
self._init_download_tracking()
@@ -1218,12 +1339,10 @@ class RapidApp(dbus.service.Object):
# Setup devices from which to download from and backup to
self.setup_devices(on_startup=True, on_preference_change=False,
- do_not_allow_auto_start=do_not_allow_auto_start)
+ block_auto_start=not prefs_valid)
# Ensure the device collection scrolled window is not too small
self._set_device_collection_size()
-
- #~ preferencesdialog.PreferencesDialog(self)
def on_rapidapp_destroy(self, widget, data=None):
@@ -1312,7 +1431,7 @@ class RapidApp(dbus.service.Object):
def on_refresh_action_activate(self, action):
self.setup_devices(on_startup=False, on_preference_change=False,
- do_not_allow_auto_start=True)
+ block_auto_start=True)
def on_get_help_action_activate(self, action):
webbrowser.open("http://www.damonlynch.net/rapid/help.html")
@@ -1379,7 +1498,7 @@ class RapidApp(dbus.service.Object):
self.vmonitor.connect("mount-removed", self.on_mount_removed)
- def setup_devices(self, on_startup, on_preference_change, do_not_allow_auto_start):
+ def setup_devices(self, on_startup, on_preference_change, block_auto_start):
"""
Setup devices from which to download from and backup to
@@ -1392,6 +1511,9 @@ class RapidApp(dbus.service.Object):
on_preference_change should be True if this is being called as the
result of a preference being changed
+ block_auto_start should be True if automation options to automatically
+ start a download should be ignored
+
Removes any image media that are currently not downloaded,
or finished downloading
"""
@@ -1449,7 +1571,7 @@ class RapidApp(dbus.service.Object):
# Display amount of free space in a status bar message
self.display_free_space()
- if do_not_allow_auto_start:
+ if block_auto_start:
self.auto_start_is_on = False
else:
self.auto_start_is_on = ((not on_preference_change) and
@@ -1475,6 +1597,8 @@ class RapidApp(dbus.service.Object):
scan_pid = self.scan_manager.add_task(device)
if mount is not None:
self.mounts_by_path[path] = scan_pid
+ if not mounts:
+ self.set_download_action_sensitivity()
def get_use_device(self, device):
""" Prompt user whether or not to download from this device """
@@ -1553,28 +1677,30 @@ class RapidApp(dbus.service.Object):
return
path = mount.get_root().get_path()
+ if path is not None:
- if path in self.prefs.device_blacklist and self.search_for_PSD():
- logger.info("Device %(device)s (%(path)s) ignored" % {
- 'device': mount.get_name(), 'path': path})
- else:
- is_backup_mount = self.check_if_backup_mount(path)
-
- if is_backup_mount:
- if path not in self.backup_devices:
- self.backup_devices[path] = mount
- self.display_free_space()
-
- elif self.prefs.device_autodetection and (dv.is_DCIM_device(path) or
- self.search_for_PSD()):
-
- device = dv.Device(path=path, mount=mount)
- if self.search_for_PSD() and path not in self.prefs.device_whitelist:
- # prompt user if device should be used or not
- self.get_use_device(device)
- else:
- scan_pid = self.scan_manager.add_task(device)
- self.mounts_by_path[path] = scan_pid
+ if path in self.prefs.device_blacklist and self.search_for_PSD():
+ logger.info("Device %(device)s (%(path)s) ignored" % {
+ 'device': mount.get_name(), 'path': path})
+ else:
+ is_backup_mount = self.check_if_backup_mount(path)
+
+ if is_backup_mount:
+ if path not in self.backup_devices:
+ self.backup_devices[path] = mount
+ self.display_free_space()
+
+ elif self.prefs.device_autodetection and (dv.is_DCIM_device(path) or
+ self.search_for_PSD()):
+
+ self.auto_start_is_on = self.prefs.auto_download_upon_device_insertion
+ device = dv.Device(path=path, mount=mount)
+ if self.search_for_PSD() and path not in self.prefs.device_whitelist:
+ # prompt user if device should be used or not
+ self.get_use_device(device)
+ else:
+ scan_pid = self.scan_manager.add_task(device)
+ self.mounts_by_path[path] = scan_pid
def on_mount_removed(self, vmonitor, mount):
"""
@@ -1643,7 +1769,10 @@ class RapidApp(dbus.service.Object):
logger.debug("Download activated")
if self.download_action_is_download:
- self.start_download()
+ if self.need_job_code_for_naming and not self.prompting_for_job_code:
+ self.get_job_code()
+ else:
+ self.start_download()
else:
self.pause_download()
@@ -1663,10 +1792,10 @@ class RapidApp(dbus.service.Object):
"""
if not self.download_is_occurring():
sensitivity = False
- if self.scan_manager.get_no_active_processes() == 0:
+ if self.scan_manager.no_tasks == 0:
if self.thumbnails.files_are_checked_to_download():
sensitivity = True
-
+
self.download_action.set_sensitive(sensitivity)
def set_download_action_label(self, is_download):
@@ -1687,21 +1816,19 @@ class RapidApp(dbus.service.Object):
def _init_job_code(self):
- self.job_code = None
+ self.job_code = self.last_chosen_job_code = ''
self.need_job_code_for_naming = self.prefs.any_pref_uses_job_code()
-
- def assign_job_code(self, code):
- """ assign job code (which may be empty) to global variable and update user preferences
+ self.prompting_for_job_code = False
+
+ def assign_job_code(self, code):
+ """ assign job code (which may be empty) to member variable and update user preferences
Update preferences only if code is not empty. Do not duplicate job code.
"""
- # FIXME
- #~ global job_code
- if code == None:
- code = ''
- job_code = code
+
+ self.job_code = code
- if job_code:
+ if code:
#add this value to job codes preferences
#delete any existing value which is the same
#(this way it comes to the front, which is where it should be)
@@ -1713,7 +1840,7 @@ class RapidApp(dbus.service.Object):
self.prefs.job_codes = [code] + jcs
- def _get_job_code(self, post_job_code_entry_callback, autoStart, downloadSelected):
+ def _get_job_code(self, post_job_code_entry_callback):
""" prompt for a job code """
if not self.prompting_for_job_code:
@@ -1735,29 +1862,19 @@ class RapidApp(dbus.service.Object):
self.prompting_for_job_code = False
if user_chose_code:
+ if code is None:
+ code = ''
self.assign_job_code(code)
self.last_chosen_job_code = code
- #~ self.selection_vbox.selection_treeview.apply_job_code(code, overwrite=False, to_all_rows = not downloadSelected)
- #~ threads = self.selection_vbox.selection_treeview.set_status_to_download_pending(selected_only = downloadSelected)
- #~ if downloadSelected or not autoStart:
- #~ logger.debug("Starting downloads")
- #~ self.startDownload(threads)
- #~ else:
- #~ # autostart is true
- #~ logger.debug("Starting downloads that have been waiting for a Job Code")
- #~ for w in workers.getWaitingForJobCodeWorkers():
- #~ w.startStop()
+ logger.debug("Job Code %s entered", self.job_code)
+ self.start_download()
else:
# user cancelled
- pass
- #~ logger.debug("No Job Code entered")
- #~ for w in workers.getWaitingForJobCodeWorkers():
- #~ w.waitingForJobCode = False
- #~
- #~ if autoStart:
- #~ for w in workers.getAutoStartWorkers():
- #~ w.autoStart = False
+ logger.debug("No Job Code entered")
+ self.job_code = ''
+ self.auto_start_is_on = False
+
# # #
# Download
@@ -1780,13 +1897,14 @@ class RapidApp(dbus.service.Object):
- def start_download(self):
+ def start_download(self, scan_pid=None):
"""
Start download, renaming and backup of files.
+
+ If scan_pid is specified, only files matching it will be downloaded
"""
- self.download_start_time = datetime.datetime.now()
- files_by_scan_pid = self.thumbnails.get_files_checked_for_download()
+ files_by_scan_pid = self.thumbnails.get_files_checked_for_download(scan_pid)
folders_valid, invalid_dirs = self.check_download_folder_validity(files_by_scan_pid)
if not folders_valid:
@@ -1798,6 +1916,11 @@ class RapidApp(dbus.service.Object):
self.log_error(config.CRITICAL_ERROR, _("Download cannot proceed"),
msg)
else:
+ # set time download is starting if it is not already set
+ # it is unset when all downloads are completed
+ if self.download_start_time is None:
+ self.download_start_time = datetime.datetime.now()
+
self.thumbnails.mark_download_pending(files_by_scan_pid)
for scan_pid in files_by_scan_pid:
files = files_by_scan_pid[scan_pid]
@@ -1813,7 +1936,14 @@ class RapidApp(dbus.service.Object):
if not self.download_action_is_download:
self.set_download_action_label(is_download = True)
+ self.time_check.pause()
+
def resume_download(self):
+ for scan_pid in self.download_active_by_scan_pid:
+ self.time_remaining.set_time_mark(scan_pid)
+
+ self.time_check.set_download_mark()
+
self.copy_files_manager.start()
def download_files(self, files, scan_pid):
@@ -1831,16 +1961,25 @@ class RapidApp(dbus.service.Object):
video_download_folder = self.prefs.video_download_folder
else:
video_download_folder = None
-
+
+ download_size = self.size_files_to_be_downloaded(files)
self.download_tracker.init_stats(scan_pid=scan_pid,
- bytes=self.size_files_to_be_downloaded(files),
+ bytes=download_size,
no_files=len(files))
+
+ self.time_remaining.set(scan_pid, download_size)
+ self.time_check.set_download_mark()
self.download_active_by_scan_pid.append(scan_pid)
+
+
+ if len(self.download_active_by_scan_pid) > 1:
+ self.display_summary_notification = True
+
# Initiate copy files process
self.copy_files_manager.add_task((photo_download_folder,
video_download_folder, scan_pid,
- files))
+ files, self.auto_start_is_on))
def copy_files_results(self, source, condition):
"""
@@ -1856,12 +1995,14 @@ class RapidApp(dbus.service.Object):
scan_pid, photo_temp_dir, video_temp_dir = data
self.temp_dirs_by_scan_pid[scan_pid] = (photo_temp_dir, video_temp_dir)
elif msg_type == rpdmp.MSG_BYTES:
- scan_pid, total_downloaded = data
+ scan_pid, total_downloaded, chunk_downloaded = data
self.download_tracker.set_total_bytes_copied(scan_pid,
total_downloaded)
+ self.time_check.increment(bytes_downloaded=chunk_downloaded)
percent_complete = self.download_tracker.get_percent_complete(scan_pid)
self.device_collection.update_progress(scan_pid, percent_complete,
None, None)
+ self.time_remaining.update(scan_pid, total_downloaded)
elif msg_type == rpdmp.MSG_FILE:
download_succeeded, rpd_file, download_count, temp_full_file_name = data
@@ -1877,14 +2018,18 @@ class RapidApp(dbus.service.Object):
rpd_file.strip_characters = self.prefs.strip_characters
rpd_file.download_folder = self.prefs.get_download_folder_for_file_type(rpd_file.file_type)
rpd_file.download_conflict_resolution = self.prefs.download_conflict_resolution
- rpd_file.synchronize_raw_jpg = self.prefs.must_synchronize_raw_jpg()
+ rpd_file.synchronize_raw_jpg = self.prefs.must_synchronize_raw_jpg()
+ rpd_file.job_code = self.job_code
self.subfolder_file_manager.rename_file_and_move_to_subfolder(
download_succeeded,
download_count,
rpd_file
)
-
+ elif msg_type == rpdmp.MSG_THUMB:
+ #~ unique_id, thumbnail, thumbnail_icon = data
+ #~ thumbnail_data = (unique_id
+ self.thumbnails.update_thumbnail(data)
return True
else:
@@ -1897,7 +2042,9 @@ class RapidApp(dbus.service.Object):
def download_is_occurring(self):
"""Returns True if a file is currently being downloaded or renamed
"""
- return not len(self.download_active_by_scan_pid) == 0
+ v = not len(self.download_active_by_scan_pid) == 0
+ #~ logger.info("Download is occurring: %s", v)
+ return v
# # #
# Create folder and file names for downloaded files
@@ -1921,48 +2068,233 @@ class RapidApp(dbus.service.Object):
self.log_error(config.WARNING, rpd_file.error_title,
rpd_file.error_msg, rpd_file.error_extra_detail)
- self.download_tracker.file_downloaded_increment(scan_pid)
- self._update_file_download_device_progress(scan_pid, unique_id)
+ self.download_tracker.file_downloaded_increment(scan_pid,
+ rpd_file.file_type,
+ rpd_file.status)
+
+ completed, files_remaining = self._update_file_download_device_progress(scan_pid, unique_id)
+
+ if self.download_is_occurring():
+ self.update_time_remaining()
- download_count = self.download_tracker.get_download_count_for_file(unique_id)
- if download_count == self.download_tracker.get_no_files_in_download(scan_pid):
- # Last file has been downloaded, so clean temp directory
+ if completed:
+ # Last file for this scan pid has been downloaded, so clean temp directory
logger.debug("Purging temp directories")
self._clean_temp_dirs_for_scan_pid(scan_pid)
- self.download_tracker.purge(scan_pid)
self.download_active_by_scan_pid.remove(scan_pid)
+ self.time_remaining.remove(scan_pid)
+ self.notify_downloaded_from_device(scan_pid)
+ if files_remaining == 0 and self.prefs.auto_unmount:
+ self.device_collection.unmount(scan_pid)
+
if not self.download_is_occurring():
logger.debug("Download completed")
+ self.notify_download_complete()
+ self.download_progressbar.set_fraction(0.0)
self.prefs.stored_sequence_no = self.stored_sequence_value.value
self.downloads_today_tracker.set_raw_downloads_today_from_int(self.downloads_today_value.value)
self.downloads_today_tracker.set_raw_downloads_today_date(self.downloads_today_date_value.value)
self.prefs.set_downloads_today_from_tracker(self.downloads_today_tracker)
-
+
+ if ((self.prefs.auto_exit and self.download_tracker.no_errors_or_warnings())
+ or self.prefs.auto_exit_force):
+ if not self.thumbnails.files_remain_to_download():
+ gtk.main_quit()
+
+ self.download_tracker.purge_all()
+ self.speed_label.set_label(" ")
+
self.display_free_space()
self.set_download_action_label(is_download=True)
self.set_download_action_sensitivity()
+
+ self.job_code = ''
+ self.download_start_time = None
+
+
+ def update_time_remaining(self):
+ update, download_speed = self.time_check.check_for_update()
+ if update:
+ self.speed_label.set_text(download_speed)
+
+ time_remaining = self.time_remaining.time_remaining()
+ if time_remaining:
+ secs = int(time_remaining)
+
+ if secs == 0:
+ message = ""
+ elif secs == 1:
+ message = _("About 1 second remaining")
+ elif secs < 60:
+ message = _("About %i seconds remaining") % secs
+ elif secs == 60:
+ message = _("About 1 minute remaining")
+ else:
+ # Translators: in the text '%(minutes)i:%(seconds)02i', only the : should be translated, if needed.
+ # '%(minutes)i' and '%(seconds)02i' should not be modified or left out. They are used to format and display the amount
+ # of time the download has remainging, e.g. 'About 5:36 minutes remaining'
+ message = _("About %(minutes)i:%(seconds)02i minutes remaining") % {'minutes': secs / 60, 'seconds': secs % 60}
+
+ self.rapid_statusbar.pop(self.statusbar_context_id)
+ self.rapid_statusbar.push(self.statusbar_context_id, message)
+
+ def file_types_by_number(self, no_photos, no_videos):
+ """
+ returns a string to be displayed to the user that can be used
+ to show if a value refers to photos or videos or both, or just one
+ of each
+ """
+ if (no_videos > 0) and (no_photos > 0):
+ v = _('photos and videos')
+ elif (no_videos == 0) and (no_photos == 0):
+ v = _('photos or videos')
+ elif no_videos > 0:
+ if no_videos > 1:
+ v = _('videos')
+ else:
+ v = _('video')
else:
- pass
- #~ logger.info("Download count: %s", download_count)
-
+ if no_photos > 1:
+ v = _('photos')
+ else:
+ v = _('photo')
+ return v
+ def notify_downloaded_from_device(self, scan_pid):
+ device = self.device_collection.get_device(scan_pid)
+
+ if device.mount is None:
+ notificationName = PROGRAM_NAME
+ else:
+ notificationName = device.get_name()
+
+ no_photos_downloaded = self.download_tracker.get_no_files_downloaded(
+ scan_pid, rpdfile.FILE_TYPE_PHOTO)
+ no_videos_downloaded = self.download_tracker.get_no_files_downloaded(
+ scan_pid, rpdfile.FILE_TYPE_VIDEO)
+ no_photos_failed = self.download_tracker.get_no_files_failed(
+ scan_pid, rpdfile.FILE_TYPE_PHOTO)
+ no_videos_failed = self.download_tracker.get_no_files_failed(
+ scan_pid, rpdfile.FILE_TYPE_VIDEO)
+ no_files_downloaded = no_photos_downloaded + no_videos_downloaded
+ no_files_failed = no_photos_failed + no_videos_failed
+ no_warnings = self.download_tracker.get_no_warnings(scan_pid)
+
+ file_types = self.file_types_by_number(no_photos_downloaded, no_videos_downloaded)
+ file_types_failed = self.file_types_by_number(no_photos_failed, no_videos_failed)
+ message = _("%(noFiles)s %(filetypes)s downloaded") % \
+ {'noFiles':no_files_downloaded, 'filetypes': file_types}
+
+ if no_files_failed:
+ message += "\n" + _("%(noFiles)s %(filetypes)s failed to download") % {'noFiles':no_files_failed, 'filetypes':file_types_failed}
+
+ if no_warnings:
+ message = "%s\n%s " % (message, no_warnings) + _("warnings")
+
+ n = pynotify.Notification(notificationName, message)
+ n.set_icon_from_pixbuf(device.get_icon(self.notification_icon_size))
+
+ n.show()
+
+ def notify_download_complete(self):
+ if self.display_summary_notification:
+ message = _("All downloads complete")
+
+ # photo downloads
+ photo_downloads = self.download_tracker.total_photos_downloaded
+ if photo_downloads:
+ filetype = self.file_types_by_number(photo_downloads, 0)
+ message += "\n" + _("%(number)s %(numberdownloaded)s") % \
+ {'number': photo_downloads,
+ 'numberdownloaded': _("%(filetype)s downloaded") % \
+ {'filetype': filetype}}
+
+ # photo failures
+ photo_failures = self.download_tracker.total_photo_failures
+ if photo_failures:
+ filetype = self.file_types_by_number(photo_failures, 0)
+ message += "\n" + _("%(number)s %(numberdownloaded)s") % \
+ {'number': photo_failures,
+ 'numberdownloaded': _("%(filetype)s failed to download") % \
+ {'filetype': filetype}}
+
+ # video downloads
+ video_downloads = self.download_tracker.total_videos_downloaded
+ if video_downloads:
+ filetype = self.file_types_by_number(0, video_downloads)
+ message += "\n" + _("%(number)s %(numberdownloaded)s") % \
+ {'number': video_downloads,
+ 'numberdownloaded': _("%(filetype)s downloaded") % \
+ {'filetype': filetype}}
+
+ # video failures
+ video_failures = self.download_tracker.total_video_failures
+ if video_failures:
+ filetype = self.file_types_by_number(0, video_failures)
+ message += "\n" + _("%(number)s %(numberdownloaded)s") % \
+ {'number': video_failures,
+ 'numberdownloaded': _("%(filetype)s failed to download") % \
+ {'filetype': filetype}}
+
+ # warnings
+ warnings = self.download_tracker.total_warnings
+ if warnings:
+ message += "\n" + _("%(number)s %(numberdownloaded)s") % \
+ {'number': warnings,
+ 'numberdownloaded': _("warnings")}
+
+ n = pynotify.Notification(PROGRAM_NAME, message)
+ n.set_icon_from_pixbuf(self.application_icon)
+ n.show()
+ self.display_summary_notification = False # don't show it again unless needed
+
def _update_file_download_device_progress(self, scan_pid, unique_id):
"""
Increments the progress bar for an individual device
+
+ Returns if the download is completed for that scan_pid
+ It also returns the number of files remaining for the scan_pid, BUT
+ this value is valid ONLY if the download is completed
"""
- progress_bar_text = _("%(number)s of %(total)s %(filetypes)s") % \
- {'number': self.download_tracker.get_download_count_for_file(unique_id),
- 'total': self.download_tracker.get_no_files_in_download(scan_pid),
- 'filetypes': self.download_tracker.get_file_types_present(scan_pid)}
+
+ files_downloaded = self.download_tracker.get_download_count_for_file(unique_id)
+ files_to_download = self.download_tracker.get_no_files_in_download(scan_pid)
+ file_types = self.download_tracker.get_file_types_present(scan_pid)
+ completed = files_downloaded == files_to_download
+
+ if completed:
+ files_remaining = self.thumbnails.get_no_files_remaining(scan_pid)
+ else:
+ files_remaining = 0
+
+ if completed and files_remaining:
+ # e.g.: 3 of 205 photos and videos (202 remaining)
+ progress_bar_text = _("%(number)s of %(total)s %(filetypes)s (%(remaining)s remaining)") % {
+ 'number': files_downloaded,
+ 'total': files_to_download,
+ 'filetypes': file_types,
+ 'remaining': files_remaining}
+ else:
+ # e.g.: 205 of 205 photos and videos
+ progress_bar_text = _("%(number)s of %(total)s %(filetypes)s") % \
+ {'number': files_downloaded,
+ 'total': files_to_download,
+ 'filetypes': file_types}
percent_complete = self.download_tracker.get_percent_complete(scan_pid)
self.device_collection.update_progress(scan_pid=scan_pid,
percent_complete=percent_complete,
progress_bar_text=progress_bar_text,
- bytes_downloaded=None)
+ bytes_downloaded=None)
+
+ percent_complete = self.download_tracker.get_overall_percent_complete()
+ self.download_progressbar.set_fraction(percent_complete)
+
+ return (completed, files_remaining)
+
def _clean_all_temp_dirs(self):
"""
@@ -1999,7 +2331,6 @@ class RapidApp(dbus.service.Object):
children = path.enumerate_children(file_attributes)
for child in children:
f = path.get_child(child.get_name())
- #~ logger.info("Deleting %s", child.get_name())
f.delete(cancellable=None)
path.delete(cancellable=None)
logger.debug("Deleted directory %s", directory)
@@ -2011,20 +2342,6 @@ class RapidApp(dbus.service.Object):
# # #
# Preferences
# # #
-
- def check_prefs_on_startup(self):
- """
- Checks the image & video rename, and subfolder prefs for validity.
-
- Returns True if no problem, false otherwise.
- """
- prefs_ok = prefsrapid.check_prefs_for_validity(self.prefs.image_rename,
- self.prefs.subfolder,
- self.prefs.video_rename,
- self.prefs.video_subfolder)
- if not prefs_ok:
- logger.error("There is an error in the program preferences relating to file renaming and subfolder creation. Some preferences will be reset.")
- return prefs_ok
def _init_prefs(self):
@@ -2115,12 +2432,13 @@ class RapidApp(dbus.service.Object):
def post_preference_change(self):
if self.rerun_setup_available_image_and_video_media:
- if self.using_volume_monitor():
- self.start_volume_monitor()
+
logger.info("Download device settings preferences were changed.")
self.thumbnails.clear_all()
- self.setup_devices(on_startup = False, on_preference_change = True, do_not_allow_auto_start = True)
+ self.setup_devices(on_startup = False, on_preference_change = True, block_auto_start = True)
+ self._set_device_collection_size()
+
if self.main_notebook.get_current_page() == 1: # preview of file
self.main_notebook.set_current_page(0)
@@ -2148,6 +2466,36 @@ class RapidApp(dbus.service.Object):
# Main app window management and setup
# # #
+ def _init_pynotify(self):
+ """
+ Initialize system notification messages
+ """
+
+ if not pynotify.init("TestCaps"):
+ logger.critical("Problem using pynotify.")
+ gtk.main_quit()
+
+ do_not_size_icon = False
+ self.notification_icon_size = 48
+ try:
+ info = pynotify.get_server_info()
+ except:
+ logger.warning("Desktop environment notification server is incorrectly configured.")
+ else:
+ try:
+ if info["name"] == 'notify-osd':
+ do_not_size_icon = True
+ except:
+ pass
+
+ if do_not_size_icon:
+ self.application_icon = gtk.gdk.pixbuf_new_from_file(
+ paths.share_dir('glade3/rapid-photo-downloader.svg'))
+ else:
+ self.application_icon = gtk.gdk.pixbuf_new_from_file_at_size(
+ paths.share_dir('glade3/rapid-photo-downloader.svg'),
+ self.notification_icon_size, self.notification_icon_size)
+
def _init_widgets(self):
"""
Initialize widgets in the main window, and variables that point to them
@@ -2167,6 +2515,7 @@ class RapidApp(dbus.service.Object):
self.next_image_action = builder.get_object("next_image_action")
self.prev_image_action = builder.get_object("prev_image_action")
self.menu_log_window = builder.get_object("menu_log_window")
+ self.speed_label = builder.get_object("speed_label")
# Only enable this action when actually displaying a preview
self.next_image_action.set_sensitive(False)
@@ -2200,9 +2549,17 @@ class RapidApp(dbus.service.Object):
# Download action state
self.download_action_is_download = True
- #job code initialization
- self.last_chosen_job_code = None
- self.prompting_for_job_code = False
+ # Track the time a download commences
+ self.download_start_time = None
+
+ # Whether a system wide notifcation message should be shown
+ # after a download has occurred in parallel
+ self.display_summary_notification = False
+
+ # Values used to display how much longer a download will take
+ self.time_remaining = downloadtracker.TimeRemaining()
+ self.time_check = downloadtracker.TimeCheck()
+
def _set_window_size(self):
"""
@@ -2375,6 +2732,12 @@ class RapidApp(dbus.service.Object):
self.error_log.widget.show()
else:
self.error_log.widget.hide()
+
+ def notify_prefs_are_invalid(self, details):
+ title = _("Program preferences are invalid")
+ logger.critical(title)
+ self.log_error(severity=config.CRITICAL_ERROR, problem=title,
+ details=details)
# # #
@@ -2576,6 +2939,7 @@ class RapidApp(dbus.service.Object):
if conn_type == rpdmp.CONN_COMPLETE:
connection.close()
+ self.scan_manager.no_tasks -= 1
size, file_type_counter, scan_pid = data
size = format_size_for_user(bytes=size)
results_summary, file_types_present = file_type_counter.summarize_file_count()
@@ -2585,13 +2949,20 @@ class RapidApp(dbus.service.Object):
self.device_collection.update_device(scan_pid, size)
self.device_collection.update_progress(scan_pid, 0.0, results_summary, 0)
self.testing_auto_exit_trip_counter += 1
+ self.set_download_action_sensitivity()
+
if self.testing_auto_exit_trip_counter == self.testing_auto_exit_trip and self.testing_auto_exit:
self.on_rapidapp_destroy(self.rapidapp)
else:
- if not self.testing_auto_exit:
+ if not self.testing_auto_exit and not self.auto_start_is_on:
self.download_progressbar.set_text(_("Thumbnails"))
self.thumbnails.generate_thumbnails(scan_pid)
- self.set_download_action_sensitivity()
+ elif self.auto_start_is_on:
+ if self.need_job_code_for_naming and not self.job_code:
+ self.get_job_code()
+ else:
+ self.start_download(scan_pid=scan_pid)
+
self.set_thumbnail_sort()
# signal that no more data is coming, finishing io watch for this pipe
@@ -2601,7 +2972,8 @@ class RapidApp(dbus.service.Object):
logger.critical("incoming pipe length is unexpectedly long: %s" % len(data))
else:
for rpd_file in data:
- self.thumbnails.add_file(rpd_file)
+ self.thumbnails.add_file(rpd_file=rpd_file,
+ generate_thumbnail = not self.auto_start_is_on)
# must return True for this method to be called again
return True
diff --git a/rapid/rpdmultiprocessing.py b/rapid/rpdmultiprocessing.py
index 7fdd252..4a06fc9 100644
--- a/rapid/rpdmultiprocessing.py
+++ b/rapid/rpdmultiprocessing.py
@@ -21,5 +21,6 @@ CONN_COMPLETE = 1
MSG_BYTES = 0
MSG_FILE = 1
MSG_TEMP_DIRS = 2
+MSG_THUMB = 3
MSG_SEQUENCE_VALUE = 0
diff --git a/rapid/subfolderfile.py b/rapid/subfolderfile.py
index c55b6d8..7e4a495 100644
--- a/rapid/subfolderfile.py
+++ b/rapid/subfolderfile.py
@@ -328,7 +328,11 @@ class SubfolderFile(multiprocessing.Process):
if rpd_file.has_problem():
rpd_file.status = config.STATUS_DOWNLOADED_WITH_WARNING
-
+ rpd_file.error_title = rpd_file.problem.get_title()
+ rpd_file.error_msg = _("%(problem)s\nFile: %(file)s") % \
+ {'problem': rpd_file.problem.get_problems(),
+ 'file': rpd_file.full_file_name}
+
# Check for any errors
if not rpd_file.download_subfolder or not rpd_file.download_name:
if not rpd_file.download_subfolder and not rpd_file.download_name:
diff --git a/rapid/thumbnail.py b/rapid/thumbnail.py
index 9df2147..e9c7e66 100644
--- a/rapid/thumbnail.py
+++ b/rapid/thumbnail.py
@@ -374,11 +374,9 @@ class GenerateThumbnails(multiprocessing.Process):
f.file_type,
(160, 120), (100,100))
- #~ logger.debug("Appending results for %s" %f.full_file_name)
self.results.append((f.unique_id, thumbnail_icon, thumbnail))
counter += 1
if counter == self.batch_size:
- #~ logger.debug("Sending results....")
self.results_pipe.send((rpdmp.CONN_PARTIAL, self.results))
self.results = []
counter = 0
@@ -386,7 +384,6 @@ class GenerateThumbnails(multiprocessing.Process):
if counter > 0:
# send any remaining results
- #~ logger.debug("Sending final results....")
self.results_pipe.send((rpdmp.CONN_PARTIAL, self.results))
self.results_pipe.send((rpdmp.CONN_COMPLETE, None))
self.results_pipe.close()
diff --git a/setup.py b/setup.py
index 6d33af9..b6c36d4 100644
--- a/setup.py
+++ b/setup.py
@@ -50,8 +50,9 @@ package_data={'rapid': ['glade3/about.ui',
'glade3/prefs.ui',
'glade3/rapid.ui',
'glade3/errorlog.ui',
+ 'glade3/media-eject.png',
'glade3/rapid-photo-downloader.svg',
- 'glade3/rapid-photo-downloader-download-pending.svg',
+ 'glade3/rapid-photo-downloader-download-pending.png',
'glade3/rapid-photo-downloader-downloaded-with-error.svg',
'glade3/rapid-photo-downloader-downloaded-with-warning.svg',
'glade3/rapid-photo-downloader-downloaded.svg',