diff options
-rw-r--r-- | PKG-INFO | 2 | ||||
-rw-r--r-- | po/cs.po | 2802 | ||||
-rw-r--r-- | po/fr.po | 334 | ||||
-rw-r--r-- | po/rapid-photo-downloader.pot | 262 | ||||
-rw-r--r-- | po/ru.po | 2914 | ||||
-rw-r--r-- | rapid/ChangeLog | 50 | ||||
-rw-r--r-- | rapid/config.py | 4 | ||||
-rw-r--r-- | rapid/copyfiles.py | 33 | ||||
-rw-r--r-- | rapid/downloadtracker.py | 199 | ||||
-rw-r--r-- | rapid/glade3/media-eject.png | bin | 0 -> 431 bytes | |||
-rw-r--r-- | rapid/glade3/rapid-photo-downloader-download-pending.png | bin | 0 -> 815 bytes | |||
-rw-r--r-- | rapid/glade3/rapid-photo-downloader-download-pending.svg | 187 | ||||
-rw-r--r-- | rapid/glade3/rapid.ui | 6 | ||||
-rw-r--r-- | rapid/preferencesdialog.py | 7 | ||||
-rw-r--r-- | rapid/prefsrapid.py | 35 | ||||
-rwxr-xr-x | rapid/rapid.py | 670 | ||||
-rw-r--r-- | rapid/rpdmultiprocessing.py | 1 | ||||
-rw-r--r-- | rapid/subfolderfile.py | 6 | ||||
-rw-r--r-- | rapid/thumbnail.py | 3 | ||||
-rw-r--r-- | setup.py | 3 |
20 files changed, 4307 insertions, 3211 deletions
@@ -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 @@ -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í" @@ -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 "" @@ -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 Binary files differnew file mode 100644 index 0000000..0ff107e --- /dev/null +++ b/rapid/glade3/media-eject.png diff --git a/rapid/glade3/rapid-photo-downloader-download-pending.png b/rapid/glade3/rapid-photo-downloader-download-pending.png Binary files differnew file mode 100644 index 0000000..e12cc69 --- /dev/null +++ b/rapid/glade3/rapid-photo-downloader-download-pending.png 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() @@ -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', |