From e4926afd94329126adacce416fa8cf9daa32673b Mon Sep 17 00:00:00 2001 From: Julien Valroff Date: Wed, 23 Oct 2013 11:48:21 +0200 Subject: Imported Upstream version 0.4.7 --- PKG-INFO | 4 +- data/kde/rapid-photo-downloader.desktop | 12 + po/be.po | 1863 +++++++++++++++++++++++++++++ po/rapid-photo-downloader.pot | 222 ++-- po/sv.po | 288 ++--- po/uk.po | 1928 +++++++++++++------------------ rapid/ChangeLog | 29 +- rapid/backupfile.py | 29 +- rapid/config.py | 2 +- rapid/copyfiles.py | 107 +- rapid/generatename.py | 33 +- rapid/glade3/about.ui | 3 +- rapid/misc.py | 14 + rapid/preferencesdialog.py | 28 +- rapid/rapid.py | 54 +- rapid/rpdfile.py | 153 +-- rapid/scan.py | 128 +- rapid/subfolderfile.py | 91 +- setup.py | 15 +- 19 files changed, 3384 insertions(+), 1619 deletions(-) create mode 100644 data/kde/rapid-photo-downloader.desktop create mode 100644 po/be.po diff --git a/PKG-INFO b/PKG-INFO index 3800df0..93c882e 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: rapid-photo-downloader -Version: 0.4.6 +Version: 0.4.7 Summary: Rapid Photo Downloader for Linux Home-page: http://www.damonlynch.net/rapid Author: Damon Lynch @@ -8,7 +8,7 @@ Author-email: damonlynch@gmail.com License: GPL Description: Rapid Photo Downloader is written by a photographer for professional and amateur photographers. It can download photos and videos from multiple - cameras, memory cards and Portable Storage Devices simultaneously. It + cameras, memory cards and Portable Storage Devices simultaneously. It provides many flexible, user-defined options for subfolder creation, photo and video renaming, and backup. diff --git a/data/kde/rapid-photo-downloader.desktop b/data/kde/rapid-photo-downloader.desktop new file mode 100644 index 0000000..cd89692 --- /dev/null +++ b/data/kde/rapid-photo-downloader.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +X-KDE-Solid-Predicate=[ StorageVolume.ignored == false AND StorageVolume.usage == 'FileSystem' ] +Type=Service +Actions=exec; + +[Desktop Action exec] +# %f gives StorageAccess.filePath, %d gives Block.device, %i gives UDI +Exec=/usr/bin/rapid-photo-downloader +Icon=/usr/share/pixmaps/rapid-photo-downloader.png +Name=Download Photos with Rapid Photo Downloader +Name[fr]=Téléchargement de photos avec Rapid Photo Downloader + diff --git a/po/be.po b/po/be.po new file mode 100644 index 0000000..3e40e2f --- /dev/null +++ b/po/be.po @@ -0,0 +1,1863 @@ +# Belarusian translation for rapid +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the rapid package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: rapid\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-06-23 04:00-0500\n" +"PO-Revision-Date: 2013-02-24 09:11+0000\n" +"Last-Translator: Ilya Tsimokhin \n" +"Language-Team: Belarusian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-08-26 05:21+0000\n" +"X-Generator: Launchpad (build 16738)\n" + +#. Translators: if neccessary, for guidance in how to translate this program, you may see http://damonlynch.net/translate.html +#: rapid/rapid.py:112 rapid/rapid.py:1784 rapid/glade3/rapid.ui.h:1 +msgid "Rapid Photo Downloader" +msgstr "" + +#: rapid/rapid.py:117 +#, python-format +msgid "" +"%(date)s\n" +"%(time)s" +msgstr "" + +#: rapid/rapid.py:119 +#, python-format +msgid "%(date)s %(time)s" +msgstr "" + +#: rapid/rapid.py:122 +#, 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:157 +msgid "Device" +msgstr "Прылада" + +#. Size refers to the total size of images on the device, typically in +#. MB or GB +#: rapid/rapid.py:175 +msgid "Size" +msgstr "Памер" + +#: rapid/rapid.py:178 +msgid "Download Progress" +msgstr "Сцягванне" + +#: rapid/rapid.py:336 +#, python-format +msgid "%(device)s did not unmount" +msgstr "%(device)s не адмантаваны" + +#. 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:1216 +msgid "scanning..." +msgstr "пошук..." + +#. this location is a human readable explanation for /, and is inserted into Downloading from %(location)s +#: rapid/rapid.py:1782 +msgid "the root of the file system" +msgstr "корань файлавай сістэмы" + +#. message in dialog box which asks the user if they really want to be downloading from this location +#: rapid/rapid.py:1786 +#, python-format +msgid "Downloading from %(location)s." +msgstr "Сцягванне з %(location)s." + +#: rapid/rapid.py:1787 +msgid "" +"Do you really want to download from here? On some systems, scanning this " +"location can take a very long time." +msgstr "" +"Вы сапраўды хочаце сцягнуць адсюда? На некаторых сістэмах пошук можа доўга " +"цягнуцца." + +#: rapid/rapid.py:2209 +msgid "Download" +msgstr "Сцягнуць" + +#: rapid/rapid.py:2212 +msgid "Pause" +msgstr "Прыпыніць" + +#: rapid/rapid.py:2317 +#, python-format +msgid "" +"These download folders are invalid:\n" +"%(folder1)s\n" +"%(folder2)s" +msgstr "" + +#: rapid/rapid.py:2320 +#, python-format +msgid "" +"This download folder is invalid:\n" +"%s" +msgstr "" + +#: rapid/rapid.py:2321 +msgid "Download cannot proceed" +msgstr "Немагчыма сцянуць" + +#: rapid/rapid.py:2700 +msgid "About 1 second remaining" +msgstr "Засталося каля секунды" + +#: rapid/rapid.py:2702 +#, python-format +msgid "About %i seconds remaining" +msgstr "Засталося каля %i секунд" + +#: rapid/rapid.py:2704 +msgid "About 1 minute remaining" +msgstr "Засталося каля хвіліны" + +#. 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:2709 +#, python-format +msgid "About %(minutes)i:%(seconds)02i minutes remaining" +msgstr "Засталося каля %(minutes)i:%(seconds)i" + +#: rapid/rapid.py:2731 rapid/rpdfile.py:123 +msgid "photos and videos" +msgstr "здымкі і відэа" + +#: rapid/rapid.py:2733 rapid/rpdfile.py:125 +msgid "photos or videos" +msgstr "здымкі або відэа" + +#: rapid/rapid.py:2736 rapid/rapid.py:3558 rapid/rpdfile.py:128 +msgid "videos" +msgstr "відэа" + +#: rapid/rapid.py:2738 rapid/preferencesdialog.py:1620 rapid/rpdfile.py:130 +#: rapid/rpdfile.py:291 +msgid "video" +msgstr "відэа" + +#: rapid/rapid.py:2741 rapid/rapid.py:3556 rapid/rpdfile.py:133 +msgid "photos" +msgstr "здымкі" + +#. check subfolder preferences for bad values +#: rapid/rapid.py:2743 rapid/preferencesdialog.py:1619 rapid/rpdfile.py:135 +#: rapid/rpdfile.py:272 +msgid "photo" +msgstr "здымкі" + +#: rapid/rapid.py:2770 +#, python-format +msgid "%(noFiles)s %(filetypes)s downloaded" +msgstr "%(noFiles)s %(filetypes)s сцягнуты" + +#: rapid/rapid.py:2774 +#, python-format +msgid "%(noFiles)s %(filetypes)s failed to download" +msgstr "%(noFiles)s %(filetypes)s не атрымалася сцягнуць" + +#: rapid/rapid.py:2777 rapid/rapid.py:2829 +msgid "warnings" +msgstr "папярэджанні" + +#: rapid/rapid.py:2786 +msgid "All downloads complete" +msgstr "Усе сцягванні скончаны" + +#: rapid/rapid.py:2792 rapid/rapid.py:2801 rapid/rapid.py:2810 +#: rapid/rapid.py:2819 rapid/rapid.py:2827 +#, python-format +msgid "%(number)s %(numberdownloaded)s" +msgstr "%(number)s %(numberdownloaded)s" + +#: rapid/rapid.py:2794 rapid/rapid.py:2812 +#, python-format +msgid "%(filetype)s downloaded" +msgstr "%(filetype)s сцягнуты" + +#: rapid/rapid.py:2803 rapid/rapid.py:2821 +#, python-format +msgid "%(filetype)s failed to download" +msgstr "%(filetype)s не атрымалася сцягнуць" + +#. e.g.: 3 of 205 photos and videos (202 remaining) +#: rapid/rapid.py:2860 +#, python-format +msgid "%(number)s of %(total)s %(filetypes)s (%(remaining)s remaining)" +msgstr "%(number)s з %(total)s %(filetypes)s (%(remaining)s засталося)" + +#. e.g.: 205 of 205 photos and videos +#: rapid/rapid.py:2867 +#, python-format +msgid "%(number)s of %(total)s %(filetypes)s" +msgstr "%(number)s з %(total)s %(filetypes)s" + +#: rapid/rapid.py:3222 +msgid "From" +msgstr "Адкуль" + +#: rapid/rapid.py:3230 +msgid "Auto Detect" +msgstr "Аўта вызначэнне" + +#: rapid/rapid.py:3234 rapid/preferencesdialog.py:1327 +#, python-format +msgid "Select a folder containing %(file_types)s" +msgstr "Выбраць папку з %(file_types)s" + +#: rapid/rapid.py:3275 +msgid "Copy" +msgstr "Капіяваць" + +#: rapid/rapid.py:3288 +msgid "Move" +msgstr "Перанесці" + +#: rapid/rapid.py:3310 +msgid "To" +msgstr "" + +#: rapid/rapid.py:3317 rapid/rapid.py:3986 +msgid "Photos:" +msgstr "Здымкі:" + +#: rapid/rapid.py:3320 rapid/preferencesdialog.py:1164 +msgid "Select a folder to download photos to" +msgstr "Выбярыце папку, куды сцягнуць здымкі" + +#: rapid/rapid.py:3332 rapid/rapid.py:3986 +msgid "Videos:" +msgstr "Відэа:" + +#: rapid/rapid.py:3334 rapid/preferencesdialog.py:1182 +msgid "Select a folder to download videos to" +msgstr "Выбярыце папку, куды сцягнуць відэа" + +#: rapid/rapid.py:3526 +msgid "and" +msgstr "і" + +#: rapid/rapid.py:3531 +msgid "Using backup devices" +msgstr "" + +#: rapid/rapid.py:3533 +msgid "Using backup device" +msgstr "" + +#: rapid/rapid.py:3535 +msgid "No backup devices detected" +msgstr "" + +#: rapid/rapid.py:3562 +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:3574 +#, 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:3578 +#, python-format +msgid "%(free)s %(file_type)s" +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:3583 +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:3588 +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:3594 +#, python-format +msgid "%(free)s free" +msgstr "" + +#. user manually specified the same location for photos and video backups +#: rapid/rapid.py:3602 +#, python-format +msgid "Backing up photos and videos to %(path)s" +msgstr "" + +#. user manually specified backup location +#: rapid/rapid.py:3605 +#, python-format +msgid "Backing up to %(path)s" +msgstr "" + +#. user manually specified different locations for photo and video backups +#: rapid/rapid.py:3608 +#, python-format +msgid "Backing up photos to %(path)s and videos to %(path2)s" +msgstr "" + +#: rapid/rapid.py:3615 +#, python-format +msgid "%(freespace)s. %(backuppaths)s." +msgstr "" + +#: rapid/rapid.py:3644 +msgid "Program preferences are invalid" +msgstr "" + +#: rapid/rapid.py:3770 rapid/rpdfile.py:273 +msgid "Photo" +msgstr "Здымак" + +#: rapid/rapid.py:3772 rapid/rpdfile.py:292 +msgid "Video" +msgstr "Відэа" + +#: rapid/rapid.py:3781 +#, python-format +msgid "%(file_type)s download folder does not exist" +msgstr "" + +#: rapid/rapid.py:3783 rapid/rapid.py:3797 rapid/rapid.py:3810 +#, python-format +msgid "Folder: %s" +msgstr "Папкі: %s" + +#: rapid/rapid.py:3795 +#, python-format +msgid "%(file_type)s download folder is invalid" +msgstr "" + +#: rapid/rapid.py:3808 +#, python-format +msgid "%(file_type)s download folder is not writable" +msgstr "" + +#: rapid/rapid.py:3894 +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:3949 +#, python-format +msgid "" +"display program information on the command line as the program runs " +"(default: %default)" +msgstr "" + +#: rapid/rapid.py:3950 +msgid "display debugging information when run from the command line" +msgstr "" + +#: rapid/rapid.py:3951 +msgid "only output errors to the command line" +msgstr "" + +#. image file extensions are recognized RAW files plus TIFF and JPG +#: rapid/rapid.py:3953 +msgid "list photo and video file extensions the program recognizes and exit" +msgstr "" + +#: rapid/rapid.py:3955 +msgid "" +"automatically detect devices from which to download, overwriting existing " +"program preferences" +msgstr "" + +#: rapid/rapid.py:3956 +msgid "" +"manually specify the PATH of the device from which to download, overwriting " +"existing program preferences" +msgstr "" + +#: rapid/rapid.py:3957 +msgid "reset all program settings and preferences and exit" +msgstr "Скінуць усе наладкі і выйсці" + +#: rapid/rapid.py:3970 +msgid "" +"Error: specify device auto-detection or manually specify a device's path " +"from which to download, but do not do both." +msgstr "" + +#: rapid/rapid.py:3991 +#, python-format +msgid "and %s" +msgstr "і %s" + +#: rapid/rapid.py:3999 +msgid "All settings and preferences have been reset" +msgstr "Усе наладкі былі скінуты" + +#: rapid/backupfile.py:157 rapid/backupfile.py:180 +msgid "Backing up error" +msgstr "" + +#: rapid/backupfile.py:159 +#, python-format +msgid "Destination directory could not be created: %(directory)s\n" +msgstr "" + +#: rapid/backupfile.py:161 rapid/backupfile.py:182 rapid/subfolderfile.py:199 +#, python-format +msgid "" +"Source: %(source)s\n" +"Destination: %(destination)s" +msgstr "" + +#: rapid/backupfile.py:164 rapid/backupfile.py:184 +#, python-format +msgid "Error: %(inst)s" +msgstr "Памылка: %(inst)s" + +#: rapid/copyfiles.py:163 rapid/subfolderfile.py:214 +#: rapid/subfolderfile.py:347 rapid/subfolderfile.py:365 +#, python-format +msgid "" +"%(problem)s\n" +"File: %(file)s" +msgstr "" +"%(problem)s\n" +"Файл: %(file)s" + +#: rapid/device.py:80 +msgid "Device Detected" +msgstr "Знойдзена прылада" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt +#: rapid/device.py:89 +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/device.py:108 +msgid "_Remember this choice" +msgstr "" + +#: rapid/downloadtracker.py:299 +msgid "MB/s" +msgstr "МБ/с" + +#: rapid/generatenameconfig.py:151 +msgid "Date time" +msgstr "Дата/час" + +#: rapid/generatenameconfig.py:152 +msgid "Text" +msgstr "Тэкст" + +#: rapid/generatenameconfig.py:153 +msgid "Filename" +msgstr "Назва файла" + +#: rapid/generatenameconfig.py:154 +msgid "Metadata" +msgstr "" + +#: rapid/generatenameconfig.py:155 +msgid "Sequences" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode +#: rapid/generatenameconfig.py:157 rapid/preferencesdialog.py:577 +msgid "Job code" +msgstr "" + +#: rapid/generatenameconfig.py:158 +msgid "Image date" +msgstr "" + +#: rapid/generatenameconfig.py:159 +msgid "Video date" +msgstr "" + +#: rapid/generatenameconfig.py:160 +msgid "Today" +msgstr "Сёння" + +#: rapid/generatenameconfig.py:161 +msgid "Yesterday" +msgstr "Учора" + +#. Translators: Download time is the time and date that the download started (when the user clicked the Download button) +#: rapid/generatenameconfig.py:163 +msgid "Download time" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:165 +msgid "Name + extension" +msgstr "Назва + пашырэнне" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:167 +msgid "Name" +msgstr "Назва" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:169 +msgid "Extension" +msgstr "Пашырэнне" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:171 +msgid "Image number" +msgstr "Нумар здымка" + +#: rapid/generatenameconfig.py:172 +msgid "Video number" +msgstr "Нумар відэа" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:174 +msgid "Aperture" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:176 +msgid "ISO" +msgstr "ISO" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:178 +msgid "Exposure time" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:180 +msgid "Focal length" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:182 +msgid "Camera make" +msgstr "Вытворца камеры" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:184 +msgid "Camera model" +msgstr "Мадэль камеры" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:186 +msgid "Short camera model" +msgstr "Кароткая мадэль камеры" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:188 +msgid "Hyphenated short camera model" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:190 +msgid "Serial number" +msgstr "Серыйны нумар" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:192 +msgid "Shutter count" +msgstr "" + +#. File number currently refers to the Exif value Exif.Canon.FileNumber +#: rapid/generatenameconfig.py:194 +msgid "File number" +msgstr "" + +#. Only the folder component of the Exif.Canon.FileNumber value +#: rapid/generatenameconfig.py:196 +msgid "Folder only" +msgstr "" + +#. The folder and file component of the Exif.Canon.FileNumber value +#: rapid/generatenameconfig.py:198 +msgid "Folder and file" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata +#: rapid/generatenameconfig.py:200 +msgid "Owner name" +msgstr "Імя ўладальніка" + +#: rapid/generatenameconfig.py:201 +msgid "Codec" +msgstr "Кодэк" + +#: rapid/generatenameconfig.py:202 +msgid "Width" +msgstr "Шырыня" + +#: rapid/generatenameconfig.py:203 +msgid "Height" +msgstr "Вышыня" + +#: rapid/generatenameconfig.py:204 +msgid "Length" +msgstr "" + +#: rapid/generatenameconfig.py:205 +msgid "Frames Per Second" +msgstr "Кадраў за секунду" + +#: rapid/generatenameconfig.py:206 +msgid "Artist" +msgstr "Артыст" + +#: rapid/generatenameconfig.py:207 +msgid "Copyright" +msgstr "Аўтарскія правы" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers +#: rapid/generatenameconfig.py:209 +msgid "Downloads today" +msgstr "Сцягнута сёння" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers +#: rapid/generatenameconfig.py:211 +msgid "Session number" +msgstr "Нумар сеанса" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers +#: rapid/generatenameconfig.py:213 +msgid "Subfolder number" +msgstr "Нумар падпапкі" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers +#: rapid/generatenameconfig.py:215 +msgid "Stored number" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequenceletters +#: rapid/generatenameconfig.py:217 +msgid "Sequence letter" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:219 +msgid "All digits" +msgstr "Усе лічбы" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:221 +msgid "Last digit" +msgstr "Апошняя лічба" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:223 +msgid "Last 2 digits" +msgstr "Апошнія 2 лічбы" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:225 +msgid "Last 3 digits" +msgstr "Апошнія 3 лічбы" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename +#: rapid/generatenameconfig.py:227 +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/generatenameconfig.py:229 +msgid "Original Case" +msgstr "Арыгінальнае напісанне" + +#. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization +#: rapid/generatenameconfig.py:231 +msgid "UPPERCASE" +msgstr "ВЯЛІКІЯ ЛІТАРЫ" + +#. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization +#: rapid/generatenameconfig.py:233 +msgid "lowercase" +msgstr "малыя літары" + +#: rapid/generatenameconfig.py:234 +msgid "One digit" +msgstr "Адна лічба" + +#: rapid/generatenameconfig.py:235 +msgid "Two digits" +msgstr "Дзве лічбы" + +#: rapid/generatenameconfig.py:236 +msgid "Three digits" +msgstr "Тры лічбы" + +#: rapid/generatenameconfig.py:237 +msgid "Four digits" +msgstr "Чатыры лічбы" + +#: rapid/generatenameconfig.py:238 +msgid "Five digits" +msgstr "Пяць лічбаў" + +#: rapid/generatenameconfig.py:239 +msgid "Six digits" +msgstr "Шэсць лічбаў" + +#: rapid/generatenameconfig.py:240 +msgid "Seven digits" +msgstr "Сем лічбаў" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:242 +msgid "Subseconds" +msgstr "" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:244 +msgid "YYYYMMDD" +msgstr "ГГГГММДД" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:246 +msgid "YYYY-MM-DD" +msgstr "ГГГГ-ММ-ДД" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:248 +msgid "YYMMDD" +msgstr "ГГММДД" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:250 +msgid "YY-MM-DD" +msgstr "ГГ-ММ-ДД" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:252 +msgid "MMDDYYYY" +msgstr "ММДДГГГГ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:254 +msgid "MMDDYY" +msgstr "ММДДГГ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:256 +msgid "MMDD" +msgstr "ММДД" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:258 +msgid "DDMMYYYY" +msgstr "ДДММГГГГ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:260 +msgid "DDMMYY" +msgstr "ДДММГГ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:262 +msgid "YYYY" +msgstr "ГГГГ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:264 +msgid "YY" +msgstr "ГГ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:266 +msgid "MM" +msgstr "ММ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:268 +msgid "DD" +msgstr "ДД" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:270 +msgid "Month (full)" +msgstr "Месяц (цалкам)" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:272 +msgid "Month (abbreviated)" +msgstr "Месяц (скарочана)" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:274 +msgid "HHMMSS" +msgstr "ГГХХСС" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:276 +msgid "HHMM" +msgstr "ГГХХ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:278 +msgid "HH-MM-SS" +msgstr "ГГ-ХХ-СС" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:280 +msgid "HH-MM" +msgstr "ГГ-ХХ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:282 +msgid "HH" +msgstr "ГГ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:284 +msgid "MM (minutes)" +msgstr "ХХ" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:286 +msgid "SS" +msgstr "СС" + +#: rapid/preferencesdialog.py:374 +#, python-format +msgid "Subfolder preferences should not start with a %s" +msgstr "" + +#: rapid/preferencesdialog.py:376 +#, python-format +msgid "Subfolder preferences should not end with a %s" +msgstr "" + +#: rapid/preferencesdialog.py:380 +#, python-format +msgid "Subfolder preferences should not contain two %s one after the other" +msgstr "" + +#: rapid/preferencesdialog.py:439 rapid/preferencesdialog.py:700 +msgid "Remove all Job Codes?" +msgstr "Выдаліць усе цэтлікі?" + +#: rapid/preferencesdialog.py:440 rapid/preferencesdialog.py:717 +msgid "Should all Job Codes be removed?" +msgstr "Трэба выдаліць усе цэтлікі?" + +#: rapid/preferencesdialog.py:446 +msgid "Remove all Remembered Paths?" +msgstr "" + +#: rapid/preferencesdialog.py:447 +msgid "Should all remembered paths be removed?" +msgstr "" + +#: rapid/preferencesdialog.py:453 +msgid "Remove all Ignored Paths?" +msgstr "" + +#: rapid/preferencesdialog.py:454 +msgid "Should all ignored paths be removed?" +msgstr "" + +#: rapid/preferencesdialog.py:465 +msgid "Error in Photo Rename preferences" +msgstr "Памылка ў наладках назваў здымкаў" + +#: rapid/preferencesdialog.py:645 +msgid "Error in Video Rename preferences" +msgstr "Памылка ў наладках назваў відэа" + +#: rapid/preferencesdialog.py:666 +msgid "Error in Photo Download Subfolders preferences" +msgstr "" + +#: rapid/preferencesdialog.py:683 +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:742 +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:758 +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:761 +msgid "Enter a new Job Code" +msgstr "Увядзіце новы цэтлік" + +#: rapid/preferencesdialog.py:766 +msgid "Job Code:" +msgstr "Цэтлікі:" + +#: rapid/preferencesdialog.py:822 +msgid "Enter a Path to Ignore" +msgstr "" + +#: rapid/preferencesdialog.py:834 +msgid "Specify a path that will never be scanned for photos or videos" +msgstr "" + +#: rapid/preferencesdialog.py:839 +msgid "Path:" +msgstr "" + +#: rapid/preferencesdialog.py:1082 +msgid "Job Code" +msgstr "Цэтлікі" + +#: rapid/preferencesdialog.py:1353 +msgid "Select a folder in which to backup photos" +msgstr "" + +#: rapid/preferencesdialog.py:1366 +msgid "Select a folder in which to backup videos" +msgstr "" + +#. Translators: please do not modify or leave out html formatting tags like and . These are used to format the text the users sees +#: rapid/preferencesdialog.py:1461 +msgid "" +"Warning: There is insufficient metadata to fully generate the " +"name. Please use other renaming options." +msgstr "" + +#: rapid/preferencesdialog.py:1512 +msgid "" +"Warning: There is insufficient metadata to fully generate " +"subfolders. Please use other subfolder naming options." +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:1515 +#, python-format +msgid "Example: %s" +msgstr "Прыклад: %s" + +#. Preferences list is now empty +#: rapid/preferencesdialog.py:1605 +#, 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 "" + +#: rapid/preferencesdialog.py:1750 +#, python-format +msgid "" +"The following regular expressions are invalid, and will be removed unless " +"you correct them:\n" +" %s" +msgstr "" + +#: rapid/preferencesdialog.py:1752 +#, python-format +msgid "" +"This regular expression is invalid, and will be removed unless you correct " +"it:\n" +" %s" +msgstr "" + +#: rapid/preferencesdialog.py:1753 +msgid "Invalid regular expression" +msgstr "" + +#. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this. +#: rapid/preferencesdialog.py:1934 +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:1936 +msgid "externaldrive2" +msgstr "" + +#: rapid/prefsrapid.py:127 +msgid "New York" +msgstr "Нью-Ёрк" + +#: rapid/prefsrapid.py:128 +msgid "Manila" +msgstr "Маніла" + +#: rapid/prefsrapid.py:128 +msgid "Prague" +msgstr "Прага" + +#: rapid/prefsrapid.py:128 +msgid "Helsinki" +msgstr "Хельсінкі" + +#: rapid/prefsrapid.py:128 +msgid "Wellington" +msgstr "Ўэлінгтон" + +#: rapid/prefsrapid.py:129 +msgid "Tehran" +msgstr "Тэгеран" + +#: rapid/prefsrapid.py:129 +msgid "Kampala" +msgstr "Кампала" + +#: rapid/prefsrapid.py:129 +msgid "Paris" +msgstr "Парыж" + +#: rapid/prefsrapid.py:129 +msgid "Berlin" +msgstr "Бэрлін" + +#: rapid/prefsrapid.py:129 +msgid "Sydney" +msgstr "Сіднэй" + +#: rapid/prefsrapid.py:130 +msgid "Budapest" +msgstr "Будапешт" + +#: rapid/prefsrapid.py:130 +msgid "Rome" +msgstr "Рым" + +#: rapid/prefsrapid.py:130 +msgid "Moscow" +msgstr "Масква" + +#: rapid/prefsrapid.py:130 +msgid "Delhi" +msgstr "Дэлі" + +#: rapid/prefsrapid.py:130 +msgid "Warsaw" +msgstr "Варшава" + +#: rapid/prefsrapid.py:131 +msgid "Jakarta" +msgstr "Джакарта" + +#: rapid/prefsrapid.py:131 +msgid "Madrid" +msgstr "Мадрыд" + +#: rapid/prefsrapid.py:131 +msgid "Stockholm" +msgstr "Стакгольм" + +#. components +#: rapid/problemnotification.py:27 rapid/subfolderfile.py:358 +msgid "subfolder" +msgstr "падпапка" + +#: rapid/problemnotification.py:28 rapid/subfolderfile.py:356 +msgid "filename" +msgstr "назва файла" + +#: rapid/problemnotification.py:81 +#, python-format +msgid "Date time value %s appears invalid." +msgstr "" + +#: rapid/problemnotification.py:82 +msgid "Filename does not have an extension." +msgstr "Адсутнічае пашырэнне." + +#. a number component is something like the 8346 in IMG_8346.JPG +#: rapid/problemnotification.py:84 +msgid "Filename does not have a number component." +msgstr "Адсутнічае нумар." + +#: rapid/problemnotification.py:85 +#, python-format +msgid "Error generating component %s." +msgstr "" + +#. a generic problem +#: rapid/problemnotification.py:87 +#, python-format +msgid "%(filetype)s metadata cannot be read" +msgstr "" + +#: rapid/problemnotification.py:89 +#, python-format +msgid "%(filetype)s %(area)s could not be generated" +msgstr "" + +#: rapid/problemnotification.py:91 rapid/problemnotification.py:92 +#, python-format +msgid "An error occurred when copying the %(filetype)s" +msgstr "Памылка капіявання %(filetype)s" + +#: rapid/problemnotification.py:94 rapid/problemnotification.py:95 +#, python-format +msgid "%(filetype)s already exists" +msgstr "%(filetype)s ужо існуе" + +#: rapid/problemnotification.py:98 +#, python-format +msgid "" +"%(filetype)s could not be backed up because no suitable backup locations " +"were found." +msgstr "" + +#: rapid/problemnotification.py:103 +#, python-format +msgid "" +"%(image1)s was taken on %(image1_date)s at %(image1_time)s, and %(image2)s " +"on %(image2_date)s at %(image2_time)s." +msgstr "" +"%(image1)s быў зняты %(image1_date)s а %(image1_time)s, і %(image2)s зняты " +"%(image2_date)s а %(image2_time)s." + +#: rapid/problemnotification.py:104 +#, python-format +msgid "%(filetype)s was already downloaded" +msgstr "%(filetype)s ужо сцягнуты" + +#: rapid/problemnotification.py:108 +#, 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:109 +#, python-format +msgid "The existing %(filetype)s was last modified on %(date)s at %(time)s." +msgstr "Існуючы %(filetype)s быў зменены %(date)s а %(time)s." + +#: rapid/problemnotification.py:110 +#, python-format +msgid "There is no data with which to name the %(filetype)s." +msgstr "" + +#: rapid/problemnotification.py:112 +#, python-format +msgid "Error: %(errorno)s %(strerror)s" +msgstr "Памылка: %(errorno)s %(strerror)s" + +#: rapid/problemnotification.py:202 +msgid "The metadata might be corrupt." +msgstr "" + +#: rapid/problemnotification.py:205 +msgid "" +"The filename, extension and Exif information indicate it has already been " +"downloaded." +msgstr "Назва файла, пашырэнне і EXIF сведчаць, што здымак ужо сцягнуты." + +#: rapid/problemnotification.py:224 +#, python-format +msgid " It was backed up to %(volume)s" +msgstr "" + +#: rapid/problemnotification.py:226 +msgid " It was backed up to these devices: " +msgstr "" + +#: rapid/problemnotification.py:228 rapid/problemnotification.py:289 +#: rapid/problemnotification.py:301 +#, python-format +msgid "%s, " +msgstr "%s, " + +#: rapid/problemnotification.py:229 rapid/problemnotification.py:290 +#: rapid/problemnotification.py:302 +#, python-format +msgid "%(volumes)s and %(final_volume)s." +msgstr "%(volumes)s і %(final_volume)s." + +#: rapid/problemnotification.py:241 +#, python-format +msgid "" +"Photos detected with the same filenames, but taken at different times: " +"%(details)s" +msgstr "Знойдзены здымкі з той жа назвай, але знятыя ў розны час %(details)s" + +#: rapid/problemnotification.py:258 +#, python-format +msgid "An error occurred when backing up on %(volume)s: %(inst)s." +msgstr "" + +#: rapid/problemnotification.py:260 +#, python-format +msgid "An error occurred when backing up on %(volume)s." +msgstr "" + +#: rapid/problemnotification.py:262 +msgid "Errors occurred when backing up on the following backup devices: " +msgstr "" + +#: rapid/problemnotification.py:266 rapid/problemnotification.py:314 +#, python-format +msgid "%(volume)s (%(inst)s), " +msgstr "%(volume)s (%(inst)s), " + +#: rapid/problemnotification.py:268 +#, python-format +msgid "%(volume)s, " +msgstr "%(volume)s, " + +#: rapid/problemnotification.py:272 rapid/problemnotification.py:316 +#, python-format +msgid "%(volumes)s and %(volume)s (%(inst)s)." +msgstr "%(volumes)s і %(volume)s (%(inst)s)." + +#: rapid/problemnotification.py:277 +#, python-format +msgid "%(volumes)s and %(volume)s." +msgstr "%(volumes)s і %(volume)s." + +#: rapid/problemnotification.py:285 +#, python-format +msgid "Backup already exists on %(volume)s." +msgstr "" + +#: rapid/problemnotification.py:287 +msgid "Backups already exist in these locations: " +msgstr "" + +#: rapid/problemnotification.py:297 +#, python-format +msgid "Backup overwritten on %(volume)s." +msgstr "" + +#: rapid/problemnotification.py:299 +msgid "Backups overwritten on these devices: " +msgstr "" + +#: rapid/problemnotification.py:310 +#, python-format +msgid "An error occurred when creating directories on %(volume)s: %(inst)s." +msgstr "Памылка стварэння папкі на %(volume)s: %(inst)s." + +#: rapid/problemnotification.py:312 +msgid "" +"Errors occurred when creating directories on the following backup devices: " +msgstr "" + +#: rapid/problemnotification.py:323 +#, python-format +msgid "%(previousproblem)s Additionally, %(newproblem)s" +msgstr "" + +#: rapid/problemnotification.py:331 +#, python-format +msgid " Furthermore, there were %(problems)s." +msgstr "" + +#: rapid/problemnotification.py:333 +#, python-format +msgid " Furthermore, there was a %(problem)s." +msgstr "" + +#: rapid/problemnotification.py:342 +#, python-format +msgid "The %(type)s metadata is missing." +msgstr "" + +#: rapid/problemnotification.py:344 +msgid "The following metadata is missing: " +msgstr "" + +#: rapid/problemnotification.py:347 +#, python-format +msgid "%(missing_metadata_elements)s and %(final_missing_metadata_element)s." +msgstr "" + +#: rapid/problemnotification.py:364 +msgid "Problems in subfolder and filename generation" +msgstr "" + +#: rapid/problemnotification.py:366 +msgid "Problem in subfolder and filename generation" +msgstr "" + +#: rapid/problemnotification.py:369 +#, python-format +msgid "Problems in %s generation" +msgstr "Праблемы пры стварэнні %s" + +#: rapid/problemnotification.py:371 +#, python-format +msgid "Problem in %s generation" +msgstr "Праблема пры стварэнні %s" + +#: rapid/problemnotification.py:380 +#, python-format +msgid "%(filetype)s already exists, but it was backed up" +msgstr "" + +#: rapid/problemnotification.py:382 +#, python-format +msgid "An error occurred when copying the %(filetype)s, but it was backed up" +msgstr "" + +#: rapid/problemnotification.py:402 +msgid "Multiple problems were encountered" +msgstr "" + +#: rapid/problemnotification.py:404 rapid/subfolderfile.py:233 +msgid "Photos detected with the same filenames, but taken at different times" +msgstr "Знойдзены здымкі з аднолькавай назвай, але знятыя ў розны час" + +#: rapid/problemnotification.py:410 +msgid "there were errors backing up" +msgstr "" + +#: rapid/problemnotification.py:411 +msgid "There were errors backing up" +msgstr "" + +#: rapid/problemnotification.py:413 +msgid "there was an error backing up" +msgstr "" + +#: rapid/problemnotification.py:414 +msgid "There was an error backing up" +msgstr "" + +#. e.g. +#: rapid/problemnotification.py:417 +#, python-format +msgid "%(previousproblem)s, and %(backinguperror)s" +msgstr "" + +#: rapid/rpdfile.py:153 +#, python-format +msgid "%(number)s %(filetypes)s" +msgstr "%(number)s %(filetypes)s" + +#: rapid/rpdfile.py:163 +#, python-format +msgid "scanning (found %(photos)s photos and %(videos)s videos)..." +msgstr "пошук (знойдзена %(photos)s здымкаў і %(videos)s відэа)..." + +#: rapid/subfolderfile.py:80 +#, python-format +msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s" +msgstr "%(hour)s:%(minute)s:%(second)s:%(subsecond)s" + +#: rapid/subfolderfile.py:301 +msgid "Photo has already been downloaded" +msgstr "Фота ўжо было сцягнута" + +#: rapid/subfolderfile.py:302 +#, python-format +msgid "Source: %(source)s" +msgstr "Крыніца: %(source)s" + +#: rapid/subfolderfile.py:354 +msgid "subfolder and filename" +msgstr "падпапка і назва файла" + +#: rapid/subfolderfile.py:393 +msgid "Failed to create download subfolder" +msgstr "" + +#: rapid/subfolderfile.py:394 +#, python-format +msgid "Path: %s" +msgstr "" + +#: rapid/glade3/rapid.ui.h:2 +msgid "_File" +msgstr "_Файл" + +#: rapid/glade3/rapid.ui.h:3 +msgid "Download / Pause" +msgstr "Сцягваць / Прыпыніць" + +#: rapid/glade3/rapid.ui.h:4 +msgid "_Select" +msgstr "_Выбраць" + +#: rapid/glade3/rapid.ui.h:5 +msgid "Select All Without _Job Code" +msgstr "" + +#: rapid/glade3/rapid.ui.h:6 +msgid "Select All Wit_h Job Code" +msgstr "" + +#: rapid/glade3/rapid.ui.h:7 +msgid "_View" +msgstr "_Прагляд" + +#: rapid/glade3/rapid.ui.h:8 +msgid "_Error Log" +msgstr "" + +#: rapid/glade3/rapid.ui.h:9 +msgid "_Clear Completed Downloads" +msgstr "" + +#: rapid/glade3/rapid.ui.h:10 +msgid "Previous File" +msgstr "Папярэдні файл" + +#: rapid/glade3/rapid.ui.h:11 +msgid "Next File" +msgstr "Наступны файл" + +#: rapid/glade3/rapid.ui.h:12 +msgid "_Help" +msgstr "_Даведка" + +#: rapid/glade3/rapid.ui.h:13 +msgid "_Make a Donation..." +msgstr "" + +#: rapid/glade3/rapid.ui.h:14 +msgid "_Translate this Application..." +msgstr "_Перакласці праграму..." + +#: rapid/glade3/rapid.ui.h:15 +msgid "_Check All" +msgstr "Пазначыць _усё" + +#: rapid/glade3/rapid.ui.h:16 +msgid "_Uncheck All" +msgstr "_Зняць пазначэнне" + +#: rapid/glade3/rapid.ui.h:17 +msgid "_Include in download" +msgstr "_Уключыць у сцягванне" + +#: rapid/glade3/rapid.ui.h:18 +msgid "_Download" +msgstr "_Сцягнуць" + +#: rapid/glade3/prefs.ui.h:1 +msgid "Preferences: Rapid Photo Downloader" +msgstr "" + +#: rapid/glade3/prefs.ui.h:2 +msgid "Photo Download Folders" +msgstr "" + +#: rapid/glade3/prefs.ui.h:3 +msgid "Example: /home/user/Pictures" +msgstr "Прыклад: /home/user/Pictures" + +#: rapid/glade3/prefs.ui.h:4 +msgid "Download Subfolders" +msgstr "" + +#: rapid/glade3/prefs.ui.h:5 +msgid "Download folder:" +msgstr "" + +#: rapid/glade3/prefs.ui.h:6 +msgid "" +"Choose the download folder. Subfolders for the downloaded photos will be " +"automatically created in this folder using the structure specified below." +msgstr "" + +#: rapid/glade3/prefs.ui.h:7 +msgid "Download Folder" +msgstr "" + +#: rapid/glade3/prefs.ui.h:8 +msgid "Photo Folders" +msgstr "Папкі здымкаў" + +#: rapid/glade3/prefs.ui.h:9 +msgid "Photo Rename\t" +msgstr "" + +#: rapid/glade3/prefs.ui.h:10 +msgid "Photo Rename" +msgstr "" + +#: rapid/glade3/prefs.ui.h:11 +msgid " " +msgstr " " + +#: rapid/glade3/prefs.ui.h:12 +msgid "New:" +msgstr "Новае:" + +#: rapid/glade3/prefs.ui.h:13 +msgid "Original:" +msgstr "Арыгінал:" + +#: rapid/glade3/prefs.ui.h:14 +msgid "Example" +msgstr "Прыклад" + +#: rapid/glade3/prefs.ui.h:15 +msgid "Photo Rename" +msgstr "" + +#: rapid/glade3/prefs.ui.h:16 +msgid "Video Download Folders" +msgstr "" + +#: rapid/glade3/prefs.ui.h:17 +msgid "" +"Sorry, video downloading functionality disabled. To download videos, please " +"install either the hachoir metadata and kaa metadata packages " +"for python, or exiftool." +msgstr "" + +#: rapid/glade3/prefs.ui.h:18 +msgid "" +"Choose the download folder. Subfolders for the downloaded videos will be " +"automatically created in this folder using the structure specified below." +msgstr "" + +#: rapid/glade3/prefs.ui.h:19 +msgid "Video Folders" +msgstr "Папкі з відэа" + +#: rapid/glade3/prefs.ui.h:20 +msgid "Video Rename\t" +msgstr "" + +#: rapid/glade3/prefs.ui.h:21 +msgid "Video Rename" +msgstr "" + +#: rapid/glade3/prefs.ui.h:22 +msgid "Rename Options" +msgstr "" + +#: rapid/glade3/prefs.ui.h:23 +msgid "Sequence Numbers" +msgstr "" + +#: rapid/glade3/prefs.ui.h:24 +msgid "" +"Specify the time in 24 hour format at which the Downloads today " +"sequence number should be reset." +msgstr "" + +#: rapid/glade3/prefs.ui.h:25 +msgid "Day start:" +msgstr "Пачатак дня:" + +#: rapid/glade3/prefs.ui.h:26 +msgid "Downloads today:" +msgstr "Сцягнута сёння:" + +#: rapid/glade3/prefs.ui.h:27 +msgid "Stored number:" +msgstr "" + +#: rapid/glade3/prefs.ui.h:28 +msgid ":" +msgstr ":" + +#: rapid/glade3/prefs.ui.h:29 +msgid " hh:mm" +msgstr " гг:хх" + +#: rapid/glade3/prefs.ui.h:30 +msgid "Synchronize RAW + JPEG sequence numbers" +msgstr "Сінхранізаваць нумары RAW і JPEG" + +#: rapid/glade3/prefs.ui.h:31 +msgid "Compatibility with Other Operating Systems" +msgstr "Сумяшчальнасць з іншымі аперацыйнымі сістэмамі" + +#: rapid/glade3/prefs.ui.h:32 +msgid "" +"Specify whether photo, video and folder names should have any characters " +"removed that are not allowed by other operating systems." +msgstr "" + +#: rapid/glade3/prefs.ui.h:33 +msgid "Strip incompatible characters" +msgstr "" + +#: rapid/glade3/prefs.ui.h:34 +msgid "Rename Options" +msgstr "" + +#: rapid/glade3/prefs.ui.h:35 +msgid "Job Codes" +msgstr "" + +#: rapid/glade3/prefs.ui.h:36 +msgid "Job Codes" +msgstr "Цэтлікі" + +#: rapid/glade3/prefs.ui.h:37 +msgid "_Add..." +msgstr "_Дадаць…" + +#: rapid/glade3/prefs.ui.h:39 +msgid "R_emove All" +msgstr "_Выдаліць усё" + +#: rapid/glade3/prefs.ui.h:40 +msgid "Job Codes" +msgstr "Цэтлікі" + +#: rapid/glade3/prefs.ui.h:41 +msgid "Devices" +msgstr "Прылады" + +#: rapid/glade3/prefs.ui.h:42 +msgid "Devices" +msgstr "Прылады" + +#: rapid/glade3/prefs.ui.h:43 +msgid "" +"Devices are from where to download photos and videos, such as cameras, " +"memory cards or Portable Storage Devices.\n" +"\n" +"You can download from multiple devices simultaneously, or you can specify a " +"location on your hard drive.\n" +"\n" +"Downloading directly from cameras is currently an experimental feature. " +"If downloading directly from your camera works poorly or not at all, try " +"setting it to PTP mode. If that is not possible, a card reader must be " +"used." +msgstr "" + +#: rapid/glade3/prefs.ui.h:48 +msgid "Automatically detect Portable Storage Devices" +msgstr "" + +#: rapid/glade3/prefs.ui.h:49 +msgid "Automatically detect devices" +msgstr "" + +#: rapid/glade3/prefs.ui.h:50 +msgid "" +"If you enable automatic detection of Portable Storage Devices, the entire " +"device will be scanned. On large devices, this could take some time.\n" +"\n" +"When this option is enabled, and a potential device is detected, you will be " +"prompted to determine if it should be scanned or not." +msgstr "" + +#: rapid/glade3/prefs.ui.h:53 +msgid "Location:" +msgstr "" + +#: rapid/glade3/prefs.ui.h:54 +msgid "" +"If you disable automatic detection, choose the exact location of the photos " +"and videos." +msgstr "" + +#: rapid/glade3/prefs.ui.h:55 +msgid "Device Options" +msgstr "" + +#: rapid/glade3/prefs.ui.h:56 +msgid "Remembered Paths" +msgstr "" + +#: rapid/glade3/prefs.ui.h:57 +msgid "" +"Remembered paths are those associated with devices that you have chosen to " +"always scan or ignore when automatic detection of Portable Storage Devices " +"is enabled." +msgstr "" + +#: rapid/glade3/prefs.ui.h:58 +msgid "Ignored Paths" +msgstr "" + +#: rapid/glade3/prefs.ui.h:59 +msgid "" +"Specify the ending portion of any paths you want ignored when scanning " +"devices for photos or videos. Any path ending with the values below will not " +"be scanned." +msgstr "" + +#: rapid/glade3/prefs.ui.h:61 +msgid "Re_move All" +msgstr "" + +#: rapid/glade3/prefs.ui.h:62 +msgid "Use _python-style regular expressions" +msgstr "" + +#: rapid/glade3/prefs.ui.h:63 +msgid "Device Options" +msgstr "" + +#: rapid/glade3/prefs.ui.h:64 +msgid "Backup\t" +msgstr "" + +#: rapid/glade3/prefs.ui.h:65 +msgid "Backup" +msgstr "" + +#: rapid/glade3/prefs.ui.h:66 +msgid "" +"If you disable automatic detection, choose the exact backup locations." +msgstr "" + +#: rapid/glade3/prefs.ui.h:67 +msgid "Automatically detect backup devices" +msgstr "" + +#: rapid/glade3/prefs.ui.h:68 +msgid "" +"You can have your photos and videos backed up to multiple locations as they " +"are downloaded, e.g. external hard drives." +msgstr "" + +#: rapid/glade3/prefs.ui.h:69 +msgid "Backup photos and videos when downloading" +msgstr "" + +#: rapid/glade3/prefs.ui.h:70 +msgid "" +"Specify the folder in which backups are stored on the device. \n" +"\n" +"Note: this will also be used to determine whether or not the device is " +"used for backups. For each device you wish to use for backing up to, create " +"a folder in it with one of these names." +msgstr "" + +#: rapid/glade3/prefs.ui.h:73 +msgid "Photo backup location:" +msgstr "" + +#: rapid/glade3/prefs.ui.h:74 +msgid "Photo backup folder name:" +msgstr "" + +#: rapid/glade3/prefs.ui.h:75 +msgid "Example:" +msgstr "" + +#: rapid/glade3/prefs.ui.h:76 +msgid "/media/externaldrive/Photos" +msgstr "" + +#: rapid/glade3/prefs.ui.h:77 +msgid "Video backup folder name:" +msgstr "" + +#: rapid/glade3/prefs.ui.h:78 +msgid "Video backup location:" +msgstr "" + +#: rapid/glade3/prefs.ui.h:79 +msgid "Backup" +msgstr "" + +#: rapid/glade3/prefs.ui.h:80 +msgid "Miscellaneous" +msgstr "" + +#: rapid/glade3/prefs.ui.h:81 +msgid "Program Automation" +msgstr "" + +#: rapid/glade3/prefs.ui.h:82 +msgid "Unmount (\"eject\") device upon download completion" +msgstr "" + +#: rapid/glade3/prefs.ui.h:83 +msgid "Start downloading at program startup" +msgstr "" + +#: rapid/glade3/prefs.ui.h:84 +msgid "Start downloading upon device insertion" +msgstr "" + +#: rapid/glade3/prefs.ui.h:85 +msgid "Exit program when download completes" +msgstr "" + +#: rapid/glade3/prefs.ui.h:86 +msgid "Exit program even if download had warnings or errors" +msgstr "" + +#: rapid/glade3/prefs.ui.h:87 +msgid "Automatically rotate JPEG images" +msgstr "" + +#: rapid/glade3/prefs.ui.h:88 +msgid "Performance" +msgstr "" + +#: rapid/glade3/prefs.ui.h:89 +msgid "Generate thumbnails (slower)" +msgstr "" + +#: rapid/glade3/prefs.ui.h:90 +msgid "Miscellaneous" +msgstr "" + +#: rapid/glade3/prefs.ui.h:91 +msgid "Error Handling" +msgstr "" + +#: rapid/glade3/prefs.ui.h:92 +msgid "Photo and Video Name Conflicts" +msgstr "" + +#: rapid/glade3/prefs.ui.h:93 +msgid "Add unique identifier" +msgstr "" + +#: rapid/glade3/prefs.ui.h:94 +msgid "Skip download" +msgstr "" + +#: rapid/glade3/prefs.ui.h:95 +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 "" + +#: rapid/glade3/prefs.ui.h:96 +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 "" + +#: rapid/glade3/prefs.ui.h:97 +msgid "Overwrite" +msgstr "" + +#: rapid/glade3/prefs.ui.h:98 +msgid "Skip" +msgstr "" + +#: rapid/glade3/prefs.ui.h:99 +msgid "Error Handling" +msgstr "" + +#: rapid/glade3/about.ui.h:1 +msgid "Import your photos and videos efficiently and reliably" +msgstr "" diff --git a/po/rapid-photo-downloader.pot b/po/rapid-photo-downloader.pot index 365d0c2..53ee5f1 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: 2012-06-23 04:00-0500\n" +"POT-Creation-Date: 2013-10-19 23:20+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,44 +18,44 @@ 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:112 rapid/rapid.py:1784 rapid/glade3/rapid.ui.h:1 +#: rapid/rapid.py:117 rapid/rapid.py:1807 rapid/glade3/rapid.ui.h:1 msgid "Rapid Photo Downloader" msgstr "" -#: rapid/rapid.py:117 +#: rapid/rapid.py:122 #, python-format msgid "" "%(date)s\n" "%(time)s" msgstr "" -#: rapid/rapid.py:119 +#: rapid/rapid.py:124 #, python-format msgid "%(date)s %(time)s" msgstr "" -#: rapid/rapid.py:122 +#: rapid/rapid.py:127 #, 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:157 +#: rapid/rapid.py:162 msgid "Device" msgstr "" #. Size refers to the total size of images on the device, typically in #. MB or GB -#: rapid/rapid.py:175 +#: rapid/rapid.py:180 msgid "Size" msgstr "" -#: rapid/rapid.py:178 +#: rapid/rapid.py:183 msgid "Download Progress" msgstr "" -#: rapid/rapid.py:336 +#: rapid/rapid.py:343 #, python-format msgid "%(device)s did not unmount" msgstr "" @@ -64,36 +64,36 @@ msgstr "" #. 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:1216 +#: rapid/rapid.py:1240 msgid "scanning..." msgstr "" #. this location is a human readable explanation for /, and is inserted into Downloading from %(location)s -#: rapid/rapid.py:1782 +#: rapid/rapid.py:1805 msgid "the root of the file system" msgstr "" #. message in dialog box which asks the user if they really want to be downloading from this location -#: rapid/rapid.py:1786 +#: rapid/rapid.py:1809 #, python-format msgid "Downloading from %(location)s." msgstr "" -#: rapid/rapid.py:1787 +#: rapid/rapid.py:1810 msgid "" "Do you really want to download from here? On some systems, scanning this " "location can take a very long time." msgstr "" -#: rapid/rapid.py:2209 +#: rapid/rapid.py:2254 msgid "Download" msgstr "" -#: rapid/rapid.py:2212 +#: rapid/rapid.py:2257 msgid "Pause" msgstr "" -#: rapid/rapid.py:2317 +#: rapid/rapid.py:2362 #, python-format msgid "" "These download folders are invalid:\n" @@ -101,183 +101,183 @@ msgid "" "%(folder2)s" msgstr "" -#: rapid/rapid.py:2320 +#: rapid/rapid.py:2365 #, python-format msgid "" "This download folder is invalid:\n" "%s" msgstr "" -#: rapid/rapid.py:2321 +#: rapid/rapid.py:2366 msgid "Download cannot proceed" msgstr "" -#: rapid/rapid.py:2700 +#: rapid/rapid.py:2746 msgid "About 1 second remaining" msgstr "" -#: rapid/rapid.py:2702 +#: rapid/rapid.py:2748 #, python-format msgid "About %i seconds remaining" msgstr "" -#: rapid/rapid.py:2704 +#: rapid/rapid.py:2750 msgid "About 1 minute remaining" msgstr "" #. 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:2709 +#: rapid/rapid.py:2755 #, python-format msgid "About %(minutes)i:%(seconds)02i minutes remaining" msgstr "" -#: rapid/rapid.py:2731 rapid/rpdfile.py:123 +#: rapid/rapid.py:2777 rapid/rpdfile.py:129 msgid "photos and videos" msgstr "" -#: rapid/rapid.py:2733 rapid/rpdfile.py:125 +#: rapid/rapid.py:2779 rapid/rpdfile.py:131 msgid "photos or videos" msgstr "" -#: rapid/rapid.py:2736 rapid/rapid.py:3558 rapid/rpdfile.py:128 +#: rapid/rapid.py:2782 rapid/rapid.py:3626 rapid/rpdfile.py:134 msgid "videos" msgstr "" -#: rapid/rapid.py:2738 rapid/preferencesdialog.py:1620 rapid/rpdfile.py:130 -#: rapid/rpdfile.py:291 +#: rapid/rapid.py:2784 rapid/preferencesdialog.py:1630 rapid/rpdfile.py:136 +#: rapid/rpdfile.py:305 msgid "video" msgstr "" -#: rapid/rapid.py:2741 rapid/rapid.py:3556 rapid/rpdfile.py:133 +#: rapid/rapid.py:2787 rapid/rapid.py:3624 rapid/rpdfile.py:139 msgid "photos" msgstr "" #. check subfolder preferences for bad values -#: rapid/rapid.py:2743 rapid/preferencesdialog.py:1619 rapid/rpdfile.py:135 -#: rapid/rpdfile.py:272 +#: rapid/rapid.py:2789 rapid/preferencesdialog.py:1629 rapid/rpdfile.py:141 +#: rapid/rpdfile.py:286 msgid "photo" msgstr "" -#: rapid/rapid.py:2770 +#: rapid/rapid.py:2816 #, python-format msgid "%(noFiles)s %(filetypes)s downloaded" msgstr "" -#: rapid/rapid.py:2774 +#: rapid/rapid.py:2820 #, python-format msgid "%(noFiles)s %(filetypes)s failed to download" msgstr "" -#: rapid/rapid.py:2777 rapid/rapid.py:2829 +#: rapid/rapid.py:2823 rapid/rapid.py:2879 msgid "warnings" msgstr "" -#: rapid/rapid.py:2786 +#: rapid/rapid.py:2836 msgid "All downloads complete" msgstr "" -#: rapid/rapid.py:2792 rapid/rapid.py:2801 rapid/rapid.py:2810 -#: rapid/rapid.py:2819 rapid/rapid.py:2827 +#: rapid/rapid.py:2842 rapid/rapid.py:2851 rapid/rapid.py:2860 +#: rapid/rapid.py:2869 rapid/rapid.py:2877 #, python-format msgid "%(number)s %(numberdownloaded)s" msgstr "" -#: rapid/rapid.py:2794 rapid/rapid.py:2812 +#: rapid/rapid.py:2844 rapid/rapid.py:2862 #, python-format msgid "%(filetype)s downloaded" msgstr "" -#: rapid/rapid.py:2803 rapid/rapid.py:2821 +#: rapid/rapid.py:2853 rapid/rapid.py:2871 #, python-format msgid "%(filetype)s failed to download" msgstr "" #. e.g.: 3 of 205 photos and videos (202 remaining) -#: rapid/rapid.py:2860 +#: rapid/rapid.py:2914 #, 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:2867 +#: rapid/rapid.py:2921 #, python-format msgid "%(number)s of %(total)s %(filetypes)s" msgstr "" -#: rapid/rapid.py:3222 +#: rapid/rapid.py:3275 msgid "From" msgstr "" -#: rapid/rapid.py:3230 +#: rapid/rapid.py:3283 msgid "Auto Detect" msgstr "" -#: rapid/rapid.py:3234 rapid/preferencesdialog.py:1327 +#: rapid/rapid.py:3287 rapid/preferencesdialog.py:1337 #, python-format msgid "Select a folder containing %(file_types)s" msgstr "" -#: rapid/rapid.py:3275 +#: rapid/rapid.py:3328 msgid "Copy" msgstr "" -#: rapid/rapid.py:3288 +#: rapid/rapid.py:3341 msgid "Move" msgstr "" -#: rapid/rapid.py:3310 +#: rapid/rapid.py:3363 msgid "To" msgstr "" -#: rapid/rapid.py:3317 rapid/rapid.py:3986 +#: rapid/rapid.py:3370 rapid/rapid.py:4056 msgid "Photos:" msgstr "" -#: rapid/rapid.py:3320 rapid/preferencesdialog.py:1164 +#: rapid/rapid.py:3373 rapid/preferencesdialog.py:1174 msgid "Select a folder to download photos to" msgstr "" -#: rapid/rapid.py:3332 rapid/rapid.py:3986 +#: rapid/rapid.py:3385 rapid/rapid.py:4056 msgid "Videos:" msgstr "" -#: rapid/rapid.py:3334 rapid/preferencesdialog.py:1182 +#: rapid/rapid.py:3387 rapid/preferencesdialog.py:1192 msgid "Select a folder to download videos to" msgstr "" -#: rapid/rapid.py:3526 +#: rapid/rapid.py:3594 msgid "and" msgstr "" -#: rapid/rapid.py:3531 +#: rapid/rapid.py:3599 msgid "Using backup devices" msgstr "" -#: rapid/rapid.py:3533 +#: rapid/rapid.py:3601 msgid "Using backup device" msgstr "" -#: rapid/rapid.py:3535 +#: rapid/rapid.py:3603 msgid "No backup devices detected" msgstr "" -#: rapid/rapid.py:3562 +#: rapid/rapid.py:3630 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:3574 +#: rapid/rapid.py:3642 #, 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:3578 +#: rapid/rapid.py:3646 #, python-format msgid "%(free)s %(file_type)s" msgstr "" @@ -285,160 +285,160 @@ 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:3583 +#: rapid/rapid.py:3651 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:3588 +#: rapid/rapid.py:3656 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:3594 +#: rapid/rapid.py:3662 #, python-format msgid "%(free)s free" msgstr "" #. user manually specified the same location for photos and video backups -#: rapid/rapid.py:3602 +#: rapid/rapid.py:3670 #, python-format msgid "Backing up photos and videos to %(path)s" msgstr "" #. user manually specified backup location -#: rapid/rapid.py:3605 +#: rapid/rapid.py:3673 #, python-format msgid "Backing up to %(path)s" msgstr "" #. user manually specified different locations for photo and video backups -#: rapid/rapid.py:3608 +#: rapid/rapid.py:3676 #, python-format msgid "Backing up photos to %(path)s and videos to %(path2)s" msgstr "" -#: rapid/rapid.py:3615 +#: rapid/rapid.py:3683 #, python-format msgid "%(freespace)s. %(backuppaths)s." msgstr "" -#: rapid/rapid.py:3644 +#: rapid/rapid.py:3712 msgid "Program preferences are invalid" msgstr "" -#: rapid/rapid.py:3770 rapid/rpdfile.py:273 +#: rapid/rapid.py:3838 rapid/rpdfile.py:287 msgid "Photo" msgstr "" -#: rapid/rapid.py:3772 rapid/rpdfile.py:292 +#: rapid/rapid.py:3840 rapid/rpdfile.py:306 msgid "Video" msgstr "" -#: rapid/rapid.py:3781 +#: rapid/rapid.py:3849 #, python-format msgid "%(file_type)s download folder does not exist" msgstr "" -#: rapid/rapid.py:3783 rapid/rapid.py:3797 rapid/rapid.py:3810 +#: rapid/rapid.py:3851 rapid/rapid.py:3865 rapid/rapid.py:3878 #, python-format msgid "Folder: %s" msgstr "" -#: rapid/rapid.py:3795 +#: rapid/rapid.py:3863 #, python-format msgid "%(file_type)s download folder is invalid" msgstr "" -#: rapid/rapid.py:3808 +#: rapid/rapid.py:3876 #, python-format msgid "%(file_type)s download folder is not writable" msgstr "" -#: rapid/rapid.py:3894 +#: rapid/rapid.py:3962 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:3949 +#: rapid/rapid.py:4017 #, python-format msgid "" "display program information on the command line as the program runs " "(default: %default)" msgstr "" -#: rapid/rapid.py:3950 +#: rapid/rapid.py:4018 msgid "display debugging information when run from the command line" msgstr "" -#: rapid/rapid.py:3951 +#: rapid/rapid.py:4019 msgid "only output errors to the command line" msgstr "" #. image file extensions are recognized RAW files plus TIFF and JPG -#: rapid/rapid.py:3953 +#: rapid/rapid.py:4021 msgid "list photo and video file extensions the program recognizes and exit" msgstr "" -#: rapid/rapid.py:3955 +#: rapid/rapid.py:4023 msgid "" "automatically detect devices from which to download, overwriting existing " "program preferences" msgstr "" -#: rapid/rapid.py:3956 +#: rapid/rapid.py:4024 msgid "" "manually specify the PATH of the device from which to download, overwriting " "existing program preferences" msgstr "" -#: rapid/rapid.py:3957 +#: rapid/rapid.py:4025 msgid "reset all program settings and preferences and exit" msgstr "" -#: rapid/rapid.py:3970 +#: rapid/rapid.py:4038 msgid "" "Error: specify device auto-detection or manually specify a device's path " "from which to download, but do not do both." msgstr "" -#: rapid/rapid.py:3991 +#: rapid/rapid.py:4061 #, python-format msgid "and %s" msgstr "" -#: rapid/rapid.py:3999 +#: rapid/rapid.py:4069 msgid "All settings and preferences have been reset" msgstr "" -#: rapid/backupfile.py:157 rapid/backupfile.py:180 +#: rapid/backupfile.py:174 rapid/backupfile.py:200 msgid "Backing up error" msgstr "" -#: rapid/backupfile.py:159 +#: rapid/backupfile.py:176 #, python-format msgid "Destination directory could not be created: %(directory)s\n" msgstr "" -#: rapid/backupfile.py:161 rapid/backupfile.py:182 rapid/subfolderfile.py:199 +#: rapid/backupfile.py:178 rapid/backupfile.py:202 rapid/subfolderfile.py:206 #, python-format msgid "" "Source: %(source)s\n" "Destination: %(destination)s" msgstr "" -#: rapid/backupfile.py:164 rapid/backupfile.py:184 +#: rapid/backupfile.py:181 rapid/backupfile.py:204 #, python-format msgid "Error: %(inst)s" msgstr "" -#: rapid/copyfiles.py:163 rapid/subfolderfile.py:214 -#: rapid/subfolderfile.py:347 rapid/subfolderfile.py:365 +#: rapid/copyfiles.py:163 rapid/subfolderfile.py:221 +#: rapid/subfolderfile.py:446 rapid/subfolderfile.py:468 #, python-format msgid "" "%(problem)s\n" @@ -926,39 +926,39 @@ msgstr "" msgid "Path:" msgstr "" -#: rapid/preferencesdialog.py:1082 +#: rapid/preferencesdialog.py:1092 msgid "Job Code" msgstr "" -#: rapid/preferencesdialog.py:1353 +#: rapid/preferencesdialog.py:1363 msgid "Select a folder in which to backup photos" msgstr "" -#: rapid/preferencesdialog.py:1366 +#: rapid/preferencesdialog.py:1376 msgid "Select a folder in which to backup videos" msgstr "" #. Translators: please do not modify or leave out html formatting tags like and . These are used to format the text the users sees -#: rapid/preferencesdialog.py:1461 +#: rapid/preferencesdialog.py:1471 msgid "" "Warning: There is insufficient metadata to fully generate the " "name. Please use other renaming options." msgstr "" -#: rapid/preferencesdialog.py:1512 +#: rapid/preferencesdialog.py:1522 msgid "" "Warning: There is insufficient metadata to fully generate " "subfolders. Please use other subfolder naming options." 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:1515 +#: rapid/preferencesdialog.py:1525 #, python-format msgid "Example: %s" msgstr "" #. Preferences list is now empty -#: rapid/preferencesdialog.py:1605 +#: rapid/preferencesdialog.py:1615 #, python-format msgid "" "The %(filetype)s subfolder preferences entered are invalid and cannot be " @@ -966,7 +966,7 @@ msgid "" "They will be reset to their default values." msgstr "" -#: rapid/preferencesdialog.py:1750 +#: rapid/preferencesdialog.py:1760 #, python-format msgid "" "The following regular expressions are invalid, and will be removed unless " @@ -974,7 +974,7 @@ msgid "" " %s" msgstr "" -#: rapid/preferencesdialog.py:1752 +#: rapid/preferencesdialog.py:1762 #, python-format msgid "" "This regular expression is invalid, and will be removed unless you correct " @@ -982,17 +982,17 @@ msgid "" " %s" msgstr "" -#: rapid/preferencesdialog.py:1753 +#: rapid/preferencesdialog.py:1763 msgid "Invalid regular expression" msgstr "" #. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this. -#: rapid/preferencesdialog.py:1934 +#: rapid/preferencesdialog.py:1944 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:1936 +#: rapid/preferencesdialog.py:1946 msgid "externaldrive2" msgstr "" @@ -1069,11 +1069,11 @@ msgid "Stockholm" msgstr "" #. components -#: rapid/problemnotification.py:27 rapid/subfolderfile.py:358 +#: rapid/problemnotification.py:27 rapid/subfolderfile.py:461 msgid "subfolder" msgstr "" -#: rapid/problemnotification.py:28 rapid/subfolderfile.py:356 +#: rapid/problemnotification.py:28 rapid/subfolderfile.py:459 msgid "filename" msgstr "" @@ -1319,7 +1319,7 @@ msgstr "" msgid "Multiple problems were encountered" msgstr "" -#: rapid/problemnotification.py:404 rapid/subfolderfile.py:233 +#: rapid/problemnotification.py:404 rapid/subfolderfile.py:265 msgid "Photos detected with the same filenames, but taken at different times" msgstr "" @@ -1345,39 +1345,39 @@ msgstr "" msgid "%(previousproblem)s, and %(backinguperror)s" msgstr "" -#: rapid/rpdfile.py:153 +#: rapid/rpdfile.py:159 #, python-format msgid "%(number)s %(filetypes)s" msgstr "" -#: rapid/rpdfile.py:163 +#: rapid/rpdfile.py:169 #, python-format msgid "scanning (found %(photos)s photos and %(videos)s videos)..." msgstr "" -#: rapid/subfolderfile.py:80 +#: rapid/subfolderfile.py:82 #, python-format msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s" msgstr "" -#: rapid/subfolderfile.py:301 +#: rapid/subfolderfile.py:396 msgid "Photo has already been downloaded" msgstr "" -#: rapid/subfolderfile.py:302 +#: rapid/subfolderfile.py:397 #, python-format msgid "Source: %(source)s" msgstr "" -#: rapid/subfolderfile.py:354 +#: rapid/subfolderfile.py:457 msgid "subfolder and filename" msgstr "" -#: rapid/subfolderfile.py:393 +#: rapid/subfolderfile.py:500 rapid/subfolderfile.py:511 msgid "Failed to create download subfolder" msgstr "" -#: rapid/subfolderfile.py:394 +#: rapid/subfolderfile.py:501 rapid/subfolderfile.py:512 #, python-format msgid "Path: %s" msgstr "" diff --git a/po/sv.po b/po/sv.po index bca543e..76b2493 100644 --- a/po/sv.po +++ b/po/sv.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: rapid\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-06-23 04:00-0500\n" -"PO-Revision-Date: 2012-11-09 01:10+0000\n" -"Last-Translator: Mikael Hiort af Ornäs \n" +"PO-Revision-Date: 2013-05-27 23:14+0000\n" +"Last-Translator: Joachim Johansson \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-11-26 19:04+0000\n" -"X-Generator: Launchpad (build 16309)\n" +"X-Launchpad-Export-Date: 2013-08-26 05:21+0000\n" +"X-Generator: Launchpad (build 16738)\n" #. Translators: if neccessary, for guidance in how to translate this program, you may see http://damonlynch.net/translate.html #: rapid/rapid.py:112 rapid/rapid.py:1784 rapid/glade3/rapid.ui.h:1 @@ -79,19 +79,19 @@ msgstr "filsystemets rotmapp" #: rapid/rapid.py:1786 #, python-format msgid "Downloading from %(location)s." -msgstr "Laddar ner från %(location)s." +msgstr "För över från %(location)s." #: rapid/rapid.py:1787 msgid "" "Do you really want to download from here? On some systems, scanning this " "location can take a very long time." msgstr "" -"Vill du verkligen ladda ner härifrån? På vissa filsystem kan det ta väldigt " -"lång tid att scanna den här platsen." +"Vill du verkligen föra över härifrån? På vissa filsystem kan det ta väldigt " +"lång tid att söka av den här platsen." #: rapid/rapid.py:2209 msgid "Download" -msgstr "Hämta" +msgstr "Starta överföringen" #: rapid/rapid.py:2212 msgid "Pause" @@ -114,7 +114,7 @@ msgid "" "This download folder is invalid:\n" "%s" msgstr "" -"Denna mapp är ogiltig:\n" +"Denna nedladdningsmapp är ogiltig:\n" "%s" #: rapid/rapid.py:2321 @@ -123,16 +123,16 @@ msgstr "Kan inte fortsätta överföringen" #: rapid/rapid.py:2700 msgid "About 1 second remaining" -msgstr "Cirka en sekund återstår" +msgstr "Ungefär en sekund återstår" #: rapid/rapid.py:2702 #, python-format msgid "About %i seconds remaining" -msgstr "Cirka %i sekunder återstår" +msgstr "Ungefär %i sekunder återstår" #: rapid/rapid.py:2704 msgid "About 1 minute remaining" -msgstr "Cirka en minut återstår" +msgstr "Ungefär en minut återstår" #. 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 @@ -152,12 +152,12 @@ msgstr "bilder eller filmer" #: rapid/rapid.py:2736 rapid/rapid.py:3558 rapid/rpdfile.py:128 msgid "videos" -msgstr "video" +msgstr "filmer" #: rapid/rapid.py:2738 rapid/preferencesdialog.py:1620 rapid/rpdfile.py:130 #: rapid/rpdfile.py:291 msgid "video" -msgstr "video" +msgstr "film" #: rapid/rapid.py:2741 rapid/rapid.py:3556 rapid/rpdfile.py:133 msgid "photos" @@ -185,7 +185,7 @@ msgstr "varningar" #: rapid/rapid.py:2786 msgid "All downloads complete" -msgstr "Alla överföringar klara" +msgstr "Alla överföringar är färdiga" #: rapid/rapid.py:2792 rapid/rapid.py:2801 rapid/rapid.py:2810 #: rapid/rapid.py:2819 rapid/rapid.py:2827 @@ -196,12 +196,12 @@ msgstr "%(number)s %(numberdownloaded)s" #: rapid/rapid.py:2794 rapid/rapid.py:2812 #, python-format msgid "%(filetype)s downloaded" -msgstr "%(filetype)s hämtade" +msgstr "%(filetype)s överfördes" #: rapid/rapid.py:2803 rapid/rapid.py:2821 #, python-format msgid "%(filetype)s failed to download" -msgstr "%(filetype)s gick inte att hämta" +msgstr "%(filetype)s gick inte att föra över" #. e.g.: 3 of 205 photos and videos (202 remaining) #: rapid/rapid.py:2860 @@ -226,7 +226,7 @@ msgstr "Upptäck automatiskt" #: rapid/rapid.py:3234 rapid/preferencesdialog.py:1327 #, python-format msgid "Select a folder containing %(file_types)s" -msgstr "Välj en katalog innehållande %(file_types)s" +msgstr "Välj en mapp innehållande %(file_types)s" #: rapid/rapid.py:3275 msgid "Copy" @@ -246,7 +246,7 @@ msgstr "Bilder:" #: rapid/rapid.py:3320 rapid/preferencesdialog.py:1164 msgid "Select a folder to download photos to" -msgstr "Välj en katalog att överföra bilder till" +msgstr "Välj en mapp att överföra bilder till" #: rapid/rapid.py:3332 rapid/rapid.py:3986 msgid "Videos:" @@ -270,7 +270,7 @@ msgstr "Använder enhet för säkerhetskopiering" #: rapid/rapid.py:3535 msgid "No backup devices detected" -msgstr "Inga enheter för säkerhetskopiering hittades" +msgstr "Hittade inga enheter för säkerhetskopiering" #: rapid/rapid.py:3562 msgid "Free space:" @@ -329,7 +329,7 @@ msgstr "Säkerhetskopierar till %(path)s" #: rapid/rapid.py:3608 #, python-format msgid "Backing up photos to %(path)s and videos to %(path2)s" -msgstr "Säkerhetskopierar bolder till %(path)s och videor till %(path2)s" +msgstr "Säkerhetskopierar bilder till %(path)s och filmer till %(path2)s" #: rapid/rapid.py:3615 #, python-format @@ -370,7 +370,7 @@ msgstr "%(file_type)s nedladdningsmapp är inte skrivbar" #: rapid/rapid.py:3894 msgid "Thumbnails" -msgstr "Miniatyrer" +msgstr "Miniatyrbilder" #. 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. @@ -380,29 +380,29 @@ msgid "" "display program information on the command line as the program runs " "(default: %default)" msgstr "" -"visa programinformation på kommandoraden när programmet körs (standardvärde: " +"visa programinformation i kommandoraden när programmet körs (default: " "%default)" #: rapid/rapid.py:3950 msgid "display debugging information when run from the command line" -msgstr "visa debuginformation när programmet körs från kommandorad" +msgstr "visa debug-information när programmet körs från kommandoraden" #: rapid/rapid.py:3951 msgid "only output errors to the command line" -msgstr "Visa fel endast på kommandoraden" +msgstr "visa fel endast på kommandoraden" #. image file extensions are recognized RAW files plus TIFF and JPG #: rapid/rapid.py:3953 msgid "list photo and video file extensions the program recognizes and exit" -msgstr "lista filändelser som programmet stödjer och avsluta" +msgstr "visa de filändelser som programmet stödjer och avsluta" #: rapid/rapid.py:3955 msgid "" "automatically detect devices from which to download, overwriting existing " "program preferences" msgstr "" -"identifiera automatiskt enheter att hämta objekt från och ersätt därmed " -"befintliga programinställningar" +"upptäck automatiskt enheter att hämta objekt från och ersätt de nuvarande " +"programinställningarna" #: rapid/rapid.py:3956 msgid "" @@ -410,7 +410,7 @@ msgid "" "existing program preferences" msgstr "" "ange SÖKVÄGEN manuellt till den enhet från vilken du önskar hämta objekt och " -"ersätt därmed befintliga programinställningar" +"ersätt de nuvarande programinställningarna" #: rapid/rapid.py:3957 msgid "reset all program settings and preferences and exit" @@ -421,8 +421,8 @@ msgid "" "Error: specify device auto-detection or manually specify a device's path " "from which to download, but do not do both." msgstr "" -"Fel: Aktivera antingen automatisk identifiering av enheter eller ange en " -"enhetssökväg manuellt. Du kan inte välja båda." +"Fel: Aktivera antingen automatisk upptäckt av enheter eller ange en sökvägen " +"manuellt. Du kan inte välja båda." #: rapid/rapid.py:3991 #, python-format @@ -440,7 +440,7 @@ msgstr "Fel vid säkerhetskopiering" #: rapid/backupfile.py:159 #, python-format msgid "Destination directory could not be created: %(directory)s\n" -msgstr "Målplatsen kunde inte skapas: %(directory)s\n" +msgstr "Målmappen kunde inte skapas: %(directory)s\n" #: rapid/backupfile.py:161 rapid/backupfile.py:182 rapid/subfolderfile.py:199 #, python-format @@ -474,7 +474,7 @@ msgstr "Enhet hittad" #: rapid/device.py:89 msgid "" "Should this device or partition be used to download photos or videos from?" -msgstr "Skall denna enhet användas för bild- eller filmöverföring?" +msgstr "Skall denna enhet användas för bild- och filmöverföring?" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt #: rapid/device.py:108 @@ -529,7 +529,7 @@ msgstr "Igår" #. Translators: Download time is the time and date that the download started (when the user clicked the Download button) #: rapid/generatenameconfig.py:163 msgid "Download time" -msgstr "Nedladdningstid" +msgstr "Nedladdningsögonblick" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename #: rapid/generatenameconfig.py:165 @@ -568,7 +568,7 @@ msgstr "ISO" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata #: rapid/generatenameconfig.py:178 msgid "Exposure time" -msgstr "Bländartid" +msgstr "Exponeringstid" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata #: rapid/generatenameconfig.py:180 @@ -627,7 +627,7 @@ msgstr "Ägarens namn" #: rapid/generatenameconfig.py:201 msgid "Codec" -msgstr "Kodek" +msgstr "Avkodare" #: rapid/generatenameconfig.py:202 msgid "Width" @@ -749,7 +749,7 @@ msgstr "Sju siffror" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime #: rapid/generatenameconfig.py:242 msgid "Subseconds" -msgstr "Sekunder" +msgstr "Sekunddelar" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime #: rapid/generatenameconfig.py:244 @@ -864,17 +864,17 @@ msgstr "SS" #: rapid/preferencesdialog.py:374 #, python-format msgid "Subfolder preferences should not start with a %s" -msgstr "Inställningen för underkataloger skall inte börja med %s" +msgstr "Inställningen för undermappar ska inte börja med %s" #: rapid/preferencesdialog.py:376 #, python-format msgid "Subfolder preferences should not end with a %s" -msgstr "Inställning för underkatalog skall inte börja med %s" +msgstr "Inställningen för undermappen ska inte börja med %s" #: rapid/preferencesdialog.py:380 #, python-format msgid "Subfolder preferences should not contain two %s one after the other" -msgstr "Inställning för underkatalog skall inte innehålla två %s i rad" +msgstr "Inställningen för undermappen ska inte innehålla två %s i rad" #: rapid/preferencesdialog.py:439 rapid/preferencesdialog.py:700 msgid "Remove all Job Codes?" @@ -924,12 +924,12 @@ msgstr "Ange fototillfälle" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode #: rapid/preferencesdialog.py:758 msgid "Enter a new Job Code, or select a previous one" -msgstr "Skriv ett nytt jobbnummer, eller välj ett föregående" +msgstr "Ange ett nytt fototillfälle, eller välj något av de tidigare" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#jobcode #: rapid/preferencesdialog.py:761 msgid "Enter a new Job Code" -msgstr "Ange nytt jobbnamn" +msgstr "Ange ett nytt fototillfälle" #: rapid/preferencesdialog.py:766 msgid "Job Code:" @@ -950,15 +950,15 @@ msgstr "Sökväg:" #: rapid/preferencesdialog.py:1082 msgid "Job Code" -msgstr "Jobbnamn" +msgstr "Fototillfälle" #: rapid/preferencesdialog.py:1353 msgid "Select a folder in which to backup photos" -msgstr "Välj en plats för att säkerhetskopiera bilder" +msgstr "Välj den mapp där du vill säkerhetskopiera bilderna" #: rapid/preferencesdialog.py:1366 msgid "Select a folder in which to backup videos" -msgstr "Välj en plats för att säkerhetskopiera videor" +msgstr "Välj den mapp där du vill säkerhetskopiera filmerna" #. Translators: please do not modify or leave out html formatting tags like and . These are used to format the text the users sees #: rapid/preferencesdialog.py:1461 @@ -966,16 +966,16 @@ msgid "" "Warning: There is insufficient metadata to fully generate the " "name. Please use other renaming options." msgstr "" -"Varning: Det saknas metadata för att namnge. Var god välj andra " -"inställningar för namngivning." +"Varning: Metadata saknas för att namnge filerna. Ändra " +"namngivningsinställningarna." #: rapid/preferencesdialog.py:1512 msgid "" "Warning: There is insufficient metadata to fully generate " "subfolders. Please use other subfolder naming options." msgstr "" -"Varning: Det finns inte tillräckligt med metadata för att skapa " -"underkataloger. Välj andra inställningar för att namnge underkataloger." +"Varning:Metadata saknas för att namnge undermappar. Ändra " +"namngivningsinställningarna." #. 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:1515 @@ -991,7 +991,7 @@ msgid "" "used.\n" "They will be reset to their default values." msgstr "" -"Underkatalog för %(filetype)s har felaktiga inställningar som inte kan " +"Undermappen för %(filetype)s har felaktiga inställningar som inte kan " "användas.\n" "Återställer till standardvärden." @@ -1002,7 +1002,7 @@ msgid "" "you correct them:\n" " %s" msgstr "" -"Följande reguljära uttryck är ogiltiga, och kommer att tas bort om du inte " +"Följande reguljära uttryck är ogiltiga och kommer att tas bort om du inte " "ändrar dem:\n" " %s" @@ -1013,7 +1013,7 @@ msgid "" "it:\n" " %s" msgstr "" -"Detta reguljära uttryck är ogiltigt, och kommer att tas bort om du inte " +"Detta reguljära uttryck är ogiltigt och kommer att tas bort om du inte " "ändrar det:\n" " %s" @@ -1093,7 +1093,7 @@ msgstr "Warszawa" #: rapid/prefsrapid.py:131 msgid "Jakarta" -msgstr "Djakarta" +msgstr "Jakarta" #: rapid/prefsrapid.py:131 msgid "Madrid" @@ -1106,16 +1106,16 @@ msgstr "Stockholm" #. components #: rapid/problemnotification.py:27 rapid/subfolderfile.py:358 msgid "subfolder" -msgstr "Underkatalog" +msgstr "Undermapp" #: rapid/problemnotification.py:28 rapid/subfolderfile.py:356 msgid "filename" -msgstr "Filnamn" +msgstr "filnamn" #: rapid/problemnotification.py:81 #, python-format msgid "Date time value %s appears invalid." -msgstr "Datum/tid-värde %s verkar ogiltigt." +msgstr "Datum/tid-värdet %s verkar vara ogiltigt." #: rapid/problemnotification.py:82 msgid "Filename does not have an extension." @@ -1135,7 +1135,7 @@ msgstr "Ett fel uppstod när nummer %s skulle skapas." #: rapid/problemnotification.py:87 #, python-format msgid "%(filetype)s metadata cannot be read" -msgstr "Metadata i %(filetype)s kan inte läsas." +msgstr "Metadata i %(filetype)s kan inte avläsas." #: rapid/problemnotification.py:89 #, python-format @@ -1167,7 +1167,7 @@ msgid "" "%(image1)s was taken on %(image1_date)s at %(image1_time)s, and %(image2)s " "on %(image2_date)s at %(image2_time)s." msgstr "" -"%(image1)s togs den %(image1_date)s kl %(image1_time)s, och %(image2)s den " +"%(image1)s togs den %(image1_date)s kl %(image1_time)s och %(image2)s den " "%(image2_date)s kl %(image2_time)s." #: rapid/problemnotification.py:104 @@ -1202,13 +1202,13 @@ msgstr "Fel: %(errorno)s %(strerror)s" #: rapid/problemnotification.py:202 msgid "The metadata might be corrupt." -msgstr "Metadatan kan vara korrupt." +msgstr "Metadatan kan vara skadad." #: rapid/problemnotification.py:205 msgid "" "The filename, extension and Exif information indicate it has already been " "downloaded." -msgstr "Filnamnet, filändelsen och Exif-informationen har redan överförts." +msgstr "Filnamnet, filändelsen och exif-informationen har redan överförts." #: rapid/problemnotification.py:224 #, python-format @@ -1237,24 +1237,21 @@ msgid "" "Photos detected with the same filenames, but taken at different times: " "%(details)s" msgstr "" -"Hittade bilder med samma filnamn, fast tagna vid olika tillfällen: " -"%(details)s" +"Hittade bilder med samma filnamn tagna vid olika tillfällen: %(details)s" #: rapid/problemnotification.py:258 #, python-format msgid "An error occurred when backing up on %(volume)s: %(inst)s." -msgstr "" -"Ett fel uppstod när säkerhetskopia skulle tas till %(volume)s: %(inst)s." +msgstr "Ett fel uppstod vid säkerhetskopiering till %(volume)s: %(inst)s." #: rapid/problemnotification.py:260 #, python-format msgid "An error occurred when backing up on %(volume)s." -msgstr "Ett fel uppstod när säkerhetskopia skulle tas till %(volume)s." +msgstr "Ett fel uppstod vid säkerhetskopiering till %(volume)s." #: rapid/problemnotification.py:262 msgid "Errors occurred when backing up on the following backup devices: " -msgstr "" -"Ett fel uppstod när säkerhetskopia skulle tas till följande enheter: " +msgstr "Ett fel uppstod vid säkerhetskopiering till följande enheter: " #: rapid/problemnotification.py:266 rapid/problemnotification.py:314 #, python-format @@ -1279,45 +1276,45 @@ msgstr "%(volumes)s och %(volume)s." #: rapid/problemnotification.py:285 #, python-format msgid "Backup already exists on %(volume)s." -msgstr "Säkerhetskopia finns redan på %(volume)s." +msgstr "En säkerhetskopia finns redan på %(volume)s." #: rapid/problemnotification.py:287 msgid "Backups already exist in these locations: " -msgstr "Säkerhetskopia finns redan i: " +msgstr "En säkerhetskopia finns redan i: " #: rapid/problemnotification.py:297 #, python-format msgid "Backup overwritten on %(volume)s." -msgstr "Säkerhetskopia skrevs över på %(volume)s." +msgstr "Den befintliga säkerhetskopian skrevs över på %(volume)s." #: rapid/problemnotification.py:299 msgid "Backups overwritten on these devices: " -msgstr "Säkerhetskopia skrevs över i: " +msgstr "Den befintliga säkerhetskopian skrevs över på: " #: rapid/problemnotification.py:310 #, python-format msgid "An error occurred when creating directories on %(volume)s: %(inst)s." -msgstr "Ett fel uppstod när kataloger skulle skapas på %(volume)s: %(inst)s." +msgstr "Ett fel uppstod när mappar skulle skapas på %(volume)s: %(inst)s." #: rapid/problemnotification.py:312 msgid "" "Errors occurred when creating directories on the following backup devices: " -msgstr "Ett fel uppstod när kataloger skulle skapas på följande enheter: " +msgstr "Ett fel uppstod när mappar skulle skapas på följande enheter: " #: rapid/problemnotification.py:323 #, python-format msgid "%(previousproblem)s Additionally, %(newproblem)s" -msgstr "%(previousproblem)s Mer problem därtill, %(newproblem)s" +msgstr "%(previousproblem)s Dessutom, %(newproblem)s" #: rapid/problemnotification.py:331 #, python-format msgid " Furthermore, there were %(problems)s." -msgstr " Problem hittades %(problems)s." +msgstr " Dessutom uppstod %(problems)s." #: rapid/problemnotification.py:333 #, python-format msgid " Furthermore, there was a %(problem)s." -msgstr " Ett problem hittades %(problem)s." +msgstr " Dessutom uppstod %(problem)s." #: rapid/problemnotification.py:342 #, python-format @@ -1332,25 +1329,25 @@ msgstr "Följande metadata saknas: " #, python-format msgid "%(missing_metadata_elements)s and %(final_missing_metadata_element)s." msgstr "" -"%(missing_metadata_elements)s oct %(final_missing_metadata_element)s." +"%(missing_metadata_elements)s och %(final_missing_metadata_element)s." #: rapid/problemnotification.py:364 msgid "Problems in subfolder and filename generation" -msgstr "Problem med skapande av undermappar och filnamn" +msgstr "Problem vid namngivning av undermappar och filnamn" #: rapid/problemnotification.py:366 msgid "Problem in subfolder and filename generation" -msgstr "Problem med skapande av undermappar och filnamn" +msgstr "Problem vid namngivning av undermappar och filnamn" #: rapid/problemnotification.py:369 #, python-format msgid "Problems in %s generation" -msgstr "Problem med skapande av %s" +msgstr "Problem vid namngivning av %s" #: rapid/problemnotification.py:371 #, python-format msgid "Problem in %s generation" -msgstr "Problem med skapande av %s" +msgstr "Problem vid namngivning av %s" #: rapid/problemnotification.py:380 #, python-format @@ -1365,33 +1362,33 @@ msgstr "" #: rapid/problemnotification.py:402 msgid "Multiple problems were encountered" -msgstr "Flera fel hittades" +msgstr "Flera fel uppstod" #: rapid/problemnotification.py:404 rapid/subfolderfile.py:233 msgid "Photos detected with the same filenames, but taken at different times" -msgstr "Bilder med samma filnamn hittades, fast tagna vid olika tillfällen" +msgstr "Bilder med samma filnamn, tagna vid olika tillfällen, hittades" #: rapid/problemnotification.py:410 msgid "there were errors backing up" -msgstr "det uppstod fel vid säkerhetskopiering" +msgstr "det uppstod fel vid säkerhetskopieringen" #: rapid/problemnotification.py:411 msgid "There were errors backing up" -msgstr "Det uppstod fel vid säkerhetskopiering" +msgstr "Det uppstod fel vid säkerhetskopieringen" #: rapid/problemnotification.py:413 msgid "there was an error backing up" -msgstr "det uppstod ett fel vid säkerhetskopiering" +msgstr "det uppstod ett fel vid säkerhetskopieringen" #: rapid/problemnotification.py:414 msgid "There was an error backing up" -msgstr "Det uppstod ett fel vid säkerhetskopiering" +msgstr "Det uppstod ett fel vid säkerhetskopieringen" #. e.g. #: rapid/problemnotification.py:417 #, python-format msgid "%(previousproblem)s, and %(backinguperror)s" -msgstr "%(previousproblem)s, och %(backinguperror)s" +msgstr "%(previousproblem)s och %(backinguperror)s" #: rapid/rpdfile.py:153 #, python-format @@ -1401,7 +1398,7 @@ msgstr "%(number)s %(filetypes)s" #: rapid/rpdfile.py:163 #, python-format msgid "scanning (found %(photos)s photos and %(videos)s videos)..." -msgstr "söker igenom (har hittat %(photos)s bilder och %(videos)s videor)…" +msgstr "söker igenom (har hittat %(photos)s bilder och %(videos)s filmer)…" #: rapid/subfolderfile.py:80 #, python-format @@ -1423,7 +1420,7 @@ msgstr "undermapp och filnamn" #: rapid/subfolderfile.py:393 msgid "Failed to create download subfolder" -msgstr "Misslyckades med att skapa mapp för nedladdning" +msgstr "Misslyckades med att skapa nedladdningmappen" #: rapid/subfolderfile.py:394 #, python-format @@ -1436,7 +1433,7 @@ msgstr "_Arkiv" #: rapid/glade3/rapid.ui.h:3 msgid "Download / Pause" -msgstr "Överföring / Paus" +msgstr "Överför / Pausa" #: rapid/glade3/rapid.ui.h:4 msgid "_Select" @@ -1448,7 +1445,7 @@ msgstr "Markera alla som sakna_r fototillfälle" #: rapid/glade3/rapid.ui.h:6 msgid "Select All Wit_h Job Code" -msgstr "Markera alla vid ett fototillf_älle" +msgstr "Markera alla med ett fototillf_älle" #: rapid/glade3/rapid.ui.h:7 msgid "_View" @@ -1504,8 +1501,7 @@ msgstr "Inställningar: Rapid Photo Downloader" #: rapid/glade3/prefs.ui.h:2 msgid "Photo Download Folders" -msgstr "" -"Bildöverföringskataloger" +msgstr "Bildöverföringsmapp" #: rapid/glade3/prefs.ui.h:3 msgid "Example: /home/user/Pictures" @@ -1513,35 +1509,36 @@ msgstr "Exempel: /home/user/Bilder" #: rapid/glade3/prefs.ui.h:4 msgid "Download Subfolders" -msgstr "Underkataloger till överföring" +msgstr "Inkludera undermappar i överföringen" #: rapid/glade3/prefs.ui.h:5 msgid "Download folder:" -msgstr "Katalog för överföring:" +msgstr "Överföringsmapp:" #: rapid/glade3/prefs.ui.h:6 msgid "" "Choose the download folder. Subfolders for the downloaded photos will be " "automatically created in this folder using the structure specified below." msgstr "" -"Ange en katalog för överföring. Underkataloger kommer att skapas automatiskt " -"enligt strukturen nedan." +"Ange en överföringsmapp. Undermappar kommer att skapas automatiskt enligt " +"strukturen nedan." #: rapid/glade3/prefs.ui.h:7 msgid "Download Folder" -msgstr "Överföringskatalog" +msgstr "Överföringsmapp" #: rapid/glade3/prefs.ui.h:8 msgid "Photo Folders" -msgstr "Bildkataloger" +msgstr "Bildmapp" #: rapid/glade3/prefs.ui.h:9 msgid "Photo Rename\t" -msgstr "Bildnamngivning\t" +msgstr "" +"Namngivning av bilder\t" #: rapid/glade3/prefs.ui.h:10 msgid "Photo Rename" -msgstr "Bildnamngivning" +msgstr "Namngivning av bilder" #: rapid/glade3/prefs.ui.h:11 msgid " " @@ -1561,7 +1558,7 @@ msgstr "Exempel" #: rapid/glade3/prefs.ui.h:15 msgid "Photo Rename" -msgstr "Bildnamngivning" +msgstr "Namngivning av bilder" #: rapid/glade3/prefs.ui.h:16 msgid "Video Download Folders" @@ -1573,34 +1570,35 @@ msgid "" "install either the hachoir metadata and kaa metadata packages " "for python, or exiftool." msgstr "" -"Ledsen, men videohämtningsfunktionen har inaktiverats. För att hämta videor, " -"installera antingen paketen hachoir metadata och kaa metadata " -"för python, eller exiftool." +"Ledsen, men filmhämtningsfunktionen har inaktiverats. För att föra över " +"filmer, installera antingen paketen hachoir metadata och kaa " +"metadata för python, eller exiftool." #: rapid/glade3/prefs.ui.h:18 msgid "" "Choose the download folder. Subfolders for the downloaded videos will be " "automatically created in this folder using the structure specified below." msgstr "" -"Välj katalog för överföring. Underkataloger kommer att skapas automatiskt " -"enligt inställningarna nedan." +"Välj överföringsmapp. Undermappar kommer att skapas automatiskt enligt " +"strukturen nedan." #: rapid/glade3/prefs.ui.h:19 msgid "Video Folders" -msgstr "Filmkataloger" +msgstr "Filmmapp" #: rapid/glade3/prefs.ui.h:20 msgid "Video Rename\t" -msgstr "Filmnamngivning\t" +msgstr "" +"Namngivning av filmer\t" #: rapid/glade3/prefs.ui.h:21 msgid "Video Rename" -msgstr "Filmnamngivning" +msgstr "Namngivning av filmer" #: rapid/glade3/prefs.ui.h:22 msgid "Rename Options" msgstr "" -"Alternativ för namnbyte" +"Alternativ för namngivning" #: rapid/glade3/prefs.ui.h:23 msgid "Sequence Numbers" @@ -1611,16 +1609,16 @@ msgid "" "Specify the time in 24 hour format at which the Downloads today " "sequence number should be reset." msgstr "" -"Ange tiden i 24-timmarsformat då Antal överföringar idag ska " +"Ange tiden i 24-timmarsformat då Antalet överföringar idag ska " "nollställas." #: rapid/glade3/prefs.ui.h:25 msgid "Day start:" -msgstr "Början på dagen:" +msgstr "Dagen börjar:" #: rapid/glade3/prefs.ui.h:26 msgid "Downloads today:" -msgstr "Antal överföringar idag:" +msgstr "Antalet överföringar idag:" #: rapid/glade3/prefs.ui.h:27 msgid "Stored number:" @@ -1636,7 +1634,7 @@ msgstr " hh:mm" #: rapid/glade3/prefs.ui.h:30 msgid "Synchronize RAW + JPEG sequence numbers" -msgstr "Synkronisera RAW och JPEG-sekvensnummer" +msgstr "Använd samma sekvensnummer för både RAW- och JPEG-filer" #: rapid/glade3/prefs.ui.h:31 msgid "Compatibility with Other Operating Systems" @@ -1647,8 +1645,8 @@ msgid "" "Specify whether photo, video and folder names should have any characters " "removed that are not allowed by other operating systems." msgstr "" -"Ange om specialtecken som inte stöds av operativsystemet ska tas bort från " -"filnamn." +"Ange om specialtecken som inte tillåts i andra operativsystem ska tas bort " +"från fil- och mappnamn." #: rapid/glade3/prefs.ui.h:33 msgid "Strip incompatible characters" @@ -1656,7 +1654,7 @@ msgstr "Avlägsna inkompatibla tecken" #: rapid/glade3/prefs.ui.h:34 msgid "Rename Options" -msgstr "Inställningar för namnbyte" +msgstr "Inställningar för namngivning" #: rapid/glade3/prefs.ui.h:35 msgid "Job Codes" @@ -1699,13 +1697,13 @@ msgid "" "setting it to PTP mode. If that is not possible, a card reader must be " "used." msgstr "" -"Du kan överföra bilder och videor från kameror, minneskort eller externa " +"Du kan överföra bilder och filmer från kameror, minneskort eller externa " "enheter som t.ex hårddiskar.\n" "\n" "Du kan överföra från flera enheter samtidigt, eller ange en plats på din " "hårddisk.\n" "\n" -"Överföring direkt från kameror är en experimentell funktion. Om det " +"Överföring direkt från kameran är en experimentell funktion. Om det " "fungerar dåligt eller inte alls, prova att aktivera PTP läge på din kamera. " "Om det ändå inte fungerar måste du använda en kortläsare." @@ -1728,8 +1726,8 @@ msgstr "" "Om du aktiverar sökning av externa enheter så kommer hela enheten att " "avsökas. På stora enheter kan det ta en stund.\n" "\n" -"När denna inställning är påslagen och en potentiell enhet hittas, så kommer " -"du att frågas om den ska avsökas eller ej." +"När denna inställning är påslagen och en möjlig enhet hittas, så kommer du " +"att tillfrågas om den ska avsökas eller ej." #: rapid/glade3/prefs.ui.h:53 msgid "Location:" @@ -1740,7 +1738,8 @@ msgid "" "If you disable automatic detection, choose the exact location of the photos " "and videos." msgstr "" -"Om du inaktiverar automatisk sökning, ange exakt plats för bilder och videor." +"Om du inaktiverar automatisk sökning, måste du ange exakt plats för bilder " +"och filmer." #: rapid/glade3/prefs.ui.h:55 msgid "Device Options" @@ -1776,7 +1775,7 @@ msgstr "Ta bo_rt alla" #: rapid/glade3/prefs.ui.h:62 msgid "Use _python-style regular expressions" -msgstr "Använd Python-kompatibla reguljära uttryck" +msgstr "Använd _Python-kompatibla reguljära uttryck" #: rapid/glade3/prefs.ui.h:63 msgid "Device Options" @@ -1794,7 +1793,8 @@ msgstr "Säkerhetskopia" msgid "" "If you disable automatic detection, choose the exact backup locations." msgstr "" -"Om du inaktiverar automatisk sökning, ange exakt plats för säkerhetskopior." +"Om du inaktiverar automatisk sökning, måste du ange exakta platser för " +"säkerhetskopiorna." #: rapid/glade3/prefs.ui.h:67 msgid "Automatically detect backup devices" @@ -1810,7 +1810,7 @@ msgstr "" #: rapid/glade3/prefs.ui.h:69 msgid "Backup photos and videos when downloading" -msgstr "Säkerhetskopiera bilder och filmer vid överföring" +msgstr "Säkerhetskopiera bilder och filmer under överföringen" #: rapid/glade3/prefs.ui.h:70 msgid "" @@ -1820,9 +1820,9 @@ 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." msgstr "" -"Välj i vilken katalog på enheten som används till säkerhetskopior.\n" +"Välj i vilken mapp på enheten som används till säkerhetskopior.\n" "\n" -"Observera att katalogen kommer användas för att avgöra om enheten används " +"Observera att mappen kommer användas för att avgöra om enheten används " "till säkerhetskopior. För varje enhet du vill använda till säkerhetskopior " "kan du skapa en mapp med ett av dessa namn." @@ -1832,7 +1832,7 @@ msgstr "Plats för säkerhetskopiering av bilder:" #: rapid/glade3/prefs.ui.h:74 msgid "Photo backup folder name:" -msgstr "Plats för säkerhetskopiering av bilder:" +msgstr "Säkerhetskopieringsmapp för bilder:" #: rapid/glade3/prefs.ui.h:75 msgid "Example:" @@ -1840,11 +1840,11 @@ msgstr "Exempel:" #: rapid/glade3/prefs.ui.h:76 msgid "/media/externaldrive/Photos" -msgstr "/media/extern_enhet/Photos" +msgstr "/media/extern_enhet/Bilder" #: rapid/glade3/prefs.ui.h:77 msgid "Video backup folder name:" -msgstr "Katalog för säkerhetskopiering av film:" +msgstr "Säkerhetskopieringsmapp för filmer:" #: rapid/glade3/prefs.ui.h:78 msgid "Video backup location:" @@ -1852,7 +1852,7 @@ msgstr "Plats för säkerhetskopiering av videor:" #: rapid/glade3/prefs.ui.h:79 msgid "Backup" -msgstr "Säkerhetskopiering" +msgstr "Säkerhetskopia" #: rapid/glade3/prefs.ui.h:80 msgid "Miscellaneous" @@ -1860,23 +1860,23 @@ msgstr "Diverse" #: rapid/glade3/prefs.ui.h:81 msgid "Program Automation" -msgstr "Automatisering av programmet" +msgstr "Automatisera programmet" #: rapid/glade3/prefs.ui.h:82 msgid "Unmount (\"eject\") device upon download completion" -msgstr "Mata ut och avmontera enheter när överföring är klar" +msgstr "Avmontera och mata ut enheter när överföringen är färdig" #: rapid/glade3/prefs.ui.h:83 msgid "Start downloading at program startup" -msgstr "Börja överföring vid programstart" +msgstr "Påbörja överföringen när programmet startar" #: rapid/glade3/prefs.ui.h:84 msgid "Start downloading upon device insertion" -msgstr "Påbörja överföring när enhet sätts i" +msgstr "Påbörja överföring när en enhet sätts i" #: rapid/glade3/prefs.ui.h:85 msgid "Exit program when download completes" -msgstr "Avsluta programmet när överföring är klar" +msgstr "Avsluta programmet när överföringen är färdig" #: rapid/glade3/prefs.ui.h:86 msgid "Exit program even if download had warnings or errors" @@ -1892,7 +1892,7 @@ msgstr "Prestanda" #: rapid/glade3/prefs.ui.h:89 msgid "Generate thumbnails (slower)" -msgstr "Skapa miniatyrer (långsammare)" +msgstr "Skapa miniatyrbilder (långsammare)" #: rapid/glade3/prefs.ui.h:90 msgid "Miscellaneous" @@ -1919,20 +1919,20 @@ 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 "" -"När en bild eller video med samma namn redan har överförts, välj om den ska " -"skippas eller tilldelas ett unikt nummer." +"Ange om en bild eller film med ett namn som redan finns, ska hoppas över " +"eller tilldelas ett unikt nummer." #: rapid/glade3/prefs.ui.h:96 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 "" -"Ange om filer som redan finns på enheten för säkerhetskopiering skall " -"skrivas över, eller inte säkerhetskopieras." +"Ange om en bild eller film med ett namn som redan finns på säkerhetskopian, " +"ska hoppas över eller skrivas över." #: rapid/glade3/prefs.ui.h:97 msgid "Overwrite" -msgstr "Ersätt" +msgstr "Skriv över" #: rapid/glade3/prefs.ui.h:98 msgid "Skip" diff --git a/po/uk.po b/po/uk.po index 2a799c7..59f1c88 100644 --- a/po/uk.po +++ b/po/uk.po @@ -8,26 +8,26 @@ msgid "" msgstr "" "Project-Id-Version: rapid\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2011-04-30 15:03-0500\n" -"PO-Revision-Date: 2011-05-02 07:42+0000\n" -"Last-Translator: Fedik \n" +"POT-Creation-Date: 2012-06-23 04:00-0500\n" +"PO-Revision-Date: 2013-04-11 12:07+0000\n" +"Last-Translator: Stuartlittle1970@gmail.com \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-11 03:48+0000\n" -"X-Generator: Launchpad (build 12981)\n" +"X-Launchpad-Export-Date: 2013-08-26 05:20+0000\n" +"X-Generator: Launchpad (build 16738)\n" -#: rapid/glade3/prefs.ui.h:41 +#: rapid/glade3/prefs.ui.h:42 msgid "Devices" msgstr "Пристрої" #. Translators: if neccessary, for guidance in how to translate this program, you may see http://damonlynch.net/translate.html -#: rapid/rapid.py:105 rapid/glade3/rapid.ui.h:14 +#: rapid/rapid.py:112 rapid/rapid.py:1784 rapid/glade3/rapid.ui.h:1 msgid "Rapid Photo Downloader" msgstr "Rapid Photo Downloader" -#: rapid/rapid.py:110 +#: rapid/rapid.py:117 #, python-format msgid "" "%(date)s\n" @@ -36,54 +36,73 @@ msgstr "" "%(date)s\n" "%(time)s" -#: rapid/rapid.py:112 +#: rapid/rapid.py:119 #, python-format msgid "%(date)s %(time)s" msgstr "%(date)s %(time)s" -#: rapid/rapid.py:115 +#: rapid/rapid.py:122 #, 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:149 +#: rapid/rapid.py:157 msgid "Device" msgstr "Пристрій" #. Size refers to the total size of images on the device, typically in #. MB or GB -#: rapid/rapid.py:166 +#: rapid/rapid.py:175 msgid "Size" msgstr "Розмір" -#: rapid/rapid.py:169 +#: rapid/rapid.py:178 msgid "Download Progress" msgstr "Поступ завантаження" -#: rapid/rapid.py:315 +#: rapid/rapid.py:336 #, python-format msgid "%(device)s did not unmount" -msgstr "%(device)s не відєднано" +msgstr "%(device)s не від’єднано" #. 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:1171 +#: rapid/rapid.py:1216 msgid "scanning..." msgstr "сканування..." -#: rapid/rapid.py:1986 rapid/glade3/rapid.ui.h:5 +#. this location is a human readable explanation for /, and is inserted into Downloading from %(location)s +#: rapid/rapid.py:1782 +msgid "the root of the file system" +msgstr "корінь файлової системи" + +#. message in dialog box which asks the user if they really want to be downloading from this location +#: rapid/rapid.py:1786 +#, python-format +msgid "Downloading from %(location)s." +msgstr "Завантаження з %(location)s." + +#: rapid/rapid.py:1787 +msgid "" +"Do you really want to download from here? On some systems, scanning this " +"location can take a very long time." +msgstr "" +"Ви справді бажаєте завантажити звідси? На деяких системах сканування цього " +"місцезнаходження може зайняти багато часу." + +#: rapid/rapid.py:2209 msgid "Download" msgstr "Завантажити" -#: rapid/rapid.py:1989 +#: rapid/rapid.py:2212 msgid "Pause" -msgstr "Пауза" +msgstr "Призупинити" -#: rapid/rapid.py:2092 +#: rapid/rapid.py:2317 #, python-format msgid "" "These download folders are invalid:\n" @@ -94,7 +113,7 @@ msgstr "" "%(folder1)s\n" "%(folder2)s" -#: rapid/rapid.py:2095 +#: rapid/rapid.py:2320 #, python-format msgid "" "This download folder is invalid:\n" @@ -103,136 +122,176 @@ msgstr "" "Ці каталоги завантаження є некоректними:\n" "%s" -#: rapid/rapid.py:2096 +#: rapid/rapid.py:2321 msgid "Download cannot proceed" msgstr "Неможливо продовжити завантаження" -#: rapid/rapid.py:2385 +#: rapid/rapid.py:2700 msgid "About 1 second remaining" msgstr "Залишилось біля 1 секунди" -#: rapid/rapid.py:2387 +#: rapid/rapid.py:2702 #, python-format msgid "About %i seconds remaining" msgstr "Залишилось біля %i секунд" -#: rapid/rapid.py:2389 +#: rapid/rapid.py:2704 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:2394 +#: rapid/rapid.py:2709 #, python-format msgid "About %(minutes)i:%(seconds)02i minutes remaining" msgstr "Залишилось біля %(minutes)i:%(seconds)02i" -#: rapid/rapid.py:2416 rapid/preferencesdialog.py:823 rapid/rpdfile.py:110 +#: rapid/rapid.py:2731 rapid/rpdfile.py:123 msgid "photos and videos" msgstr "фото та відео" -#: rapid/rapid.py:2418 rapid/rpdfile.py:112 +#: rapid/rapid.py:2733 rapid/rpdfile.py:125 msgid "photos or videos" msgstr "фото або відео" -#: rapid/rapid.py:2421 rapid/rapid.py:2965 rapid/rpdfile.py:115 +#: rapid/rapid.py:2736 rapid/rapid.py:3558 rapid/rpdfile.py:128 msgid "videos" msgstr "відео" -#: rapid/rapid.py:2423 rapid/preferencesdialog.py:1374 rapid/rpdfile.py:117 -#: rapid/rpdfile.py:270 +#: rapid/rapid.py:2738 rapid/preferencesdialog.py:1620 rapid/rpdfile.py:130 +#: rapid/rpdfile.py:291 msgid "video" msgstr "відео" -#: rapid/rapid.py:2426 rapid/rapid.py:2963 rapid/preferencesdialog.py:825 -#: rapid/rpdfile.py:120 +#: rapid/rapid.py:2741 rapid/rapid.py:3556 rapid/rpdfile.py:133 msgid "photos" msgstr "фото" #. check subfolder preferences for bad values -#: rapid/rapid.py:2428 rapid/preferencesdialog.py:1373 rapid/rpdfile.py:122 -#: rapid/rpdfile.py:250 +#: rapid/rapid.py:2743 rapid/preferencesdialog.py:1619 rapid/rpdfile.py:135 +#: rapid/rpdfile.py:272 msgid "photo" msgstr "фото" -#: rapid/rapid.py:2455 +#: rapid/rapid.py:2770 #, python-format msgid "%(noFiles)s %(filetypes)s downloaded" msgstr "Завантажено %(noFiles)s %(filetypes)s" -#: rapid/rapid.py:2459 +#: rapid/rapid.py:2774 #, python-format msgid "%(noFiles)s %(filetypes)s failed to download" msgstr "%(noFiles)s %(filetypes)s не вдалось завантажити" -#: rapid/rapid.py:2462 rapid/rapid.py:2514 +#: rapid/rapid.py:2777 rapid/rapid.py:2829 msgid "warnings" msgstr "застереження" -#: rapid/rapid.py:2471 +#: rapid/rapid.py:2786 msgid "All downloads complete" msgstr "Всі завантаження завершені" -#: rapid/rapid.py:2477 rapid/rapid.py:2486 rapid/rapid.py:2495 -#: rapid/rapid.py:2504 rapid/rapid.py:2512 +#: rapid/rapid.py:2792 rapid/rapid.py:2801 rapid/rapid.py:2810 +#: rapid/rapid.py:2819 rapid/rapid.py:2827 #, python-format msgid "%(number)s %(numberdownloaded)s" msgstr "%(number)s %(numberdownloaded)s" -#: rapid/rapid.py:2479 rapid/rapid.py:2497 +#: rapid/rapid.py:2794 rapid/rapid.py:2812 #, python-format msgid "%(filetype)s downloaded" msgstr "%(filetype)s завантажено" -#: rapid/rapid.py:2488 rapid/rapid.py:2506 +#: rapid/rapid.py:2803 rapid/rapid.py:2821 #, python-format msgid "%(filetype)s failed to download" msgstr "%(filetype)s не вдалось завантажити" #. e.g.: 3 of 205 photos and videos (202 remaining) -#: rapid/rapid.py:2545 +#: rapid/rapid.py:2860 #, python-format msgid "%(number)s of %(total)s %(filetypes)s (%(remaining)s remaining)" msgstr "%(number)s з %(total)s %(filetypes)s (%(remaining)s залишилось)" #. e.g.: 205 of 205 photos and videos -#: rapid/rapid.py:2552 +#: rapid/rapid.py:2867 #, python-format msgid "%(number)s of %(total)s %(filetypes)s" msgstr "%(number)s з %(total)s %(filetypes)s" -#: rapid/rapid.py:2933 +#: rapid/rapid.py:3222 +msgid "From" +msgstr "З" + +#: rapid/rapid.py:3230 +msgid "Auto Detect" +msgstr "Автоматичне визначення" + +#: rapid/rapid.py:3234 rapid/preferencesdialog.py:1327 +#, python-format +msgid "Select a folder containing %(file_types)s" +msgstr "Виберіть теку, що містить %(file_types)s" + +#: rapid/rapid.py:3275 +msgid "Copy" +msgstr "Копіювати" + +#: rapid/rapid.py:3288 +msgid "Move" +msgstr "Переміщення" + +#: rapid/rapid.py:3310 +msgid "To" +msgstr "До" + +#: rapid/rapid.py:3317 rapid/rapid.py:3986 +msgid "Photos:" +msgstr "Фото:" + +#: rapid/rapid.py:3320 rapid/preferencesdialog.py:1164 +msgid "Select a folder to download photos to" +msgstr "Виберіть теку для завантаження фото" + +#: rapid/rapid.py:3332 rapid/rapid.py:3986 +msgid "Videos:" +msgstr "Відео:" + +#: rapid/rapid.py:3334 rapid/preferencesdialog.py:1182 +msgid "Select a folder to download videos to" +msgstr "Виберіть теку для завантаження відео" + +#: rapid/rapid.py:3526 msgid "and" msgstr "та" -#: rapid/rapid.py:2938 +#: rapid/rapid.py:3531 msgid "Using backup devices" msgstr "Використання пристроїв для резервного копіювання" -#: rapid/rapid.py:2940 +#: rapid/rapid.py:3533 msgid "Using backup device" msgstr "Використання пристрою для резервного копіювання" -#: rapid/rapid.py:2942 +#: rapid/rapid.py:3535 msgid "No backup devices detected" msgstr "Пристроїв для резервного копіювання не виявлено" -#: rapid/rapid.py:2969 +#: rapid/rapid.py:3562 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:2981 +#: rapid/rapid.py:3574 #, 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:2985 +#: rapid/rapid.py:3578 #, python-format msgid "%(free)s %(file_type)s" msgstr "%(free)s %(file_type)s" @@ -240,75 +299,88 @@ 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:2990 +#: rapid/rapid.py:3583 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:2995 +#: rapid/rapid.py:3588 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:3001 +#: rapid/rapid.py:3594 #, python-format msgid "%(free)s free" msgstr "%(free)s вільно" +#. user manually specified the same location for photos and video backups +#: rapid/rapid.py:3602 +#, python-format +msgid "Backing up photos and videos to %(path)s" +msgstr "Резервне копіювання фотографій та відеозаписів до %(path)s" + #. user manually specified backup location -#: rapid/rapid.py:3007 +#: rapid/rapid.py:3605 #, python-format msgid "Backing up to %(path)s" msgstr "Резервне копіювання до %(path)s" -#: rapid/rapid.py:3012 +#. user manually specified different locations for photo and video backups +#: rapid/rapid.py:3608 +#, python-format +msgid "Backing up photos to %(path)s and videos to %(path2)s" +msgstr "" +"Резервне копіювання фотографій до %(path)s та відеозаписів до %(path2)s" + +#: rapid/rapid.py:3615 #, python-format msgid "%(freespace)s. %(backuppaths)s." msgstr "%(freespace)s. %(backuppaths)s." -#: rapid/rapid.py:3041 +#: rapid/rapid.py:3644 msgid "Program preferences are invalid" msgstr "Налаштування програми є хибними" -#: rapid/rapid.py:3146 rapid/rpdfile.py:251 +#: rapid/rapid.py:3770 rapid/rpdfile.py:273 msgid "Photo" msgstr "Фото" -#: rapid/rapid.py:3148 rapid/rpdfile.py:271 +#: rapid/rapid.py:3772 rapid/rpdfile.py:292 msgid "Video" msgstr "Відео" -#: rapid/rapid.py:3157 +#: rapid/rapid.py:3781 #, python-format msgid "%(file_type)s download folder does not exist" msgstr "%(file_type)s каталог завантаження не існує" -#: rapid/rapid.py:3159 rapid/rapid.py:3173 rapid/rapid.py:3186 +#: rapid/rapid.py:3783 rapid/rapid.py:3797 rapid/rapid.py:3810 #, python-format msgid "Folder: %s" msgstr "Каталог: %s" -#: rapid/rapid.py:3171 +#: rapid/rapid.py:3795 #, python-format msgid "%(file_type)s download folder is invalid" msgstr "%(file_type)s каталог завантаження є хибним" -#: rapid/rapid.py:3184 +#: rapid/rapid.py:3808 #, python-format msgid "%(file_type)s download folder is not writable" msgstr "%(file_type)s каталог завантаження не доступний для запису" -#: rapid/rapid.py:3262 +#: rapid/rapid.py:3894 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:3309 +#: rapid/rapid.py:3949 #, python-format msgid "" "display program information on the command line as the program runs " @@ -316,62 +388,69 @@ msgid "" msgstr "" "показати дані програми в командному рядку під час запуску (типово: %default)" -#: rapid/rapid.py:3310 +#: rapid/rapid.py:3950 msgid "display debugging information when run from the command line" msgstr "" "показувати інструкцію зі зневадження під час запуску з командного рядка" -#: rapid/rapid.py:3311 +#: rapid/rapid.py:3951 msgid "only output errors to the command line" msgstr "виводити в командний рядок лише помилки" #. image file extensions are recognized RAW files plus TIFF and JPG -#: rapid/rapid.py:3313 +#: rapid/rapid.py:3953 msgid "list photo and video file extensions the program recognizes and exit" msgstr "" "вивести список розширень фото та відео файлів, розпізнаних програмою і вийти" -#: rapid/rapid.py:3314 +#: rapid/rapid.py:3955 +msgid "" +"automatically detect devices from which to download, overwriting existing " +"program preferences" +msgstr "" +"автоматично визначати пристрій, з якого буде виконуватися завантаження, " +"замінюючи налаштування програми що існують" + +#: rapid/rapid.py:3956 +msgid "" +"manually specify the PATH of the device from which to download, overwriting " +"existing program preferences" +msgstr "" +"самостійно вкажіть розміщення (PATH) пристрою, з якого буде виконуватися " +"завантаження, замінюючи налаштування програми що існують" + +#: rapid/rapid.py:3957 msgid "reset all program settings and preferences and exit" msgstr "скинути всі параметри та налаштування програми і вийти" -#: rapid/rapid.py:3327 -msgid "Photos:" -msgstr "Фото:" - -#: rapid/rapid.py:3327 -msgid "Videos:" -msgstr "Відео:" +#: rapid/rapid.py:3970 +msgid "" +"Error: specify device auto-detection or manually specify a device's path " +"from which to download, but do not do both." +msgstr "" +"Помилка: вкажіть автоматичне визначення пристрою або самостійно вкажіть " +"розміщення пристрою, з якого буде виконуватися завантаження, але не " +"використовуйте відразу обидва варіанти." -#: rapid/rapid.py:3332 +#: rapid/rapid.py:3991 #, python-format msgid "and %s" msgstr "та %s" -#: rapid/rapid.py:3340 +#: rapid/rapid.py:3999 msgid "All settings and preferences have been reset" msgstr "Всі параметри та налаштування скинуті" -#: rapid/rapid.py:3349 -msgid "" -"Video downloading functionality disabled.\n" -"To download videos, please install the hachoir metadata and kaa metadata " -"packages for python." -msgstr "" -"Функція завантаження відео вимкнена.\n" -"Для завантаження відео, будь ласка, встановіть пакунки hachoir metadata та " -"kaa для python." - -#: rapid/backupfile.py:139 rapid/backupfile.py:162 +#: rapid/backupfile.py:157 rapid/backupfile.py:180 msgid "Backing up error" msgstr "Помилка резервного копіювання" -#: rapid/backupfile.py:141 +#: rapid/backupfile.py:159 #, python-format msgid "Destination directory could not be created: %(directory)s\n" msgstr "Не вдалось створити теку адресата: %(directory)s\n" -#: rapid/backupfile.py:143 rapid/backupfile.py:164 rapid/subfolderfile.py:194 +#: rapid/backupfile.py:161 rapid/backupfile.py:182 rapid/subfolderfile.py:199 #, python-format msgid "" "Source: %(source)s\n" @@ -380,13 +459,13 @@ msgstr "" "Джерело: %(source)s\n" "Адресат: %(destination)s" -#: rapid/backupfile.py:146 rapid/backupfile.py:166 +#: rapid/backupfile.py:164 rapid/backupfile.py:184 #, python-format msgid "Error: %(inst)s" msgstr "Помилка: %(inst)s" -#: rapid/copyfiles.py:143 rapid/subfolderfile.py:209 -#: rapid/subfolderfile.py:348 rapid/subfolderfile.py:366 +#: rapid/copyfiles.py:163 rapid/subfolderfile.py:214 +#: rapid/subfolderfile.py:347 rapid/subfolderfile.py:365 #, python-format msgid "" "%(problem)s\n" @@ -395,12 +474,12 @@ msgstr "" "%(problem)s\n" "Файл: %(file)s" -#: rapid/device.py:79 +#: rapid/device.py:80 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 +#: rapid/device.py:89 msgid "" "Should this device or partition be used to download photos or videos from?" msgstr "" @@ -408,439 +487,492 @@ msgstr "" "відео?" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#usedeviceprompt -#: rapid/device.py:107 +#: rapid/device.py:108 msgid "_Remember this choice" msgstr "_Пам’ятати цей вибір" -#: rapid/downloadtracker.py:268 +#: rapid/downloadtracker.py:299 msgid "MB/s" msgstr "МБ/с" -#: rapid/generatenameconfig.py:143 +#: rapid/generatenameconfig.py:151 msgid "Date time" msgstr "Дата і час" -#: rapid/generatenameconfig.py:144 +#: rapid/generatenameconfig.py:152 msgid "Text" msgstr "Текст" -#: rapid/generatenameconfig.py:145 +#: rapid/generatenameconfig.py:153 msgid "Filename" -msgstr "Назва файла" +msgstr "Назва файлу" -#: rapid/generatenameconfig.py:146 +#: rapid/generatenameconfig.py:154 msgid "Metadata" msgstr "Метадані" -#: rapid/generatenameconfig.py:147 +#: rapid/generatenameconfig.py:155 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:549 +#: rapid/generatenameconfig.py:157 rapid/preferencesdialog.py:577 msgid "Job code" msgstr "Мітка" -#: rapid/generatenameconfig.py:150 +#: rapid/generatenameconfig.py:158 msgid "Image date" msgstr "Дата фото" -#: rapid/generatenameconfig.py:151 +#: rapid/generatenameconfig.py:159 msgid "Video date" msgstr "Дата відео" -#: rapid/generatenameconfig.py:152 +#: rapid/generatenameconfig.py:160 msgid "Today" msgstr "Сьогодні" -#: rapid/generatenameconfig.py:153 +#: rapid/generatenameconfig.py:161 msgid "Yesterday" msgstr "Вчора" #. Translators: Download time is the time and date that the download started (when the user clicked the Download button) -#: rapid/generatenameconfig.py:155 +#: rapid/generatenameconfig.py:163 msgid "Download time" msgstr "Час та дата завантаження" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:157 +#: rapid/generatenameconfig.py:165 msgid "Name + extension" msgstr "Назва + розширення" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:159 +#: rapid/generatenameconfig.py:167 msgid "Name" msgstr "Назва" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:161 +#: rapid/generatenameconfig.py:169 msgid "Extension" msgstr "Розширення" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:163 +#: rapid/generatenameconfig.py:171 msgid "Image number" msgstr "Номер фото" -#: rapid/generatenameconfig.py:164 +#: rapid/generatenameconfig.py:172 msgid "Video number" msgstr "Номер відео" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:166 +#: rapid/generatenameconfig.py:174 msgid "Aperture" msgstr "Діафрагма" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:168 +#: rapid/generatenameconfig.py:176 msgid "ISO" msgstr "ISO" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:170 +#: rapid/generatenameconfig.py:178 msgid "Exposure time" msgstr "Час експозиції" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:172 +#: rapid/generatenameconfig.py:180 msgid "Focal length" msgstr "Фокусна відстань" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:174 +#: rapid/generatenameconfig.py:182 msgid "Camera make" msgstr "Виробник камери" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:176 +#: rapid/generatenameconfig.py:184 msgid "Camera model" msgstr "Модель камери" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:178 +#: rapid/generatenameconfig.py:186 msgid "Short camera model" msgstr "Скорочена назва камери" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:180 +#: rapid/generatenameconfig.py:188 msgid "Hyphenated short camera model" msgstr "Написана через дефіс коротка назва моделі" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:182 +#: rapid/generatenameconfig.py:190 msgid "Serial number" msgstr "Серійний номер" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:184 +#: rapid/generatenameconfig.py:192 msgid "Shutter count" msgstr "Кількість затворів" +#. File number currently refers to the Exif value Exif.Canon.FileNumber +#: rapid/generatenameconfig.py:194 +msgid "File number" +msgstr "Номер файлу" + +#. Only the folder component of the Exif.Canon.FileNumber value +#: rapid/generatenameconfig.py:196 +msgid "Folder only" +msgstr "Лише тека" + +#. The folder and file component of the Exif.Canon.FileNumber value +#: rapid/generatenameconfig.py:198 +msgid "Folder and file" +msgstr "Тека та файл" + #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamemetadata -#: rapid/generatenameconfig.py:186 +#: rapid/generatenameconfig.py:200 msgid "Owner name" msgstr "Ім’я власника" -#: rapid/generatenameconfig.py:187 +#: rapid/generatenameconfig.py:201 msgid "Codec" msgstr "Кодек" -#: rapid/generatenameconfig.py:188 +#: rapid/generatenameconfig.py:202 msgid "Width" msgstr "Ширина" -#: rapid/generatenameconfig.py:189 +#: rapid/generatenameconfig.py:203 msgid "Height" msgstr "Висота" -#: rapid/generatenameconfig.py:190 +#: rapid/generatenameconfig.py:204 msgid "Length" msgstr "Тривалість" -#: rapid/generatenameconfig.py:191 +#: rapid/generatenameconfig.py:205 msgid "Frames Per Second" msgstr "Кадрів за секунду" +#: rapid/generatenameconfig.py:206 +msgid "Artist" +msgstr "Виконавець" + +#: rapid/generatenameconfig.py:207 +msgid "Copyright" +msgstr "Авторське право" + #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers -#: rapid/generatenameconfig.py:193 +#: rapid/generatenameconfig.py:209 msgid "Downloads today" msgstr "Завантажень сьогодні" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers -#: rapid/generatenameconfig.py:195 +#: rapid/generatenameconfig.py:211 msgid "Session number" msgstr "Номер сеансу" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers -#: rapid/generatenameconfig.py:197 +#: rapid/generatenameconfig.py:213 msgid "Subfolder number" msgstr "Номер підтеки" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequencenumbers -#: rapid/generatenameconfig.py:199 +#: rapid/generatenameconfig.py:215 msgid "Stored number" msgstr "Номер збереження" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#sequenceletters -#: rapid/generatenameconfig.py:201 +#: rapid/generatenameconfig.py:217 msgid "Sequence letter" msgstr "Послідовність знаків" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:203 +#: rapid/generatenameconfig.py:219 msgid "All digits" msgstr "Всі цифри" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:205 +#: rapid/generatenameconfig.py:221 msgid "Last digit" msgstr "Остання цифра" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:207 +#: rapid/generatenameconfig.py:223 msgid "Last 2 digits" msgstr "Останні 2 цифри" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:209 +#: rapid/generatenameconfig.py:225 msgid "Last 3 digits" msgstr "Останні 3 цифри" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamefilename -#: rapid/generatenameconfig.py:211 +#: rapid/generatenameconfig.py:227 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/generatenameconfig.py:213 +#: rapid/generatenameconfig.py:229 msgid "Original Case" msgstr "Початковий регістр" #. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization -#: rapid/generatenameconfig.py:215 +#: rapid/generatenameconfig.py:231 msgid "UPPERCASE" msgstr "ВЕРХНІЙ РЕГІСТР" #. Translators: please not the capitalization of this text, and keep it the same if your language features capitalization -#: rapid/generatenameconfig.py:217 +#: rapid/generatenameconfig.py:233 msgid "lowercase" msgstr "нижній регістр" -#: rapid/generatenameconfig.py:218 +#: rapid/generatenameconfig.py:234 msgid "One digit" msgstr "Одна цифра" -#: rapid/generatenameconfig.py:219 +#: rapid/generatenameconfig.py:235 msgid "Two digits" msgstr "Дві цифри" -#: rapid/generatenameconfig.py:220 +#: rapid/generatenameconfig.py:236 msgid "Three digits" msgstr "Три цифри" -#: rapid/generatenameconfig.py:221 +#: rapid/generatenameconfig.py:237 msgid "Four digits" msgstr "Чотири цифри" -#: rapid/generatenameconfig.py:222 +#: rapid/generatenameconfig.py:238 msgid "Five digits" msgstr "П’ять цифр" -#: rapid/generatenameconfig.py:223 +#: rapid/generatenameconfig.py:239 msgid "Six digits" msgstr "Шість цифр" -#: rapid/generatenameconfig.py:224 +#: rapid/generatenameconfig.py:240 msgid "Seven digits" msgstr "Сім цифр" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:226 +#: rapid/generatenameconfig.py:242 msgid "Subseconds" msgstr "Підсекунди" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:228 +#: rapid/generatenameconfig.py:244 msgid "YYYYMMDD" msgstr "РРРРММДД" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:230 +#: rapid/generatenameconfig.py:246 msgid "YYYY-MM-DD" msgstr "РРРР-ММ-ДД" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:232 +#: rapid/generatenameconfig.py:248 msgid "YYMMDD" msgstr "РРММДД" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:234 +#: rapid/generatenameconfig.py:250 msgid "YY-MM-DD" msgstr "РР-ММ-ДД" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:236 +#: rapid/generatenameconfig.py:252 msgid "MMDDYYYY" msgstr "ММДДРРРР" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:238 +#: rapid/generatenameconfig.py:254 msgid "MMDDYY" msgstr "ММДДРР" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:240 +#: rapid/generatenameconfig.py:256 msgid "MMDD" msgstr "ММДД" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:242 +#: rapid/generatenameconfig.py:258 msgid "DDMMYYYY" msgstr "ДДММГГГГ" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:244 +#: rapid/generatenameconfig.py:260 msgid "DDMMYY" msgstr "ДДММРР" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:246 +#: rapid/generatenameconfig.py:262 msgid "YYYY" msgstr "РРРР" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:248 +#: rapid/generatenameconfig.py:264 msgid "YY" msgstr "РР" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:250 +#: rapid/generatenameconfig.py:266 msgid "MM" msgstr "ММ" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:252 +#: rapid/generatenameconfig.py:268 msgid "DD" msgstr "ДД" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:254 +#: rapid/generatenameconfig.py:270 +msgid "Month (full)" +msgstr "Місяць (повністю)" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:272 +msgid "Month (abbreviated)" +msgstr "Місяць (коротко)" + +#. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime +#: rapid/generatenameconfig.py:274 msgid "HHMMSS" msgstr "ГГХХСС" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:256 +#: rapid/generatenameconfig.py:276 msgid "HHMM" msgstr "ГГХХ" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:258 +#: rapid/generatenameconfig.py:278 msgid "HH-MM-SS" msgstr "ГГ-ХХ-СС" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:260 +#: rapid/generatenameconfig.py:280 msgid "HH-MM" msgstr "ГГ-ХХ" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:262 +#: rapid/generatenameconfig.py:282 msgid "HH" msgstr "ГГ" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:264 +#: rapid/generatenameconfig.py:284 msgid "MM (minutes)" msgstr "ХХ (хвилин)" #. Translators: for an explanation of what this means, see http://damonlynch.net/rapid/documentation/index.html#renamedateandtime -#: rapid/generatenameconfig.py:266 +#: rapid/generatenameconfig.py:286 msgid "SS" msgstr "СС" -#: rapid/preferencesdialog.py:370 +#: rapid/preferencesdialog.py:374 #, python-format msgid "Subfolder preferences should not start with a %s" msgstr "Параметри підтеки не повинні починатись з %s" -#: rapid/preferencesdialog.py:372 +#: rapid/preferencesdialog.py:376 #, python-format msgid "Subfolder preferences should not end with a %s" msgstr "Параметри підтеки не повинні завершуватись %s" -#: rapid/preferencesdialog.py:376 +#: rapid/preferencesdialog.py:380 #, python-format msgid "Subfolder preferences should not contain two %s one after the other" msgstr "Параметри підтеки не повинні містити два %s одне за одним" -#: rapid/preferencesdialog.py:389 rapid/preferencesdialog.py:672 +#: rapid/preferencesdialog.py:439 rapid/preferencesdialog.py:700 msgid "Remove all Job Codes?" msgstr "Вилучити всі мітки?" -#: rapid/preferencesdialog.py:406 rapid/preferencesdialog.py:689 +#: rapid/preferencesdialog.py:440 rapid/preferencesdialog.py:717 msgid "Should all Job Codes be removed?" msgstr "Чи потрібно вилучити всі мітки?" -#: rapid/preferencesdialog.py:436 +#: rapid/preferencesdialog.py:446 +msgid "Remove all Remembered Paths?" +msgstr "Вилучити усі запам’ятовані розміщення?" + +#: rapid/preferencesdialog.py:447 +msgid "Should all remembered paths be removed?" +msgstr "Чи має бути вилучено усі заппам’ятовані розміщення?" + +#: rapid/preferencesdialog.py:453 +msgid "Remove all Ignored Paths?" +msgstr "Вилучити усі розміщення що ігноруються?" + +#: rapid/preferencesdialog.py:454 +msgid "Should all ignored paths be removed?" +msgstr "Чи має бути вилучено усі ігноровані розміщення?" + +#: rapid/preferencesdialog.py:465 msgid "Error in Photo Rename preferences" msgstr "Помилка в параметрі «Перейменування фото»" -#: rapid/preferencesdialog.py:617 +#: rapid/preferencesdialog.py:645 msgid "Error in Video Rename preferences" msgstr "Помилка в налаштуваннях «Перейменування відео»" -#: rapid/preferencesdialog.py:638 +#: rapid/preferencesdialog.py:666 msgid "Error in Photo Download Subfolders preferences" msgstr "Помилка в налаштуваннях «Підтеки для завантаження фото»" -#: rapid/preferencesdialog.py:655 +#: rapid/preferencesdialog.py:683 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:714 +#: rapid/preferencesdialog.py:742 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:731 +#: rapid/preferencesdialog.py:758 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:734 +#: rapid/preferencesdialog.py:761 msgid "Enter a new Job Code" msgstr "Введіть нову мітку" -#: rapid/preferencesdialog.py:739 +#: rapid/preferencesdialog.py:766 msgid "Job Code:" msgstr "Мітка:" -#: rapid/preferencesdialog.py:916 -msgid "Job Code" -msgstr "Мітка" +#: rapid/preferencesdialog.py:822 +msgid "Enter a Path to Ignore" +msgstr "Введіть розміщення, яке бажаєте ігнорувати" -#: rapid/preferencesdialog.py:998 -msgid "Select a folder to download photos to" -msgstr "Виберіть теку для завантаження фото" +#: rapid/preferencesdialog.py:834 +msgid "Specify a path that will never be scanned for photos or videos" +msgstr "" +"Вкажіть розміщення, яке не буде скануватися на наявність фотографій або " +"відеофрагментів" -#: rapid/preferencesdialog.py:1016 -msgid "Select a folder to download videos to" -msgstr "Виберіть теку для завантаження відео" +#: rapid/preferencesdialog.py:839 +msgid "Path:" +msgstr "Шлях:" -#: rapid/preferencesdialog.py:1107 -#, python-format -msgid "Select a folder containing %(file_types)s" -msgstr "Виберіть теку, що містить %(file_types)s" +#: rapid/preferencesdialog.py:1082 +msgid "Job Code" +msgstr "Мітка" -#: rapid/preferencesdialog.py:1129 -#, python-format -msgid "Select a folder in which to backup %(file_types)s" -msgstr "Виберіть теку для резервних копій %(file_types)s" +#: rapid/preferencesdialog.py:1353 +msgid "Select a folder in which to backup photos" +msgstr "Оберіть теку у якій будуть зберігатися резервні копії фотографій" + +#: rapid/preferencesdialog.py:1366 +msgid "Select a folder in which to backup videos" +msgstr "Оберіть теку у якій будуть зберігатися резервні копії відеофрагметів" #. Translators: please do not modify or leave out html formatting tags like and . These are used to format the text the users sees -#: rapid/preferencesdialog.py:1215 +#: rapid/preferencesdialog.py:1461 msgid "" "Warning: There is insufficient metadata to fully generate the " "name. Please use other renaming options." @@ -848,7 +980,7 @@ msgstr "" "Увага: Недостатньо метаданих для повного створення назви. " "Використовуйте інші варіанти перейменування." -#: rapid/preferencesdialog.py:1266 +#: rapid/preferencesdialog.py:1512 msgid "" "Warning: There is insufficient metadata to fully generate " "subfolders. Please use other subfolder naming options." @@ -857,13 +989,13 @@ 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:1269 +#: rapid/preferencesdialog.py:1515 #, python-format msgid "Example: %s" msgstr "Приклад: %s" #. Preferences list is now empty -#: rapid/preferencesdialog.py:1359 +#: rapid/preferencesdialog.py:1605 #, python-format msgid "" "The %(filetype)s subfolder preferences entered are invalid and cannot be " @@ -874,138 +1006,163 @@ msgstr "" "використовуватимуться.\n" "Ці значення будуть скинуті до типових." +#: rapid/preferencesdialog.py:1750 +#, python-format +msgid "" +"The following regular expressions are invalid, and will be removed unless " +"you correct them:\n" +" %s" +msgstr "" +"Наступні регулярні вирази неприпустимі й будуть вилучені, якщо ви не " +"виправите їх:\n" +" %s" + +#: rapid/preferencesdialog.py:1752 +#, python-format +msgid "" +"This regular expression is invalid, and will be removed unless you correct " +"it:\n" +" %s" +msgstr "" +"Регулярний вираз неприпустимий й буде вилучено, якщо ви не виправите його:\n" +" %s" + +#: rapid/preferencesdialog.py:1753 +msgid "Invalid regular expression" +msgstr "Неприпустимий регулярний вираз" + #. Translators: this value is used as an example device when automatic backup device detection is enabled. You should translate this. -#: rapid/preferencesdialog.py:1645 +#: rapid/preferencesdialog.py:1934 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:1647 +#: rapid/preferencesdialog.py:1936 msgid "externaldrive2" msgstr "зовнішній пристрій 2" -#: rapid/prefsrapid.py:122 +#: rapid/prefsrapid.py:127 msgid "New York" msgstr "Нью-Йорк" -#: rapid/prefsrapid.py:123 +#: rapid/prefsrapid.py:128 msgid "Manila" -msgstr "Манила" +msgstr "Маніла" -#: rapid/prefsrapid.py:123 +#: rapid/prefsrapid.py:128 msgid "Prague" msgstr "Прага" -#: rapid/prefsrapid.py:123 +#: rapid/prefsrapid.py:128 msgid "Helsinki" msgstr "Гельсінкі" -#: rapid/prefsrapid.py:123 +#: rapid/prefsrapid.py:128 msgid "Wellington" msgstr "Веллінгтон" -#: rapid/prefsrapid.py:124 +#: rapid/prefsrapid.py:129 msgid "Tehran" msgstr "Тегеран" -#: rapid/prefsrapid.py:124 +#: rapid/prefsrapid.py:129 msgid "Kampala" msgstr "Кампала" -#: rapid/prefsrapid.py:124 +#: rapid/prefsrapid.py:129 msgid "Paris" msgstr "Париж" -#: rapid/prefsrapid.py:124 +#: rapid/prefsrapid.py:129 msgid "Berlin" msgstr "Берлін" -#: rapid/prefsrapid.py:124 +#: rapid/prefsrapid.py:129 msgid "Sydney" msgstr "Сідней" -#: rapid/prefsrapid.py:125 +#: rapid/prefsrapid.py:130 msgid "Budapest" msgstr "Будапешт" -#: rapid/prefsrapid.py:125 +#: rapid/prefsrapid.py:130 msgid "Rome" msgstr "Рим" -#: rapid/prefsrapid.py:125 +#: rapid/prefsrapid.py:130 msgid "Moscow" msgstr "Москва" -#: rapid/prefsrapid.py:125 +#: rapid/prefsrapid.py:130 msgid "Delhi" msgstr "Делі" -#: rapid/prefsrapid.py:125 +#: rapid/prefsrapid.py:130 msgid "Warsaw" msgstr "Варшава" -#: rapid/prefsrapid.py:126 +#: rapid/prefsrapid.py:131 msgid "Jakarta" msgstr "Джакарта" -#: rapid/prefsrapid.py:126 +#: rapid/prefsrapid.py:131 msgid "Madrid" msgstr "Мадрид" -#: rapid/prefsrapid.py:126 +#: rapid/prefsrapid.py:131 msgid "Stockholm" msgstr "Стокгольм" #. components -#: rapid/problemnotification.py:26 rapid/subfolderfile.py:359 +#: rapid/problemnotification.py:27 rapid/subfolderfile.py:358 msgid "subfolder" msgstr "підтека" -#: rapid/problemnotification.py:27 rapid/subfolderfile.py:357 +#: rapid/problemnotification.py:28 rapid/subfolderfile.py:356 msgid "filename" -msgstr "назва файла" +msgstr "назва файлу" -#: rapid/problemnotification.py:80 +#: rapid/problemnotification.py:81 #, python-format msgid "Date time value %s appears invalid." -msgstr "" +msgstr "Значення дати та часу %s встановлено неправильно." -#: rapid/problemnotification.py:81 +#: rapid/problemnotification.py:82 msgid "Filename does not have an extension." msgstr "В імені файлу відсутнє розширення" #. a number component is something like the 8346 in IMG_8346.JPG -#: rapid/problemnotification.py:83 +#: rapid/problemnotification.py:84 msgid "Filename does not have a number component." -msgstr "В імені файлу відсутнії числовий компонент." +msgstr "В імені файлу відсутній числовий компонент." -#: rapid/problemnotification.py:84 +#: rapid/problemnotification.py:85 #, python-format msgid "Error generating component %s." msgstr "Помилка створення компонента %s." #. a generic problem -#: rapid/problemnotification.py:86 +#: rapid/problemnotification.py:87 #, python-format msgid "%(filetype)s metadata cannot be read" msgstr "%(filetype)s не можливо прочитати метадані" -#: rapid/problemnotification.py:88 +#: rapid/problemnotification.py:89 #, python-format msgid "%(filetype)s %(area)s could not be generated" msgstr "%(filetype)s %(area)s не може бути згенерованим" -#: rapid/problemnotification.py:90 rapid/problemnotification.py:91 +#: rapid/problemnotification.py:91 rapid/problemnotification.py:92 #, python-format msgid "An error occurred when copying the %(filetype)s" -msgstr "Сталася помилка при копіювання %(filetype)s" +msgstr "Сталася помилка при копіюванні %(filetype)s" -#: rapid/problemnotification.py:93 rapid/problemnotification.py:94 +#: rapid/problemnotification.py:94 rapid/problemnotification.py:95 #, python-format msgid "%(filetype)s already exists" msgstr "%(filetype)s вже існує" -#: rapid/problemnotification.py:97 +#: rapid/problemnotification.py:98 #, python-format msgid "" "%(filetype)s could not be backed up because no suitable backup locations " @@ -1014,19 +1171,21 @@ msgstr "" "%(filetype)s не може бути збережений в резервну копію, тому, що не вказано " "місце для збереження резервних копій." -#: rapid/problemnotification.py:102 +#: rapid/problemnotification.py:103 #, 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." +"%(image1)s was taken on %(image1_date)s at %(image1_time)s, and %(image2)s " +"on %(image2_date)s at %(image2_time)s." msgstr "" +"%(image1)s було створено %(image1_date)s у %(image1_time)s та %(image2)s " +"створено %(image2_date)s у %(image2_time)s." -#: rapid/problemnotification.py:103 +#: rapid/problemnotification.py:104 #, python-format msgid "%(filetype)s was already downloaded" msgstr "%(filetype)s вже було завантажено" -#: rapid/problemnotification.py:107 +#: rapid/problemnotification.py:108 #, python-format msgid "" "The existing %(filetype)s was last modified on %(date)s at %(time)s. Unique " @@ -1035,53 +1194,53 @@ msgstr "" "Існуючий фал %(filetype)s було модифіковано %(date)s в %(time)s. Додано " "унікальний ідентифікатор '%(identifier)s' ." -#: rapid/problemnotification.py:108 +#: rapid/problemnotification.py:109 #, python-format msgid "The existing %(filetype)s was last modified on %(date)s at %(time)s." msgstr "Існуючий фал %(filetype)s було модифіковано %(date)s в %(time)s." -#: rapid/problemnotification.py:109 +#: rapid/problemnotification.py:110 #, python-format msgid "There is no data with which to name the %(filetype)s." msgstr "Не існує даних з ім’ям %(filetype)s." -#: rapid/problemnotification.py:111 +#: rapid/problemnotification.py:112 #, python-format msgid "Error: %(errorno)s %(strerror)s" msgstr "Помилка: %(errorno)s %(strerror)s" -#: rapid/problemnotification.py:201 +#: rapid/problemnotification.py:202 msgid "The metadata might be corrupt." msgstr "Метадані можуть бути пошкодженими." -#: rapid/problemnotification.py:204 +#: rapid/problemnotification.py:205 msgid "" "The filename, extension and Exif information indicate it has already been " "downloaded." msgstr "Файл, розширення та Exif інформація вже були завантажені." -#: rapid/problemnotification.py:223 +#: rapid/problemnotification.py:224 #, python-format msgid " It was backed up to %(volume)s" msgstr " Було створено резервну копію на %(volume)s" -#: rapid/problemnotification.py:225 +#: rapid/problemnotification.py:226 msgid " It was backed up to these devices: " msgstr " Було створено резервну копію на цих пристроях: " -#: rapid/problemnotification.py:227 rapid/problemnotification.py:288 -#: rapid/problemnotification.py:300 +#: rapid/problemnotification.py:228 rapid/problemnotification.py:289 +#: rapid/problemnotification.py:301 #, python-format msgid "%s, " msgstr "%s, " -#: rapid/problemnotification.py:228 rapid/problemnotification.py:289 -#: rapid/problemnotification.py:301 +#: rapid/problemnotification.py:229 rapid/problemnotification.py:290 +#: rapid/problemnotification.py:302 #, python-format msgid "%(volumes)s and %(final_volume)s." msgstr "%(volumes)s та %(final_volume)s." -#: rapid/problemnotification.py:240 +#: rapid/problemnotification.py:241 #, python-format msgid "" "Photos detected with the same filenames, but taken at different times: " @@ -1089,610 +1248,584 @@ msgid "" msgstr "" "Виявлені файли з однаковими назвами, проте створені в різний час: %(details)s" -#: rapid/problemnotification.py:257 +#: rapid/problemnotification.py:258 #, python-format msgid "An error occurred when backing up on %(volume)s: %(inst)s." msgstr "" "Сталася помилка при створенні резервної копії на %(volume)s: %(inst)s." -#: rapid/problemnotification.py:259 +#: rapid/problemnotification.py:260 #, python-format msgid "An error occurred when backing up on %(volume)s." msgstr "Сталася помилка при створенні резервної копії на %(volume)s." -#: rapid/problemnotification.py:261 +#: rapid/problemnotification.py:262 msgid "Errors occurred when backing up on the following backup devices: " -msgstr "Сталася помилка при створенні резервної копії на наступні пристрої: " +msgstr "" +"Сталася помилка при створенні резервної копії на наступних пристроях: " -#: rapid/problemnotification.py:265 rapid/problemnotification.py:313 +#: rapid/problemnotification.py:266 rapid/problemnotification.py:314 #, python-format msgid "%(volume)s (%(inst)s), " msgstr "%(volume)s (%(inst)s), " -#: rapid/problemnotification.py:267 +#: rapid/problemnotification.py:268 #, python-format msgid "%(volume)s, " msgstr "%(volume)s, " -#: rapid/problemnotification.py:271 rapid/problemnotification.py:315 +#: rapid/problemnotification.py:272 rapid/problemnotification.py:316 #, python-format msgid "%(volumes)s and %(volume)s (%(inst)s)." msgstr "%(volumes)s та %(volume)s (%(inst)s)." -#: rapid/problemnotification.py:276 +#: rapid/problemnotification.py:277 #, python-format msgid "%(volumes)s and %(volume)s." msgstr "%(volumes)s та %(volume)s." -#: rapid/problemnotification.py:284 +#: rapid/problemnotification.py:285 #, python-format msgid "Backup already exists on %(volume)s." msgstr "Резервна копія вже існує на %(volume)s." -#: rapid/problemnotification.py:286 +#: rapid/problemnotification.py:287 msgid "Backups already exist in these locations: " msgstr "Резервна копія вже існує на: " -#: rapid/problemnotification.py:296 +#: rapid/problemnotification.py:297 #, python-format msgid "Backup overwritten on %(volume)s." -msgstr "" +msgstr "Резервну копію на %(volume)s перезаписано." -#: rapid/problemnotification.py:298 +#: rapid/problemnotification.py:299 msgid "Backups overwritten on these devices: " -msgstr "" +msgstr "Перезаписано резервну копію на пристрої: " -#: rapid/problemnotification.py:309 +#: rapid/problemnotification.py:310 #, python-format msgid "An error occurred when creating directories on %(volume)s: %(inst)s." -msgstr "" +msgstr "Сталася помилка при створені каталогів на %(volume)s: %(inst)s." -#: rapid/problemnotification.py:311 +#: rapid/problemnotification.py:312 msgid "" "Errors occurred when creating directories on the following backup devices: " -msgstr "" +msgstr "Сталася помилка при створені каталогів на наступних пристроях: " -#: rapid/problemnotification.py:322 +#: rapid/problemnotification.py:323 #, python-format msgid "%(previousproblem)s Additionally, %(newproblem)s" -msgstr "" +msgstr "У доповнення до %(previousproblem)s: %(newproblem)s" -#: rapid/problemnotification.py:330 +#: rapid/problemnotification.py:331 #, python-format msgid " Furthermore, there were %(problems)s." -msgstr "" +msgstr " До того ж є %(problems)s." -#: rapid/problemnotification.py:332 +#: rapid/problemnotification.py:333 #, python-format msgid " Furthermore, there was a %(problem)s." -msgstr "" +msgstr " До того ж була %(problem)s." -#: rapid/problemnotification.py:341 +#: rapid/problemnotification.py:342 #, python-format msgid "The %(type)s metadata is missing." -msgstr "" +msgstr "У метаданих пропущено %(type)s" -#: rapid/problemnotification.py:343 +#: rapid/problemnotification.py:344 msgid "The following metadata is missing: " -msgstr "" +msgstr "Ці метадані пропущено: " -#: rapid/problemnotification.py:346 +#: rapid/problemnotification.py:347 #, python-format msgid "%(missing_metadata_elements)s and %(final_missing_metadata_element)s." -msgstr "" +msgstr "%(missing_metadata_elements)s, %(final_missing_metadata_element)s." -#: rapid/problemnotification.py:363 +#: rapid/problemnotification.py:364 msgid "Problems in subfolder and filename generation" -msgstr "" +msgstr "При створенні ім’я каталогу та файлу сталися помилки." -#: rapid/problemnotification.py:365 +#: rapid/problemnotification.py:366 msgid "Problem in subfolder and filename generation" -msgstr "" +msgstr "Помилка при створенні імені каталогу та файлу." -#: rapid/problemnotification.py:368 +#: rapid/problemnotification.py:369 #, python-format msgid "Problems in %s generation" -msgstr "" +msgstr "Сталися помилки при створенні %s" -#: rapid/problemnotification.py:370 +#: rapid/problemnotification.py:371 #, python-format msgid "Problem in %s generation" -msgstr "" +msgstr "Помилка %s при створенні" -#: rapid/problemnotification.py:379 +#: rapid/problemnotification.py:380 #, python-format msgid "%(filetype)s already exists, but it was backed up" -msgstr "" +msgstr "Хоч %(filetype)s вже існує, резервна копія все одно створена." -#: rapid/problemnotification.py:381 +#: rapid/problemnotification.py:382 #, python-format msgid "An error occurred when copying the %(filetype)s, but it was backed up" msgstr "" +"При копіюванні %(filetype)s сталася помилка, але резервна копія все одно " +"створена." -#: rapid/problemnotification.py:401 +#: rapid/problemnotification.py:402 msgid "Multiple problems were encountered" -msgstr "" +msgstr "Виявлено чисельні проблеми" -#: rapid/problemnotification.py:403 rapid/subfolderfile.py:228 +#: rapid/problemnotification.py:404 rapid/subfolderfile.py:233 msgid "Photos detected with the same filenames, but taken at different times" msgstr "Виявлені фото з однаковою назвою, але зроблені в різний час" -#: rapid/problemnotification.py:409 +#: rapid/problemnotification.py:410 msgid "there were errors backing up" -msgstr "" +msgstr "Помилки при створенні резервної копії" -#: rapid/problemnotification.py:410 +#: rapid/problemnotification.py:411 msgid "There were errors backing up" -msgstr "" +msgstr "Помилки при створенні резервної копії" -#: rapid/problemnotification.py:412 +#: rapid/problemnotification.py:413 msgid "there was an error backing up" -msgstr "" +msgstr "була помилка при резевному копіюванні" -#: rapid/problemnotification.py:413 +#: rapid/problemnotification.py:414 msgid "There was an error backing up" -msgstr "" +msgstr "Була помилка при резевному копіюванні" #. e.g. -#: rapid/problemnotification.py:416 +#: rapid/problemnotification.py:417 #, python-format msgid "%(previousproblem)s, and %(backinguperror)s" -msgstr "" +msgstr "%(previousproblem)s, ще %(backinguperror)s" -#: rapid/rpdfile.py:136 +#: rapid/rpdfile.py:153 #, python-format msgid "%(number)s %(filetypes)s" msgstr "%(number)s %(filetypes)s" -#: rapid/subfolderfile.py:79 +#: rapid/rpdfile.py:163 +#, python-format +msgid "scanning (found %(photos)s photos and %(videos)s videos)..." +msgstr "" +"перевірка (знайдено %(photos)s фотографій та %(videos)s відеозаписів)..." + +#: rapid/subfolderfile.py:80 #, python-format msgid "%(hour)s:%(minute)s:%(second)s:%(subsecond)s" msgstr "%(hour)s:%(minute)s:%(second)s:%(subsecond)s" -#: rapid/subfolderfile.py:297 +#: rapid/subfolderfile.py:301 msgid "Photo has already been downloaded" msgstr "Фото вже були завантажені" -#: rapid/subfolderfile.py:298 +#: rapid/subfolderfile.py:302 #, python-format msgid "Source: %(source)s" msgstr "Джерело: %(source)s" -#: rapid/subfolderfile.py:355 +#: rapid/subfolderfile.py:354 msgid "subfolder and filename" -msgstr "підтека та назва файла" +msgstr "підтека та назва файлу" #: rapid/subfolderfile.py:393 msgid "Failed to create download subfolder" -msgstr "" +msgstr "Не вдалося створити каталог для завантаження" #: rapid/subfolderfile.py:394 #, python-format msgid "Path: %s" -msgstr "" - -#: rapid/glade3/rapid.ui.h:1 -msgid "About..." -msgstr "" +msgstr "Шлях: %s" #: rapid/glade3/rapid.ui.h:2 -msgid "Check All" -msgstr "" +msgid "_File" +msgstr "_Файл" #: rapid/glade3/rapid.ui.h:3 -msgid "Check All Photos" -msgstr "" +msgid "Download / Pause" +msgstr "Завантаження / Призупинити" #: rapid/glade3/rapid.ui.h:4 -msgid "Check All Videos" -msgstr "" +msgid "_Select" +msgstr "_Вибрати" + +#: rapid/glade3/rapid.ui.h:5 +msgid "Select All Without _Job Code" +msgstr "Вибрати всі без _міток" #: rapid/glade3/rapid.ui.h:6 -msgid "Download / Pause" -msgstr "Завантаження / Пауза" +msgid "Select All Wit_h Job Code" +msgstr "Вибрати всі з _мітками" #: rapid/glade3/rapid.ui.h:7 -msgid "Get Help Online..." -msgstr "" +msgid "_View" +msgstr "_Перегляд" #: rapid/glade3/rapid.ui.h:8 -msgid "Help" -msgstr "" +msgid "_Error Log" +msgstr "_Журнал помилок" #: rapid/glade3/rapid.ui.h:9 -msgid "Make a Donation..." -msgstr "" +msgid "_Clear Completed Downloads" +msgstr "_Очистити завершені завантаження" #: rapid/glade3/rapid.ui.h:10 -msgid "Next File" -msgstr "" +msgid "Previous File" +msgstr "Попередній Файл" #: rapid/glade3/rapid.ui.h:11 -msgid "Preferences" -msgstr "" +msgid "Next File" +msgstr "Наступний файл" #: rapid/glade3/rapid.ui.h:12 -msgid "Previous File" -msgstr "" - -#: rapid/glade3/rapid.ui.h:13 -msgid "Quit" -msgstr "" - -#: rapid/glade3/rapid.ui.h:15 -msgid "Refresh" -msgstr "" - -#: rapid/glade3/rapid.ui.h:16 -msgid "Report a Problem..." -msgstr "" - -#: rapid/glade3/rapid.ui.h:17 -msgid "Select All Wit_h Job Code" -msgstr "Вибрати всі з _мітками" - -#: rapid/glade3/rapid.ui.h:18 -msgid "Select All Without _Job Code" -msgstr "Вибрати всі без _міток" - -#: rapid/glade3/rapid.ui.h:19 -msgid "Translate this Application..." -msgstr "" - -#: rapid/glade3/rapid.ui.h:20 -msgid "Uncheck All" -msgstr "" - -#: rapid/glade3/rapid.ui.h:21 -msgid "_Check All" -msgstr "" - -#: rapid/glade3/rapid.ui.h:22 -msgid "_Clear Completed Downloads" -msgstr "_Очистити завершені завантаження" - -#: rapid/glade3/rapid.ui.h:23 -msgid "_Download" -msgstr "" - -#: rapid/glade3/rapid.ui.h:24 -msgid "_Error Log" -msgstr "_Журнал помилок" - -#: rapid/glade3/rapid.ui.h:25 -msgid "_File" -msgstr "_Файл" - -#: rapid/glade3/rapid.ui.h:26 msgid "_Help" msgstr "_Довідка" -#: rapid/glade3/rapid.ui.h:27 -msgid "_Include in download" -msgstr "" - -#: rapid/glade3/rapid.ui.h:28 +#: rapid/glade3/rapid.ui.h:13 msgid "_Make a Donation..." msgstr "_Зробити пожертву..." -#: rapid/glade3/rapid.ui.h:29 -msgid "_Select" -msgstr "_Вибрати" - -#: rapid/glade3/rapid.ui.h:30 +#: rapid/glade3/rapid.ui.h:14 msgid "_Translate this Application..." msgstr "_Перекласти цю програму..." -#: rapid/glade3/rapid.ui.h:31 +#: rapid/glade3/rapid.ui.h:15 +msgid "_Check All" +msgstr "_Позначити все" + +#: rapid/glade3/rapid.ui.h:16 msgid "_Uncheck All" -msgstr "" +msgstr "_Скасувати позначку всього" -#: rapid/glade3/rapid.ui.h:32 -msgid "_View" -msgstr "_Перегляд" +#: rapid/glade3/rapid.ui.h:17 +msgid "_Include in download" +msgstr "Включити у завантаження" + +#: rapid/glade3/rapid.ui.h:18 +msgid "_Download" +msgstr "_Завантажити" #: rapid/glade3/prefs.ui.h:1 -msgid " " -msgstr " " +msgid "Preferences: Rapid Photo Downloader" +msgstr "Параметри: Rapid Photo Downloader" #: rapid/glade3/prefs.ui.h:2 -msgid " hh:mm" -msgstr " гг:хх" +msgid "Photo Download Folders" +msgstr "" +"Теки для завантаження фото" #: rapid/glade3/prefs.ui.h:3 -msgid ":" -msgstr ":" +msgid "Example: /home/user/Pictures" +msgstr "Приклад: /home/user/Pictures" #: rapid/glade3/prefs.ui.h:4 -msgid "Backup" -msgstr "Резервне копіювання" +msgid "Download Subfolders" +msgstr "Підтеки для завантаження" #: rapid/glade3/prefs.ui.h:5 -msgid "Compatibility with Other Operating Systems" -msgstr "Сумісність з іншими операційними системами" +msgid "Download folder:" +msgstr "Тека для завантаження:" #: rapid/glade3/prefs.ui.h:6 -msgid "Devices" -msgstr "Пристрої" +msgid "" +"Choose the download folder. Subfolders for the downloaded photos will be " +"automatically created in this folder using the structure specified below." +msgstr "" +"Виберіть теку для завантаження. В цій теці автоматично створюватимуться " +"підтеки для завантажених фото використовуючи структуру, зазначену нижче." #: rapid/glade3/prefs.ui.h:7 msgid "Download Folder" msgstr "Тека для завантаження" #: rapid/glade3/prefs.ui.h:8 -msgid "Download Subfolders" -msgstr "Підтеки для завантаження" +msgid "Photo Folders" +msgstr "Теки з фото" #: rapid/glade3/prefs.ui.h:9 -msgid "Example" -msgstr "Приклад" +msgid "Photo Rename\t" +msgstr "Перейменування фото\t" #: rapid/glade3/prefs.ui.h:10 -msgid "Job Codes" -msgstr "Мітки" - -#: rapid/glade3/prefs.ui.h:11 msgid "Photo Rename" msgstr "Перейменування фото" +#: rapid/glade3/prefs.ui.h:11 +msgid " " +msgstr " " + #: rapid/glade3/prefs.ui.h:12 -msgid "Photo and Video Name Conflicts" -msgstr "Конфлікти назв фото та відео" +msgid "New:" +msgstr "Нова назва:" #: rapid/glade3/prefs.ui.h:13 -msgid "Program Automation" -msgstr "Автоматизація програми" +msgid "Original:" +msgstr "Початкова назва:" #: rapid/glade3/prefs.ui.h:14 -msgid "Sequence Numbers" -msgstr "Послідовність номерів" +msgid "Example" +msgstr "Приклад" #: rapid/glade3/prefs.ui.h:15 -msgid "/media/externaldrive/Photos" -msgstr "/media/externaldrive/Photos" +msgid "Photo Rename" +msgstr "Перейменування фото" #: rapid/glade3/prefs.ui.h:16 -msgid "Example: /home/user/Pictures" -msgstr "Приклад: /home/user/Pictures" +msgid "Video Download Folders" +msgstr "" +"Теки для завантаження відео" #: rapid/glade3/prefs.ui.h:17 -msgid "Example:" -msgstr "Приклад:" +msgid "" +"Sorry, video downloading functionality disabled. To download videos, please " +"install either the hachoir metadata and kaa metadata packages " +"for python, or exiftool." +msgstr "" +"Вибачте, але стягнення відео вимкнено. Для того щоб мати можливість " +"завантажувати відео, будь-ласка, встановіть пакунки hachoir metadata " +"та kaa metadata для Пітона або exiftool." #: rapid/glade3/prefs.ui.h:18 -msgid "New:" -msgstr "Нова назва:" +msgid "" +"Choose the download folder. Subfolders for the downloaded videos will be " +"automatically created in this folder using the structure specified below." +msgstr "" +"Виберіть теку для завантаження. В цій теці автоматично створюватимуться " +"підтеки для завантажених відео використовуючи структуру, зазначену нижче." #: rapid/glade3/prefs.ui.h:19 -msgid "Original:" -msgstr "Початкова назва:" +msgid "Video Folders" +msgstr "Теки відео" #: rapid/glade3/prefs.ui.h:20 -msgid "Backup\t" -msgstr "Резервне копіювання\t" +msgid "Video Rename\t" +msgstr "Перейменування відео\t" #: rapid/glade3/prefs.ui.h:21 -msgid "Devices" -msgstr "Пристрої" +msgid "Video Rename" +msgstr "Перейменування відео" #: rapid/glade3/prefs.ui.h:22 -msgid "Error Handling" -msgstr "Обробка помилок" +msgid "Rename Options" +msgstr "" +"Параметри перейменування" #: rapid/glade3/prefs.ui.h:23 -msgid "Job Codes" -msgstr "Мітки" +msgid "Sequence Numbers" +msgstr "Послідовність номерів" #: rapid/glade3/prefs.ui.h:24 -msgid "Miscellaneous" +msgid "" +"Specify the time in 24 hour format at which the Downloads today " +"sequence number should be reset." msgstr "" +"Вкажіть час в 24-годинному форматі, коли буде скинута послідовність номерів " +"для параметра Завантажень сьогодні." #: rapid/glade3/prefs.ui.h:25 -msgid "Photo Download Folders" -msgstr "" -"Теки для завантаження фото" +msgid "Day start:" +msgstr "Початок дня:" #: rapid/glade3/prefs.ui.h:26 -msgid "Photo Rename\t" -msgstr "Перейменування фото\t" +msgid "Downloads today:" +msgstr "Завантажень сьогодні:" #: rapid/glade3/prefs.ui.h:27 -msgid "Rename Options" -msgstr "" -"Параметри перейменування" +msgid "Stored number:" +msgstr "Номер зберігання:" #: rapid/glade3/prefs.ui.h:28 -msgid "Video Download Folders" -msgstr "" -"Теки для завантаження відео" +msgid ":" +msgstr ":" #: rapid/glade3/prefs.ui.h:29 -msgid "Video Rename\t" -msgstr "Перейменування відео\t" +msgid " hh:mm" +msgstr " гг:хх" #: rapid/glade3/prefs.ui.h:30 -msgid "Add unique identifier" -msgstr "Додати унікальний ідентифікатор" +msgid "Synchronize RAW + JPEG sequence numbers" +msgstr "Синхронізувати послідовність номерів RAW + JPEG" #: rapid/glade3/prefs.ui.h:31 -msgid "Automatically detect Portable Storage Devices" -msgstr "Автоматичне виявляти портативні пристрої зберігання" +msgid "Compatibility with Other Operating Systems" +msgstr "Сумісність з іншими операційними системами" #: rapid/glade3/prefs.ui.h:32 -msgid "Automatically detect backup devices" -msgstr "Автоматичне виявляти пристрої для резервного копіювання" +msgid "" +"Specify whether photo, video and folder names should have any characters " +"removed that are not allowed by other operating systems." +msgstr "" +"Вкажіть, чи вилучати з назв фото, відео та тек всі символи, що не дозволені " +"в інших операційних системах." #: rapid/glade3/prefs.ui.h:33 -msgid "Automatically detect devices" -msgstr "Автоматичне виявляти пристрої" +msgid "Strip incompatible characters" +msgstr "Вилучати несумісні символи" #: rapid/glade3/prefs.ui.h:34 -msgid "Backup" -msgstr "Резервне копіювання" +msgid "Rename Options" +msgstr "Параметри перейменування" #: rapid/glade3/prefs.ui.h:35 -msgid "Backup location:" -msgstr "Місце для резервного копіювання:" +msgid "Job Codes" +msgstr "Мітки" #: rapid/glade3/prefs.ui.h:36 -msgid "Backup photos and videos when downloading" -msgstr "Резервне копіювання фото та відео під час завантаження" +msgid "Job Codes" +msgstr "Мітки" #: 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." -msgstr "" -"Виберіть теку для завантаження. В цій теці автоматично створюватимуться " -"підтеки для завантажених фото використовуючи структуру, зазначену нижче." - -#: 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 "" -"Виберіть теку для завантаження. В цій теці автоматично створюватимуться " -"підтеки для завантажених відео використовуючи структуру, зазначену нижче." +msgid "_Add..." +msgstr "Д_одати..." #: rapid/glade3/prefs.ui.h:39 -msgid "Day start:" -msgstr "Початок дня:" +msgid "R_emove All" +msgstr "В_илучити все" #: rapid/glade3/prefs.ui.h:40 -msgid "Delete photos and videos from device upon download completion" -msgstr "Вилучати фото та відео з пристрою після завершення завантаження" +msgid "Job Codes" +msgstr "Мітки" -#: rapid/glade3/prefs.ui.h:42 +#: rapid/glade3/prefs.ui.h:41 +msgid "Devices" +msgstr "Пристрої" + +#: rapid/glade3/prefs.ui.h:43 msgid "" "Devices are from where to download photos and videos, such as cameras, " "memory cards or Portable Storage Devices.\n" "\n" -"You can download photos from multiple devices simultaneously, or you can " -"specify a location on your hard drive.\n" +"You can download from multiple devices simultaneously, or you can specify a " +"location on your hard drive.\n" "\n" -"If downloading directly from your camera works poorly or not at all, try " -"setting it to PTP mode. If that is not possible, consider using a card " -"reader." +"Downloading directly from cameras is currently an experimental feature. " +"If downloading directly from your camera works poorly or not at all, try " +"setting it to PTP mode. If that is not possible, a card reader must be " +"used." msgstr "" -"Пристрої — це звідки ви завантажуєте фото та відео: камери, карти пам'яті " -"або портативні пристрої для зберігання даних.\n" +"Пристрої - з них завантажується фото та відео, наприклад, камера, карта " +"пам’яті або переносний накопичувач.\n" "\n" -"Завантажувати фото можна з кількох пристроїв одночасно, або ж можете вказати " -"місце на жорсткому диску.\n" +"Ви можете налаштувати завантаження з декількох пристроїв одночасно або " +"вказати місце для завантаження на жорсткому диску\n" "\n" -"Якщо завантаження прямо з камери працює погано або зовсім не працює, " -"спробуйте встановити режим PTP. Якщо це неможливо, використовуйте пристрій " -"для читання карток." - -#: rapid/glade3/prefs.ui.h:47 -msgid "Download folder:" -msgstr "Тека для завантаження:" +"Завантаження напряму з камери поки що є пробною можливістю. Якщо " +"завантаження напряму з камери працює погано або не працює взагалі, " +"перемикніть її у режим PTP. Якщо це неможливо, використовуйте пристрій для " +"читання карт пам’яті." #: rapid/glade3/prefs.ui.h:48 -msgid "Downloads today:" -msgstr "Завантажень сьогодні:" +msgid "Automatically detect Portable Storage Devices" +msgstr "Автоматично виявляти портативні пристрої зберігання" #: rapid/glade3/prefs.ui.h:49 -msgid "Error Handling" -msgstr "Обробка помилок" +msgid "Automatically detect devices" +msgstr "Автоматично виявляти пристрої" #: rapid/glade3/prefs.ui.h:50 -msgid "Exit program even if download had warnings or errors" -msgstr "" - -#: rapid/glade3/prefs.ui.h:51 -msgid "Exit program when download completes" -msgstr "" - -#: rapid/glade3/prefs.ui.h:52 -msgid "Generate thumbnails (slower)" +msgid "" +"If you enable automatic detection of Portable Storage Devices, the entire " +"device will be scanned. On large devices, this could take some time.\n" +"\n" +"When this option is enabled, and a potential device is detected, you will be " +"prompted to determine if it should be scanned or not." msgstr "" +"Якщо ви увімкнули автовизначення переносного накопичувача, буде проскановано " +"увесь накопичувач. На пристроях більшої ємності це може зайняти час\n" +"\n" +"Коли цей параметр увімкнено, й відповідний пристрій знайдено, програма " +"спитає вас, чи потрібно його сканувати." #: rapid/glade3/prefs.ui.h:53 -msgid "If you disable automatic detection, choose the exact backup location." -msgstr "" -"Якщо автоматичне виявлення вимкнено, виберіть точне місце для резервного " -"копіювання." +msgid "Location:" +msgstr "Розташування:" #: rapid/glade3/prefs.ui.h:54 msgid "" -"If you disable automatic detection, choose the exact location of the images " +"If you disable automatic detection, choose the exact location of the photos " "and videos." msgstr "" -"Якщо автоматичне виявлення вимкнено, виберіть точне місце для зображень та " -"відео." +"Якщо ви вимикаєте автовизначення, оберіть містце для резервного копіювання " +"фото та відео." #: rapid/glade3/prefs.ui.h:55 -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 " -"time." -msgstr "" -"Якщо автоматичне виявлення портативних пристроїв для зберігання увімкнено, " -"вони скануватимуться для пошуку фото. На пристроях великого об’єму це може " -"зайняти досить багато часу." +msgid "Device Options" +msgstr "Налаштування пристроїв" #: rapid/glade3/prefs.ui.h:56 -msgid "Job Codes" -msgstr "Мітки" +msgid "Remembered Paths" +msgstr "Розміщення які запам’ятовано" #: rapid/glade3/prefs.ui.h:57 -msgid "Location:" -msgstr "Розташування:" +msgid "" +"Remembered paths are those associated with devices that you have chosen to " +"always scan or ignore when automatic detection of Portable Storage Devices " +"is enabled." +msgstr "" +"Запам’ятованими адресами є ті, які асоціюються з пристроями вибраними вами " +"для виконання їх постійного сканування або ігнорування, при залученій " +"можливості автоматичного визначення Портативного пристрою зберігання." #: rapid/glade3/prefs.ui.h:58 -msgid "Miscellaneous" -msgstr "" +msgid "Ignored Paths" +msgstr "Ігноровані розміщення" #: rapid/glade3/prefs.ui.h:59 -msgid "Overwrite" -msgstr "Перезаписати" - -#: rapid/glade3/prefs.ui.h:60 -msgid "Performance" +msgid "" +"Specify the ending portion of any paths you want ignored when scanning " +"devices for photos or videos. Any path ending with the values below will not " +"be scanned." msgstr "" +"Вкажіть кінцівку будь-якої адреси, яку ви бажаєте ігнорувати при скануванні " +"пристроїв, на вміст фотографій та відеозаписів. Усі адреси що закінчуються " +"значеннями вказаними нижче, скануватися не будуть." #: rapid/glade3/prefs.ui.h:61 -msgid "Photo Folders" -msgstr "Теки з фото" +msgid "Re_move All" +msgstr "Вилучити все" #: rapid/glade3/prefs.ui.h:62 -msgid "Photo Rename" -msgstr "Перейменування фото" +msgid "Use _python-style regular expressions" +msgstr "Використовувати регулярні вирази стилю _python" #: rapid/glade3/prefs.ui.h:63 -msgid "Photo backup folder name:" -msgstr "Назва теки для резервного копіювання фото:" +msgid "Device Options" +msgstr "Параметри пристрою" #: rapid/glade3/prefs.ui.h:64 -msgid "Preferences: Rapid Photo Downloader" -msgstr "Параметри: Rapid Photo Downloader" +msgid "Backup\t" +msgstr "Резервне копіювання\t" + +#: rapid/glade3/prefs.ui.h:65 +msgid "Backup" +msgstr "Резервне копіювання" #: rapid/glade3/prefs.ui.h:66 -msgid "R_emove All" -msgstr "В_илучити все" +msgid "" +"If you disable automatic detection, choose the exact backup locations." +msgstr "" +"Якщо ви вимикаєте автовизначення, оберіть місце для резервного копіювання." #: rapid/glade3/prefs.ui.h:67 -msgid "Rename Options" -msgstr "Параметри перейменування" +msgid "Automatically detect backup devices" +msgstr "Автоматичне виявляти пристрої для резервного копіювання" #: rapid/glade3/prefs.ui.h:68 -msgid "Skip" -msgstr "Пропустити" +msgid "" +"You can have your photos and videos backed up to multiple locations as they " +"are downloaded, e.g. external hard drives." +msgstr "" +"Ви можете створювати резервні копії фото та відео в кількох місцях прямо під " +"час завантаження, наприклад, на зовнішніх жорстких дисках." #: rapid/glade3/prefs.ui.h:69 -msgid "Skip download" -msgstr "Пропустити завантаження" +msgid "Backup photos and videos when downloading" +msgstr "Резервне копіювання фото та відео під час завантаження" #: rapid/glade3/prefs.ui.h:70 msgid "" -"Sorry, video downloading functionality disabled. To download videos, please " -"install the hachoir metadata and kaa metadata packages for " -"python." -msgstr "" - -#: rapid/glade3/prefs.ui.h:71 -msgid "" "Specify the folder in which backups are stored on the device. \n" "\n" "Note: this will also be used to determine whether or not the device is " @@ -1706,67 +1839,103 @@ msgstr "" "використовуватимете, в цьому каталозі створюватиметься тека з відповідною " "назвою." +#: rapid/glade3/prefs.ui.h:73 +msgid "Photo backup location:" +msgstr "Розміщення для резервного копіювання фото:" + #: rapid/glade3/prefs.ui.h:74 -msgid "" -"Specify the time in 24 hour format at which the Downloads today " -"sequence number should be reset." -msgstr "" -"Вкажіть час в 24-годинному форматі, коли буде скинута послідовність номерів " -"для параметра Завантажень сьогодні." +msgid "Photo backup folder name:" +msgstr "Назва теки для резервного копіювання фото:" #: rapid/glade3/prefs.ui.h:75 -msgid "" -"Specify whether photo, video and folder names should have any characters " -"removed that are not allowed by other operating systems." -msgstr "" -"Вкажіть, чи вилучати з назв фото, відео та тек всі символи, що не дозволені " -"в інших операційних системах." +msgid "Example:" +msgstr "Приклад:" #: rapid/glade3/prefs.ui.h:76 -msgid "Start downloading at program startup" -msgstr "Розпочинати завантаження під час запуску програми" +msgid "/media/externaldrive/Photos" +msgstr "/media/externaldrive/Photos" #: rapid/glade3/prefs.ui.h:77 -msgid "Start downloading upon device insertion" -msgstr "Розпочинати завантаження після під’єднання пристрою" +msgid "Video backup folder name:" +msgstr "Назва теки для резервного копіювання відео:" #: rapid/glade3/prefs.ui.h:78 -msgid "Stored number:" -msgstr "Номер зберігання:" +msgid "Video backup location:" +msgstr "Розміщення для резервного копіювання відео:" #: rapid/glade3/prefs.ui.h:79 -msgid "Strip incompatible characters" -msgstr "Вилучати несумісні символи" +msgid "Backup" +msgstr "Резервне копіювання" #: rapid/glade3/prefs.ui.h:80 -msgid "Synchronize RAW + JPEG sequence numbers" -msgstr "Синхронізувати послідовність номерів RAW + JPEG" +msgid "Miscellaneous" +msgstr "Решта налаштувань" #: rapid/glade3/prefs.ui.h:81 -msgid "Unmount (\"eject\") device upon download completion" -msgstr "Від’єднати («витягти») пристрій після завершення завантаження" +msgid "Program Automation" +msgstr "Автоматизація програми" #: rapid/glade3/prefs.ui.h:82 -msgid "Video Folders" -msgstr "Теки відео" +msgid "Unmount (\"eject\") device upon download completion" +msgstr "Від’єднати («витягти») пристрій після завершення завантаження" #: rapid/glade3/prefs.ui.h:83 -msgid "Video Rename" -msgstr "Перейменування відео" +msgid "Start downloading at program startup" +msgstr "Розпочинати завантаження під час запуску програми" #: rapid/glade3/prefs.ui.h:84 -msgid "Video backup folder name:" -msgstr "Назва теки для резервного копіювання відео:" +msgid "Start downloading upon device insertion" +msgstr "Розпочинати завантаження після під’єднання пристрою" #: rapid/glade3/prefs.ui.h:85 +msgid "Exit program when download completes" +msgstr "Закінчити програму після завантаження" + +#: rapid/glade3/prefs.ui.h:86 +msgid "Exit program even if download had warnings or errors" +msgstr "Закінчити програму навіть при помилках завантаження" + +#: rapid/glade3/prefs.ui.h:87 +msgid "Automatically rotate JPEG images" +msgstr "Автоматично повертати зображення JPEG" + +#: rapid/glade3/prefs.ui.h:88 +msgid "Performance" +msgstr "Швидкодія" + +#: rapid/glade3/prefs.ui.h:89 +msgid "Generate thumbnails (slower)" +msgstr "Створювати мініатюри (довше копіюється)" + +#: rapid/glade3/prefs.ui.h:90 +msgid "Miscellaneous" +msgstr "Інше" + +#: rapid/glade3/prefs.ui.h:91 +msgid "Error Handling" +msgstr "Обробка помилок" + +#: rapid/glade3/prefs.ui.h:92 +msgid "Photo and Video Name Conflicts" +msgstr "Конфлікти назв фото та відео" + +#: rapid/glade3/prefs.ui.h:93 +msgid "Add unique identifier" +msgstr "Додати унікальний ідентифікатор" + +#: rapid/glade3/prefs.ui.h:94 +msgid "Skip download" +msgstr "Пропустити завантаження" + +#: rapid/glade3/prefs.ui.h:95 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 "" "Коли фото або відео з такою ж назвою вже завантажені, виберіть, чи " -"пропустити завантаження цього файла, чи додати унікальний ідентифікатор." +"пропустити завантаження цього файлу, чи додати унікальний ідентифікатор." -#: rapid/glade3/prefs.ui.h:86 +#: rapid/glade3/prefs.ui.h:96 msgid "" "When backing up, choose whether to overwrite a file on the backup device " "that has the same name, or skip backing it up." @@ -1774,17 +1943,17 @@ msgstr "" "Чи слід під час резервного копіювання перезаписати файл, що має однакову " "назву з файлом на пристрої, чи пропустити його?" -#: rapid/glade3/prefs.ui.h:87 -msgid "" -"You can have your photos and videos backed up to multiple locations as they " -"are downloaded, e.g. external hard drives." -msgstr "" -"Ви можете створювати резервні копії фото та відео в кількох місцях прямо під " -"час завантаження, наприклад, на зовнішніх жорстких дисках." +#: rapid/glade3/prefs.ui.h:97 +msgid "Overwrite" +msgstr "Перезаписати" -#: rapid/glade3/prefs.ui.h:88 -msgid "_Add..." -msgstr "Д_одати..." +#: rapid/glade3/prefs.ui.h:98 +msgid "Skip" +msgstr "Пропустити" + +#: rapid/glade3/prefs.ui.h:99 +msgid "Error Handling" +msgstr "Обробка помилок" #: rapid/glade3/about.ui.h:1 msgid "Import your photos and videos efficiently and reliably" @@ -1808,27 +1977,6 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "Resetting to default values." #~ msgstr "Скинути до типових значень." -#~ msgid "" -#~ "Downloads today value not updated, as a download is currently occurring" -#~ msgstr "" -#~ "Значення «Завантажень сьогодні» не оновлене, завантаження ще продовжується" - -#~ msgid "Stored number value not updated, as a download is currently occurring" -#~ msgstr "" -#~ "Значення «Збережено під номером» не оновлене, завантаження ще продовжується" - -#, python-format -#~ msgid "" -#~ "The %(filetype)s subfolder preferences had some unnecessary values removed." -#~ msgstr "Параметри підтеки %(filetype)s мають деякі вилучені зайві значення." - -#~ msgid "The following download path could not be created:\n" -#~ msgstr "Не вдалось створити такий шлях завантаження:\n" - -#, python-format -#~ msgid "%(path)s: " -#~ msgstr "%(path)s: " - #~ msgid "There is an error in the program preferences." #~ msgstr "Помилка в налаштуваннях програми." @@ -1839,49 +1987,12 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ "\n" #~ "Перевірте налаштування, перезапустіть програму та спробуйте знову." -#, python-format -#~ msgid "0 of %(number)s %(filetypes)s" -#~ msgstr "0 з %(number)s %(filetypes)s" - -#, python-format -#~ msgid "Device scan complete: found %(number)s %(filetypes)s on %(device)s" -#~ msgstr "" -#~ "Сканування завершене: знайдено %(number)s %(filetypes)s на %(device)s" - -#, python-format -#~ msgid "Device scan complete: no %(filetypes)s found on %(device)s" -#~ msgstr "Сканування завершене: не знайдено %(filetypes)s на %(device)s" - -#, python-format -#~ msgid "%(filetype)s filename could not be generated" -#~ msgstr "Назву файла %(filetype)s не вдалось згенерувати" - -#, python-format -#~ msgid "" -#~ "Source: %(source)s\n" -#~ "Problem: %(problem)s" -#~ msgstr "" -#~ "Джерело: %(source)s\n" -#~ "Проблема: %(problem)s" - -#, python-format -#~ msgid "" -#~ "%(filetype)s filename could not be properly generated. Check to ensure there " -#~ "is sufficient metadata." -#~ msgstr "" -#~ "Назву файла %(filetype)s не вдалось згенерувати правильно. Переконайтесь чи " -#~ "достатньо матаданих." - #, python-format #~ msgid "" #~ "Source: %(source)s\n" -#~ "Partially generated filename: %(newname)s\n" -#~ "Destination: %(destination)s\n" #~ "Problem: %(problem)s" #~ msgstr "" #~ "Джерело: %(source)s\n" -#~ "Частково згенерована назва: %(newname)s\n" -#~ "Адресат: %(destination)s\n" #~ "Проблема: %(problem)s" #, python-format @@ -1901,96 +2012,15 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ "Адресат: %(destination)s\n" #~ "Помилка: %(errorno)s %(strerror)s" -#, python-format -#~ msgid "The %(filetype)s was not copied." -#~ msgstr "%(filetype)s не скопійований." - -#~ msgid "" -#~ "Photos detected with the same filenames, but taken at different times:" -#~ msgstr "Виявлені фото з однаковими назвами, але зроблені в різний час:" - -#, python-format -#~ msgid "" -#~ "First photo: %(image1)s %(image1_date_time)s:%(image1_subseconds)s\n" -#~ "Second photo: %(image2)s %(image2_date_time)s:%(image2_subseconds)s" -#~ msgstr "" -#~ "Перше фото: %(image1)s %(image1_date_time)s:%(image1_subseconds)s\n" -#~ "Друге фото: %(image2)s %(image2_date_time)s:%(image2_subseconds)s" - -#, python-format -#~ msgid "Could not open %(filetype)s" -#~ msgstr "Не вдалось відкрити %(filetype)s" - #, python-format #~ msgid "Source: %s" #~ msgstr "Джерело: %s" -#, python-format -#~ msgid "%(filetype)s has no metadata" -#~ msgstr "%(filetype)s не має метаданих" - -#, python-format -#~ msgid "" -#~ "Metadata is essential for generating subfolder and/or file names.\n" -#~ "Source: %s" -#~ msgstr "" -#~ "Метадані необхідні для створення підтеки та/або назв файлів.\n" -#~ "Джерело: %s" - -#~ msgid "" -#~ "Subfolder name could not be properly generated. Check to ensure there is " -#~ "sufficient metadata." -#~ msgstr "" -#~ "Не вдалось згенерувати правильну назву підтеки. Переконайтесь чи достатньо " -#~ "метаданих." - -#, python-format -#~ msgid "" -#~ "Subfolder: %(subfolder)s\n" -#~ "File: %(file)s\n" -#~ "Problem: %(problem)s" -#~ msgstr "" -#~ "Підтека: %(subfolder)s\n" -#~ "Файл: %(file)s\n" -#~ "Проблема: %(problem)s" - #~ msgid "New day has started - resetting 'Downloads Today' sequence number" #~ msgstr "" #~ "Почався новий день - скидання порядкового номера параметра «Завантажень " #~ "сьогодні»" -#, python-format -#~ msgid "Backup of %(file_type)s already exists" -#~ msgstr "Резервна копія %(file_type)s вже наявна" - -#, python-format -#~ msgid "Backup %(file_type)s overwritten" -#~ msgstr "Резервна копія %(file_type)s перезаписана" - -#, 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" - -#, python-format -#~ msgid "" -#~ "Source: %(source)s\n" -#~ "Destination: %(destination)s\n" -#~ msgstr "" -#~ "Джерело: %(source)s\n" -#~ "Адресат: %(destination)s\n" - -#, python-format -#~ msgid "Error: %(errno)s %(strerror)s" -#~ msgstr "Помилка: %(errno)s %(strerror)s" - -#, python-format -#~ msgid "The %(file_type)s was not backed up." -#~ msgstr "Не створена резервна копія %(file_type)s." - #, python-format #~ msgid "" #~ "Source: %(source)s\n" @@ -2001,102 +2031,19 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ "Адресат: %(destination)s\n" #~ "Помилка: %(errno)s %(strerror)s" -#, python-format -#~ msgid "%(file_type)s could not be backed up" -#~ msgstr "Не вдалось створити резервну копію %(file_type)s" - -#~ msgid "No suitable backup volume was found" -#~ msgstr "Не знайдено відповідного носія для резервного копіювання" - -#~ msgid "A backup location was not found" -#~ msgstr "Не знайдено місця для резервного копіювання" - #~ msgid "The device can now be safely removed" #~ msgstr "Зараз можна безпечно вилучити носій" -#, python-format -#~ msgid "%(noFiles)s %(filetypes)s skipped" -#~ msgstr "Зігноровано %(noFiles)s %(filetypes)s" - #~ msgid "errors" #~ msgstr "помилки" -#~ msgid "Photo thumbnail could not be extracted" -#~ msgstr "Не вдалось витягти мініатюру фото" - -#, python-format -#~ msgid "Source: %s\n" -#~ msgstr "Джерело: %s\n" - -#, python-format -#~ msgid "Device: %s\n" -#~ msgstr "Носій: %s\n" - -#, python-format -#~ msgid "Destination: %s" -#~ msgstr "Адресат: %s" - -#~ msgid "Could not create temporary download directory" -#~ msgstr "Не вдалось створити тимчасову теку для завантаження" - -#~ msgid "Error:" -#~ msgstr "Помилка:" - -#, python-format -#~ msgid "This device has no %(types_searched_for)s to download from." -#~ msgstr "На цьому носії немає %(types_searched_for)s для завантаження." - #, python-format #~ msgid "Download has started from %s" #~ msgstr "Завантаження почалось з %s" -#~ msgid "Backup path does not exist" -#~ msgstr "Немає шляху для резервного копіювання" - -#, python-format -#~ msgid "The path %s could not be created" -#~ msgstr "Шлях %s не вдалось створити" - -#~ msgid "No backups can occur" -#~ msgstr "Резервне копіювання не може відбутись" - #~ msgid "Backup device missing" #~ msgstr "Відсутній пристрій для резервного копіювання" -#~ msgid "No backup device was automatically detected" -#~ msgstr "Не вдалося автоматично виявити носій для резервного копіювання" - -#~ msgid "Photo skipped" -#~ msgstr "Пропущене фото" - -#~ msgid "Photo already exists" -#~ msgstr "Фото вже наявне" - -#~ msgid "Video skipped" -#~ msgstr "Пропущене відео" - -#~ msgid "Video already exists" -#~ msgstr "Відео вже наявне" - -#~ msgid "Could not delete photo or video from device" -#~ msgstr "Не вдалось вилучити фото або відео з пристрою" - -#, python-format -#~ msgid "" -#~ "Photo: %(source)s\n" -#~ "Error: %(errno)s %(strerror)s" -#~ msgstr "" -#~ "Фото: %(source)s\n" -#~ "Помилка: %(errno)s %(strerror)s" - -#, python-format -#~ msgid "Photo: %(source)s" -#~ msgstr "Фото: %(source)s" - -#, python-format -#~ msgid "Deleted %(number)i %(filetypes)s from device" -#~ msgstr "З пристрою вилучено %(number)i %(filetypes)s" - #, python-format #~ msgid "Download complete from %s" #~ msgstr "Завершено завантаження з %s" @@ -2132,45 +2079,6 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "Job Code not entered" #~ msgstr "Мітка не введена" -#, 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" -#~ "\n" -#~ "Вирішіть цю проблему або змініть налаштування." - -#~ msgid "Problem with Device Location Folder" -#~ msgstr "Проблема з текою призначення пристрою" - -#, python-format -#~ msgid "The %(file_type)s Download Folder does not exist.\n" -#~ msgstr "Теки для завантаження %(file_type)s не існує.\n" - -#, python-format -#~ msgid "The %(file_type)s Download Folder exists but cannot be written to.\n" -#~ msgstr "" -#~ "Тека для завантаження %(file_type)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 "Problem with Download Folder" -#~ msgstr "Проблема з текою для завантаження" - -#~ msgid "Problem with Download Folders" -#~ msgstr "Проблема з теками для завантаження" - #~ msgid "Some preferences will be reset." #~ msgstr "Деякі параметри будуть скинуті." @@ -2190,22 +2098,6 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "Starting downloads" #~ msgstr "Розпочинаються завантаження" -#, 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" - -#, python-format -#~ msgid "Creating video download folder %(folder)s" -#~ msgstr "Створення теки для завантаження відео %(folder)s" - -#, python-format -#~ msgid "Failed to create default video download folder %(folder)s" -#~ msgstr "Не вдалось створити типову теку для завантаження відео %(folder)s" - #~ msgid "" #~ "A newer version of this program was previously run on this computer.\n" #~ "\n" @@ -2264,10 +2156,6 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "Failed to receive pynotify server capabilities." #~ msgstr "Не вдалося отримати властивості сервера pynotify." -#~ msgid "" -#~ "Warning: desktop environment notification server is incorrectly configured." -#~ msgstr "Увага: сервер повідомлень середовища налаштований неправильно." - #, python-format #~ msgid "Device %(device)s (%(path)s) ignored" #~ msgstr "Пристрій %(device)s (%(path)s) проігнорований" @@ -2285,18 +2173,6 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "Using manually specified path" #~ msgstr "Використовувати вручну зазначений шлях" -#~ msgid "photos downloaded" -#~ msgstr "завантажено фото" - -#~ msgid "photos skipped" -#~ msgstr "пропущено фото" - -#~ msgid "videos downloaded" -#~ msgstr "завантажено відео" - -#~ msgid "videos skipped" -#~ msgstr "пропущено відео" - #~ msgid "_Download " #~ msgstr "_Завантажити " @@ -2312,9 +2188,6 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "Using" #~ msgstr "Використання" -#~ msgid "\n" -#~ msgstr "\n" - #, python-format #~ msgid "%s is already running" #~ msgstr "%s вже функціонує" @@ -2334,36 +2207,14 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "These preferences are not well formed:" #~ msgstr "Ці параметри не дуже добре підібрані:" -#~ msgid "Subsecond metadata not present in photo" -#~ msgstr "На фото немає метаданих підсекунд" - -#, python-format -#~ msgid "%s metadata is not present" -#~ msgstr "%s метадані не представлені" - #, python-format #~ msgid "Error in date time component. Value %s appears invalid" #~ msgstr "Помилка в компоненті дати та часу. Виникає помилкове значення %s" -#~ msgid "extension was specified but filename does not have an extension" -#~ msgstr "розширення було зазначене, але в назві файла його немає" - -#~ msgid "image or video number was specified but filename has no number" -#~ msgstr "" -#~ "номер зображення або відео було зазначене, але в назві файла його немає" - -#, python-format -#~ msgid "%s metadata is not present in photo" -#~ msgstr "%s метадані не представлені на фото" - #, python-format #~ msgid "error generating name with component %s" #~ msgstr "помилка генерування назви компонентом %s" -#, python-format -#~ msgid "%s metadata is not present in video" -#~ msgstr "%s метадані не представлені на відео" - #~ msgid " " #~ msgstr " " @@ -2376,21 +2227,16 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "Automation" #~ msgstr "Автоматизація" -#~ msgid "" -#~ "Choose whether to skip downloading the file, or to add a unique indentifier." -#~ msgstr "" -#~ "Виберіть, чи пропустити завантаження файла, чи слід додати до назви " -#~ "унікальний ідентифікатор." - -#~ msgid "Copyright Damon Lynch 2007-10" -#~ msgstr "Авторське право: Damon Lynch 2007-10" +#~ msgid "Backup location:" +#~ msgstr "Місце для резервного копіювання:" #~ msgid "Error Log" #~ msgstr "Журнал помилок" -#~ msgid "Exit program if download completes without any warnings or errors" +#~ msgid "If you disable automatic detection, choose the exact backup location." #~ msgstr "" -#~ "Вийти з програми, якщо завантаження завершилась без зауважень та помилок" +#~ "Якщо автоматичне виявлення вимкнено, виберіть точне місце для резервного " +#~ "копіювання." #~ msgid "Ignore" #~ msgstr "Ігнорувати" @@ -2430,20 +2276,6 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgid "Report an error" #~ msgstr "Попередити про помилку" -#~ msgid "" -#~ "Sorry, video downloading functionality disabled. To download videos, please " -#~ "install the kaa metadata package for python." -#~ msgstr "" -#~ "На жаль, немає можливості завантажувати відео. Щоб завантажувати відео, " -#~ "встановіть пакунок kaa metadata для python." - -#~ msgid "" -#~ "Specify what to do when a photo or video of the same name has already been " -#~ "downloaded or backed up." -#~ msgstr "" -#~ "Вкажіть, що робити, якщо фото або відео з такою назвою вже завантажено або " -#~ "створена його резервна копія." - #~ msgid "Specify what to do when there are no backup devices." #~ msgstr "Вкажіть, що робити, якщо немає пристроїв для резервного копіювання." @@ -2684,6 +2516,15 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgstr "" #~ "Якщо автоматичне виявлення вимкнено, виберіть точне місце розташування фото." +#~ 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 " +#~ "time." +#~ msgstr "" +#~ "Якщо автоматичне виявлення портативних пристроїв для зберігання увімкнено, " +#~ "вони скануватимуться для пошуку фото. На пристроях великого об’єму це може " +#~ "зайняти досить багато часу." + #~ msgid "Image Devices" #~ msgstr "Пристрої для фото" @@ -2762,162 +2603,3 @@ msgstr "Імпортуйте фото та відео ефективно та н #~ msgstr "" #~ "Ви можете створювати резервні копії фото в кількох місцях прямо під час " #~ "завантаження, наприклад, на зовнішніх жорстких дисках." - -#, python-format -#~ msgid "" -#~ "Source: %(source)s\n" -#~ "Destination: %(destination)s\n" -#~ "%(problem)s" -#~ msgstr "" -#~ "Джерело: %(source)s\n" -#~ "Адресат: %(destination)s\n" -#~ "%(problem)s" - -#~ msgid "_Show this message again" -#~ msgstr "_Показувати це повідомлення знову" - -#~ msgid "Downloading From Cameras" -#~ msgstr "Звантаження з камер" - -#~ msgid "Downloading directly from a camera may work poorly or not at all" -#~ msgstr "Звантаження з камери може працювати погано або не працювати зовсім" - -#~ 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 "Attempting to download %s files" -#~ msgstr "Спроба завантаження %s файлів" - -#~ msgid "Please check your system and try again." -#~ msgstr "Перевірте систему та спробуйте знову." - -#~ msgid "Path" -#~ msgstr "Шлях" - -#~ msgid "Date" -#~ msgstr "Дата" - -#, python-format -#~ msgid "%(filetype)s was not downloaded" -#~ msgstr "%(filetype)s не завантажено" - -#, python-format -#~ msgid "%(filetype)s was downloaded successfully" -#~ msgstr "%(filetype)s завантажено успішно" - -#~ msgid "File" -#~ msgstr "Файл" - -#~ msgid "Status" -#~ msgstr "Статус" - -#~ msgid "Type" -#~ msgstr "Тип" - -#, 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 is ready to be downloaded" -#~ msgstr "%(filetype)s готово до завантаження" - -#, python-format -#~ msgid "%(filetype)s will be downloaded with warnings" -#~ msgstr "%(filetype)s буде завантажено зі застереженнями" - -#, python-format -#~ msgid "%(filetype)s is about to be downloaded" -#~ msgstr "приблизно %(filetype)s для завантаження" - -#, python-format -#~ msgid "%(filetype)s was neither downloaded nor backed up" -#~ msgstr "%(filetype)s не завантажено і не зарезервовано" - -#~ msgid "Enter a new Job Code and press Enter, or select an existing Job Code" -#~ msgstr "Введіть нову мітку і натисніть «Enter», або виберіть наявну мітку" - -#, python-format -#~ msgid "%(filetype)s cannot be downloaded" -#~ msgstr "%(filetype)s не буде завантажено" - -#~ msgid "Preview" -#~ msgstr "Попередній перегляд" - -#~ msgid "Displaying warning about downloading directly from camera" -#~ msgstr "Показувати застереження під час завантаження прямо з камери" - -#~ msgid "Download device settings preferences were changed." -#~ msgstr "Завантаження налаштувань пристрою уподобання змінилися." - -#, python-format -#~ msgid "Warning: backup device %(device)s is currently being downloaded from" -#~ msgstr "" -#~ "Попередження: резервний пристрій %(device)s на цей час, буде завантажений з" - -#~ msgid "D_ownload Selected" -#~ msgstr "З_авантажити вибрані" - -#~ msgid "_Resume" -#~ msgstr "_Продовжити" - -#~ msgid "_Download All" -#~ msgstr "З_авантажити все" - -#~ msgid "Select All Vi_deos" -#~ msgstr "Вибрати всі _відео" - -#~ msgid "Select All Pho_tos" -#~ msgstr "Вибрати всі _фото" - -#~ msgid "Se_lect None" -#~ msgstr "_Зняти вибір" - -#~ msgid "Preview _Folders" -#~ msgstr "Показувати _теки" - -#~ msgid "P_review Columns" -#~ msgstr "По_казувати стовпчики" - -#~ msgid "Download folder preferences were changed." -#~ msgstr "Параметри теки для завантаження змінились." - -#~ msgid "Select _All" -#~ msgstr "Вибрати _все" - -#~ msgid "_Device" -#~ msgstr "_Пристрій" - -#~ msgid "_Filename" -#~ msgstr "_Назва файла" - -#~ msgid "_Path" -#~ msgstr "_Шлях" - -#~ msgid "_Preview" -#~ msgstr "_Попередній перегляд" - -#~ msgid "_Size" -#~ msgstr "_Розмір" - -#~ msgid "_Type" -#~ msgstr "_Тип" - -#~ msgid "Subfolder and filename preferences were changed." -#~ msgstr "Параметри підтеки та назва файла змінились." - -#~ msgid "Backup preferences were changed." -#~ msgstr "Параметри резервування змінились." - -#, python-format -#~ msgid "%(free)s available" -#~ msgstr "Доступно %(free)s" diff --git a/rapid/ChangeLog b/rapid/ChangeLog index cc27252..8269afb 100644 --- a/rapid/ChangeLog +++ b/rapid/ChangeLog @@ -1,3 +1,30 @@ +Version 0.4.7 +------------- + +2013-10-19 + +Added feature to download audio files that are associated with photos such as +those created by the Canon 1D series of cameras. + +Fixed bug #1242119: Choosing a new folder does not work in Ubuntu 13.10. In +Ubuntu 13.10, choosing a destination or source folder from its bookmark does not +work. The correct value is displayed in the file chooser button, but this value +is not used by Rapid Photo Downloader. + +Fixed bug #1206853: Crashes when system message notifications not functioning +properly. + +Fixed bug #909405: Allow selections by row (and not GTK default by square) when +user is dragging the mouse or using the keyboard to select. Thank you to +user 'Salukibob' for the patch. + +Added a KDE Solid action. Solid is KDE4's hardware-related framework. It detects +when the user connects a new device and display a list of related actions. +Thanks to dju` for the patch. + +Added Belarusian translation -- thanks go to Ilya Tsimokhin. Updated Swedish and +Ukrainian translations. + Version 0.4.6 ------------- @@ -11,7 +38,7 @@ Added extra debugging output to help trace program execution progress. Updated German and Spanish translations. Version 0.4.6 Beta 1 -------------- +-------------------- 2012-11-26 diff --git a/rapid/backupfile.py b/rapid/backupfile.py index 310e665..7c91a19 100644 --- a/rapid/backupfile.py +++ b/rapid/backupfile.py @@ -54,7 +54,7 @@ class BackupFiles(multiprocessing.Process): # As of Ubuntu 12.10 / Fedora 18, the file move/rename command is running agonisingly slowly # A hackish workaround is to replace it with the standard python function - self.use_gnome_file_operations = True + self.use_gnome_file_operations = False def check_termination_request(self): """ @@ -99,12 +99,22 @@ class BackupFiles(multiprocessing.Process): """Backs up small files like XMP or THM files""" source = gio.File(full_file_name) dest_name = os.path.join(dest_dir, os.path.split(full_file_name)[1]) - logger.debug("Backing up %s", dest_name) - dest=gio.File(dest_name) - try: - source.copy(dest, self.progress_callback_no_update, cancellable=None) - except gio.Error, inst: - logger.error("Failed to backup file %s", full_file_name) + + if self.use_gnome_file_operations: + logger.debug("Backing up additional file %s...", dest_name) + dest=gio.File(dest_name) + try: + source.copy(dest, self.progress_callback_no_update, cancellable=None) + logger.debug("...backing up additional file %s succeeded", dest_name) + except gio.Error, inst: + logger.error("Failed to backup file %s: %s", full_file_name, inst) + else: + try: + logger.debug("Using python to back up additional file %s...", dest_name) + shutil.copy(full_file_name, dest_name) + logger.debug("...backing up additional file %s succeeded", dest_name) + except: + logger.error("Backup of %s failed", full_file_name) def run(self): @@ -209,10 +219,13 @@ class BackupFiles(multiprocessing.Process): else: rpd_file.status = config.STATUS_BACKUP_PROBLEM else: - # backup any THM or XMP files + # backup any THM, audio or XMP files if rpd_file.download_thm_full_name: self.backup_additional_file(dest_dir, rpd_file.download_thm_full_name) + if rpd_file.download_audio_full_name: + self.backup_additional_file(dest_dir, + rpd_file.download_audio_full_name) if rpd_file.download_xmp_full_name: self.backup_additional_file(dest_dir, rpd_file.download_xmp_full_name) diff --git a/rapid/config.py b/rapid/config.py index 977c342..1a12ea7 100644 --- a/rapid/config.py +++ b/rapid/config.py @@ -16,7 +16,7 @@ ### Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ### USA -version = '0.4.6' +version = '0.4.7' GCONF_KEY="/apps/rapid-photo-downloader" diff --git a/rapid/copyfiles.py b/rapid/copyfiles.py index 4a67ece..5bc243c 100644 --- a/rapid/copyfiles.py +++ b/rapid/copyfiles.py @@ -45,8 +45,8 @@ class CopyFiles(multiprocessing.Process): """ def __init__(self, photo_download_folder, video_download_folder, files, modify_files_during_download, modify_pipe, - scan_pid, - batch_size_MB, results_pipe, terminate_queue, + scan_pid, + batch_size_MB, results_pipe, terminate_queue, run_event): multiprocessing.Process.__init__(self) self.results_pipe = results_pipe @@ -60,7 +60,7 @@ class CopyFiles(multiprocessing.Process): self.scan_pid = scan_pid self.no_files= len(self.files) self.run_event = run_event - + def check_termination_request(self): """ Check to see this process has not been requested to immediately terminate @@ -71,8 +71,8 @@ class CopyFiles(multiprocessing.Process): logger.info("Terminating file copying") return True return False - - + + def update_progress(self, amount_downloaded, total): # first check if process is being terminated if not self.terminate_queue.empty(): @@ -86,65 +86,65 @@ class CopyFiles(multiprocessing.Process): if amount_downloaded == total: # this function is called a couple of times when total is reached self.total_reached = True - + 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): self.update_progress(amount_downloaded, total) - + def thm_progress_callback(self, amount_downloaded, total): # we don't care about tracking download progress for tiny THM files! pass - + def run(self): """start the actual copying of files""" - + #characters used to generate temporary filenames filename_characters = string.letters + string.digits - + self.bytes_downloaded = 0 self.total_downloaded = 0 - + self.cancel_copy = gio.Cancellable() - + self.create_temp_dirs() - + # Send the location of both temporary directories, so they can be # removed once another process attempts to rename all the files in them # and move them to generated subfolders - self.results_pipe.send((rpdmp.CONN_PARTIAL, (rpdmp.MSG_TEMP_DIRS, + self.results_pipe.send((rpdmp.CONN_PARTIAL, (rpdmp.MSG_TEMP_DIRS, (self.scan_pid, self.photo_temp_dir, self.video_temp_dir)))) - + if self.photo_temp_dir or self.video_temp_dir: - + self.thumbnail_maker = tn.Thumbnail() - + for i in range(self.no_files): rpd_file = self.files[i] self.total_reached = False - + # pause if instructed by the caller self.run_event.wait() - + if self.check_termination_request(): return None - + source = gio.File(path=rpd_file.full_file_name) - + #generate temporary name 5 digits long, no extension temp_name = ''.join(random.choice(filename_characters) for i in xrange(5)) - + temp_full_file_name = os.path.join( - self._get_dest_dir(rpd_file.file_type), + self._get_dest_dir(rpd_file.file_type), temp_name) rpd_file.temp_full_file_name = temp_full_file_name dest = gio.File(path=temp_full_file_name) - + copy_succeeded = False try: source.copy(dest, self.progress_callback, cancellable=self.cancel_copy) @@ -154,24 +154,24 @@ class CopyFiles(multiprocessing.Process): pn.DOWNLOAD_COPYING_ERROR_W_NO, {'filetype': rpd_file.title}) rpd_file.add_extra_detail( - pn.DOWNLOAD_COPYING_ERROR_W_NO_DETAIL, + pn.DOWNLOAD_COPYING_ERROR_W_NO_DETAIL, {'errorno': inst.code, 'strerror': inst.message}) - + rpd_file.status = config.STATUS_DOWNLOAD_FAILED - + 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} - + logger.error("Failed to download file: %s", rpd_file.full_file_name) logger.error(inst) self.update_progress(rpd_file.size, rpd_file.size) - + # increment this amount regardless of whether the copy actually # succeeded or not. It's neccessary to keep the user informed. self.total_downloaded += rpd_file.size - + # copy THM (video thumbnail file) if there is one if copy_succeeded and rpd_file.thm_full_name: source = gio.File(path=rpd_file.thm_full_name) @@ -186,8 +186,21 @@ class CopyFiles(multiprocessing.Process): logger.error("Failed to download video THM file: %s", rpd_file.thm_full_name) else: temp_thm_full_name = None - - + + #copy audio file if there is one + if copy_succeeded and rpd_file.audio_file_full_name: + source = gio.File(path=rpd_file.audio_file_full_name) + # reuse photo's file name + temp_audio_full_name = temp_full_file_name + '__rpd__audio' + dest = gio.File(path=temp_audio_full_name) + try: + source.copy(dest, self.thm_progress_callback, cancellable=self.cancel_copy) + rpd_file.temp_audio_full_name = temp_audio_full_name + logger.debug("Copied audio file %s", rpd_file.temp_audio_full_name) + except gio.Error, inst: + logger.error("Failed to download audio file: %s", rpd_file.audio_file_full_name) + + if copy_succeeded and rpd_file.generate_thumbnail: thumbnail, thumbnail_icon = self.thumbnail_maker.get_thumbnail( temp_full_file_name, @@ -197,33 +210,33 @@ class CopyFiles(multiprocessing.Process): else: thumbnail = None thumbnail_icon = None - + if rpd_file.metadata is not None: rpd_file.metadata = None - - + + download_count = i + 1 if self.modify_files_during_download and copy_succeeded: copy_finished = download_count == self.no_files - - self.modify_pipe.send((rpd_file, download_count, temp_full_file_name, + + self.modify_pipe.send((rpd_file, download_count, temp_full_file_name, thumbnail_icon, thumbnail, copy_finished)) else: - self.results_pipe.send((rpdmp.CONN_PARTIAL, (rpdmp.MSG_FILE, + self.results_pipe.send((rpdmp.CONN_PARTIAL, (rpdmp.MSG_FILE, (copy_succeeded, rpd_file, download_count, - temp_full_file_name, + temp_full_file_name, thumbnail_icon, thumbnail)))) - - + + self.results_pipe.send((rpdmp.CONN_COMPLETE, None)) - + def _get_dest_dir(self, file_type): if file_type == rpdfile.FILE_TYPE_PHOTO: return self.photo_temp_dir else: return self.video_temp_dir - + def _create_temp_dir(self, folder): try: temp_dir = tempfile.mkdtemp(prefix="rpd-tmp-", dir=folder) @@ -234,15 +247,15 @@ class CopyFiles(multiprocessing.Process): strerror, folder) temp_dir = None - + return temp_dir - + def create_temp_dirs(self): self.photo_temp_dir = self.video_temp_dir = None if self.photo_download_folder is not None: self.photo_temp_dir = self._create_temp_dir(self.photo_download_folder) if self.video_download_folder is not None: self.video_temp_dir = self._create_temp_dir(self.photo_download_folder) - + diff --git a/rapid/generatename.py b/rapid/generatename.py index 6d138e8..446aaf8 100644 --- a/rapid/generatename.py +++ b/rapid/generatename.py @@ -113,19 +113,34 @@ class PhotoName: logger.error("Both file modification time and metadata date & time are invalid for file %s", self.rpd_file.full_file_name) return '' - def _get_thm_extension(self): + def _get_associated_file_extension(self, associate_file): """ - Generates THM extension with correct capitalization, if needed + Generates extensions with correct capitalization for files like + thumbnail or audio files. """ - if self.rpd_file.thm_full_name: - thm_extension = os.path.splitext(self.rpd_file.thm_full_name)[1] + if associate_file: + extension = os.path.splitext(associate_file)[1] if self.L2 == UPPERCASE: - thm_extension = thm_extension.upper() + extension = extension.upper() elif self.L2 == LOWERCASE: - thm_extension = thm_extension.lower() - self.rpd_file.thm_extension = thm_extension + extension = extension.lower() else: - self.rpd_file.thm_extension = None + extension = None + return extension + + + def _get_thm_extension(self): + """ + Generates THM extension with correct capitalization, if needed + """ + self.rpd_file.thm_extension = self._get_associated_file_extension(self.rpd_file.thm_full_name) + + def _get_audio_extension(self): + """ + Generates audio extension with correct capitalization, if needed + e.g. WAV or wav + """ + self.rpd_file.audio_extension = self._get_associated_file_extension(self.rpd_file.audio_file_full_name) def _get_xmp_extension(self, extension): """ @@ -156,11 +171,13 @@ class PhotoName: if self.L1 == NAME_EXTENSION: filename = self.rpd_file.name self._get_thm_extension() + self._get_audio_extension() self._get_xmp_extension(extension) elif self.L1 == NAME: filename = name elif self.L1 == EXTENSION: self._get_thm_extension() + self._get_audio_extension() self._get_xmp_extension(extension) if extension: if not self.strip_initial_period_from_extension: diff --git a/rapid/glade3/about.ui b/rapid/glade3/about.ui index 221c62e..0a82e74 100644 --- a/rapid/glade3/about.ui +++ b/rapid/glade3/about.ui @@ -34,6 +34,7 @@ Torben Gundtofte-Bruun <torben@g-b.dk> Miroslav Matejaš <silverspace@ubuntu-hr.org> Nicolás M. Zahlut <nzahlut@live.com> Erik M +Toni Lähdekorpi <toni@lygon.net> Jose Luis Navarro <jlnavarro111@gmail.com> Tomas Novak <kuvaly@seznam.cz> Abel O'Rian <abel.orian@gmail.com> @@ -47,7 +48,7 @@ Mikko Ruohola <polarfox@polarfox.net> Ahmed Shubbar <ahmed.shubbar@gmail.com> Sergei Sedov <sedov@webmail.perm.ru> Marco Solari <marcosolari@gmail.com> -Toni Lähdekorpi <toni@lygon.net> +Ilya Tsimokhin <ilya@tsimokhin.com> Ulf Urdén <ulf.urden@purplescout.com> Julien Valroff <julien@kirya.net> Aron Xu <happyaron.xu@gmail.com> diff --git a/rapid/misc.py b/rapid/misc.py index 69b4a93..a2c6d08 100644 --- a/rapid/misc.py +++ b/rapid/misc.py @@ -19,6 +19,8 @@ ### USA # modified by Damon Lynch 2009 to remove default bold formatting and alignment +# modified by Damon Lynch 2103 to add function to get folder chosen by user in file chooser button + """Module of commonly used helper classes and functions """ @@ -44,3 +46,15 @@ def run_dialog( text, secondarytext=None, parent=None, messagetype=gtk.MESSAGE_ ret = d.run() d.destroy() return ret + +def get_folder_selection(filechooserbutton): + """ + Returns the path (folder) the user has chosen in a filechooserbutton + """ + # this no longer works on Ubuntu 13.10: + # path = filechooserbutton.get_current_folder() + # but this works on Ubuntu 13.10: + path = filechooserbutton.get_filenames() #returns a list + if path: + path = path[0] + return path diff --git a/rapid/preferencesdialog.py b/rapid/preferencesdialog.py index 6e1f548..295b6e7 100644 --- a/rapid/preferencesdialog.py +++ b/rapid/preferencesdialog.py @@ -965,23 +965,33 @@ class PreferencesDialog(): self.treeview.set_cursor(0,column) def on_download_folder_filechooser_button_selection_changed(self, widget): - self.prefs.download_folder = widget.get_current_folder() - self.update_photo_download_folder_example() + path = misc.get_folder_selection(widget) + if path: + self.prefs.download_folder = path + self.update_photo_download_folder_example() def on_video_download_folder_filechooser_button_selection_changed(self, widget): - self.prefs.video_download_folder = widget.get_current_folder() - self.update_video_download_folder_example() + path = misc.get_folder_selection(widget) + if path: + self.prefs.video_download_folder = path + self.update_video_download_folder_example() def on_backup_folder_filechooser_button_selection_changed(self, widget): - self.prefs.backup_location = widget.get_current_folder() - self.update_backup_example() + path = misc.get_folder_selection(widget) + if path: + self.prefs.backup_location = path + self.update_backup_example() def on_backup_video_folder_filechooser_button_selection_changed(self, widget): - self.prefs.backup_video_location = widget.get_current_folder() - self.update_backup_example() + path = misc.get_folder_selection(widget) + if path: + self.prefs.backup_video_location = path + self.update_backup_example() def on_device_location_filechooser_button_selection_changed(self, widget): - self.prefs.device_location = widget.get_current_folder() + path = misc.get_folder_selection(widget) + if path: + self.prefs.device_location = path def on_add_ignored_path_button_clicked(self, widget): i = IgnorePathDialog(parent_window = self.dialog, diff --git a/rapid/rapid.py b/rapid/rapid.py index 7de18c2..4f7e6bc 100755 --- a/rapid/rapid.py +++ b/rapid/rapid.py @@ -54,6 +54,8 @@ logger = log_to_stderr() import rpdfile +from misc import get_folder_selection + import problemnotification as pn import thumbnail as tn import rpdmultiprocessing as rpdmp @@ -343,7 +345,10 @@ class DeviceCollection(gtk.TreeView): n = pynotify.Notification(title, message) n.set_icon_from_pixbuf(self.parent_app.application_icon) - n.show() + try: + n.show() + except: + logger.error("Unable to display message using notification system") def create_cairo_image_surface(pil_image, image_width, image_height): @@ -627,6 +632,20 @@ class ThumbnailDisplay(gtk.IconView): self.liststore.set_sort_column_id(self.TIMESTAMP_COL, gtk.SORT_ASCENDING) def on_selection_changed(self, iconview): + """ + Allow selections by row (and not GTK default by square) when user is + dragging the mouse or using the keyboard to select + """ + selections = self.get_selected_items() + if len(selections) > 1: + previous_sel = selections[0][0] + 1 + # seleted items list always starts with the highest selected item + for selection in selections: + current_sel = selection[0] + if current_sel <> (previous_sel-1): + for i in range(previous_sel-1, current_sel, -1): + self.select_path(i) + previous_sel = current_sel self._selected_items = self.get_selected_items() def on_checkbutton_toggled(self, cellrenderertoggle, path): @@ -1838,7 +1857,7 @@ class RapidApp(dbus.service.Object): if path: if (path in self.prefs.device_blacklist and self.search_for_PSD()): - logger.info("%s ignored", mount.get_name()) + logger.info("blacklisted device %s ignored", mount.get_name()) else: logger.info("Detected %s", mount.get_name()) is_backup_mount, backup_file_type = self.check_if_backup_mount(path) @@ -2807,7 +2826,10 @@ class RapidApp(dbus.service.Object): n = pynotify.Notification(notification_name, message) n.set_icon_from_pixbuf(icon) - n.show() + try: + n.show() + except: + logger.error("Unable to display message using notification system") def notify_download_complete(self): if self.display_summary_notification: @@ -2859,7 +2881,10 @@ class RapidApp(dbus.service.Object): if use_pynotify: n = pynotify.Notification(PROGRAM_NAME, message) n.set_icon_from_pixbuf(self.application_icon) - n.show() + try: + n.show() + except: + logger.error("Unable to display message using notification system") self.display_summary_notification = False # don't show it again unless needed @@ -3373,6 +3398,10 @@ class RapidApp(dbus.service.Object): self._set_to_toolbar_values() self.to_photo_filechooser_button.connect("selection-changed", self.on_to_photo_filechooser_button_selection_changed) + #~ self.to_photo_filechooser_button.connect("file-set", + #~ self.on_to_photo_filechooser_button_file_set) + #~ self.to_photo_filechooser_button.connect("current-folder-changed", + #~ self.on_to_photo_filechooser_button_current_folder_changed) self.to_video_filechooser_button.connect("selection-changed", self.on_to_video_filechooser_button_selection_changed) self.dest_toolbar.show_all() @@ -3426,17 +3455,28 @@ class RapidApp(dbus.service.Object): def on_from_filechooser_button_selection_changed(self, filechooserbutton): logger.debug("on_from_filechooser_button_selection_changed") - path = filechooserbutton.get_current_folder() + path = get_folder_selection(filechooserbutton) if path and not self.rerun_setup_available_image_and_video_media: self.prefs.device_location = path + def on_from_filechooser_button_file_set(self, button): + logger.debug("on_from_filechooser_button_file_set") + + def on_to_photo_filechooser_button_file_set(self, filechooserbutton): + logger.debug("on_to_filechooser_button_file_set") + def on_to_photo_filechooser_button_selection_changed(self, filechooserbutton): - path = filechooserbutton.get_current_folder() + logger.debug("on_to_filechooser_button_selection_changed") + path = get_folder_selection(filechooserbutton) + #~ logger.debug("Path: %s", path) if path: self.prefs.download_folder = path + def on_to_photo_filechooser_button_current_folder_changed(self, filechooserbutton): + logger.debug("on_to_photo_filechooser_button_current_folder_changed") + def on_to_video_filechooser_button_selection_changed(self, filechooserbutton): - path = filechooserbutton.get_current_folder() + path = get_folder_selection(filechooserbutton) if path: self.prefs.video_download_folder = path diff --git a/rapid/rpdfile.py b/rapid/rpdfile.py index a405782..3749554 100644 --- a/rapid/rpdfile.py +++ b/rapid/rpdfile.py @@ -42,20 +42,22 @@ import problemnotification as pn import thumbnail as tn -RAW_EXTENSIONS = ['arw', 'dcr', 'cr2', 'crw', 'dng', 'mos', 'mef', 'mrw', - 'nef', 'nrw', 'orf', 'pef', 'raf', 'raw', 'rw2', 'sr2', +RAW_EXTENSIONS = ['arw', 'dcr', 'cr2', 'crw', 'dng', 'mos', 'mef', 'mrw', + 'nef', 'nrw', 'orf', 'pef', 'raf', 'raw', 'rw2', 'sr2', 'srw'] - + JPEG_EXTENSIONS = ['jpg', 'jpe', 'jpeg'] NON_RAW_IMAGE_EXTENSIONS = JPEG_EXTENSIONS + ['tif', 'tiff'] PHOTO_EXTENSIONS = RAW_EXTENSIONS + NON_RAW_IMAGE_EXTENSIONS +AUDIO_EXTENSIONS = ['wav', 'mp3'] + if metadatavideo.DOWNLOAD_VIDEO: - # some distros do not include the necessary libraries that Rapid Photo Downloader + # some distros do not include the necessary libraries that Rapid Photo Downloader # needs to be able to download videos - VIDEO_EXTENSIONS = ['3gp', 'avi', 'm2t', 'mov', 'mp4', 'mpeg','mpg', 'mod', + VIDEO_EXTENSIONS = ['3gp', 'avi', 'm2t', 'mov', 'mp4', 'mpeg','mpg', 'mod', 'tod'] if metadataexiftool.EXIFTOOL_VERSION is not None: VIDEO_EXTENSIONS += ['mts'] @@ -71,7 +73,7 @@ FILE_TYPE_VIDEO = 1 def file_type(file_extension): """ Uses file extentsion to determine the type of file - photo or video. - + Returns True if yes, else False. """ if file_extension in PHOTO_EXTENSIONS: @@ -79,47 +81,50 @@ def file_type(file_extension): elif file_extension in VIDEO_EXTENSIONS: return FILE_TYPE_VIDEO return None - -def get_rpdfile(extension, name, display_name, path, size, - file_system_modification_time, thm_full_name, + +def get_rpdfile(extension, name, display_name, path, size, + file_system_modification_time, + thm_full_name, audio_file_full_name, scan_pid, file_id, file_type): - + if file_type == FILE_TYPE_VIDEO: return Video(name, display_name, path, size, file_system_modification_time, thm_full_name, + audio_file_full_name, scan_pid, file_id) else: # assume it's a photo - no check for performance reasons (this will be # called many times) return Photo(name, display_name, path, size, file_system_modification_time, thm_full_name, + audio_file_full_name, scan_pid, file_id) class FileTypeCounter: def __init__(self): self._counter = dict() - + def add(self, file_type): self._counter[file_type] = self._counter.setdefault(file_type, 0) + 1 - + def no_videos(self): """Returns the number of videos""" return self._counter.setdefault(FILE_TYPE_VIDEO, 0) - + def no_photos(self): """Returns the number of photos""" return self._counter.setdefault(FILE_TYPE_PHOTO, 0) - + def file_types_present(self): - """ + """ 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 """ - + no_videos = self.no_videos() no_images = self.no_photos() - + if (no_videos > 0) and (no_images > 0): v = _('photos and videos') elif (no_videos == 0) and (no_images == 0): @@ -134,14 +139,14 @@ class FileTypeCounter: v = _('photos') else: v = _('photo') - return v - + return v + def count_files(self): i = 0 for key in self._counter: i += self._counter[key] return i - + def summarize_file_count(self): """ Summarizes the total number of photos and/or videos that can be @@ -153,26 +158,27 @@ class FileTypeCounter: file_types_present = self.file_types_present() file_count_summary = _("%(number)s %(filetypes)s") % \ {'number':self.count_files(), - 'filetypes': file_types_present} + 'filetypes': file_types_present} return (file_count_summary, file_types_present) - + def running_file_count(self): """ - Displays raw numbers of photos and videos. Displayed as a scan is - occurring. + Displays raw numbers of photos and videos. Displayed as a scan is + occurring. """ return _("scanning (found %(photos)s photos and %(videos)s videos)...") % ({'photos': self.no_photos(), 'videos': self.no_videos()}) - + class RPDFile: """ Base class for photo or video file, with metadata """ - def __init__(self, name, display_name, path, size, + def __init__(self, name, display_name, path, size, file_system_modification_time, thm_full_name, + audio_file_full_name, scan_pid, file_id): - + self.path = path self.name = name @@ -180,38 +186,43 @@ class RPDFile: self.full_file_name = os.path.join(path, name) self.extension = os.path.splitext(name)[1][1:].lower() - + self.size = size # type int - + self.modification_time = file_system_modification_time - + #full path and name of thumbnail file that is associated with some videos self.thm_full_name = thm_full_name - + + #full path and name of audio file that is associated with some photos and maybe one day videos + #think Canon 1D series of cameras + self.audio_file_full_name = audio_file_full_name + self.status = config.STATUS_NOT_DOWNLOADED self.problem = None # class Problem in problemnotifcation.py - + self._assign_file_type() - + self.scan_pid = scan_pid self.file_id = file_id self.unique_id = str(scan_pid) + ":" + file_id - + self.problem = None self.job_code = None - + # indicates whether to generate a thumbnail during the copy # files process self.generate_thumbnail = False - + # generated values - + self.temp_full_file_name = '' self.temp_thm_full_name = '' + self.temp_audio_full_name = '' self.temp_xmp_full_name = '' - + self.download_start_time = None - + self.download_subfolder = '' self.download_path = '' self.download_name = '' @@ -219,63 +230,65 @@ class RPDFile: self.download_full_base_name = '' #file name with path but no extension self.download_thm_full_name = '' #name of THM (thumbnail) file with path self.download_xmp_full_name = '' #name of XMP sidecar with path - + self.download_audio_full_name = '' #name of the WAV or MP3 audio file with path + self.metadata = None - + # Values that will be inserted in download process -- # (commented out because they're not needed until then) - + #self.sequences = None #self.download_folder #self.subfolder_pref_list = [] #self.name_pref_list = [] #strip_characters = False #self.thm_extension = '' + #self.wav_extension = '' #self.xmp_extension = '' - - #these values are set only if they were written to an xmp sidecar + + #these values are set only if they were written to an xmp sidecar #in the filemodify process #self.new_aperture = '' #self.new_focal_length = '' - - + + def _assign_file_type(self): self.file_type = None - + def _load_file_for_metadata(self, temp_file): if temp_file: return self.temp_full_file_name else: - return self.full_file_name - + return self.full_file_name + def initialize_problem(self): self.problem = pn.Problem() # these next values are used to display in the error log window # the information in them can vary from other forms of display of errors self.error_title = self.error_msg = self.error_extra_detail = '' - + def has_problem(self): if self.problem is None: return False else: return self.problem.has_problem() - + def add_problem(self, component, problem_definition, *args): if self.problem is None: self.initialize_problem() self.problem.add_problem(component, problem_definition, *args) - + def add_extra_detail(self, extra_detail, *args): self.problem.add_extra_detail(extra_detail, *args) - + class Photo(RPDFile): - + title = _("photo") title_capitalized = _("Photo") - + def _assign_file_type(self): self.file_type = FILE_TYPE_PHOTO - + def load_metadata(self, temp_file=False): self.metadata = metadataphoto.MetaData(self._load_file_for_metadata(temp_file)) try: @@ -285,16 +298,16 @@ class Photo(RPDFile): return False else: return True - - + + class Video(RPDFile): - + title = _("video") title_capitalized = _("Video") - + def _assign_file_type(self): self.file_type = FILE_TYPE_VIDEO - + def load_metadata(self, temp_file=False): if self.extension == 'mts' or not metadatavideo.HAVE_HACHOIR: if metadatavideo.HAVE_HACHOIR: @@ -303,31 +316,33 @@ class Video(RPDFile): else: self.metadata = metadatavideo.VideoMetaData(self._load_file_for_metadata(temp_file)) return True - + class SamplePhoto(Photo): def __init__(self, sample_name='IMG_0524.CR2', sequences=None): Photo.__init__(self, name=sample_name, display_name=sample_name, path='/media/EOS_DIGITAL/DCIM/100EOS5D', - size=23516764, - file_system_modification_time=time.time(), + size=23516764, + file_system_modification_time=time.time(), scan_pid=2033, file_id='9873afe', - thm_full_name=None) + thm_full_name=None, + audio_file_full_name=None) self.sequences = sequences self.metadata = metadataphoto.DummyMetaData() self.download_start_time = datetime.datetime.now() - + class SampleVideo(Video): def __init__(self, sample_name='MVI_1379.MOV', sequences=None): Video.__init__(self, name=sample_name, display_name=sample_name, path='/media/EOS_DIGITAL/DCIM/100EOS5D', - size=823513764, - file_system_modification_time=time.time(), + size=823513764, + file_system_modification_time=time.time(), scan_pid=2033, file_id='9873qrsfe', - thm_full_name=None) + thm_full_name=None, + audio_file_full_name=None) self.sequences = sequences self.metadata = metadatavideo.DummyMetaData(filename=sample_name) self.download_start_time = datetime.datetime.now() diff --git a/rapid/scan.py b/rapid/scan.py index 637031a..f0e4422 100755 --- a/rapid/scan.py +++ b/rapid/scan.py @@ -42,59 +42,71 @@ file_attributes = "standard::name,standard::display-name,\ standard::type,standard::size,time::modified,access::can-read,id::file" -def get_video_THM_file(full_file_name_no_ext): - """ - Checks to see if a thumbnail file (THM) is in the same directory as the - file. Expects a full path to be part of the file name. - - Returns the filename, including path, if found, else returns None. - """ - +def get_associated_file(full_file_name_no_ext, extensions_to_check): + f = None - for e in rpdfile.VIDEO_THUMBNAIL_EXTENSIONS: + for e in extensions_to_check: if os.path.exists(full_file_name_no_ext + '.' + e): f = full_file_name_no_ext + '.' + e break if os.path.exists(full_file_name_no_ext + '.' + e.upper()): f = full_file_name_no_ext + '.' + e.upper() break - - return f + return f + +def get_audio_file(full_file_name_no_ext): + """ + Checks to see if an audio file of the same name is in the same directory + as the file. Expects a full path to be part of the file name. + + Returns the filename, including path, if found, else returns None. + """ + return get_associated_file(full_file_name_no_ext, rpdfile.AUDIO_EXTENSIONS) + +def get_video_THM_file(full_file_name_no_ext): + """ + Checks to see if a thumbnail file (THM) is in the same directory as the + file. Expects a full path to be part of the file name. + + Returns the filename, including path, if found, else returns None. + """ + + return get_associated_file(full_file_name_no_ext, rpdfile.VIDEO_THUMBNAIL_EXTENSIONS) class Scan(multiprocessing.Process): """Scans the given path for files of a specified type. - + Returns results in batches, finishing with a total of the size of all the files in bytes. """ - + def __init__(self, path, ignored_paths, use_re_ignored_paths, - batch_size, results_pipe, + batch_size, results_pipe, terminate_queue, run_event): - + """Setup values needed to conduct the scan. - + 'path' is a string of the path to be scanned, which is passed to gio. - + 'ignored_paths' is a list of paths that should not be scanned. Any path ending with one of the values will be ignored. - + 'use_re_ignored_paths': if true, pytho regular expressions will be used to determine which paths to ignore - - 'batch_size' is the number of files that should be sent back to the + + 'batch_size' is the number of files that should be sent back to the calling function at one time. - + 'results_pipe' is a connection on which to send the results. - - 'terminate_queue' is a queue whose sole purpose is to notify the + + 'terminate_queue' is a queue whose sole purpose is to notify the process that it should terminate and not return any results. - + 'run_event' is an Event that is used to temporarily halt execution. - + """ - + multiprocessing.Process.__init__(self) self.path = path self.ignored_paths = ignored_paths @@ -107,18 +119,18 @@ class Scan(multiprocessing.Process): self.files_scanned = 0 self.files = [] self.file_type_counter = rpdfile.FileTypeCounter() - + def _gio_scan(self, path, file_size_sum): """recursive function to scan a directory and its subdirectories for photos and possibly videos""" - + children = path.enumerate_children(file_attributes) - + for child in children: - + # pause if instructed by the caller self.run_event.wait() - + if not self.terminate_queue.empty(): x = self.terminate_queue.get() # terminate immediately @@ -128,26 +140,26 @@ class Scan(multiprocessing.Process): # only collect files and scan in directories we can actually read # cannot assume that users will download only from memory cards - + if child.get_attribute_boolean(gio.FILE_ATTRIBUTE_ACCESS_CAN_READ): file_type = child.get_file_type() name = child.get_name() if file_type == gio.FILE_TYPE_DIRECTORY: if not self.ignore_this_path(name): - file_size_sum = self._gio_scan(path.get_child(name), + file_size_sum = self._gio_scan(path.get_child(name), file_size_sum) if file_size_sum is None: return None elif file_type == gio.FILE_TYPE_REGULAR: - + self.files_scanned += 1 if self.files_scanned % 100 == 0: logger.debug("Scanned %s files", self.files_scanned) - + base_name, ext = os.path.splitext(name) ext = ext.lower()[1:] - + file_type = rpdfile.file_type(ext) if file_type is not None: file_id = child.get_attribute_string( @@ -161,31 +173,35 @@ class Scan(multiprocessing.Process): size = child.get_size() modification_time = child.get_modification_time() path_name = path.get_path() - + # look for thumbnail file for videos if file_type == rpdfile.FILE_TYPE_VIDEO: thm_full_name = get_video_THM_file(os.path.join(path_name, base_name)) else: thm_full_name = None - - scanned_file = rpdfile.get_rpdfile(ext, - name, - display_name, + + # check if an audio file is associated with the photo or video + audio_file_full_name = get_audio_file(os.path.join(path_name, base_name)) + + scanned_file = rpdfile.get_rpdfile(ext, + name, + display_name, path_name, size, modification_time, - thm_full_name, + thm_full_name, + audio_file_full_name, self.pid, file_id, file_type) - + self.files.append(scanned_file) file_size_sum += size - + if self.counter == self.batch_size: # send batch of results - self.results_pipe.send((rpdmp.CONN_PARTIAL, - (file_size_sum, + self.results_pipe.send((rpdmp.CONN_PARTIAL, + (file_size_sum, self.file_type_counter, self.pid, self.files))) @@ -193,14 +209,14 @@ class Scan(multiprocessing.Process): self.counter = 0 return file_size_sum - + def run(self): """start the actual scan.""" - + if self.use_re_ignored_paths and len(self.ignored_paths): self.re_pattern = prefsrapid.check_and_compile_re(self.ignored_paths) - + source = gio.File(self.path) try: if not self.ignore_this_path(self.path): @@ -210,25 +226,25 @@ class Scan(multiprocessing.Process): except gio.Error, inst: logger.error("Error while scanning %s: %s", self.path, inst) size = None - + if size is not None: if self.counter > 0: # send any remaining results - self.results_pipe.send((rpdmp.CONN_PARTIAL, (size, + self.results_pipe.send((rpdmp.CONN_PARTIAL, (size, self.file_type_counter, self.pid, self.files))) - - self.results_pipe.send((rpdmp.CONN_COMPLETE, (size, + + self.results_pipe.send((rpdmp.CONN_COMPLETE, (size, self.file_type_counter, self.pid))) - self.results_pipe.close() + self.results_pipe.close() def ignore_this_path(self, path): """ determines if the path should be ignored according to the preferences chosen by the user """ - + if len(self.ignored_paths): if self.use_re_ignored_paths and self.re_pattern: # regular expressions are being used @@ -238,5 +254,5 @@ class Scan(multiprocessing.Process): # regular expressions are not being used if path.endswith(tuple(self.ignored_paths)): return True - + return False diff --git a/rapid/subfolderfile.py b/rapid/subfolderfile.py index 4e23309..ec99a6a 100644 --- a/rapid/subfolderfile.py +++ b/rapid/subfolderfile.py @@ -268,6 +268,67 @@ class SubfolderFile(multiprocessing.Process): return rpd_file + def _move_associate_file(self, extension, full_base_name, temp_associate_file): + """Move (rename) the associate file using the pregenerated name + + Returns tuple of result (True if succeeded, False otherwise) and + full path and filename""" + + download_full_name = full_base_name + extension + + # move (rename) associate file + if self.use_gnome_file_operations: + source = gio.File(path=temp_associate_file) + dest = gio.File(path=download_full_name) + try: + source.move(dest, self.progress_callback_no_update, cancellable=None) + success = True + except gio.Error, inst: + success = False + else: + try: + # don't check to see if it already exists + shutil.move(temp_associate_file, download_full_name) + success = True + except: + success = False + + return (success, download_full_name) + + def move_thm_file(self, rpd_file): + """Move (rename) the THM thumbnail file using the pregenerated name""" + ext = None + if hasattr(rpd_file, 'thm_extension'): + if rpd_file.thm_extension: + ext = rpd_file.thm_extension + if ext is None: + ext = '.THM' + + result, rpd_file.download_thm_full_name = self._move_associate_file(ext, rpd_file.download_full_base_name, rpd_file.temp_thm_full_name) + + if not result: + logger.error("Failed to move video THM file %s", rpd_file.download_thm_full_name) + + return rpd_file + + def move_audio_file(self, rpd_file): + """Move (rename) the associate audio file using the pregenerated name""" + ext = None + if hasattr(rpd_file, 'audio_extension'): + if rpd_file.audio_extension: + ext = rpd_file.audio_extension + if ext is None: + ext = '.WAV' + + result, rpd_file.download_audio_full_name = self._move_associate_file(ext, rpd_file.download_full_base_name, rpd_file.temp_audio_full_name) + + if not result: + logger.error("Failed to move file's associated audio file %s", rpd_file.download_audio_full_name) + + return rpd_file + + + def run(self): """ Get subfolder and name. @@ -487,7 +548,7 @@ class SubfolderFile(multiprocessing.Process): else: rpd_file = self.download_failure_file_error(rpd_file, inst.strerror) except: - rpd_file = self.download_failure_file_error(rpd_file, inst.strerror) + rpd_file = self.download_failure_file_error(rpd_file, "An unknown error occurred while renaming the file") if add_unique_identifier: name = os.path.splitext(rpd_file.download_name) @@ -553,30 +614,10 @@ class SubfolderFile(multiprocessing.Process): self.downloads_today_date.value = self.downloads_today_tracker.get_raw_downloads_today_date() if rpd_file.temp_thm_full_name: - ext = None - if hasattr(rpd_file, 'thm_extension'): - if rpd_file.thm_extension: - ext = rpd_file.thm_extension - if ext is None: - ext = '.THM' - download_thm_full_name = rpd_file.download_full_base_name + ext - - # copy and rename THM video file - if self.use_gnome_file_operations: - source = gio.File(path=rpd_file.temp_thm_full_name) - dest = gio.File(path=download_thm_full_name) - try: - source.move(dest, self.progress_callback_no_update, cancellable=None) - rpd_file.download_thm_full_name = download_thm_full_name - except gio.Error, inst: - logger.error("Failed to move video THM file %s", download_thm_full_name) - else: - try: - # don't check to see if it already exists - shutil.move(rpd_file.temp_thm_full_name, download_thm_full_name) - rpd_file.download_thm_full_name = download_thm_full_name - except: - logger.error("Failed to move video THM file %s", download_thm_full_name) + rpd_file = self.move_thm_file(rpd_file) + + if rpd_file.temp_audio_full_name: + rpd_file = self.move_audio_file(rpd_file) if rpd_file.temp_xmp_full_name: # copy and rename XMP sidecar file diff --git a/setup.py b/setup.py index b6c36d4..9eb9b14 100644 --- a/setup.py +++ b/setup.py @@ -52,8 +52,8 @@ package_data={'rapid': ['glade3/about.ui', 'glade3/errorlog.ui', 'glade3/media-eject.png', 'glade3/rapid-photo-downloader.svg', - 'glade3/rapid-photo-downloader-download-pending.png', - 'glade3/rapid-photo-downloader-downloaded-with-error.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', 'glade3/rapid-photo-downloader-jobcode.svg', @@ -75,12 +75,12 @@ setup(name=name, long_description= """Rapid Photo Downloader is written by a photographer for professional and amateur photographers. It can download photos and videos from multiple -cameras, memory cards and Portable Storage Devices simultaneously. It +cameras, memory cards and Portable Storage Devices simultaneously. It provides many flexible, user-defined options for subfolder creation, photo and video renaming, and backup. """, - packages = ['rapid'], - package_data=package_data, + packages = ['rapid'], + package_data=package_data, scripts=['rapid-photo-downloader'], platforms=['linux'], data_files=[ @@ -91,6 +91,7 @@ photo and video renaming, and backup. ('share/icons/hicolor/22x22/apps', glob.glob('data/icons/22x22/apps/*.png')), ('share/icons/hicolor/24x24/apps', glob.glob('data/icons/24x24/apps/*.png')), ('share/icons/hicolor/48x48/apps', glob.glob('data/icons/48x48/apps/*.png')), - ], - cmdclass={'install_data': InstallData} + ('/usr/share/kde4/apps/solid/actions/', ['data/kde/rapid-photo-downloader.desktop']), + ], + cmdclass={'install_data': InstallData} ) -- cgit v1.2.3